Course Calendar - Lectures Course Calendar - Labs

Computer Networks

CSE 405, Spring 2026
Lectures: Tue and Thu 11:00 - 12:30 PM, GICT 137
Labs: Mon 1:00 - 3:00 PM. GICT 207/208
Instructor: Shashi Prabh
Office: GICT 125
Office hour: Wed 3:00-4:00 PM, or by appointment
Email: shashi.prabh @ ahduni
Prerequisites: Operating systems, proficiency in C programming
Introduction and course objectives

This is a first course on computer networks. The course provides a rigorous introduction to computer networks, focusing on the principles, architectures, and protocols that underpin the modern Internet. Students will study how networks are designed to be scalable and robust. They will also learn the performance characteristics of networks and how these design goals are achieved through layered abstractions and well-defined protocols.

The course examines the Internet's protocol stack in depth, covering the physical, link, network, and transport layers, with emphasis on core mechanisms such as addressing, routing, error control, congestion control, and end-to-end reliability. Students will also be introduced to modern networking paradigms including the QUIC protocol, Network Security (TLS), and Software-Defined Networking (SDN). The course bridges theory and practice, preparing students to understand and engineer modern distributed and networked systems.

Learning outcomes
After successfully completing this course, students will be able to:
  • Understand the fundamental concepts and principles of computer networking
  • Apply networking concepts to reason about scalability, reliability, and security in real-world systems
  • Understand modern networking advancements such as QUIC and SDN
  • Design and implement networked applications using standard networking APIs
  • Utilize practical tools to observe, debug, and evaluate network behavior
Reference Books
  • Computer Networks, Andrew Tanenbaum, Nick Feamster and David Wetherall, 6th edition, Pearson, 2022 (5th edition can be used.)
  • Computer Networks: A Systems Approach, Larry L. Peterson and Bruce S. Davie, 5th edition, MK Publishers, 2011 (Available online here.)

Supplementary reading
  • An Engineering Approach to Computer Networking, S. Keshav, Addison-Wesley, 1997.
    Basic concepts are described very well though the book is somewhat dated.
  • Data Networks, Dimitri P. Bertsekas and Robert G. Gallager, 2nd Edition, Prentice Hall, 1992
    Classic advanced level text. Authors have made the book available online here.
  • Unix Network Programming, Vol. 1: The Sockets Networking API, Stevens, Fenner and Rudoff, 3rd edition, Addison-Wesley Professional, 2003
Grading
  • Lecture
    • Quizzes (2): 15%
    • Midterm exam: 30%
    • Final exam: 30%
  • Laboratory
    • Project: 10%
    • Assignments: 5%
    • Lab exam: 10%
Helpful Advice ( a.k.a. expectation from the students!)
  • Pay attention and take notes! Get doubts cleared during the lecture itself -- do not hesitate to ask questions in class.
  • Spend 6-10 hours per week on the course. Regularly review and practice the material to reinforce your understanding.
  • Before attending a lecture, review your notes and scan the portion of the textbook that will be covered (see the course calendar page here).
  • Do assignments on your own.
  • Form study groups to discuss and review concepts, but ensure that all submitted work is your own.
  • If you happen to miss some session(s), do talk to someone else who attended or the TA to find out the topics covered and any announcement made.