1. Introduction

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

_images/logo.png

Its main features are:

  • Enables editing the source code in the browser.

  • Runs interactive programs in the browser.

  • Runs tests to review the programs.

  • Searches for similarity between files.

  • Sets editing restrictions and prevents external text pasting.

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

The plugin VPL for Moodle requires a VPL-Jail-System to delegate the running and evaluation of the student’s code. VPL-Jail-System serves as a stateless, secure, and isolated 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.

  • Suitable for small to medium programming assignments.

  • 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 basic online IDE, allowing them to run their code with zero installation or configuration.

  • Teachers can review, run, and evaluate student’s submissions without downloading code. Grading integrated with the Moodle grade book.

  • Teachers can easily set input/output tests to evaluate the student’s code. The evaluation can lead to a final grade or advise the teacher in the grading process.

  • Evaluation system is open to customization.

  • Performing programming exams in controlled conditions with:
    • Network access limits

    • Password

    • No external code introduction, limiting uploads and external pasting.

    • Use of Safe Exam Browser preventing access to LLMs to resolve programming problems. This feature requires additional configuration.

  • Search for code similarity.

  • Helps teach classes by showing, editing, and running code in the same environment students use.

_images/introduction_example.png

1.2. Users of VPL

The main users of VPL are teachers of universities and high schools. Currently (January 2026), at least 2600 servers around the world run VPL.

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

High school teachers use VPL to introduce 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.

_images/introduction_example_edit.png

1.3. Security

Safety is a primary goal in the design of VPL. All execution and testing of student or teacher programs in VPL is 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 work distribution, VPL poses no more risks than any other Moodle plugin that doesn’t run programs. The jail servers can be configured to be stateless systems. They can perform their tasks without being affected by them.

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