A virtual lab allows the instructor to define a virtual computer as a template, and then have it replicated for the students registered in the course. These virtual computers could then be accessed during a course session from any physical computer lab. Alternatively, the virtual lab could be made available for students to access it anywhere, anytime, and from any device.