What is "course virtualization" and why should I care?
Adopting virtual machines in my course has eliminated the need to give personalized support in getting the required software installed and running. Not only is this a great relief personally, it also allows the course to move forward much faster and the reception among students has been very positive.
Overview
Especially bachelor's level courses can have well over hundred participants, sometimes over two hundred. Trying to help everyone sort out their personal computers to install the required software ... can be a pain, to put it mildly. This not only consumes great amount of instructors time, but can also make the first week modest in terms of reached learning goals while time is used to sort out problems and let everyone stay with the course.
This is a terrible waste of student's and teacher's time, and simply shouldn't be. Alternative approaches include things such as faculty provided computer classrooms, which are much too small and would require running the same sessions multiple times, or trying to cope with provided browser based virtualization - where all the work and configuration are discarded each time the student logs out. Quite simply, these are not viable solutions.
Fortunately virtualization can provide a solution. Instead of struggling with each set of software and tools required in each course, students should only have to deal with one installation - the hypervisor (which runs virtual machines). And because that one installation is so important to multiple courses (which use course virtualization), it can justifiably be allocated some resources, unlike with each specific software required by a course.
With an initial investment of creating the virtual learning environment (installing the software yourself), you can export the result, upload it here and let students download and use the exact same thing you have. Such time investment can be used for several years, or until you see a need to update your virtual environment.
Our virtualization solution saves your time, your students time and everyones nerves.
Benefits of Virtualization
Installation of a hypervisor is considerably simpler than installing and configuring large and/or complex development tools. At least, the issues involved are limited to a fairly well known set. Instead of every student installing and configuring all of the software needed on a course, often needing at least some lecturer or peer assistance, after getting their hypervisor running, students can avoid all course related software installation simply by downloading and running a virtual machine with all the required software pre-installed. This can completely eliminate all the work previously spent in getting everyone's tools ready. Time that can be used for actual course activities instead. The approach also has several other positive effects:
- Identical and known environments The teacher has comprehensive knowledge of the environment that students have at their disposal, making it significantly easier to provide technical support for the course work. Compared to self-installed software on multiple platforms and versions, using a VM ensures that every student is working on an identical environment. Replicating a reported problem should be both easy and reliable - and in more challenging cases, student can be instructed to export the VM and send it to the teacher to be looked at (in case remote session is not feasible).
- Customizability The teacher can customize the virtual machine before distributing it to the students, for example each year before the course starts. Quick changes to the machines are also easier to apply due to each instance being exactly identical.
- Isolation A student can have several different VMs simultaneously, each serving the needs of a different course. Isolating different course VMs eliminates issues that might result in conflicting versions or configurations.
- Improved security The design also isolates the student's personal system from potential harm (if the course experiments with system level configurations or code). Isolated virtual machine also enhances security - experimental server code might be exploited, but all the peronal and private data is in the host operating system - inaccessible from the virtual machine.
- Simple recovery In cases of cathastrophic failures or system corruption, recovery is easy and fast. Student either restores an earlier snapshot, or if none have been taken, simply downloads the image again and double-clicks it to install it again. It is extremely unlikely that a student would need assistance in restoring the working environment.
Virtual machine images also offer many potential other enhancements for teachers who are willing to spend some additional time. For example, it is relatively simple to hide some programs and let them simply appear in the user interface at given date and time (after related topics are handled in lectures), keeping the environment focused on tools that the student is expected to use at any given time over the course. For more complex courses, reactions and stimulus could be programmed or scripted into the virtual machine to challenge students to deal with unexpected conditions - the kind that the teacher has control over.
Known Limitations
While the benefits are numerous and significant, virtual machines also have certain limitations. Following items should be noted:
- Windows or other operating systems that require licenses cannot be freely distributed.
Our first-choice operating system is Debian Linux, but course software may not always be available for Linux. If your course software requires licensed operating system, you need to take care that the image is made available only to your students, in the quantity and/or duration dictated by the licensing terms (this site offers some features to support this, and they will be extended when necessary). - Licensed software cannot be freely distributed
Like in the previous point, you need to limit the availability of your virtual machine image, according to the terms of the licensing agreement. - In all issues related to licensing (if any), teacher (author of the virtual machine), is fully responsible for observing the terms and conditions.
- Graphics performance is limited.
If your course teaches graphics programming or perhaps machine learning using GPU processing, virtual machine is unlikely to suit your needs. - USB 3.0 may not be available (yet).
While USB 1.0 and USB 2.0 have been working very well, at this point we should caution against relying high performance USB 3.0 connectivity. - System resources are finite.
Because the virtual machine runs on a subset of resources in each student's computer, very high requirements may prevent some students from running the virtual machine. Our default settings are; 2 GB RAM, 2 cores, 16 GB of diskspace (2020). Larger requirements should be documented in course details and alternative solutions should be considered for those students that cannot reach course specific larger requirements.