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.
Features
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.