General Information
Instructor
Teaching Assistant
Course Description
This course introduces basic elements of modern computer and telecommunication networks. A hybrid five-layer reference model resembling the popular TCP/IP model will be discussed. In each layer, the state-of-the-art hardware and software technologies are introduced. These include, for example, DNS, HTTP, SMTP, and P2P systems at the application layer, TCP/UDP protocols at the transport layer, routing and forwarding, intra- domain and inter-domain routing algorithms at the network layer, random access protocols at the MAC layer, and local area networks (Ethernet and WiFi).
The objective of the course is to enable students to:
- Gain fundamental knowledge of computer and telecommunications networks.
- Understand various tradeoffs and choices in current networking technologies.
- Learn to design and analyze protocols via programming, modeling and simulations.
The course is suitable for those who have strong genuine interest in computer and telecommunication networks (see Pre-requisites/Co-requisites).
Downloads: Course Syllabus
Student Learning Outcomes
At the end of this course, students are able to understand the fundamental principles of computer networking, and each student should be able to:
- Know the basic architecture of computer networks in general and the Internet in particular.
- Know the software functions and/or hardware components at each of the 5-layer protocol stack.
- Know the prevailing communications and LAN/WAN technologies.
- Know how to do network programming in C/C++ under UNIX.
- Know how to use popular networking tools, such as WireShark.
- Start reading more advanced/research-oriented networking materials.
Prerequisites
Students need to have some basic knowledge of operating systems, calculus and probability theory, data structures and algorithms. In addition, they should be proficient in C/C++ programming.
Tentative Schedule
Date | Topic | Notes |
---|---|---|
Monday, August 30, 2021 | Course Overview | |
Wednesday, September 1, 2021 | Chapter-1 1/3 | |
Monday, September 6, 2021 | Labor Day (No Class) | |
Wednesday, September 8, 2021 | Chapter-1 2/3 | |
Monday, September 13, 2021 | Chapter-1 3/3 | |
Wednesday, September 15, 2021 | Chapter-2 1/4 | |
Monday, September 20, 2021 | Chapter-2 2/4 | |
Wednesday, September 22, 2021 | Chapter-2 3/4 | Lab-1 Due |
Monday, September 27, 2021 | Chapter-2 4/4 | |
Wednesday, September 29, 2021 | Chapter-3 1/6 | HW-1 Due |
Monday, October 4, 2021 | Chapter-3 2/6 | |
Wednesday, October 6, 2021 | Chapter-3 3/6 | |
Monday, October 11, 2021 | Chapter-3 4/6 | Lab-2 Due |
Wednesday, October 13, 2021 | Chapter-3 5/6 | |
Monday, October 18, 2021 | Chapter-3 6/6 | |
Wednesday, October 20, 2021 | Chapter-4 1/3 | |
Monday, October 25, 2021 | Chapter-4 2/3; Mid-term Exam Overview | HW-2/Lab-3 Due |
Wednesday, October 27, 2021 | Mid-term Exam | |
Monday, November 1, 2021 | Chapter-4 3/3 | |
Wednesday, November 3, 2021 | Chapter-5 1/4 | |
Monday, November 8, 2021 | Chapter-5 2/4 | PA-1 Due |
Wednesday, November 10, 2021 | Chapter-5 3/4 | |
Monday, November 15, 2021 | Chapter-5 4/4 | |
Wednesday, November 17, 2021 | Chapter-6 1/3 | |
Monday, November 22, 2021 | Chapter-6 2/3 | HW-3/Lab-4 Due |
Wednesday, November 24, 2021 | Fall Recess (No Class) | |
Monday, November 29, 2021 | Chapter-6 3/3 | |
Wednesday, December 1, 2021 | Chapter-7 1/3 | |
Monday, December 6, 2021 | Chapter-7 2/3 | PA-2 Due |
Wednesday, December 8, 2021 | Chapter-7 3/3; Final Exam Overview | HW-4/Lab-5 Due |
Friday, December 17, 2021 | Final Exam (8:00AM - 11:00AM) |
Textbook
- James F. F. Kurose and Keith W. Ross, Computer Networking: A Top-Down Approach Featuring the Internet, 8th edition, Addison Wesley, 2020.
- Textbook Website: https://gaia.cs.umass.edu/kurose_ross/index.php
Grading (Tentative)
Four Homework Assignments (8%)
- Only two homework assignments with the highest scores will be counted in the final grade.
- Done individually or in team of up to 3 students.
Five Wireshark Labs (12%)
- Only three Wireshark labs with the highest scores will be counted in the final grade.
- Done individually or in team of up to 3 students.
Two Course Projects (each for 20%)
- Done individually or in team of up to 3 students.
Midterm Exam (20%)
Final Exam (20%)
For the homework assignments and Wireshark labs: Homework and Wireshark labs must be done individually or in team of up to 3 students. One submission per team, one grade per team. Collaboration across teams is NOT allowed! Use of reference materials in the library or online is allowed, provided that the references used are explicitly cited. Note that copying the solutions from online sources is still considered cheating even if you cite the sources.
Course Policy
Exams: Both exams are closed-book closed-note exams. If you miss an exam because of sickness or similar reasons, visit a physician and obtain a note detailing the period during which you were medically incapable of taking the exam. Notify your instructor immediately via e-mail or telephone (voice mail) if you are going to miss an exam, before the exam takes place unless medically impossible. See your instructor as soon as you return to class. If you miss an exam without a valid excuse, you will receive a zero grade for that exam. No make-up exam will be available without a valid excuse.
Handwritten Work: Written assignments (and exams!) should be neat and legible. Instructor and TA reserve the right to assign a zero grade to illegible handwritten homework/exams.
Academic Integrity
Zero tolerance on cheating!
- Fail the course even on the first attempt.
- Team members are equally responsible.
- Consult the University Statements on Academic Integrity: https://engineering.buffalo.edu/computer-science-engineering/information-for-faculty-and-staff/academic-integrity.html
Group study/discussion is encouraged, but the submission must be your own work.
MOSS software from Stanford will be used to detect plagiarism in homeworks and project assignments.
For the homeworks assignments: Homework must be written up individually or in team of up to 3 students. One submission per team, one grade per team. Collaboration across teams is NOT allowed! Use of reference materials in the library or online is allowed, provided that the homework explicitly cites the references used. Note that copying the solutions from online sources is still considered cheating even if you cite the sources.
For the programming assignments (course projects): Projects can be done either individually or in team of up to 3 students. Discussions of ideas are welcome, but exchanges of source codes are not allowed. Use of segments of code found online is allowed provided that the student explicitly cites the references used. Use of a significant portion of codes from other sources without citing the sources will be considered cheating. Note that copying the whole solution (code) from online sources will result in zero for the project, even if you cite the sources. Copying code from past years' assignments is considered cheating.
Students who do share their work with others are as responsible for academic dishonesty as the student receiving the material. Students are not allowed to show work to other students, in class or outside the class. Students are responsible for the security of their work and should ensure that printed copies are not left in accessible places, and that file/directory permissions are set to be unreadable to others.