## Activities: Virtual programming lab

mod_vpl
Maintained by Juan Carlos Rodríguez-del-Pino
VPL is an activity module to manage programming assignments
471 sites
24 fans
Moodle 2.7, 2.8, 2.9, 3.0, 3.1, 3.2

VPL- Virtual Programming Lab is a activity module that manage programming assignments and whose salient features are:

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

### Awards

• Thu, 10 Dec 2015, 12:07 AM
Hi Evan,
the available documentation (not too much) is shown at
http://vpl.dis.ulpgc.es
There is a demo site and links to documentation kindly offered by other users.

If you have questions you can ask at the forum.
- To start, you must know about Moodle, and you or somebody expert how to install plugins (it's really easy)
- Finally, you must get an execution server to run your tasks (the plugin, by default, uses a demo server).

Best regards.
• Thu, 10 Dec 2015, 4:17 AM
I've got the plugin installed on my site, but I'm not sure how to set it up for the c# language. I'm assuming that has something to do with the jail server? Does the jail server have to be local to the moodle installation, or can it be remote as well?
• Fri, 11 Dec 2015, 9:50 PM
HI Evan,
If you are using the latest VPL version then you only need to write C# code (.cs extension). The main procedure must be in the first code file.
The demojail server can help you to test your system but then you must install your own jail server in a "remote server", it's not recommended to install it on the moodle server.

Best regards.
Juan Carlos
• Fri, 29 Apr 2016, 11:02 PM
I'm trying to use it with swi-prolog, and I can't try to make it read the input.
Any idea?
My prog looks like http://ideone.com/9HirfX (very short: input, output, halt!), in prolog it's
But the console does not appear in "run", and compilation get in infinite loop in "evaluate"...
• Wed, 4 May 2016, 11:40 PM
Hello Denis,
The script that launch swi-prolog try in a first fase to check sintacticaly the code, but the input/output was not considered, the test was stalled trying to read an input.
To resolve this try using the following code as your vpl_run.sh as a workaround before I resolve the issue in the next release.

Best regards.
vpl_run.sh
-------------------------
#!/bin/bash
. common_script.sh
check_program swipl
swipl -q -s $VPL_SUBFILE0 -t halt 1>/dev/null < /dev/null cat common_script.sh > vpl_execution echo "swipl -q -L32M -s$VPL_SUBFILE0" >>vpl_execution
chmod +x vpl_execution
• Sun, 8 May 2016, 9:07 PM
Thank you, it works.

Best for you.
• Thu, 30 Jun 2016, 6:33 PM
Hi
I would like to know whether editor window can be enlarged.
Also want to know the gcc version number.
Also in Octave compiler its not supporting imread function. can you clarify
regards
John Blesswin
• Sat, 2 Jul 2016, 4:19 PM
Hi John,
the editor has a button "fullscreen" (its correct name might be "fullwindow") that lets you use the full window. It hides elements outside the editor. If you also set your browser in fullscreen mode (F11) you will get the maximum room.
VPL uses the version of gcc that you installed in your jail server.

Please, describe with more details your problem with Octave imread. Beware that the current versión of VPL is incompatible with binary files. As a workaround you can use binary files in base64 format. e.g. if I want to use a file image.jpg, I must convert the file to base64 and save it as image.jpg.b64. During your program execution you will get access to a the file image.jpg. (the system will decode image.jpg.b64 to image.jpg)

Best regards.
• Wed, 2 Nov 2016, 4:01 AM
Hi Juan,

Can I use this plugin, along with the jailserver, to run PHP assignments?

Thank you,
Horatiu
• Thu, 3 Nov 2016, 11:54 PM
Yes, you can use VPL+jail server to run PHP assignments. VPL 3.1.X default script can run PHP5 CLI but not web programs. VPL 3.2 default script will run PHP to run web applications. But VPL is flexible anought to allow assigments of PHP web applications.
You can use and customize the default script of VPL3.2 for PHP and use it as vpl_run.sh

https://github.com/jcrodriguez-dis/moodle-mod_vpl/blob/v3.2/jail/default_scripts/php_run.sh

If you are using php7 remove php5 from line 10.

Best regards,
Juan Carlos.
• Fri, 4 Nov 2016, 12:14 AM
Notice that you must reduce the security level of the firewall in the jail server service configuration to run PHP for a web application.
• Thu, 5 Jan 2017, 12:16 AM
Happy new year!
You could add erlang to the list of languages available for VPL!

I've tried vpl for erlang: https://www.erlang.org/
=> that's ok (on my server and on the demo server): http://demovpl.dis.ulpgc.es/moodle/mod/vpl/view.php?id=399

It's just a small test.
1) I've changed the vpl_run.sh (for prolog) into:
. common_script.sh
check_program escript
cat common_script.sh > vpl_execution
echo "escript \$VPL_SUBFILE0" >>vpl_execution
chmod +x vpl_execution

And
2) test with an erlang program:
-module(plusOne).
-compile(export_all).

plusOne(N)-> N+1.

main([]) ->
io:format('Give a number (end your line with .)~n',[]),
Y=plusOne(X),
io:format('~p + 1 => ~p ~n',[X,Y]).

That's all. And it works.

But I'm not a specialist with Erlang, and not a specialist with VPL. Maybe, there are better ways to do that.

Good surprise: the code editor colorized nicely erlang code (without anything to be done).

Best for you,
Denis B.

• Thu, 5 Jan 2017, 12:59 PM
hi , when I submitted the c++ program to be compiled or evaluated. It shows the error message
"g++: error: unrecognized command line option ‘-fno-diagnostics-color’"
how can I fix it?

Best for you,
James TT
• Sat, 7 Jan 2017, 3:20 AM
Hello Denis Bouhineau,
thank for your contribution. The next mayor release of VPL 3.3 will include a default script for Erlang.
Best regards.
• Sat, 7 Jan 2017, 3:44 AM
Hello tt tt,
sorry for the inconvenience. You have two options:
1) Edit run_c.sh run_cpp.sh at mod/vpl/jail/default_scripts/ and remove that args. Also you can replace the C and C++ related scripts with the ones in the VPL 3.1.5