CS436 is a non-major course that provides an introduction to computer networks, protocols, and distributed system architecture for students who are not computer science majors offered by the David R. Cheriton School of Computer Science at the University of Waterloo.
A nominal outline of the course material is provided here. The actual material taught in the class will be adjusted according to class interest and experience.
Lectures are held Tuesday and Thursday from 08:30 to 09:50 in MC 4064. My office hours are by appointment and will be held in DC 3351. Ali Abedi will be the TA for this course and will be your main point of contact for the assignments. His office is DC 3549; his office hours will be by appointment, although this may change to scheduled hours later in the term. You can reach me via rth.cs436@gmail; Ali can be reached via a2ebedi@cs.uwaterloo. Official administrative entry.
The official outline for the course is also available online.
The class will heavily use two textbooks:
- James F. Kurose and Keith W. Ross. Computer Networking: A Top-Down Approach, 5th edition, Addison-Wesley, 2010.
- Andrew S. Tanenbaum and Maarten Van Steen. Distributed Systems: Principles and Paradigms, 2nd edition, Prentice Hall, 2007.
Contact
The best way to get help is via email. You can reach me at rth.cs436(at)gmail. Please try not to leave your questions until the last minute. I will also post updates to a twitter feed whenever it makes sense.
Course Schedule
KR == Kurose & Ross; TS == Tanenbaum & Van Steen
Jan 4 - Introduction[Slides]
Jan 6 - Intro, physical media[Slides]
Jan 11 - Link layer[Slides]
Jan 13 - Addressing, ethernet[Slides]
Jan 18 - Switches, wireless, circuit switching[Slides]
Jan 20 - Packet switching, Dijkstra's algorithm, loss, throughput[Slides]
Jan 25 - Network layer intro, datagrams, routing[Slides]
Jan 27 - IPv4, IPv6, NAT, tunnelling[Slides]
Feb 1 - IPSec, OSPF, BGP, broadcast routing[Slides]
Feb 3 - Transport Layer, multiplexing, UDP, Assignment #2[Slides]
Feb 15 - TCP Fast retransmit, congestion, flow control[Slides]
Feb 17 - Prof Away
Mar 1 - Review: Physical, Link, Network, Transport layers. (no slides will be posted)
Mar 3 - Midterm
Mar 8 - Midterm postmortem, HTTP[Slides]
Mar 10 - HTTP, SMTP et. al., DNS[Slides]
Assignments
Winter 2011 Assignments:
- Assignment #1 (Due Jan 27 @ 0800) (Sample file/executable)
- Assignment #2 (Due Mar 1 @ 0830)
- Assignment #3 (Due Mar 31 @ 0800)
There will be three in total; these will be very similar to those offered in the past (last year's a1, a2, and a3). Please take a few minutes at the start of the course to check the amount of development you will have to perform for this course. While you can choose whatever programming language you wish, note that these assignments (especially 2 and 3) require a fair amount of development. You may complete the assignments individually or as groups of 2.
While the assignments are fairly large, you will have almost one month to complete each. Try not to leave these until the last minute. If you have any problems, Ali (our TA) will be the main point of contact for the assignments.
Assessment
Entrance survey (Jan 4 in class): Pass/Fail
Exit survey (Mar 31 in class): Pass/Fail
Assignment #1 (Jan 27 @ 0800): 10%
Assignment #2 (Mar 1 @ 0830): 10%
Assignment #3 (Mar 31 @ 0800): 10%
Mid-Term (Mar 3 in class): 20%
Final (April 8 - 21; date TBD): 50%
You must pass the final exam and all pass/fail assignments to pass the course. Late assignments cannot be accepted without proper (medical) documentation.
Policies
Academic Integrity
- In order to maintain a culture of academic integrity, members of the University of Waterloo community are expected to promote honesty, trust, fairness, respect and responsibility. [See the academic integrity site for more information.]
Grievance
- A student who believes that a decision affecting some aspect of his/her university life has been unfair or unreasonable may have grounds for initiating a grievance. Read Policy 70, Student Petitions and Grievances, Section 4.
- When in doubt please be certain to contact the department’s administrative assistant who will provide further assistance.
Discipline
- A student is expected to know what constitutes academic integrity to avoid committing an academic offence, and to take responsibility for his/her actions.
- A student who is unsure whether an action constitutes an offence, or who needs help in learning how to avoid offences (e.g., plagiarism, cheating) or about “rules” for group work/collaboration should seek guidance from the course instructor, academic advisor, or the undergraduate Associate Dean.
- For information on categories of offences and types of penalties, students should refer to Policy 71, Student Discipline.
- For typical penalties check Guidelines for the Assessment of Penalties.
Appeals
- A decision made or penalty imposed under Policy 70 (Student Petitions and Grievances) (other than a petition) or Policy 71 (Student Discipline) may be appealed if there is a ground.
- A student who believes he/she has a ground for an appeal should refer to Policy 72 (Student Appeals).