AUTOMATIC GRADING OF PROGRAMMING ASSIGNMENTS WITH SEMANTIC APPROACH

In computer science, programming is used by students as a media to implement theoritical knowledge into a program. To facilitate grading programming assignments in a large class we use a method called automatic grading. Right now, the widely popular approach used to build an automatic grading is...

Full description

Saved in:
Bibliographic Details
Main Author: Rifky I. Bariansyah, M.
Format: Final Project
Language:Indonesia
Online Access:https://digilib.itb.ac.id/gdl/view/56124
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Institut Teknologi Bandung
Language: Indonesia
Description
Summary:In computer science, programming is used by students as a media to implement theoritical knowledge into a program. To facilitate grading programming assignments in a large class we use a method called automatic grading. Right now, the widely popular approach used to build an automatic grading is to run a black-box testing against the student’s implementation. Based on the programming problem, a set of test cases will be written to execute the student’s implementation. However, writing a set of test cases that cover edge cases completely is a hard task and inefficient. Hence, it is important to explore other approaches, such as white-box testing. In theory, if we have the internal workings of an implementation we’ll be able to evaluate all possible execution path, producing a more complete grader. In this paper, we present a research on using semantic analysis to determine the correctness of a student’s implementation. We implement a sytem that records reference and student’s implementation execution paths, detects path deviation, and detects path equivalence to analyze the semantic difference between the two implementations. The system is built utilizing a method called concolic execution for exploration and an SMT solver to solve formulas. Our experiments reveal that it is possible to automatically grade programming assignments with analyzing the semantic difference between reference and student implementation. Compared with grading using random case generator, it is evident that in some cases the system is able to provide a more complete grading.