TY - GEN
T1 - Efficient Structural Analysis of Source Code for Large Scale Applications in Education
AU - Koegl, Adrian
AU - Hubwieser, Peter
AU - Talbot, Mike
AU - Krugel, Johannes
AU - Striewe, Michael
AU - Goedicke, Michael
N1 - Publisher Copyright:
© 2022 IEEE.
PY - 2022
Y1 - 2022
N2 - Automated Assessment Systems (AAS) are increasingly used in large computer science lectures to evaluate student solutions to programming assignments. The AAS normally carries out static and dynamic analysis of the program code. In addition, simple forms of learning analytics can often be generated quite easily. However, structural analyses and comparison of solutions for larger sets of student programs are, in many cases, complicated and time-consuming. In this article, we introduce a methodology with which thousands of programs can be analyzed in less than a second, for example, to search for the use of certain control structures or the application of recursion. For this purpose, we have developed a software that creates a structural representation for each programming solution in the form of a TGraph, which is inserted into a graph database using Neo4j. On this database, we can search for structural features by queries in the language Cypher. We have tested this methodology extensively for Java programs, measured its performance, and validated the results. Our software can also be applied to programs in other programming languages, such as Scratch. Additionally, we plan to make our software available to the community.
AB - Automated Assessment Systems (AAS) are increasingly used in large computer science lectures to evaluate student solutions to programming assignments. The AAS normally carries out static and dynamic analysis of the program code. In addition, simple forms of learning analytics can often be generated quite easily. However, structural analyses and comparison of solutions for larger sets of student programs are, in many cases, complicated and time-consuming. In this article, we introduce a methodology with which thousands of programs can be analyzed in less than a second, for example, to search for the use of certain control structures or the application of recursion. For this purpose, we have developed a software that creates a structural representation for each programming solution in the form of a TGraph, which is inserted into a graph database using Neo4j. On this database, we can search for structural features by queries in the language Cypher. We have tested this methodology extensively for Java programs, measured its performance, and validated the results. Our software can also be applied to programs in other programming languages, such as Scratch. Additionally, we plan to make our software available to the community.
KW - Automated assessment systems
KW - graph database
KW - introductory lectures
KW - large-scale education
KW - learning analytics
KW - programming assignments
KW - source code representation
KW - structural code analysis
UR - http://www.scopus.com/inward/record.url?scp=85130490989&partnerID=8YFLogxK
U2 - 10.1109/EDUCON52537.2022.9766748
DO - 10.1109/EDUCON52537.2022.9766748
M3 - Conference contribution
AN - SCOPUS:85130490989
T3 - IEEE Global Engineering Education Conference, EDUCON
SP - 24
EP - 30
BT - Proceedings of the 2022 IEEE Global Engineering Education Conference, EDUCON 2022
A2 - Jemni, Mohammed
A2 - Kallel, Ilhem
A2 - Akkari, Abdeljalil
PB - IEEE Computer Society
T2 - 13th IEEE Global Engineering Education Conference, EDUCON 2022
Y2 - 28 March 2022 through 31 March 2022
ER -