ns educational exercises

This web page presents sample homework assignments for classroom use, and viewgraphs for introducing ns to a class.

For general information about using ns and nam in a classroom setting, please see the paper Using Ns in the Classroom and Lab. Portions of this web page are from there.

Introducing ns in class

Experiences: Our experiences with experiments as homework problems have also been positive, but clearly such problems must be designed with care. If more complicated assignments are to be assigned (such as those requiring new coding), it's best to introduce the simulator gradually. One observation that initially surprised us is that many students were not familiar with the concepts behind discrete event simulation. Confusion between real-time and simulation-time, and multithreading and event-driven programming can be prevented with a brief review of the concepts (typically a half-hour to hour of lecture time). We were pleased to discover that students adapted quite quickly to using either Tcl to specify new scenarios, or C++ to changing existing modules, and many were able to use Tcl as an scripting language to specify the scenario. Efforts that require them to work in both languages simultaneously are probably best reserved for more advanced classes. We have been hesitant, however, to give students a blank slate. The framework of an existing script is necessary to avoid stumbling over initialization details that are irrelevant to protocol design. Viewgraphs:

Sample Homework Assignments


We're looking for feedback about these exercises and practices. How well does simulation and animation work for you and your students? Any good tips or assignments others could share?

For public discussion, please post to the ns-edu mailing list at ns-edu@isi.edu. Comments to John Heidemann and Christos Papadopoulos are also welcome.

ns ns-edu@isi.edu