Automatic marking system for programming subject - Chan, Jin Yee (2023)
This project is a web application designed for lecturer that teaching programming subject to automatically mark programming algorithm exercise. Marking programming algorithm is a repetitive process, lecturer will be required to manually key in expected input of algorithm and compare the expected output and the output provided by algorithm done by student again and again. This project create an web application to automatically execution code submitted by student and mark the code according to its correctness. This application handle execution of anonymous code that could be malicious securely by running the code in an isolate environment. To achieve this, this project use cloud compute resources that contain Docker container which act as an isolation for anonymous code execution. This project scale code execution environment and pre-initialized or deallocated code execution environment to execute anonymous code to optimize usage cloud resources. The project had implemented architecture of secure code execution environment which can handle malicious code securely. When the code exceed the resources limit, the code execution environment kill the isolate environment and collect the metadata of why the execution failed. Besides, this project implements and design user interface for user to submit their source code and pass the source code to code execution environment for execution and judgement. Users can add new exercise with test cases to examine the submission program.