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...
Saved in:
Main Author: | |
---|---|
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 |
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. |
---|