956 resultados para learning programming
Resumo:
It is widely accepted that solving programming exercises is fundamental to learn how to program. Nevertheless, solving exercises is only effective if students receive an assessment on their work. An exercise solved wrong will consolidate a false belief, and without feedback many students will not be able to overcome their difficulties. However, creating, managing and accessing a large number of exercises, covering all the points in the curricula of a programming course, in classes with large number of students, can be a daunting task without the appropriated tools working in unison. This involves a diversity of tools, from the environments where programs are coded, to automatic program evaluators providing feedback on the attempts of students, passing through the authoring, management and sequencing of programming exercises as learning objects. We believe that the integration of these tools will have a great impact in acquiring programming skills. Our research objective is to manage and coordinate a network of eLearning systems where students can solve computer programming exercises. Networks of this kind include systems such as learning management systems (LMS), evaluation engines (EE), learning objects repositories (LOR) and exercise resolution environments (ERE). Our strategy to achieve the interoperability among these tools is based on a shared definition of programming exercise as a Learning Object (LO).
Resumo:
A concept of educational game for learning programming languages is presented. The idea of learning programming languages and improving programming skills through programming game characters’ behavior is described. The learning course description rules for using in games are suggested. The concept is implemented in a game for learning C# programming language. A common game architecture is modified for using in the educational game. The game engine is built on the base of the graphical engine Ogre3D and extended with game logic. The game has been developed as an industry level commercial product and is planned for sale to educational institutions.
Resumo:
At the University of Worcester we are continually striving to find new approaches to the learning and teaching of programming, to improve the quality of learning and the student experience. Over the past three years we have used the contexts of robotics, computer games, and most recently a study of Abstract Art to this end. This paper discusses our motivation for using Abstract Art as a context, details our principles and methodology, and reports on an evaluation of the student experience. Our basic tenet is that one can view the works of artists such as Kandinsky, Klee and Malevich as Object-Oriented (OO) constructions. Discussion of these works can therefore be used to introduce OO principles, to explore the meaning of classes, methods and attributes and finally to synthesize new works of art through Java code. This research has been conducted during delivery of an “Advanced OOP (Java)” programming module at final-year Undergraduate level, and during a Masters’ OO-Programming (Java) module. This allows a comparative evaluation of novice and experienced programmers’ learning. In this paper, we identify several instructional factors which emerge from our approach, and reflect upon the associated pedagogy. A Catalogue of ArtApplets is provided at the associated web-site.
Resumo:
Thomas, L., Ratcliffe, M., Woodbury, J., and Jarman, E. 2002. Learning styles and performance in the introductory programming sequence. SIGCSE Bull. 34, 1 (Mar. 2002), 33-37.
Resumo:
Timely feedback is a vital component in the learning process. It is especially important for beginner students in Information Technology since many have not yet formed an effective internal model of a computer that they can use to construct viable knowledge. Research has shown that learning efficiency is increased if immediate feedback is provided for students. Automatic analysis of student programs has the potential to provide immediate feedback for students and to assist teaching staff in the marking process. This paper describes a “fill in the gap” programming analysis framework which tests students’ solutions and gives feedback on their correctness, detects logic errors and provides hints on how to fix these errors. Currently, the framework is being used with the Environment for Learning to Programming (ELP) system at Queensland University of Technology (QUT); however, the framework can be integrated into any existing online learning environment or programming Integrated Development Environment (IDE)
Resumo:
Students struggle with learning to program. In recent years, not only has there been a dramatic drop in the number of students enrolling in IT and Computer Science courses, but attrition from these courses continues to be significant. Introductory programming subjects traditionally have high failure rates and as they tend to be core to IT and Computer Science courses can be a road block for many students to their university studies. Is programming really that difficult — or are there other barriers to learning that have a serious and detrimental effect on student progression? In-class experiments were conducted in introductory programming units to confirm our hypothesis that that pair-programming would benefit students' learning to program. We investigated the social and cultural barriers to learning programming by questioning students' perceptions of confidence, difficulty and enjoyment of programming. The results of paired and non-paired students were compared to determine the effect of pair-programming on learning outcomes. Both the empirical and anecdotal results of our experiments strongly supported our hypothesis.
Resumo:
Learning programming is known to be difficult. One possible reason why students fail programming is related to the fact that traditional learning in the classroom places more emphasis on lecturing the material instead of applying the material to a real application. For some students, this teaching model may not catch their interest. As a result they may not give their best effort to understand the material given. Seeing how the knowledge can be applied to real life problems can increase student interest in learning. As a consequence, this will increase their effort to learn. Anchored learning that applies knowledge to solve real life problems may be the key to improving student performance. In anchored learning, it is necessary to provide resources that can be accessed by the student as they learn. These resources can be provided by creating an Intelligent Tutoring System (ITS) that can support the student when they need help or experience a problem. Unfortunately, there is no ITS developed for the programming domain that has incorporated anchored learning in its teaching system. Having an ITS that supports anchored learning will not only be able to help the student learn programming effectively but will also make the learning process more enjoyable. This research tries to help students learn C# programming using an anchored learning ITS named CSTutor. Role playing is used in CSTutor to present a real world situation where they develop their skills. A knowledge base using First Order Logic is used to represent the student's code and to give feedback and assistance accordingly.
Resumo:
The present article describes the challenges programming apprentices face and identifies the elements and processes that set them apart from experienced programmers. And also explains why a conventional programming languages teaching approach fails to map the programming mental model. The purpose of this discussion is to benefit from ideas and cognitive philosophies to be embedded in programming learning tools. Cognitive components are modeled as elements to be handled by the apprentices in tutoring systems while performing a programming task. In this process a mental level solution (the mental model of the program) and an implementation level solution (the program) are created. The mapping between these representations is a path followed by the student explicitly in this approach. © 2011 IEEE.
Resumo:
Higher education has a responsibility to educate a democratic citizenry and recent research indicates civic engagement is on the decline in the United States. Through a mixed methodological approach, I demonstrate that the potential exists for well structured short-term international service-learning programming to develop college students’ civic identities. Quantitative analysis of questionnaire data, collected from American college students immediately prior to their participation in a short-term service-learning experience in Northern Ireland and again upon their return to the United States, revealed increases in civic accountability, political efficacy, justice oriented citizenship, and service-learning. Subsequent qualitative analysis of interview transcripts, student journals, and field notes suggested that facilitated critical reflection before, during, and after the experience promoted transformational learning. Emergent themes included: (a) responsibilities to others, (b) the value of international service-learning, (c) crosspollination of ideas, (d) stepping outside the daily routine to facilitate divergent thinking, and (e) the necessity of precursory thinking for sustaining transformations in thinking. The first theme, responsibilities to others, was further divided into subthemes of thinking beyond oneself, raising awareness of responsibility to others, and voting responsibly.
Resumo:
Main styles, or paradigms of programming – imperative, functional, logic, and object-oriented – are shortly described and compared, and corresponding programming techniques are outlined. Programming languages are classified in accordance with the main style and techniques supported. It is argued that profound education in computer science should include learning base programming techniques of all main programming paradigms.
Resumo:
Relatório da Prática de Ensino Supervisionada, Ensino de Informática, Universidade de Lisboa, 2013
Resumo:
Speaker: Patrick McSweeney Organiser: Time: 15/10/2014 11:00-11:45 Location: B32/3077 Abstract Having started at Southampton in 2005 I have seen quite a few changes to the way courses are taught and studied. I will reflect on some of the interesting changes I have observed and suggest their causes. As a practical example I will talk about codestrom, a peer feedback tool for learning programming. We have found that this teaching method has improved the student experience and reduced the work load for the module team. Together we will discuss how this and other recent developments can enable other teaching innovations which benefit staff as well as students. Hopefully the new class of PhD students will be able to contribute from the point of view of having recently been undergraduate students here and else where.
Resumo:
En este proyecto se ha estudiado el abanico de posibilidades que las plataformas web y móviles ofrecen para aprender lenguajes de programación compilados. A continuación, se ha realizado el diseño y la implementación de una plataforma para el aprendizaje de lenguajes de programación desde dispositivos móviles, con posibilidad de compilación remota desde la aplicación desarrollada, analizando el proceso y las elecciones de desarrollo tomadas. Así, se ha desarrollado una app mediante la plataforma de desarrollo Cordova, que puede ser distribuida para todas las plataformas móviles que esta soporta, incluyendo las más populares: iOS y Android. Para la parte servidora se ha utilizado un servidor Apache (PHP) y el sistema NoSQL MongoDB para la base de datos. Para mayor facilidad en la gestión del contenido de la app, se ha desarrollado en paralelo un gestor web de la base de datos, el cual permite añadir, editar y eliminar contenido de la misma a través de una interfaz agradable y funcional. ABSTRACT. In this project I have studied the range of possibilities that web and mobile platforms offer to learn compiled programming languages. Next, I have designed and implemented a platform for learning programming languages from mobile devices, giving the possibility of remote compilation within the developed application. In this terms, I have developed an app with the Cordova development platform, which can be distributed for all the mobile platforms Cordova supports, including the most popular ones: iOS and Android. For the server part, I have used an Apache (PHP) server and the NoSQL database system MongoDB. In order to offer a more usable system and a better database management, I have also developed a web manager for the database, from which database content can be added, edited and removed, through a clear and functional interface.
Resumo:
Kernel-based learning algorithms work by embedding the data into a Euclidean space, and then searching for linear relations among the embedded data points. The embedding is performed implicitly, by specifying the inner products between each pair of points in the embedding space. This information is contained in the so-called kernel matrix, a symmetric and positive semidefinite matrix that encodes the relative positions of all points. Specifying this matrix amounts to specifying the geometry of the embedding space and inducing a notion of similarity in the input space - classical model selection problems in machine learning. In this paper we show how the kernel matrix can be learned from data via semidefinite programming (SDP) techniques. When applied to a kernel matrix associated with both training and test data this gives a powerful transductive algorithm -using the labeled part of the data one can learn an embedding also for the unlabeled part. The similarity between test points is inferred from training points and their labels. Importantly, these learning problems are convex, so we obtain a method for learning both the model class and the function without local minima. Furthermore, this approach leads directly to a convex method for learning the 2-norm soft margin parameter in support vector machines, solving an important open problem.