CS 371 (Spring 2023)
Introduction to Computer Networking
Course Information
Instructor: Yang Xiao (contact: xiaoy[AT]uky.edu)
Meeting Times: M/W/F 11:00 AM – 11:50 AM Eastern Time (location: register course to know)
Office Hour: Hardymon Rm 233, Fri 1:00 PM – 2:30 PM Eastern Time and by appointment
TA: Alex Barrera (contact: alexander.barrera[AT]uky.edu), Office Hour: Engineering Annex Rm 205, M/W/F 10:00 AM – 11:00 AM
Course Description
Introduction to the principles and concepts of the Internet; data communications and digital channel characteristics; networking applications and protocols, client-server paradigm and network programming; reliable data transfer, end-to-end transport; addressing, forwarding and routing, datagram networks; media access control, data link control; selected topics from cloud computing, network security and network management. Concepts are combined with programming and other hands-on assignments to enhance the learning of these topics.
Course Schedule (Tentative)
Week | Agenda ([R]: Required Reading, [S]: Suggested Reading) | Notes |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
HW1 due 01/26 |
4 |
|
HW2 due 02/03 |
5 |
|
HW3 due 02/10 |
6 |
|
|
7 |
|
HW4 due 02/19 |
8 |
|
PA1 due 03/03 |
9 |
|
HW5 due 03/05 11PM |
10 |
|
|
11 |
|
|
12 |
|
HW6 due 03/31 |
13 |
|
|
14 |
|
PA2 due 04/14 |
15 |
|
PA3 due 04/22 |
16 |
|
|
17 |
|
Learning Outcomes
After completing CS 371, you will be able to:
◾ Explain how information is encoded for transmission over digital channels, and to explain the concepts of channel capacity (``bandwidth") and latency.
◾ Explain how to implement reliable data transfer over an unreliable channel.
◾ Explain how packets are delivered in datagram networks.
◾ Explain the basics of operation of important Internet protocols including IP, TCP, DNS, SMTP and HTTP protocols.
◾ Design, code, and test simple client and server programs that communicate via a network.
◾ Design, implement and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program's discipline. (ABET SO2)
◾ Understand the design and development principles in the construction of software systems of varying complexity.
Course Activities and Grading
(A more detailed syllabus and rubrics will be released in Canvas)
Class attendance (5%): Students are required to attend every class. The attendance points will be given if a student attended more than 65% of the classes and did not miss more than a consecutive month. Excused absences (see Policies) will not be counted.
Homework (20%): There will be seven home assignments spread out during the semester. Homework must be individual effort.
Project (30%): There will be one group project that takes the form of three programming assignments (PAs) with deadlines spread out during the semester. The project is done by groups of up to three students. Groups need to be formed no later than 1/30/2023. The project is designed to help students with implementing network protocols or important network concepts and analyze their performance. PA1 and PA2 will be self-contained and involve writing small pieces of code with provided testing cases. PA3 will be more open-ended in realizing a set of requirements.
◾ For each PA: please submit source code and a short report (self-testing results, result explanation, and each group member’s contribution).
◾ For PA3 only: the report should additionally contain the objectives, design, implementation steps towards realizing the objectives, and conclusions. A specific format will be provided. Bonus points will be given for outstanding merits and results.
Exams (45%): There will be a midterm exam and a final exam, both will take place in class. For the midterm exam, students with excused absences (see Policies) must notify the instructor in advance with a valid proof and may take the exam through Canvas during the same exam time frame.
Grading Scale: A: 90 – 100%, B: 76 – 89%, C: 65 – 75%, D: 50 – 64%, E: 0 – 49%
Policies
Academic Integreity: Please strictly follow the Academic Offenses Rules (plagiarism, cheating, and falsification or misuse of academic records). Also keep in mind that any copyrighted materials (e.g., images and other media), published contents (e.g., academic papers, books, web sources, online tools) used in your submissions should be properly cited. Help from other people should be properly acknowledged.
Late Policy: Only submissions through Canvas before the deadline will not receive any penalty. Late submissions will be subject to a 25% grade penalty if you submit within 12 hours after the deadline (which will be auto-tagged “late” in Canvas). It is possible to email such late submissions (and subject to the same 25% grade penalty) to the TA if the student cannot access Canvas for any reason. After this 12-hour period, no late submission will be accepted, and the assignment will receive a grade of zero. Exceptions to above rule may be requested providing appropriate documentation (e.g., medical or other excused cases per the University Senate Rules) which will be considered at the discretion of the instructor. Do not submit assignments via email to the instructor, assignments submitted in this way will receive a grade of zero.
Disability and Special Accommodation: Please let the instructor know of any needed accommodation in the first two weeks. Please also see Academic Accommodation for further assistance.
Academic Policy Statements, Diversity, Equity, and Inclusion, Resources Available to Students
Learning/Research Resources
UK Libraries, Free Tutoring and Coaching at UK, Google Scholar, ACM Digital Library, IEEE Xplore, dblp: computer science bibliography