DIGITAL LIBRARY
SOFTWARE AUTOMATION OF HOMEWORK EVALUATION BY USING VIRTUAL ENVIRONMENTS
1 Sofia University (BULGARIA)
2 Technical University (BULGARIA)
About this paper:
Appears in: ICERI2018 Proceedings
Publication year: 2018
Pages: 6492-6501
ISBN: 978-84-09-05948-5
ISSN: 2340-1095
doi: 10.21125/iceri.2018.2528
Conference name: 11th annual International Conference of Education, Research and Innovation
Dates: 12-14 November, 2018
Location: Seville, Spain
Abstract:
Current paper investigates innovative approaches of homework evaluation in the area of computer science and software engineering education. Homework evaluation in mass-courses, not to mention massive online courses, is crucial for successful knowledge and skills acquisition by students. The solving of software tasks is an essential element in the training of software engineers assisting the acquisition of basic principles in analysis, design and software development. Evaluating ‘by hand’ computer code can be a tedious and error prone task, and with tens or hundreds of students things get worse. The use of automated tests may significantly improve the process by verifying the correctness of the submitted solution. On other hand the secure and isolated execution of a user submitted code is a significant technical challenge. Virtual machines are used for a long time to isolate code execution but they introduce significant overhead and are not practical solution to run small programs. That is why the majority of the traditional solutions for automated evaluation of coding problems are using sandbox environments instead. The downside of such environments is that they are very restrictive - for example the programs running inside them could not open sockets or files. In the recent years containers emerge as a lightweight solution for isolated execution of processes. Containers are a method of operating system virtualization that allow you running an application and its dependencies in resource-isolated processes. Our solution is one attempt to demonstrate usage of containers as a way of isolation of testing process for homework tasks. We analyse and design a software architecture based on which a software tool has been developed that facilitates the isolation of homework and retrieval of the results. The system is tested with several types of tasks and the results are promising. Conclusions and specifics on design, implementation and usage are discussed and limitations are pointed out.
Keywords:
Educational tools, technology, homework evaluation, innovative tools, software development, e-learning, virtualization, big data, automated testing, java, docker.