Facilitating novices’ program comprehension in program slicing via a knowledge-based and program slicing tool
Most novice programmers cannot comprehend program code effectively due to lack of knowledge, skill and domain experience. Their program comprehension capabilities are fragile, and performed at the lower syntax level of program code only, whereas experts have the capability to comprehend program code...
Saved in:
| Main Author: | |
|---|---|
| Format: | Thesis |
| Published: |
2013
|
| Subjects: | |
| Online Access: | http://eprints.uthm.edu.my/4576/ http://eprints.uthm.edu.my/4576/1/Mohd_Zanes_Bin_Sahid.pdf |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| Summary: | Most novice programmers cannot comprehend program code effectively due to
lack of knowledge, skill and domain experience. Their program comprehension
capabilities are fragile, and performed at the lower syntax level of program code
only, whereas experts have the capability to comprehend program code effectively
at the higher semantic level. This is primarily due to two major factors – the
experts’ ability to abstract code effectively based on their vast programming and
problem domain knowledge, and their application of program slicing technique
during program comprehension. Therefore, a new programming pedagogy semiautomated
program comprehension tool called Knowledge-Based Slicer (KBS)
that utilizes both knowledge-based and program slicing is designed and developed
to support and improve program comprehension of novice programmers. The tool
is developed based on adaptation and integration of two open-source tools;
Simian, a program code similarity analyzer, and Indus-Kaveri, a static program
slicing tool. KBS integrates them on top of a knowledge-based, and is deployed as
a new Eclipse’s plugin with simplified user interfaces and new features tailored
mainly for novice programmers. KBS consists of two components, the KBS
Analyzer and KBS Slicer. The knowledge-based in the KBS Analyzer is
developed in the form of Basic Program Plans that covers three basic algorithms,
which are total, maximum and average. To test the effectiveness of the KBS, four
phases of testing have been performed. The first, second and third phases testing
were performed on the individual component of KBS against 30 sample program
codes and 54 randomly selected actual novices’ program codes. In the final fourth
phase integrated testing, program codes are firstly sliced by manually choosing the
last computation result as the slicing criteria. This is followed and compared with
the slices based on the criteria automatically suggested by KBS Analyzer. The
precision of all matching are more than 0.7. Thus suggest that the KBS is able to
assist novices in program comprehension by facilitating the selection of slicing
criteria. The three main contributions of this research are the program
comprehension tool for novices in applying program slicing with facilitated
selection of slicing criteria, the first known demonstration of practical viability of
integrating program slicing and knowledge-based technique for novices’ program
comprehension, and local experimental data on knowledge-based cum program
slicing program comprehension tool. The future works of this project include the
expansion of the Program Plans to include more computing algorithms, and actual
implementation of KBS in Java programming courses. |
|---|