TWiki> CS450 Web>Syllabus (2013-01-16, Main.ckanich)EditAttach

Syllabus - CS450 Introduction to Networking

Meets: 2-3:15 pm TR, in 2SES 238
Instructor: Prof. Chris Kanich <>
Book: Kurose and Ross - Computer Networking: A Top-Down Approach, 6th Edition
Office: SEO 1109
Office hours: Tuesday 3:30-4:30, Wednesday 10-11, and by appointment
Discussion Board:

TA: Yanzi Jin <>
Office: ERF 2054
Office hours: Wednesday 2-4 pm


By the end of this course, you will have a good understanding of the main elements that work together to form the Internet. You will have acquired some familiarity with standard diagnostic tools, network application development, and typical network designs and configurations. In addition, you will have caught a glimpse of more advanced networking concepts and research directions.

Evaluation will be done through in class quizzes, a midterm, a final, and 8 homeworks.


This class is programming intensive, with most assignments done in C. CS385 or equivalent is a required prerequisite: concurrent enrollment only with instructor consent, and not recommended. If you took CS385 but struggled in it, you may want to reconsider taking this class until you have gained a bit more experience with low-level programming and UNIX environments.

If you are a graduate student and are not required to take CS385, I suggest you watch (at least) the first several lectures of CS385 from last spring, where C programming is discussed. You'll find the recordings here.


This course will be taught using Peer Instruction, a teaching model which places stronger emphasis on classroom discussion and student interaction.


Grades are curved based on an aggregate course score. There are separate curves for graduate and undergraduate students. This means that the course score cut-offs for an A, B, C etc. are not defined ahead of time: these will be set after the end of the course.

The course score consists of the below components:

  % of total grade
Reading Quizzes 5
Class Participation 5*
Homeworks 35
Midterm 25
Final 30


Reading quizzes will be given at the beginning of each class period using iClickers. Everyone will have their lowest three quiz scores dropped.


Participation is an incredibly important facet of this course. The baseline Class Participation grade will be based off of participating in classroom discussion questions. Your class participation grade can grow to a maximum of 10 through exceptional participation. The expected score in this category is 5: additional points are a bonus reserved for substantial contributions, entirely at the instructor's discretion. Exceptional participation includes early reports of errors in assignments, helpful discussion on Piazza, and clarifying or interesting questions during lecture.


Homeworks will consist of approximately eight programming projects with duration between one and two weeks.


Late assignments will be penalized by subtracting a percentage of the total possible score from the achieved score. Extra credit will not be awarded for early turnins.

x hours late Penalty
x < 12 10%
12 <= x < 24 25%
24 <= x < 48 50%
x >= 48 100%


Consulting with your classmates on assignments is encouraged, except where noted. However, turn-ins are individual, and copying code from your classmates is considered plagiarism. For example, give the question "how did you do X?", a great response would be "I used function Y, with W as the second argument. I tried Z first, but it doesn't work". An inappropriate response would be "here is my code, look for yourself".

To avoid suspicion of plagiarism, you must specify your sources together with all turned-in materials. List classmates you discussed your homework with and webpages from which you got inspiration or copied (short) code snippets. All students are expected to understand and be able to explain their turned-in materials. Plagiarism and cheating, as in copying the work of others, paying others to do your work, etc, is obviously prohibited, is grounds for failing the course, and will be reported.

TOPICS COVERED (tentative)

  • Constituent parts of the Internet
  • Layered network model
  • The innards of Web / email / bittorrent
  • Domain Name Services (DNS)
  • Networking APIs for application developers
  • Common network diagnostic tools
  • Network performance - throughput, delay and packet loss
  • Transport layer services
  • TCP - Reliability & Congestion Control
  • IPv4/IPv6 Addressing / Routing
  • Inter/intra domain routing protocols
  • Network address translation
  • Routing in fixed and ad-hoc wireless networks
  • Mobility and the Internet
  • Introduction to Network Security - Botnets, DoS/DDoS, Viruses and Worms
  • Multicast and Anycast mechanisms
  • Multiple access control techniques
  • Physical layer overview - modulation, coding
  • Error detection and correction
  • The UNIX command line
Topic revision: r11 - 2013-01-16 - 16:39:34 - Main.ckanich
Copyright 2016 The Board of Trustees
of the University of
Helping Women Faculty Advance
Funded by NSF