Programming Assignments

As teachers, we've found that programming assignments are often a great way for students to cement their understanding of the principles and practice of networking. Students can "get their hands dirty," "learn by doing" and derive great satisfaction (and sometimes relief!) by building something that works.

This page contains programming assignment descriptions, and supplementary code fragments (when needed) do the programming assignments in our book. Most assignments are available in multiple languages, we recommend Python (which is the mostly used/taught) and C (which lets a student program closest to the underlying socket abstraction). Solutions to these assignments are available to instructors (only) here. If you're a faculty member who would like to access the solutions, contact one of the authors at

These programming assignments are copyright 1993-2022, J.F. Kurose, K.W. Ross, All Rights Reserved.

We gratefully acknowledge the programming and problem design work of John Broderick (UMass '21), which has really helped to substantially improve this site.

Copyright © 2010-2023 J.F. Kurose, K.W. Ross
Comments welcome and appreciated: