Course Calendar - Lectures Course Calendar - Labs

Computer Networks

CSC 332, Spring 2022
Lectures: Mon 2:30 - 4:00 PM, Fri 11:00 - 12:30 PM. GICT 135
Labs: Fri 4:00 - 5:30 PM. GICT 207, 208
Instructor: Shashi Prabh
Office: GICT 125
Office hour: Fri 2:00-4:00 PM, or by appointment
Email: shashi.prabh @ ahduni
Prerequisites: Operating systems, knowledge of programming in C
Introduction and course objectives

We are going through severe crisis caused by Covid-19 pandemic. Among other things, this crisis has rendered conducting group activities, such as lecturing a number of students in a classroom, nearly impossible. We are mitigating the devastating impact of the pandemic by substituting physical presence with a virtual one which would not have been possible without computer networks. The Internet had a humble beginning with just four nodes in 1969. Today with over 4 billion users and billions of devices connected to the Internet, it is the lifeblood of the governments and the economy all over the world.

This is a first course on computer networks. In this course, the students will learn the fundamentals of computer networking. The students will get exposed to the design of scalable networking architecture that has sustained the exponential growth of the Internet. The students will learn the layered architecture, basics of physical layer, and details of link, network and transport layers. The students will learn the functionalities as well as the protocols pertaining to these layers. The course emphasizes the architecture and protocols used in the Internet.

Learning outcomes
After studying this course, the students will be able to:
  • understand the design issues of computer networks and appreciate layered architecture and protocol design
  • use appropriate tools for designing and implementing networked systems
  • design network applications
Reference Books
  • Computer Networks: A Systems Approach, Larry L. Peterson and Bruce S. Davie, 5th edition, MK Publishers, 2011 (Available online here.)
  • Computer Networks, Andrew Tanenbaum and David Wetherall, 6th edition, 2021 or 5th edition, Pearson, 2011

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): 10%
    • Assignments: 5%
    • Midterm exam: 30%
    • Final exam: 30%
  • Laboratory
    • Project: 10%
    • Midterm lab exam: 5%
    • Final 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. 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. 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. Spend 6-10 hours per week on the course.