Hacker News new | ask | show | jobs
by preek 3625 days ago
I'm a lecturer myself and am curious: How do your lecturers deal with the situation that students have at least three different operating systems (LINUX, Mac, Windows)? Setting up a VM will make 2/3rds cringe in my experience - setting up three VMs is a lot of work.
5 comments

We use VirtualBox in our courses since it's a single platform that runs on all 3 major operating systems. Chromebooks are still an issue, but few enough people have those that we can basically just classify them as unsupported. There's still some setup effort, especially on Windows machines that ship with hardware virtualization disabled at the BIOS level, but it's a much simpler way to get 1000+ students up and running quickly than trying to have everyone setup local dev environments.

We've written about our setup in https://www.andysayler.com/output/pdf/csvm-sigcse14-paper.pd....

The website for our current VM is at http://foundation.cs.colorado.edu/vm/.

I'd say that most students running Linux opt to install their own development environment so installing the VM for them really isn't an issue. Either way, it's much easier for the professor to spend a class showing people how to install VirtualBox, and then the class VM than showing them how to install an entire development environment locally.

Here's how it works: the professor prepares an Ubuntu VM with the entire development environment set up inside it, and then just provides the image link for the VM. The students can easily install VirtualBox, and then all they have to do is download the image and run off that.

unless I'm misunderstanding the question, I don't think this is going to be an issue.

I have VMs on an external hard drive that are accessible to me via Windows and Ubuntu (fairly sure I've accessed them on my MBP as well, not sure). I'm using VirtualBox, so I set up the initial connectivity stuff, point at the existing vhd, and then I'm running right along by launching the VM.

I like the vagrant-ish approach (just, not using Vagrant, shared folders are way finnicky in many different circumstances and it just really defeats the purpose of the tool if you aren't paying extra $$$ for the VMWare provider), personally. May not have been a classroom setting, but when I was training one of our new developers who had 0 Python or Linux experience (we're mostly a .Net shop, wasn't a hiring criteria) I had him install Fedora Server (CLI-only) in a VirtualBox VM. We then used the built-in deployment and remote execution / debug facilities in PyCharm Professional to test code inside a sane environment (because installing psycopg2 on Windows is not sane) while he was able to use his familiar desktop to actually do everything else, after setting deployment up it was pretty much transparent.

Where feasible, I think the "code locally, run remotely" concept works quite well, especially as most IDE's support at worst FTP upload.

I'd recommend Vagrant or Docker, both multi platform.