|
|
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) |
|
|
4 | (2) |
|
|
6 | (10) |
|
|
16 | (7) |
|
|
23 | (3) |
|
|
26 | (5) |
|
2 Principles for the Design of Dynamic Tracing Environments for Novice Progammers |
|
|
31 | (30) |
|
|
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) |
|
|
51 | (4) |
|
|
55 | (6) |
|
3 A Fine-Grained Account of Prolog Execution for Teaching and Debugging |
|
|
61 | (32) |
|
|
|
|
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) |
|
|
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) |
|
|
|
|
93 | (1) |
|
|
94 | (3) |
|
|
97 | (9) |
|
|
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 and Matthew Lewis Introduction |
|
|
111 | (2) |
|
Errors Made by SOLO Users |
|
|
113 | (9) |
|
|
122 | (1) |
|
Comparison with a Study of Errors Made by LOGO Users |
|
|
123 | (2) |
|
|
125 | (5) |
|
|
130 | (3) |
|
6 An Evaluation of ADT: An Animated Prolog Tracer for Novice Prolog Programmers |
|
|
133 | (22) |
|
|
|
133 | (1) |
|
|
134 | (2) |
|
|
136 | (15) |
|
Conclusion and Future Directions |
|
|
151 | (4) |
|
7 Some Pitfalls in Learning About Recursion |
|
|
155 | (18) |
|
|
|
155 | (1) |
|
A Sample Problem and Solution |
|
|
156 | (4) |
|
|
160 | (1) |
|
Other Mental Models of Recursion |
|
|
161 | (10) |
|
|
171 | (2) |
|
8 Naive Iteration: An Account of the Conceptualizations Underlying Buggy Looping Programs |
|
|
173 | (16) |
|
|
|
|
174 | (2) |
|
|
176 | (6) |
|
|
182 | (1) |
|
|
183 | (3) |
|
|
186 | (3) |
|
Part III Artificial Intelligence User Aids |
|
|
189 | (137) |
|
9 The Automatic Debugging of Recursive Side-Effecting Programs |
|
|
191 | (36) |
|
|
|
|
191 | (8) |
|
DAN: Debugging Assistant for Novices |
|
|
199 | (16) |
|
Analysing Recursive Programs |
|
|
215 | (9) |
|
|
224 | (3) |
|
10 Syntactic Debugging of Procedural Programs |
|
|
227 | (16) |
|
|
|
227 | (2) |
|
|
229 | (11) |
|
|
240 | (1) |
|
|
241 | (2) |
|
11 Plan Diagrams as the Basis for Understanding and Debugging Pascal Programs |
|
|
243 | (44) |
|
|
|
243 | (1) |
|
|
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 | (39) |
|
|
|
287 | (5) |
|
|
292 | (12) |
|
Transforming the Code into Plan Diagram Form |
|
|
304 | (12) |
|
Matching Error Cliches Against the Transformed Code |
|
|
316 | (6) |
|
|
322 | (4) |
Conclusions |
|
326 | (5) |
Indices |
|
331 | |