Show simple item record

dc.contributor.advisorDavoudi, Heidar
dc.contributor.authorNagy, Peter
dc.date.accessioned2023-04-25T18:42:27Z
dc.date.available2023-04-25T18:42:27Z
dc.date.issued2023-04-01
dc.identifier.urihttps://hdl.handle.net/10155/1615
dc.description.abstractAutomatic 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.sponsorshipUniversity of Ontario Institute of Technologyen
dc.language.isoenen
dc.subjectAutomatic program gradingen
dc.subjectPre-trained language representation modelsen
dc.subjectSiamese networken
dc.subjectIncremental learningen
dc.subjectContrastive learningen
dc.titleTowards deep learning models for automatic computer program gradingen
dc.typeThesisen
dc.degree.levelMaster of Science (MSc)en
dc.degree.disciplineComputer Scienceen


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record