Education with Emulab
One of Emulab's primary goals is to support education: it provides a laboratory in which students can have complete control of a contained environment, which encourages exploration and experimentation.
Utah's Emulab has been used to support many classes at several institutions; we have a partial list. Several of the facilities built using the Emulab software have been built primarily to support coursework.
Why Emulab is Valuable for Education
Emulab cleans up after experiments; when a user releases their nodes, their operating systems are re-installed before being passed on to the next user. This means that students can have full "root" access on the nodes, enabling coursework that involves normally destructive work such as kernel modifications. Emulab is a forgiving environment: all nodes have network power control and most have serial consoles, so when an experiment goes wrong, it's easy to examine why, and get nodes back to a working state.
Because experiments in Emulab are isolated from one another, multiple students can do their classwork simultaneously without fear of disturbing other experiments with high volumes of network traffic, etc. Emulab provides a consistent environment; an instructor can provide an NS file for all students to use and know that they all get the same network topology and installed software.
Emulab's collaboration tools (mailing lists, wikis, instant messaging, etc.) can be used by students to collaborate on class projects. Its account system has been designed to allow professors to delegate privileged tasks to TAs, and its group system was created specifically with class projects in mind.
Because the Emulab facility at Utah (along with many other Emulabs) is open, free of charge, to educators at other institutions, it gives instructors and students access to a world-class lab regardless of their own institution's budget