Programming Assignments in moodleSecuring Automated Evaluations of Programming Assignments in Moodle using Dynamic Virtual Environments By shrikane
Programming Assignments in moodle
This is the master thesis project I did when I was pursuing my Masters in Mobile Computing from University of Applied Sciences in Hagenberg, Austria. I will try to provide in thought process I went through while realizing and understanding the problem topic and then coming with alternative solutions for same.
During the past years, open source e-learning platforms have evolved considerably and now they are considered as backbone of the education system especially in colleges and universities. Due to the advancement of technology specifically in web development and the availability of huge community support, a continuous striving effort is being made to improve them in several areas. One of the key area is, automated evaluations of the inbuilt assessments of different types of courses.
Programming courses are considered essential elements of software engineering and computer science education. Although automated evaluation of closed question type assessments is trivial, most instructors agree that these assessments for programming courses provides only limited insight into student’s knowledge. And if programming assignments are used to gain more insight, huge amount of effort is needed in manually evaluating them. Hence the need for automatic evaluation of same. Although considerable amount of research is being done in this area, they lack in two main aspects. Systems developed were standalone and never a part of e-learning platform, so they were never able to leverage the benefits of same and none of them tried to handle security concerns that might arise during their automated evaluation (execution of un-trusted source code).
In my research I tried to solve both the problems by implementing a moodle (e-learning platform) plugin and using virtualization concept respectively. The solution I proposed involves programmatically creating multiple remote virtual machines (VM) using Oracle VirtualBox for compilation and execution of un-trusted source code, thus restricting the damage to a particular
VM. We expose a REST API for doing same and later use this API in development of Moodle plugin. We successfully managed to create a prototype, wherein source code submitted from Moodle was compiled and executed on a remote virtual machine inside Oracle VBox.