CSCI-325: Network Programming
Fall 2023
Instructor
Contents
Resources:
Schedule:
Week |
Topic |
Reading |
Assignment |
8/28 |
History, Network Architecture, Switching |
Chapter 1 |
Classroom exercise
Asmt 1
(solns) |
9/4 |
Delay & Loss, Protocol Layers, Application Layer Intro
No Class Monday |
Chapter 2 |
|
9/11 |
HTTP, Email, DNS, Sockets Programming |
Chapter 2 |
Asmt 2
(soln) |
9/18 |
More Sockets Programming, Link Layer intro |
Chapter 2 & 6 |
|
9/25 |
Framing, Error detection, Local Area Networks |
Chapter 6 |
Asmt 3
(solns) |
10/2 |
Wireless Networking |
Chapter 7 |
Exam Friday
old exam, old solns, topics
new solns |
10/9 |
WiFi |
Chapter 7 |
802.11 Project Overview
Checkpoint #1
|
10/16 |
Finish wireless
No class Monday |
Chapter 7 |
|
10/23 |
Transport layer, UDP, Reliability |
Chapter 3 |
Checkpoint #2 |
10/30 |
More on reliability, TCP |
Chapter 3 |
|
11/6 |
Network Layer, Routing & Queueing |
Chapter 4 |
Checkpoint #3 |
11/13 |
IPv4, IPv6 |
Chapter 4 |
Exam Friday
old exam, old solns, topics,
new solns
|
11/20 |
Routing Algorithms
No class Friday |
Chapter 5 |
Final Checkpoint |
11/27 |
Finish Routing |
Chapter 5 |
|
12/4 |
Future of the Internet, Attacks and Exploits
No Class Friday |
|
Links to Net Neutrality articles
|
Background:
This course is an introduction to both the concepts behind modern
computer networks and their implementation. During the course of
the semester we will cover most of the Computer Networks
book (though not in order), and supplement the material with
exercises from the book and a series of programming assignments.
The programming assignments will be challenging, but will give
you direct experience with network fundamentals. This course
covers the following
CC2013 learning outcomes. Students successfully completing the course will be able to:
- Articulate the organization of the Internet.
- Describe the layered structure of a typical networked architecture.
- Compare common network organizations, such as ethernet/bus, ring, switched vs routed.
- Describe the basic properties of bandwidth and latency.
- Explain in general terms how analog signals can be reasonably represented by discrete samples.
- Implement a simple client-server socket-based application.
- Describe the operation of reliable delivery protocols.
- List the factors that affect the performance of reliable delivery protocols.
- Describe the organization of the network layer.
- Describe how packets are forwarded in an IP network.
- Describe the differences between IP and Ethernet.
- Describe the organization of a wireless network.
- Describe the steps used in one common approach to the multiple access problem.
- Describe the congestion problem in a large network.
- Compare and contrast fixed and dynamic allocation techniques.
This course builds progressively on previously covered material.
Therefore, it is essential to attend all classes and keep
up with the reading and the assignments. Students are expected
to attend all lectures, with exceptions permitted in
case of illness and family emergencies, and should do the assigned
readings before the relevent class.
Grading:
Homework for this class will be submitted electronically. Late
homework will be penalized 5% per day, and will not be accepted more
than one week late.
The following grade cutoffs are upper bounds — they might come down, but will not be set higher: A = 95, A- = 90, B+ = 88, B = 83, B- = 80, C+ = 77, C = 73, C- = 70, D+ = 67, D = 64, D- = 60, F = <60. Your overall grade is composed as follows:
- 20%: Programming Assignments
- 50%: Project (including checkpoints)
- 15%: Exam 1 (October 6th, in class)
- 15%: Exam 2 (November 17th, in class)
Community Statement:
The course will work best if we respect and welcome each other no matter what level of "readiness" we are at, and we all support one another in learning. I will not tolerate behaviors that could negatively affect another student's classroom experience. Such behaviors might include: making rude or condescending comments, snickering at others' questions or comments, talking over other individuals, and so on. I reserve the right to withdraw a student from this class who is repeatedly exhibiting such behavior.
The goals of this course can only be accomplished in a setting of mutual respect, where ideas, questions, and misconceptions can be discussed with civility. As your instructor, I am committed to creating a classroom environment that welcomes all students, regardless of their identities (e.g., race, class, gender, sexual orientation, religious beliefs). I firmly believe that everyone in the class is fully capable of engaging and grasping the material, and that the world of computing is stronger when it includes the broadest possible set of perspectives. We all have unconscious biases, and I will try to continually examine my judgments, words, and actions to keep my biases in check and treat everyone fairly. I hope that you will do the same. If you feel comfortable, please let me know if there is anything I can do to make sure everyone is encouraged to succeed in this class.
Academic Integrity
The assignments form a crucial part of the course and, unless stated otherwise, students are required to work on them individually. Please ensure that any work you take credit for is your own. Inappropriate collaboration with other students is not permitted and will be subject to severe penalties. In particular, sharing your work in any way with other students (e.g. code inspection, sharing code electronically via email or photos, etc) is inappropriate, as is copying part or all of someone else's work. Code or other hints found online must be attributed, and should not compromise your ownership of the work. Please review the university's Academic Integrity policy and ask me if you have any questions regarding its application to this course.
University, Academic, and Administrative Policies
There are many university policies and resources that offer guidance on how to be safe and make the most of your college education. Here are a few that you should take a moment to review:
- Please review university emergency preparedness, response procedures, and a training video posted at www.pugetsound.edu/emergency/.
- Protect yourself and others from COVID-19 by following our ongoing
campus safety protocols, posted here: www.pugetsound.edu/emergency/communicable-disease-outbreak-prevention/university-response-covid-19/protect-yourself.
- For information on academic and administrative policies (such as policies on grade policies, leaves of absence, declaring a major, academic integrity, and academic petitions) please refer to the academic and administrative policies section of the Bulletin.
- If you are seeking a religious accommodation in an academic course or program, please follow the process provided in the university’s policy on Student Religious Accommodations in Academic Courses or Programs, available at www.pugetsound.edu/office-university-counsel/policies/campuswide-policies/student-religious-accommodations-academic-courses-or-programs.
- If you have any concerns about prohibited harassment or discrimination that may be affecting you or others at Puget Sound, please contact the university’s Title IX Coordinator/Equal Opportunity Officer, Wheelock 218, 253.879.3793, website: www.pugetsound.edu/title-ix-equal-opportunity, email: titleix-eoo@pugetsound.edu. The Title IX Coordinator/Equal Opportunity Officer can explain available options and help address concerns informally or formally.
- If you have a physical, psychological, medical, or learning disability that may impact you as a student at Puget Sound, please contact Student Accessibility and Accommodation, Howarth 105, 253.879.3399, website: www.pugetsound.edu/saa, email: saa@pugetsound.edu. They will determine with you what accommodations are necessary and appropriate.