Course Information
LE1
TR 1:30-2:45pm
LWSN 1142
Instructor:
Kihong Park
park0@purdue.edu
+1-765-494-7821
office hours: TR 3-4pm (HAAS 220) or by appointment
Teaching Assistants:
Yufeng Chen
chen4044@purdue.edu
office hours: R 4-5pm (HAAS 072)
Junpeng Guo
guo567@purdue.edu
office hours: M 2-3pm, T 11-noon (HAAS 072)
PSO: (HAAS G050)
W 2:30-3:20pm (Chen)
W 3:30-4:20pm (Guo)
F 9:30-10:20am (Chen)
Textbook:
Computer Networks: A Systems Approach by Peterson and Davie (latest edition)
Announcements
- The final exam has been graded (fin.rpt). The file fin-stats.txt in the course directory contains relevant statistics. There is no regular follow-up. Please contact me in August to pick up your exam. The course grade will be available after tomorrow.
- The sixth lab assignment has been graded (lab6.rpt). Due to time constraints the abbreviated follow-up period ends 4/26/2024. As specified, the points will be added to the midterm score. Any access points will be added to the final exam score.
- As noted in class, there is no lecture on 4/25. Instead, I will hold office hours 1:30-2:45pm (HAAS 220). Regular office hour continues 3-4pm.
- The fifth lab assignment has been graded. To check your score (lab5.rpt), please follow the same procedure as before.
- The final exam is scheduled on 4/30/2024, 1-2:30pm; HAMP 1252, closed note/book. The scope is comprehensive but focus will be on material covered after the midterm. Sample exam and solution: fall 21 exam (sol) | fall 16 exam (sol)
- The sixth assignment, lab6, has been released. As noted in the lab description, lab6 is an optional bonus assignment whose points contribute to the exam (midterm, final) component of the course. lab6 has a shortened due date.
- Correction to lab5, 1.4, second-to-last paragraph: The sentence "If Q(t) < targetbuf ..." should state that 10 - (q * 10) is sent back as feedback, not q * 10. I have updated the handout which includes an example.
- The fourth lab assignment has been graded. To check your score (lab4.rpt), please follow the same procedure as before. You have one week to follow up.
- The midterm has been graded. Please follow the same procedure as the lab assignments to check your score (mid.rpt). The text file, mid-stats.txt, in the course directory contains relevant stats. You may pick up your exam during my office hours. Compare your answers against the posted solution key. If you have any questions, please come to my office hours. You have two weeks to follow up. Copy of midterm and solution: exam | solution.
- The fifth assignment, lab5, has been released.
- The midterm is scheduled on March 19, 2024; in-class, closed note/book. Scope: material covered in class and lab assignments until/inclusive transport layer protocols (lec1 and lec2). Sample exam and solution: fall 21 exam (sol) | fall 19 exam (sol).
- The third lab assignment has been graded. To check your score (lab3.rpt), please follow the same procedure as before. You have until March 22 to follow up if you have any questions.
- My office hour on 3/5, 3-4pm, will be held on 3/8, 11am-noon. I will also hold an additional office hour on 3/18, 1-2pm.
- The fourth assignment, lab4, has been released.
- The second lab assignment has been graded. To check your score (lab2.rpt), please follow the same procedure as lab1.
- lab3 has been updated with the Bonus Problem specification.
- The third assignment, lab3, has been released.
- Due to family emergency I will be away 2/13 and 2/15. Prof. Sonia Fahmy will guest lecture on 2/13, Prof. Muhammad Shahbaz will guest lecture on 2/15. PSOs and TA office hours will follow regular schedule.
- The first lab assignment has been graded. To check your score, please follow the instructions in scores.txt in the course directory accessible from the lab machines. You have one week to follow up if there are questions.
- The second assignment, lab2, has been released.
- The first assignment, lab1, has been released.
- There are no PSOs and TA office hours during the first two weeks of class.
Lab Assignments
Lecture Notes
The lecture notes will comprise slides (pdf) posted on the course web page and discussion of material in class.
- Introduction. (lec1 | lec2)
- Fundamentals of data transmission. (lec1 | lec2 | lec3)
- Link layer: basic techniques. (lec1 | lec2)
- Link layer technologies. (lec1 | lec2 | lec3)
- Internetworking. (lec1 | lec2)
- Transport layer protocols. (lec1 | lec2)
- Congestion control and multimedia streaming. (lec1 | lec2)
- TCP congestion control for file transport. (lec1)
-
Intra- and inter-domain routing.
(lec1 |
lec2)
[ SecurityTrails | CIDR Report ] - Internet traffic and quality of service. (lec1)
- Wireless communication: basic features and idiosyncrasies. (lec1 | lec2)
-
Application layer protocols.
(lec1)
[Slides from P&D textbook.]
Performance driven evolution of HTTP from 1.0 to 3, efficient end system design.
Configuration of DNS, performance support for CDN and cloud computing.
Intra- and inter-domain routing and distributed caching.
Data center interconnection networks.
Prerequisites
Undergraduate-level exposure to operating systems; solid background in C and Linux/UNIX (experience with projects and system programming); basic CS undergraduate-level mathematics preparation (calculus, discrete math, linear algebra).
Grading Policy
The grade will be determined by a midterm, a final, and 6 lab assignments. Their relative weights are:
Midterm | 25% |
Final | 30% |
Lab assignments | 45% |
Lab assignments may have opportunities to earn bonus points. These points serve to more easily reach the maximum achievable points in the lab assignment component. The points do not carry over and are capped at 45%. The same goes for the midterm and final exams which are capped at 25% and 30%, respectively. The course grade is not curved. Approximately, a total weighted score in the 90s maps to an A-range grade (includes +/- grades), mid-70s to 80s for B-range, mid-60s to low-70s C and C+.
Lab Assignment Policies
We will use Linux PCs in HAAS G050 as our development and testing environment. The lab machines are accessible via ssh remotely.
Getting your CS account.
Students registered in the course should have an account automatically set up. Please check by going to HAAS G050 and logging into one of the machines. If you have registered but don't have an account, please contact ScienceHelp@purdue.edu.
Late Policy
To help manage unexpected scheduling demands, you are given 4 late days in total that may be used for late submissions of lab assignments. For example, you may submit 1 day late on four lab assignments, or 4 days late on one lab assignment. Any combination is valid as long as the total days delayed does not exceed 4. There will be a total of 6 lab assignments. Late days not utilized at the end of the semester will be converted to 15 bonus points each (maximum of 60).
Academic Integrity
We aim to foster an open and collegial class environment. At the same time, we are vigorously opposed to academic dishonesty because it seriously detracts from the education of honest students. Because of this, we have the following standard policy on academic integrity, consistent with Purdue University's official policy.
All CS536 assignments, by default, are individual efforts and collaboration of any form is not allowed. This includes discussing solution ideas and sharing of code. Utilizing others' code found on the Internet is not allowed. Utilizing code generated by AI tools such as ChatGPT is not allowed. If you have a question or are unsure, please contact me.
Students who share their work with others are as responsible for academic dishonesty as the student benefiting from the material. Students are not to show work to other students, and are responsible for the security of their work. File/directory permissions must be set to be unreadable to others (e.g. use "chmod -R 700 *" from your home directory). The same goes if you utilize depositories such as GitHub. If you need assistance protecting your work, please contact the TAs or the instructor.
Students who encourage others to cheat or plagiarize, or students who are aware of plagiarism or cheating and do not report it are also participating in academically dishonest behavior.
We will use a software tool, MOSS, to check for copying among submitted assignments. Additionally, we will inspect all submitted material to detect academic integrity violation.
If you have any assignment related questions, please utilize the PSOs and office hours which are scheduled Monday-Friday. The main difference between getting help on coding related questions from the instructor/TAs versus a fellow student is that the instructor/TAs will provide assistance that help you tackle a problem on your own without revealing the solution.
Any case of academic dishonesty will be dealt with by a severe grade penalty in the overall class grade and referral to the office of the Dean of Students.
Emergencies
In the event of an emergency, course requirements, deadlines, and grading percentages are subject to changes that may be necessitated by a revised semester calendar. If such unusual circumstances arise, students may determine any such changes by contacting their instructors via email or phone, and checking the course web page for updates. In the event of a family emergency, please contact the instructor to set accommodations following university rules.
Campus emergencies and closings will be announced on local media and on the main Purdue University WWW site http://www.purdue.edu. Please consult the Purdue emergency preparedness resources web site for detailed information and relevant resources. Consult PUSH for COVID-19 related information.
In the event of health issues, please contact the Protect Purdue Health Center (PPHC) or your health care provider to receive support and medical attention. Reach out to your Academic Case Manager acmq@purdue.edu to receive additional assistance. In case of hospitalization and other urgency care, please contact the Office of the Dean of Students (ODOS) who will document and notify the instructor. Please check the Excused Absence Policies site for additional details.
Purdue University is committed to advancing the mental health and well-being of its students. If you or someone you know is feeling overwhelmed, depressed, and/or in need of mental health support, services are available. For help, contact Counseling and Psychological Services (CAPS) at 765-494-6995 during and after hours, on weekends and holidays, or by going to the CAPS office on the second floor of the Purdue University Student Health Center (PUSH) during business hours.
Nondiscrimination
Purdue University is committed to maintaining a community which recognizes and values the inherent worth and dignity of every person; fosters tolerance, sensitivity, understanding, and mutual respect among its members; and encourages each individual to strive to reach his or her potential. In pursuit of its goal of academic excellence, the University seeks to develop and nurture diversity. The University believes that diversity among its many members strengthens the institution, stimulates creativity, promotes the exchange of ideas, and enriches campus life. A hyperlink to Purdue's full Nondiscrimination Policy Statement is included in Brightspace under University Policies.
Accessibility
Purdue University is committed to making learning experiences accessible. If you anticipate or experience physical or academic barriers based on disability, you are welcome to let me know so that we can discuss options. You are also encouraged to contact the Disability Resource Center at: drc@purdue.edu or by phone: 765-494-1247.
Course Content
This is a graduate-level introductory course to computer networks and data communication. Our goal is to understand fundamental networking concepts, their implementation and application in today's interconnected information technology world. Computer networks is a rapidly evolving field, with new technologies and standards in the works as we speak. This makes the field relevant and exciting. Without a firm grounding in its fundamentals, however, it can also be a confusing and overwhelming subject matter. This course aims to provide this grounding.
This course is a modern introduction to computer networks, spanning the logical organization of four pertinent features: architecture, algorithms, implementation, and performance. The course will cover background and current issues facing modern communication networks, network architecture (hardware, software), fundamentals of data transmission (wired, wireless), LAN technology and data link protocols (switched Ethernet, wireless LAN CSMA/CA, OFDM, OFDMA, personal area networks, cellular network OFDMA, TDMA, FDMA, CDMA, MIMO, GPS, mobility), packet/circuit switching in wide-area networks, internetworking using TCP/UDP/IP (socket programming in Linux), routing (intra- and inter-domain), congestion control (TCP and multimedia UDP streaming), real-time video/audio/voice and quality of service, network security, and high-level network services (DNS, HTTP, SNMP, e-mail). One of the topics we will emphasize is wireless networks, a key driver of today's ubiquitous mobile environment.