We develop and utilize our own materials for teaching computer networking foundations with a strong focus on lower layer fundamentals and functional protocol observations in a lab environment. Our course modules include content for basic networking, network programming, network troubleshooting, and cybersecurity in the network layer.
Our instructional environment includes in-person lectures, thorough written content for asynchronous consumption, and a real-time lab environment utilizing our SDI testbed for both prepared labs and free-form student exploration. We provide real-time evaluation through an automated exercise feedback mechanism to students, as well as a rich framework for instructors to employ per-student quizzes and exams with automatic grading.
We use Jupyter Notebooks to conduct our hands-on labs with automated evaluations of learning objectives. The course materials are composed of:
- Documentation with description of concepts in html and pdf documents that are continuously maintained with textual updates and new content
- Flow charts of protocol behavior at specific network vertices in a wide variety of topology graphs
- Laboratory experiments that illustrate protocol behavior in a hands-on environment
- Exercises with instantaneous feedback on performance
- Back-end data collection on student learning activities for instructional research and course management