Back to teaching

Undergraduate Elective

CS3205: Introduction to Computer Networks

This course builds a practical and analytical foundation in computer networking, from layered Internet design and transport behavior to hands-on packet capture, measurement, debugging, and socket-based application development.

CS3205 course image
Latest Offering Holi'25 (Jan - May, 2025)
Instructor Ayon Chakraborty
Course Access Moodle
Format Theory + programming assignments

Teaching Feedback

The primary objective of this course is to equip students with foundational knowledge of computer networks and develop their practical and analytical skills in this domain. Students gain hands-on experience with Linux-based networking tools, including packet capture utilities, to configure, troubleshoot, measure, and analyze network performance issues.

Through programming assignments, they capture packets from real networks under a variety of emulated conditions and build simple networking applications using sockets, such as a basic web server, a music streaming server, or a multiplayer networked ping-pong game.

The course also develops a broader systems perspective on the hardware and software infrastructure underpinning the Internet: what limits end-to-end latency, why protocol layering matters, and how reliable transport software delivers guarantees over inherently unreliable network substrates. The goal is to help students understand the design principles behind the Internet, reason analytically about network protocols, and develop practical skills for interacting with real networks.

The video playlist is based on the systems-bucket offering in the IIT Madras BS Data Science program.

Books

  • Kurose and Ross, Computer Networking: A Top-Down Approach, Seventh Edition, Pearson, 2017. Primary reference.
  • Andrew S. Tanenbaum, Computer Networks, Fifth Edition, Pearson Education India, 2013. Additional reference.
  • Peterson and Davie, Computer Networks: A Systems Approach, Fifth Edition, Elsevier, 2011. Additional reference.

Grading

Students are expected to attend lectures and work closely with the instructor and TAs as needed. Assessment consists of four mini class tests (10% total), two quizzes (15% each), one end-semester examination (40%), and about three take-home programming assignments evaluated through viva (20%).