At present, there is a general consensus on the nature of learning programming, but there are different opinions on what forms an effective environment for it. It is generally recognized that the development of a mental model is a formidable task for the student and that learning programming is a complex activity that depends heavily on metacognitive skills. This book, based on a NATO workshop, presents both pure cognitive models and experimental learning environments, and discusses what characteristics can make a learning model effective, especially in relation to the learning environment (natural or computerized). The papers cover cognitive models related to different aspects of programming, classes of learners, and types of environment, and are organized in three groups: theoretical and empirical studies on understanding programming, environments for learning programming, and learning programming in school environments. Comprehension, design, construction, testing, debugging, and verification are recognized as interdependent skills, which require complicated analysis and may develop independently, and indifferent orders, in novices. This book shows that there is unlikely to be asingle path from novice to expert and that the structure of the final product (the program) may not constrain the process by which it comes into being as much as some would advocate.
Understanding Programming.- Task Analysis and Cognitive Model as a Framework to Analyse Environments for Learning Programming.- Mental Representations of Computer Languages - a Lesson from Practice.- Towards a Unified Model of Learning to Program.- Acquiring Experience in Object-Oriented Programming: Effects on Design Strategies.- Programming and Design.- Program Comprehension Skills and Their Acquisition: A Call for an Ecological Paradigm.- A Distributed Model of Cognitive Behaviour in Specification Understanding.- How Confirmation Bias Affects Novice Programmers in Testing and Debugging: Research Strategies and Implications for Tools.- The "Private" Relation of the Student with Systematic Programming and Validation.- Environments for Learning Programming.- Towards an Intelligent Environment for Learning Introductory Programming.- Programming Environments for Novices.- Student Modeling in an Intelligent Programming Tutor.- Incidental Reification of Goals in an Intelligent Tutor for Smalltalk.- Methodology and Design Issues in Capra, an Environment for Learning Program Construction.- Linking Theory with ITS Implementation: Models of Programming and the Development of Programming Tutors.- Two and One-Half Approaches to Helping Novices Learn Recursion.- Knowledge Based Tools in Software Engineering Education.- Analogies in an Intelligent Programming Environment for Learning LISP.- Redressing ITS Fallacies Via Software Visualization.- Learning Programming in School Environments.- Registermachine as a Mental Model for Understanding Computer Programming.- Cognitive Structures and Cognitive Strategies in Algorithmic Thinking.- Young Novices Using an Intuitive Mental Schema to Construct Generalised Geometrical Tools.- Thinking Algebraically: Pupil Models Developed in Logo and a Spreadsheet Environment.- Learning Programming as a Cognitive Apprenticeship Through Conflicts.
Series: NATO Asi Series. Series F, Computer and Systems Sciences
Number Of Pages: 312
Published: 29th July 1993
Publisher: Springer-Verlag Berlin and Heidelberg Gmbh & Co. Kg
Country of Publication: DE
Dimensions (cm): 23.39 x 15.6
Weight (kg): 0.63