Abstract:
To write programming is an essential skill for students of computing and informatics.
However, learning programming skills in finding errors and correcting them to make the
program run has been recognized as a great challenge for novice programmers. Most of
the errors currently thrown by the compiler don‟t automatically point the novice
programmers to the right direction since some of the messages need deep
understanding and expertise. This finally leads students to suffer and discouraged hope
of solving the problem on their own which results in programming phobia. Even worse,
repetitive failures may defeat students‟ enthusiasm for learning. This study therefore
investigates a number of different compilers, logical and run time errors that novice
programmer‟s encounter and the associated debugging behaviors to assists them in
writing error free code so that the primary objective of the study is to develop a
knowledge based system to assist novice programmers in debugging computer
program source code. This research has followed a Knowledge engineering process for
knowledge acquisition, modeling, representation and prototype development and
testing, The conceptual model of the knowledge based system is designed by using a
decision tree structure which is easy to understand and interpret the causes involved in
the program error. Based on the conceptual model, the knowledge is represented using
„if – then„rules. The developed prototype infers the rules by backward chaining and
provides appropriate suggestions as per the users query. The prototype was evaluated
for its usability in which it registers 87.27% user‟s acceptance. In addition, the
performance of the system was evaluated with twenty five test cases. The results of the
validation test indicate that the prototype registers on the average of 80% accuracy.
Most of the errors handled in this study are compile time errors. Our observation shows
that there is a great challenge in understanding logical errors in writing source codes
which left as a future research direction