Muutke küpsiste eelistusi

Novice Programming Environments: Explorations in Human-Computer Interaction and Artificial Intelligence [Pehme köide]

Edited by (827621 NFA Statement returned we have bank details on SAP so requested up to date mailing address.), Edited by (University College Dublin, Ireland), Edited by

This book, originally published in 1992, encapsulates ten years of research at the Open University’s Human Cognition Research Laboratory. The research investigates the problems of novice programmers, and is strongly oriented toward the design and implementation of "programming environments" aimed at eliminating or easing novices’ problems. A range of languages is studied: Pascal, SOLO, Lisp, Prolog and "Knowledge Engineering Programming". The primary emphasis of the empirical studies is to gain some understanding of novices’ "mental models" of the inner workings of computers. Such (erroneous) models are constructed by novices in their own heads to account for the idiosyncrasies of particular programming languages. The primary emphasis of the implementations described in the book is the provision of "automatic debugging aids", i.e. artificial intelligence programs which can analyse novices’ buggy programs, and make sense of them, thereby providing useful advice for the novices.

Another related strand taken in some of the work is the concept of "pre-emptive design", i.e. the provision of tools such as syntax-directed editors and graphical tracers which help programmers avoid many frequently-occurring errors. A common thread throughout the book is its Cognitive Science/Artificial Intelligence orientation. AI tools are used, for instance, to construct simulation models of subjects writing programs, in order to provide insights into what their deep conceptual errors are. At the other extreme, AI programs which were developed in order to help student debug their programs are observed empirically in order to ensure that they provide facilities actually needed by real programmers.

This book will be of great interest to advanced undergraduate, postgraduate, and professional researchers in Cognitive Science, Artificial Intelligence, and Human-Computer Interaction.

List of Contributors
xi
Preface xiii
Acknowledgements xix
Part I Design Issues in Programming Environments
1(108)
1 Design Features Of A Friendly Software Environment For Novice Programmers
3(28)
Marc Eisenstadt
Introduction
4(1)
Background
4(2)
The Language
6(10)
The Environment
16(7)
The Curriculum
23(3)
Conclusions
26(5)
2 Principles For The Design Of Dynamic Tracing Environments For Novice Progammers
31(30)
Tim Rajan
Introduction: The Programming Behaviour of Novices
31(8)
Applying the Research to Tracers for Prolog
39(5)
Design Principles for a Story of Program Execution
44(7)
Overview of APT
51(4)
Discussion
55(6)
3 A Fine-Grained Account Of Prolog Execution For Teaching And Debugging
61(32)
Marc Eisenstadt
Mike Brayshaw
Introduction
62(4)
A Model of Prolog Execution
66(13)
A Textbook, Video, and Workbook Curriculum
79(2)
Scaling Up from the Fine-Grained Account: Handling Large Programs
81(4)
Conclusion
85(2)
Appendix A: Open University Prolog Course Contents Outline
87(6)
4 A New Metaphor For The Graphical Explanation Of Forward-Chaining Rule Execution
93(16)
John Domingue
Marc Eisenstadt
Introduction
93(1)
Tracing Rule Execution
94(3)
Scenario
97(9)
Assessing TRI
106(1)
Conclusions and Future Work
107(2)
Part II Empirical Studies and Cognitive Models
109(80)
5 Errors In An Interactive Programming Environment: Causes And Cures
111(22)
Marc Eisenstadt
Matthew Lewis
Introduction
111(2)
Errors Made by SOLO Users
113(9)
Discussion
122(1)
Comparison with a Study of Errors Made by LOGO Users
123(2)
Error Prevention
125(5)
Conclusions
130(3)
6 An Evaluation Of Aot: An Animated Prolog Tracer For Novice Prolog Programmers
133(22)
Tim Rajan
Introduction
133(1)
Learning to Program
134(2)
The Experiments
136(15)
Conclusion and Future Directions
151(4)
7 Some Pitfalls In Learning About Recursion
155(18)
Hank Kahney
Introduction
155(1)
A Sample Problem and Solution
156(4)
A Second Solution
160(1)
Other Mental Models of Recursion
161(10)
Conclusion
171(2)
8 Naive Iteration: An Account Of The Conceptualizations Underlying Buggy Looping Programs
173(16)
Marc Eisenstadt
Joost Breuker
Introduction
174(2)
The Experiment
176(6)
Discussion
182(1)
A Simulation Model
183(3)
Conclusions
186(3)
Part III Artificial Intelligence User Aids
189(142)
9 The Automatic Debugging Of Recursive Side-Effecting Programs
191(36)
Joachim Laubsch
Marc Eisenstadt
Introduction
191(8)
DAN: Debugging Assistant for Novices
199(16)
Analysing Recursive Programs
215(9)
Conclusions
224(3)
10 Syntactic Debugging Of Procedural Programs
227(16)
Tony Hasemer
Introduction
227(2)
AURAC
229(11)
Conclusions and Critique
240(1)
Future Work
241(2)
11 Plan Diagrams As The Basis For Understanding And Debugging Pascal Programs
243(44)
Rudi Lutz
Introduction
243(1)
A Categorisation of Bugs
244(4)
Sources of Knowledge of Program Understanding and Debugging
248(3)
The Intelligent Pascal Debugger Project (Stage 1)
251(9)
Understanding Programs Using Plan Diagrams
260(17)
Debugging Programs Using Plan Diagrams
277(6)
Conclusions and Future Work
283(4)
12 An Automated Programming Advisor
287(44)
John Domingue
Introduction
287(5)
Related Work
292(12)
Transforming the Code into Plan Diagram Form
304(12)
Matching Error Cliches Against the Transformed Code
316(6)
The Student Model
322(4)
Conclusions
326(5)
Indices 331
Marc Eisenstadt, Mark Keane, Tim Rajan