Skip to main content Skip to local navigation

Virtual Programming Lab

Virtual Programming Lab

Virtual Programming Lab is a plugin for Moodle (eClass at YorkU) that permits interactive programming assignments to be made for students.   There are some really good examples at Smith College on how to set it up with Python and a few with Java and C.

Java Example on VPL with JUnit testing framework

YouTube Java Example on VPL with JUnit testing framework

I've posted, on YouTube, an example of how to set up a Java assignment using a JUnit testing framework on the Moodle (eClass) platform at York University.  We should be encouraging students to use JUnit in their own program development and using it within the VPL system, even if the students can't see the JUnit aspect directly is entirely consistent (practice what you preach, eh?)

 

Settings for the VPL are available once you have placed a VPL assignment in your Moodle course page.  Once it's been placed, click on the assignment and find the gear icon.

set up details about the VPL assignment

set up details about the VPL assignment

Options for the VPL assignment with Matlab/Octave

Options for the VPL assignment with Matlab/Octave

You need to set up test cases.

test case setup

test case setup

Here's an example of how to do it with Python.

When I set it up and try to run the example... I get a terminal window that doesn't do much...

terminal window shows up upon running ...

terminal window shows up upon running ...

Work has been proceeding on the Moodle Preview site here at York.  I've been able to run through a number of the Smith College VPL tutorials and they're looking good.

It looks like it should be able to work for Python, C, x86 Assembler and Java.

VPL Screenshot on Moodle Preview.

VPL Screenshot on Moodle Preview.

 

  1. First Java tutorial: http://www.science.smith.edu/dftwiki/index.php/Tutorial:_Moodle_VPL_--_Java_Tester_Class "This tutorial generates a VPL activity that allows automatic evaluation of a Java program with 1 class submitted by the student, which is derived from another class (given to the students, but not submitted by the students). The program is tested by a class provided by the instructor. This class outputs a series of lines. The vpl_run.sh script tests how many keywords appear in the output and decides on the correctness of the program from the number of keywords output, and not on the exact output by the student program."
  2. Second Java tutorial: "This tutorial builds on the first one in the series, which should be done first, as the present tutorial skips some steps. This tutorial generates a VPL activity that allows automatic evaluation of a Java program with 2 classes stored in 2 files. The application gets its input from a data file. The evaluation tests the program with 3 different data files." Source: http://www.science.smith.edu/dftwiki/index.php/Tutorial:_Moodle_VPL_--_A_Multi-File_Java_Program_with_Data_File.
  3. Third Java tutorial: "This VPL activity allows the automatic evaluation of 2 Java programs submitted by students. The first one is an implementation of a list. The second uses the list for some simple computation. The VPL evaluation checks that one of the student programs does not contain a particular pattern, in this case the use of [ ] brackets, indicating that one class uses the private member array of the other. Depending on the various stages of success, the module assigns different grades to the submitted programs." source: http://www.science.smith.edu/dftwiki/index.php/Tutorial:_Moodle_VPL_--_Testing_Two_Java_Classes

 

Update (April 2021)

Tips and tricks for scripting in VPL.  Could Microchip's MDB "debugger/simulator" be accessed in VPL?

 


James Andrew Smith is an associate professor in Electrical Engineering and Computer Science Department in York University's Lassonde School.  He lives in Toronto, Canada.  While on sabbatical in 2018-19 with his wife and kids he lived in Strasbourg, France and taught at the INSA Strasbourg and Hochschule Karlsruhe and wrote about his personal and professional perspectives.  You can find him on Twitter.