  Currently, programming instructors continually face the problem of helping to
debug students' programs. Although there currently exist a number of debuggers
and debugging tools in various platforms, most of these projects or products
are crafted through the needs of software maintenance, and not through the
perspective of teaching of programming. Moreover, most debuggers are too
general, meant for experts as well as not user-friendly. We propose a new
knowledge-based automated debugger to be used as a user-friendly tool by the
students to self-debug their own programs. Stereotyped code (cliche) and bugs
cliche will be stored as library of plans in the knowledge-base. Recognition of
correct code or bugs is based on pattern matching and constraint satisfaction.
Given a syntax error-free program and its specification, this debugger called
Adil (Automated Debugger in Learning system) will be able locate, pinpoint and
explain logical errors of programs. If there are no errors, it will be able to
explain the meaning of the program. Adil is based on the design of the
Conceiver, an automated program understanding system developed at Universiti
Kebangsaan Malaysia.
