|
|
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) |
|
|
|
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) |
|
|
|
|
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 Aot: 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 | (142) |
|
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 | (44) |
|
|
|
287 | (5) |
|
|
292 | (12) |
|
Transforming the Code into Plan Diagram Form |
|
|
304 | (12) |
|
Matching Error Cliches Against the Transformed Code |
|
|
316 | (6) |
|
|
322 | (4) |
|
|
326 | (5) |
Indices |
|
331 | |