teaching machines

SIGITE Talk

October 12, 2012 by . Filed under mobile, public.

I’m giving a talk on Paul Wagner’s MOBILE project at SIGITE 2012. Following is a draft of my presentation.

* * *

Many of us have had those nightmares where we discover we’ve been enrolled in a class but forgot to attend. The final exam is in an hour. Thankfully, our panic wakes us. Those of us who are information technology educators suffer a similar nightmare: we’re scheduled to put on a hands-on workshop in a few minutes, and none of the computers are working properly. Panic kicks in and we hope to wake up soon. But we never do, because this nightmare is reality. Conducting any educational activity that involves technology more advanced than pen and paper is fraught with difficulties: software is missing, firewalls block programs from running, machines are inconsistently imaged. These are all problems that are supposed to have been solved! There’s only one way for it all to go smoothly, but so many ways for it to fail.

We face this nightmare recurringly even at the professional level. In the early 2000s, when this project got its start, 50% of the workshops we attended at conferences for technology educators suffered some degree of technology configuration problem that sidetracked the presentation. When the time came for the first author of our paper, Paul Wagner, to put on his own hands-on computer security workshop, he refused to let configuration problems derail him. Instead of working with machines beyond his administrative control, he acquired a bunch of laptops, imaged them with the software he needed, and shipped them to the conference. That was a pretty expensive move, but an NSF CCLI grant helped. The workshop went smoothly, for three years in a row. Then in 2008, he and his team tried a bold move—they didn’t bring the laptops. How’d they do it? Participants brought their own notebook computers and he had them boot from external USB drives that he had previously configured. The workshop ran fine. Afterward a question arose: “can we generalize this setup?” And the MOBILE project was born.

MOBILE stands for the MOBile Interactive Learning Environment. Its premise is simple: let’s eliminate the risk of setting up ad hoc computer labs for workshops. Let’s use others’ machines, but let’s avoid the dangers of doing so. Others’ machines typically require accounts and are protected by cautious system administrators and have all sorts of different operating systems and software on them. Instead, let’s run our own customized and homogeneous teaching environment on top others’ hardware. I wish there was more magic to it, but we can achieve this through very cheap technology and readily available software. Here’s how you’d make your own MOBILE project:

  1. Install a baseline operating system on some machine. This is the foundation of our homogenous workshop environment. It needs to be slim in size in order to fit on USB media or be downloaded in a reasonable amount of time. It needs to be unencumbered by licensing issues to avoid costs. It also needs to be at least somewhat like what participants are used to. Our current choice has been Ubuntu Linux. It’s free and graphical, and we’ve slimmed up as much as possible. We can fit it easily on an 8 GB drive. Normally, installation of an OS requires you to pass through a gauntlet of dialogs to set up your machine. In MOBILE, we turn installation into just a few button clicks using a seed file to automatically configure the installation and create user accounts.
  2. Preinstall software. Hands-on workshops likely involve custom software like interactive development environments like Eclipse or Netbeans, network monitoring software like Wireshark or nmap, libraries like OpenGL or XML parsers, and so on. This needs to be done on only one machine and it can be done by us, the workshop administrators. We avoid the inevitable failure of our participants to follow our perfectly-written instructions, which would mean distracting troubleshooting during our event. As part of this step, we acknowledge that not everyone can use Linux for their workshop. So, one of the pieces of software we include on MOBILE is VirtualBox. If we have licenses, we include virtual machine images for Windows or other flavors of operating systems, like Solaris or 64-bit versions. Since the license agreement for MacOS doesn’t allow running its OS on non-Apple hardware, we haven’t tried virtualizing that OS out.
  3. Create a suite of workshop administration tools. During a workshop, we may want to distribute files to all of our participants dynamically. Or install software that we forgot to preinstall. Or, in a workshop on network security, inspect a participant’s configuration. As part of MOBILE, we provide tools for easily exchanging files and running custom scripts that run on participants’ machines.
  4. Clone template system image to other media. This is done through a tool we name mobileclone. It supports mirroring from one storage device to another. Our workflow has been to set up MOBILE on an external drive, then insert a second and clone onto it. Insert a third and clone on to it. Hire an undergraduate and then we soon end up with twenty external drives without too much trouble. This is the one place where it’s hard to avoid cost. In the workshops we’ve run with MOBILE, we’ve provided USB storage devices. We could avoid this cost by putting a system image up for download. We’ve not done that because the download sizes are large and the process of expanding the image is prone to user error—exactly one of the problems we are trying to avoid.
  5. Distribute cloned systems. Boot from media.
  6. Conduct workshop. Answer questions on content, not configuration. Bask in not running into these problems: software requiring administrator privileges, missing libraries, cold-hearted system administrators, computer labs whose doors are locked (participants can use their own laptops; labs are unnecessary!), and inconsistently configured machines. We know exactly what the menus look like and where software is installed. We can write one set of instructions instead of a Choose Your Own Adventure novel.

That’s the process of using MOBILE.

In training others to use MOBILE, we’ve become acquainted with several initial questions that arise. Let me address a few of those.

  1. Why not just use a virtual machine image? Wouldn’t that be simpler? It’s true, but we envisioned that several problems would still exist with a pure virtual solution. The participant’s host environment would still need to be set up. If the workshop took place in a computer lab rather than on participants’ own notebook computers, guest accounts would be required and we’d have to coax the sysadmins to install the virtual machine software. Distribution of large system images would still be a problem. The indirection of virtual machines can also be a pain to deal with. Working with host machine hardware like network interfaces, USB drives, and graphics card doesn’t always work smoothly.
  2. Aren’t you endangering participants’ machines? No. MOBILE stands on its own media. It runs directly on the hardware of the host machine rather than through some virtualization layer, but the hard drive itself, the part that we really want to protect, is not automatically mounted in MOBILE. Any disk writes or corruptions will happen to the media that MOBILE is running on.
  3. Isn’t this slow? You’re running from external media. It can be slow, yes. It doesn’t have to be. The slowest activity will be disk reads and writes. If a program is resident in memory and doesn’t do a lot of disk I/O, it should run as fast as a program from internal storage. The more RAM in a participant machine, the better.

The next big question is how are we using this? The prototype system was first deployed in a series of four SIGCSE computer security workshops. The evaluations were very positive and the workshops did not get derailed by computer issues. The positive feedback we received from these workshops led us to generalize our tools in the first place. We’ve built modules to test workshops on computer graphics, introductory programming, and Android development. We’re currently creating an environment to support an ACM programming contest site. This past summer, we assembled a focus group of educators to evaluate it. I’ll share a bit of the feedback we’ve received from this group…

That said, our purpose in sharing this tool is to serve our colleagues and make hands-on technology workshops run more smoothly. If you are putting on a workshop in some environment outside of your control, we suggest you give MOBILE a try. Instructions for setting up your initial environment and using the administrative tools are available at http://www.cs.uwec.edu/mobile.