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
id id-itb.:56124
spelling id-itb.:561242021-06-21T12:57:24ZAUTOMATIC GRADING OF PROGRAMMING ASSIGNMENTS WITH SEMANTIC APPROACH Rifky I. Bariansyah, M. Indonesia Final Project automatic grading, test case generation, concolic execution INSTITUT TEKNOLOGI BANDUNG https://digilib.itb.ac.id/gdl/view/56124 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. text
institution Institut Teknologi Bandung
building Institut Teknologi Bandung Library
continent Asia
country Indonesia
Indonesia
content_provider Institut Teknologi Bandung
collection Digital ITB
language Indonesia
description 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.
format Final Project
author Rifky I. Bariansyah, M.
spellingShingle Rifky I. Bariansyah, M.
AUTOMATIC GRADING OF PROGRAMMING ASSIGNMENTS WITH SEMANTIC APPROACH
author_facet Rifky I. Bariansyah, M.
author_sort Rifky I. Bariansyah, M.
title AUTOMATIC GRADING OF PROGRAMMING ASSIGNMENTS WITH SEMANTIC APPROACH
title_short AUTOMATIC GRADING OF PROGRAMMING ASSIGNMENTS WITH SEMANTIC APPROACH
title_full AUTOMATIC GRADING OF PROGRAMMING ASSIGNMENTS WITH SEMANTIC APPROACH
title_fullStr AUTOMATIC GRADING OF PROGRAMMING ASSIGNMENTS WITH SEMANTIC APPROACH
title_full_unstemmed AUTOMATIC GRADING OF PROGRAMMING ASSIGNMENTS WITH SEMANTIC APPROACH
title_sort automatic grading of programming assignments with semantic approach
url https://digilib.itb.ac.id/gdl/view/56124
_version_ 1822930102577528832