Feedback for Model-Tracing Based Program
Haider Ali Ramadhan
Department of Computer Science, Sultan Qaboos University
PO Box 36 Code 123 Muscat, Sultanate of Oman
firstname.lastname@example.org Fax: 968-513145
Normally, novices are required to produce programs for tasks they can perform by hand. In other words, the goals are familiar to them and they have procedures at their disposal so that these goals can be reached. These familiar tasks become difficult because there is one new condition that must be satisfied: programs have to be understandable by a computer through a definite means of communications, namely the programming language. Programmers thus have to restrict themselves to the use of operations the computer can perform. To be able to use these operations and express them in a program, novices must elaborate representations of these operations; such representations may not be necessary in usual and real-world problem-solving situations. In real-world situations the operations can be elaborated at execution time, where immediate concrete feedback is provided after the execution of each operation. It is this feedback that makes it easier for novices to solve the same tasks in real-world environments. To provide novices with a simulated and real-world like environment when learning computer programming, a program diagnosis system needs to make the immediate concrete feedback available to novices.
Empirical evaluations studying how novices understand and debug their programs showed that novice programmers cannot deal with multiple errors at the same time and that ihey tend to focus entirely on one error at a time. When faced with multiple error messages, novices ignore all but first error message and use a depth-first debugging approach concentrating on only one error at a time. These results also showed that when novices get error messages, they tend