CS 453: Computer Networks
(Spring 2019)
Overview Syllabus Schedule

Why: The remarkable success of computer networks, especially the Internet, has transformed the way we live, work, and interact. The Internet began as a research curiosity a few decades back, but forms a critical global communication infrastructure for business, entertainment, education, social networking, health care, and a lot else. How does this global infrastructure work and what are the principles underlying its design?

What: This course provides an introduction to fundamental concepts in the design and implementation of computer networks, their protocols, and applications with a particular emphasis on the Internet's TCP/IP protocol suite. Topics to be covered include: overview of network architectures, applications, network programming interfaces (e.g., sockets), transport, congestion, routing, and data link protocols, addressing, local area networks, wireless networks, network security, and network management. There will be five or six homeworks, two programming assignments, several hands-on labs (that require an Internet-connected personal computer) and two exams.

Who: This course is intended for undergraduate Computer Science and Computer Engineering majors and for masters students seeking a first course in computer networking. Graduate students or students wanting an advanced course in computer networking should take CMPSCI 653 (usually taught in Fall).


Instructors

Instructor: V. Arun
Class: Tue-Thu 2:30pm-3:45pm, Marsten 132
Course site: Moodle (UMass OIT account needed) + this site (open access)
Contacting instructors and online discussions: Piazza (accessible to anyone with an email address with the instructor's approval)
Office hours: CS 236, right after class or by appointment.

Teaching Assistants

Amit Rawat
Office hours: Refer piazza

Zhipeng Tang
Office hours: Refer piazza

Prerequisites

An understanding of basic computer systems concepts (CMPSCI 230) and probability (CMPSCI 240) is required. Students will also benefit significantly from a prior or concurrent exposure to algorithms (CMPSCI 311) and operating systems (CMPSCI 377) although these are not strict pre-requisites. You must be able to program in a structured high-level programming language, such as Java, C or C++, Python, etc. You can do the programming assignments in a language of your choice. You will find the programming assignments simpler if you have prior exposure to concurrent programming (e.g., through a course on operating systems) and much harder otherwise.  

Course Materials

  • Text: Computer Networking: A Top Down Approach Featuring the Internet (7th ed.), J.F. Kurose and K.W. Ross, Pearson.  The seventh edition of this book was published in 2016. Students having a copy of an older edition may be able to get by, but please get the latest edition if you intend to purchase the textbook. Homework problems may refer to numbered problems or figures in the text, so make sure you have access to the latest edition through a classmate if you intend to get by with an older edition.
  • Assigned readings from the text and additional reading material and videos posted on the class website.
  • Slides: Slides will be posted on the class website (see the link "Schedule" above). They are meant for quick reference only and not as a substitute for reading the text. 
  • Tips:
    1. If you attempt to get by by just browsing through the slides before homeworks and exams and not reading the text, you will likely score a grade or two lower.
    2. If you regularly solve problems from the text other than those assigned in homeworks, you will almost definitely improve your grade a notch or two.
    3. Don't skip class, otherwise you will miss out on problems similar to homework problems that we solve on the whiteboard but are not detailed in the notes or the textbook. You will also lose iclicker quiz and participation credit.
Academic Honesty
Please read and abide by the UMass Academic Policy. All programming assignments, homeworks, and lab assigments should be done by you alone. Cooperation of any sort with a fellow student is not permitted. For programming assignments, using code developed by someone else (including code found online) is not permitted if it overlaps significantly with the assigned task. If you refer to material outside of the text and class notes, make sure you cite the source.

Course Work

The table below shows a breakdown of credit for different course activities. Yes, the total "percentage" adds up to over 100. This is intentional and is designed to give you multiple ways of doing well in the course.

Coursework Timing Approximate % of grade
Assigned readings Weekly  
Written homeworks ~5 homeworks 25%
Lab assigments ~5 labs 15%
Programming assignments 2 multi-part assignments 20%
Midterm Mid-semester 15%
Final End of semester 25%
Class participation (iclicker) All semester 15%