Your browser is unsupported

We recommend using the latest version of IE11, Edge, Chrome, Firefox or Safari.

Syllabus

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 a midterm exam, a final exam, and 7-8 homeworks.
Instructor Jakob Eriksson
Meets 3-3:50 pm MWF in LC D2
Office hours M 4-5, F 10-11 in SEO 1309
Teaching Assistant Hamed Rezaei, hrezae2@uic.edu
TA Office Hours T, Th 3-4pm in SEO 1326

Course materials Heading link

The main textbook, which is required, is Kurose and Ross, “Computer Networking, a Top-Down Approach”, any recent edition. As an optional, useful reference, take a look at “The C Programming Language”, by Kernighan and Ritchie (K&R).

Prerequisites Heading link

CS361 Computer Systems, or equivalent experience. The course is programming intensive, using the C programming language. You will also need to use git for revision control and homework turn-in, as well as several Unix command line tools. Some of this will be demonstrated throughout the class, but basic proficiency with the command line will be assumed.

Academic Integrity Policy Heading link

All course projects are individual, and you are expected to turn in only your own work. Discussing course projects with classmates is encouraged, but sharing code or other products is not allowed.

Occasionally, it will be expedient to copy “found code” from online sources. This is allowed, but only with a citation. To be safe, always accompany any third-party code included in your turn-in by a reference to its origins. A simple comment like this, will suffice to avoid disciplinary action:

/* from http://stackoverflow.com/ntoeuh8.html */

Note, however, that wholesale copying of solutions, even with a citation, does not earn homework credit. For the best grade outcome, and the best retention of knowledge and skills, plan to do all work on your own.

Grading Heading link

The course grade will be determined based on exam and homework assignment/project outcomes. There are two exams, the midterm and the final, worth 20% and 30% of the course grade respectively. There are a yet-to-be-determined number of assignments, that in aggregate are worth 50% of the grade.

The grading curves/cut-offs are set after the final exam results are in. Graduate and undergraduate students are graded on separate curves, with expectations higher on graduate students.

Students are advised that exams tend to be hard, while homework assignments are merely hard work. Moreover, the best way to study for the exams is to complete the assignments on your own, and to explore beyond.

Topics Covered (tentative) Heading link

  • 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