You are located in service: RWTHmoodle

General info on the Virtual Programming Lab (VPL)

General info on the Virtual Programming Lab (VPL)


The Virtual Programming Lab (VPL) is an activity module for RWTHmoodle that manages programming tasks. Its main features are:

  •     Processing of program source code in the browser (in many programming languages also with debugger).
  •     Students can interactively execute the programs they've created in the browser. The code is executed on a secure, RWTH-owned execution server.
  •     Managers can define test runs and students can execute them to automatically check the correctness of the created programs.
  •     Allows lecturers to search for similarities between files (plagiarism detection).
  •     Allows to set editing restrictions and avoid external text insertion.

RWTHmoodle currently supports the following programming languages:

  •     Ada
  •     C
  •     C++
  •     C#
  •     Fortran
  •     Haskell
  •     Java
  •     Matlab/Octave
  •     Pascal
  •     Perl
  •     PHP
  •     Prologue
  •     Python
  •     Ruby
  •     Scheme
  •     SQL
  •     VHDL

Please note: The IT Center of RWTH Aachen runs the servers on the Linux distribution CentOS. Unfortunately, there are no graph functions available for Matlab/Octave and other applications.




VPL provides the usual features of activities such as grading, groups, role-based access control, access logs, data backup and recovery, etc. It also has a variety of features tailored to programming tasks.


1. Delivery control

VPL offers several ways to control submissions:

  •     Limiting the submission time and access to the task.
  •     Specifying the maximum number of files that can be uploaded.
  •     Specifying the maximum size of each uploaded file.
  •     Specifying the names and number of files to be uploaded.
  •     Browsing, editing and uploading files may be restricted to networks and/or password protected.

2. File management

  •     Edit code in the browser with a built-in IDE.
  •     Files can contain a given code construct.
  •     Uploaded files are displayed with syntax highlighting.

3. Execution and evaluation of submissions

  •     Standard execution and debug scripts for many programming languages.
  •     Scripts and programs can be set to evaluate each submission.
  •     Programs can be executed with input/output in a text console.
  •     To control program execution, resources can be limited by time, memory size, file size, and the number of processes.

4. Control of authorship (plagiarism detection)

  •     Allows you to browse the submissions for similar files.
  •     The system can add watermarks to the downloaded code.
  •     Allows you to restrict editing and prevent external code from being inserted.


last changed on 09/19/2022

How did this content help you?

GNU General Public License 3
This work is licensed under a GNU General Public License