This project would be suitable for a Year 4, Year 5 or MSc student.
When students submit ARM Assembly Language programs as solutions to assessments, we can easily run the programs to determine whether the program returns the correct result. We can also measure how quickly the program produces a correct result. But other measures of the quality of a program are important too, for example:
- Is the program well presented, adhering to conventions and in a way that makes it easy to read and understand?
- Are the comments (e.g. pseudo-code) a concise, effective explanation of the approach implemented in the program?
- Is the program well-structured, potentially making it easier to read, understand, repair and extend?
This project will explore techniques for statically analyzing ARM Assembly Language programs and automatically generating qualitative feedback for students and adding additional dimensions to the automated grading of assessments. There will be broad scope for a student undertaking the project to tailor the project to their own interests. For example, the project might explore how large language models could be employed in the generation of helpful feedback with examples.
While the context for the project is ARM Assembly Language, a student undertaking this project will be free to use the programming languages that they deem most appropriate for analysis and prototype implementation.