1. Introduction

The Virtual Programming Lab for Moodle (VPL) is a plugin to manage programming assignments in Moodle. VPL software is licenced under GNU GPL3.


Its salients features are:

  • Enables to edit the programs source code in the browser
  • Students can run interactive programs in the browser
  • You can run tests to review the programs.
  • Allows searching for the similarity between files.
  • Allows setting editing restrictions and avoiding external text pasting.

These features make easier the learning process for students, and the evaluation task for teachers.

The plugin VPL for Moodle requires some VPL-Jail-System to delegate the running and evaluation of the student’s code. VPL-Jail-System serves as a stateless, secure, and isolate sandbox for running code.

1.1. Uses of VPL

If you don’t know if VPL matches your needs, here is a list of some of the uses that VPL can have. thanks for your attention.

  • Adequates for small to medium programming assignments tasks.
  • Manages the student’s submissions. Students and teachers can save time managing how, where, and when to submit and review programming assignments.
  • Students can use VPL as a básic IDE online allowing running their code with zero installation or configuration.
  • Teacher can review run and evaluate student’s submissions without download code. Grading integrated with the Moodle grade book.
  • Teacher can set easily input/output tests to evaluate the student’s code. The evaluation can lead to give a final grade or advise the teacher in the grading process.
  • Evaluation system is open to customization.
  • Performing programming examines in controlled conditions with network access limits, password, and no external code introduction, etc.
  • Search for code similarity.
  • Helps teaching classes due by showing, editing, and running code in the same environment students use.

1.2. Users of VPL

The main users of VPL are teachers of universities and teachers of the last courses of high schools, currently (August 2021), at least 1700 servers around the world run VPL.

University teachers use VPL to take the control of the programming tasks that students do, especially in courses with a large number of students.

Hight school teachers use VPL for introducing students to programming.

Students use VPL as an easy-to-use tool with zero installation and configuration, concentrating their efforts on the problem and not on the tools used.


1.3. Security

Safety is a primary goal in the design of VPL. All execution or testing of programs of students or professors in VPL are carried out in a jail server. The VPL module in the Moodle server only manages data, it does not execute any external code.

The first approach to minimize the effects of any type of attack has been to separate the data handling system (the Moodle server) and the systems that execute code (the jail servers).

With this distribution of work, we got that VPL doesn’t have more risks than any other Moodle plugin that doesn’t run programs. The jail servers can be configured to be stateless systems. They can do their job and don’t be affected by them.

For more details about VPL, visit the VPL home page or the VPL plugin page at Moodle.