TWiki> CS450fall11 Web>Syllabus (2012-08-23, Main.jakob)EditAttach

Syllabus - CS450fall11 Introduction to Networking

Meets: 3-3:50 pm MWF, in 209 BH
Instructor: Dr. Jakob Eriksson <>
Book: Kurose and Ross - Computer Networking a top-down approach 5/e
Office: ERF 2054
phone: 312-413-2103
Office hours: Wednesday 4-5 pm, Friday 9-10 am

Head TA: ABM Musa <>
Office: ERF 2054
Office hours: Wednesday 1-3 pm
Contact for: Post-submission questions on grading results, auto-grading problems

Assistant TA: Weixiang Shao <>
Office: SEO 1309
Office hours: Monday 8-10 am, Thursday 11 am-1 pm
Contact for: Pre-submission assistance with assignments


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 2 midterms, 1 final and 10 homeworks. While the class combines theory and practice, the focus will be on practical demonstrations and experiences.


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.


There are several elements to the grading scheme.

Exams: 2x30 (midterm), 70 (final) points
Homeworks: 10 x 6 points
Class contributions: 10 points (instructor discretionary)
SUM: 200 points

Grading will be done only on the best portion of your exams and homeworks (elements for short), through the following mechanism. Elements will be individually graded with a percentage score. Out of all elements, the 100 points' worth of elements with the highest score will be combined (prorated if necessary) to compute your point-weighted score for the course. The pseudocode below describes the course score computation process more precisely.

  1. First, sort all elements in decreasing score order
  2. MAX_POINTS=100
  3. for([score, points] in elements) do
    1. prorated_points=min(MAX_POINTS-total_points,points)
    2. pointweighted_score+=prorated_points*score
    3. total_points+=prorated_points
  4. until total_points==MAX_POINTS
  5. print "Course score: ",pointweighted_score/MAX_POINTS
For example, an student that gets 100% scores on the midterms (60 points) and 7 homeworks (42 points) automatically has a 100% score in the course and will receive an A grade without taking the final. Similarly, a student that does not turn in any homework, but scores 90% on the midterms, and 80% on the final, would receive a point-weighted course score of (0.9*60+0.8*40)/100=86%. Whether this qualifies for an A grade will depend on the curve. Grads and undergrads are graded on separate curves.

The score calculator may be helpful in computing your final score.


Each student also receives a percentage score for substantial contributions to the class as a whole. Such contributions may be made through the class mailing list, the class wiki pages, or during lecture, or other means. Good contributions include early reports of errors in assignments, helpful tips, tools and information posted to mailing list or class wiki, and clarifying or interesting questions during lecture. The expected score in this category is 0%: a non-zero score is a bonus reserved for substantial contributions, entirely at the instructor's discretion.


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: r7 - 2012-08-23 - 17:23:07 - Main.jakob
Copyright 2016 The Board of Trustees
of the University of
Helping Women Faculty Advance
Funded by NSF