Welcome to CS3640 Introduction to Networks and their Applications

Why: Computer networking can seem enormously complex -- after all, the Internet is arguably the largest engineered system ever built by humans! The Internet has had a transformative impact on all aspects of modern society, yet it began as a research curiosity just 50 years ago. This course offers a first look at what computer networks are, how they are designed and operated, and how they are likely to evolve in the future.

Who: This course is primarily designed for undergraduate computer science majors. We expect proficiency in computer systems and computer organization. To meet these requirements, you will need a minimum grade of C- in CS2210, CS2230, and CS2630/ECE3350. In addition, you should be comfortable with programming in Python.

New in 2021: Due to its large size, this course will be delivered online. Every class will feature a spot quiz that covers the topics of that day. We have done away with the traditional written exams, and in their place, introduced technical interviews. You will also learn how to read and digest Internet RFCs and research papers. Finally, we will have a distinguished lecture from Prof. Henning Schulzrinne (who, amongst other things, has co-developed more than 80 Internet RFCs).

General Information

Instructor: Prof. Supreeth Shastri
Office hours: Wed 11am-noon or by appt
Email: supreeth-shastri@uiowa.edu

TA: Adnan Ahmed
Office hours: Fri 3-4pm or by appt
Email: adnan-ahmed@uiowa.edu

Lectures: TuTh 3:30 - 4:45pm (Zoom)
Discussions: Slack

Textbook and Resources

Text: Computer Networking: a Top Down Approach (8th Edition) from James Kurose and Keith Ross. Those who have enrolled in ICON Direct, will have access to the electronic version in ICON. You could also purchase the ebook for $31.99 from Iowa Hawk Shop or Pearson. If you have an older edition of the text, you may be able to get by, but you would have to make sure numbered problems and figures are matched properly. Finally, a print copy is on course reserve at the Engineering Library (TK5105.875.I57 K88 2017).

Slides and papers: Lecture slides and videos will be posted on the website (see schedule). All the assigned readings including research papers, articles, and Internet RFCs will be linked there as well.

Discussion forum: We will use a private Slack workspace for all course related discussions. Questions and discussions posted on Slack will get a faster response from the teaching staff than sending emails.

Software: All the software required for programming projects are free and open source.

  • Spot Quizes (20): 20%
  • Writing Assignments (5): 25%
  • Programming Projects (2): 30%
  • Technical Interview (1): 25%

Every class will feature a spot quiz. They will cover the topic of the lecture and are time-limited. We will not administer quizes outside of the class, but we will only count your top-20 performing quizes for calculating the grade. Next, the details regarding written assignements and programming projects will be announced later in the class. The midterm and final exams have been replaced with 1-on-1 technical interviews with the instructor. We anticipate each interview to last 15 minutes, to include both verbal and whiteboard portions, and to be conducted towards the end of the semester. Finally, the cumulative course grades will be computed using Norm-referenced Grading at the advanced course level.

Ground Rules and Policies

If you have a COVID-19 related situation that needs modifications or accommodations in the course, please reach out to the teaching staff.

Attendance and absence. We expect students to attend classes regularly and to contribute to the learning environment. Please follow the procedure outlined in the CLAS policy to report excused absences. You can also find the CLAS absence form in ICON, located in the top banner under "Student Tools.”

Submissions and late policy. All submissions are due at midnight on the specified date. For each day that the submission is late, you will forfeit 10% of the earned score for the assignment. We accept incomplete submissions and will evaluate them for partial grades.

Academic integrity. We take this really seriously. All students are expected to adhere to the CLAS code of academic honesty. We encourage collaborations: it helps you learn faster and makes the process fun; however, everything you turn in must be your own. If your assignment is obviously similar to someone else's (or copied from the web), then all parties will receive a zero on the respective assignment for the first offense, and will receive an F for the course for the second offense. Serious and repeated offenses will be reported to the Dean's office, which may result in further disciplinary action.


This course is inspired by (and uses materials from) courses designed by Profs. Jim Kurose, Keith Ross, Henning Schulzrinne, Rishab Nityanand, Arun Venkataramani, Ethan Katz-Bassett, Octav Chipara, and Denise Szecsei.

© 2021 The University of Iowa