dc.contributor.advisor | Davoudi, Heidar | |
dc.contributor.author | Nagy, Peter | |
dc.date.accessioned | 2023-04-25T18:42:27Z | |
dc.date.available | 2023-04-25T18:42:27Z | |
dc.date.issued | 2023-04-01 | |
dc.identifier.uri | https://hdl.handle.net/10155/1615 | |
dc.description.abstract | Automatic grading of computer programs has a great impact on both computer science education and the software industry as it saves human evaluators a tremendous amount of time required for assessing programs. However, to date, this problem lacks extensive research from the machine learning/deep learning perspective. Currently, the existing auto-grading systems are mostly based on test-case execution results. However, these approaches lack insight into the syntax and semantics of the codes, and therefore, are far from human-level evaluation. In this study, we leverage the power of language models pre-trained on programming languages. We introduce two simple deep architectures and show that they consistently outperform the shallow models built upon extensive feature engineering approaches by a high margin. We also develop an incremental transductive learning algorithm that only requires a single reference solution to a problem and takes advantage of the correct implementations in the set of programs to be evaluated. Furthermore, our human evaluation results show that the proposed approaches provide partial marks having a strong correlation with the marks given by human graders. We prepare and share a dataset of C++ and Python programs for future research. Finally, we provide some interpretations and explainability of the deep-learning models as well as insights to the decisions and potential feedback to programming submissions in real-world applications. | en |
dc.description.sponsorship | University of Ontario Institute of Technology | en |
dc.language.iso | en | en |
dc.subject | Automatic program grading | en |
dc.subject | Pre-trained language representation models | en |
dc.subject | Siamese network | en |
dc.subject | Incremental learning | en |
dc.subject | Contrastive learning | en |
dc.title | Towards deep learning models for automatic computer program grading | en |
dc.type | Thesis | en |
dc.degree.level | Master of Science (MSc) | en |
dc.degree.discipline | Computer Science | en |