TY - GEN
T1 - Introducing code adviser
T2 - 20th International Conference on Implementation and Application of Automata, CIAA 2015
AU - Ade-Ibijola, Abejide
AU - Ewert, Sigrid
AU - Sanders, Ian
N1 - Publisher Copyright:
© Springer International Publishing Switzerland 2015.
PY - 2015
Y1 - 2015
N2 - In this paper, we demonstrate a software system called Code Adviser that attempts to understand and find semantic bugs in student programs written in C++ programming language. To do this, Code Adviser has to take a model solution from a lecturer (or expert), generate many variations of the model solution, and compare student programs to the most similar model solution. The student’s program to be checked for correctness is normalized, granulated and abstracted to a string of semantic tokens — we call this the abstraction stage. Similarly, the model solutions are taken through the abstraction stage and the program strings representing all model solutions are abstracted to deterministic finite automaton (DFA) for the programming problem. Code Adviser then uses some algorithms to make inference on student’s program correctness. If the student’s program string is accepted by the problem’s DFA, it is reported as correct. Else, we make inferences on what the bug could be. Code Adviser is a promising proof of concept, and more work is currently being done to improve its inference and make it available to student programmers.
AB - In this paper, we demonstrate a software system called Code Adviser that attempts to understand and find semantic bugs in student programs written in C++ programming language. To do this, Code Adviser has to take a model solution from a lecturer (or expert), generate many variations of the model solution, and compare student programs to the most similar model solution. The student’s program to be checked for correctness is normalized, granulated and abstracted to a string of semantic tokens — we call this the abstraction stage. Similarly, the model solutions are taken through the abstraction stage and the program strings representing all model solutions are abstracted to deterministic finite automaton (DFA) for the programming problem. Code Adviser then uses some algorithms to make inference on student’s program correctness. If the student’s program string is accepted by the problem’s DFA, it is reported as correct. Else, we make inferences on what the bug could be. Code Adviser is a promising proof of concept, and more work is currently being done to improve its inference and make it available to student programmers.
KW - Bug detection
KW - Program strings
KW - Semantic bugs
UR - http://www.scopus.com/inward/record.url?scp=84951783025&partnerID=8YFLogxK
U2 - 10.1007/978-3-319-22360-5_25
DO - 10.1007/978-3-319-22360-5_25
M3 - Conference contribution
AN - SCOPUS:84951783025
SN - 9783319223599
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 307
EP - 312
BT - Implementation and Application of Automata - 20th International Conference, CIAA 2015, Proceedings
A2 - Drewes, Frank
PB - Springer Verlag
Y2 - 18 August 2015 through 21 August 2015
ER -