1,278 research outputs found
Instructional strategies and tactics for the design of introductory computer programming courses in high school
This article offers an examination of instructional strategies and tactics for the design of introductory computer programming courses in high school. We distinguish the Expert, Spiral and Reading approach as groups of instructional strategies that mainly differ in their general design plan to control students' processing load. In order, they emphasize topdown program design, incremental learning, and program modification and amplification. In contrast, tactics are specific design plans that prescribe methods to reach desired learning outcomes under given circumstances. Based on ACT* (Anderson, 1983) and relevant research, we distinguish between declarative and procedural instruction and present six tactics which can be used both to design courses and to evaluate strategies. Three tactics for declarative instruction involve concrete computer models, programming plans and design diagrams; three tactics for procedural instruction involve worked-out examples, practice of basic cognitive skills and task variation. In our evaluation of groups of instructional strategies, the Reading approach has been found to be superior to the Expert and Spiral approaches
Using a problem analysis model to enhance student learning in computer programming
Research on computer programming suggests that novice programmers possess inert knowledge when trying to solve programming problems. Moreover, research on teaching and learning computer programming indicates that offering appropriate conceptual models of computer programming concepts to novice programmers enhances their mental models and reduces their misconceptions in computer programming. The purpose of this study was to examine the effectiveness of a problem analysis learning model of computer programming to help novice programmers overcome their inert knowledge and learn a programming language;The problem analysis learning model combines a conceptual model and a holistic instructional approach for computer programming instruction. The conceptual component of the problem analysis model includes several computer simulations of database concepts. The purpose of the conceptual component of the problem analysis model is to offer students an opportunity to manipulate data in the computer simulations before formal instruction in order to help them construct their own knowledge of basic database concepts. The purpose of the holistic component of the problem analysis learning model is to help students integrate their programming knowledge to solve database problems. The holistic approach includes a four-step process that consists of problem introduction, problem diagnosis, learning activities, and database assignments;This study involved 100 inservice teachers enrolled in a basic computer programming workshop at The Institute for Secondary Schools Teachers in Taiwan (ISST). The teachers were randomly assigned to one of the two workshops conducted in this study (43 teachers in the control group and 53 teachers in the experimental group). Each workshop consisted of 36 hours of instruction over five days. Three subjects were taught in each workshop: basic computer concepts (BCC), Chinese word processing, and database activities;The results indicated that the problem analysis learning model helped the participants develop more complete mental models of basic database concepts. Moreover, the participants in the problem analysis learning model developed better database programming skills than those in the traditional computer programming workshop;The results of this study may provide a useful conceptual framework for the design of a computer programming course for teachers. Due to the results of this study, computer practitioners/teachers may re-organize their instructional methods used with existing content materials to enhance student learning in computer programming. Future researchers may use the problem analysis model as a foundation to explore learning in other subjects. Moreover, researchers could examine parts of this model in greater detail to identify specific items or procedures that contribute to student learning. Finally, this research study also provides a workshop structure to help inservice teachers increase their computing proficiency, and it may assist institutions in organizing their training programs
Recommended from our members
The Role of Artificial Intelligence in Educating Novice Programmers
Programming is an inherently difficult skill to acquire and develop. Those who attempt to learn programming may be easily discouraged. The current landscape for computer science education does not address the needs of every novice programmer. Literature reports a discrepancy between student misconceptions and instructors’ perceptions of those misconceptions. Those who can afford a one-on-one human tutor perform on average two standard deviations better than those who learn via conventional methods, suggesting there is a need for a comparable, cheaper replacement. As a result, a number of intelligent tutoring systems have been developed for the purpose of teaching introductory programming concepts and replicating the benefits of one-on-one human tutoring. In this thesis, we analyze and discuss the literature pertaining to student misconceptions, selecting five fundamental misconception categories for introductory programming to demonstrate the effectiveness of existing intelligent tutoring systems. The features of existing intelligent tutoring systems are discussed and analyzed with respect to their effectiveness in addressing student misconceptions. Finally, we highlight the current gap in research on intelligent tutoring systems, hypothesizing the architecture and features of an ideal intelligent tutoring system for introductory programming.Electrical and Computer Engineerin
Debugging: The Key to Unlocking the Mind of a Novice Programmer?
Novice programmers must master two skills to show lasting success: writing code and, when that fails, the ability to debug it. Instructors spend much time teaching the details of writing code but debugging gets significantly less attention. But what if teaching debugging could implicitly teach other aspects of coding better than teaching a language teaching debugging? This paper explores a new theoretical framework, the Theory of Applied Mind for Programming (TAMP), which merges dual process theory with Jerome Bruner’s theory of representations to model the mind of a programmer. TAMP looks to provide greater explanatory power in why novices struggle and suggest pedagogy to bridge gaps in learning. This paper will provide an example of this by reinterpreting debugging literature using TAMP as a theoretical guide. Incorporating new view theoretical viewpoints from old studies suggests a “debugging-first” pedagogy can supplement existing methods of teaching programming and perhaps fill some of the mental gaps TAMP suggests hamper novice programmers
Applications of artificial intelligence within education
AbstractComputers have been employed within the field of education for many years, often with disappointing results. However, recent and current research within the field of artificial intelligence (AI) is having a positive impact on educational applications. For example, there now exist ICAI (intelligent computer-assisted instruction) systems to teach or tutor many different subjects; several such systems are discussed herein. In addition to CAI (computer-assisted instruction) systems, we discuss the development of learning environments that are designed to facilitate student-initiated learning. A third major application is the use of expert systems to assist with educational diagnosis and assessment. During the course of our discussion of these three major application areas, we indicate where AI has already played a major role in the development of such systems and where further research is required in order to overcome current limitations
Recommended from our members
An application of formal semantics to student modelling : an investigation in the domain of teaching Prolog
This thesis reports on research undertaken in an exploration of the use of formal semantics for student modelling in intelligent tutoring systems. The domain chosen was that of tutoring programming languages and within that domain Prolog was selected to be the target language for this exploration. The problem considered is one of how to analyse students' errors at a level which allows diagnosis to be more flexible and meaningful than is possible with the 'mal-rules' and 'bugcatalogue' approach of existing systems. The ideas put forward by Robin Milner [1980] in his Calculus of Communicating Systems (CCS) form the basis of the formalism which is proposed as a solution to this problem. Based on the findings of an empirical investigation, novices' misconceptions of control flow in Prolog was defined as a suitable area in which to explore the application of this solution. A selection of Prolog programs used in that investigation was formally described in terms of CCS. These formal descriptions were used by a production rule system to generate a number of the incomplete or faulty models of Prolog execution which were identified in the first empirical study. In a second empirical study, a machine-analysis tool, designed to be part of a diagnostic tutoring module, used these models to diagnose students' misconceptions of Prolog control flow. This initial application of CCS to student modelling showed that the models of Prolog execution generated by the system could be used successfully to detect students' misunderstandings. Results from the research reported here indicate that the use of formal semantics to model programming languages has a useful contribution to make to the task of student modelling
- …