CSCI 342: Networks

Semester: Spring 2013
Room: King 227
Class Time: Mon/Wed/Fri 2:30pm-3:20pm
Office Hours: Monday 3:30-4:30pm
Thursday, 4:30-5:30pm
or by appointment
Professor: Cynthia Taylor
email: ctaylor AT oberlin edu
Please include "cs342" in the subject.
Office: King 229
Phone: x58424



(Subject to change)
1 Feb 04   Course Overview, Introduction to the Internet A simple web client
Feb 06 Protocols (Read Sections 1.1, 1.5)
Feb 08 Security, Network Applications (Read Sections 1.6, 2.1.0 - 2.1.2)
2 Feb 11   HTTP (Read Sections 2.2.0 - 2.2.4)
Feb 13 Socket Programming (Beej Guide to Socket Programming: System Calls,Client-Server (streaming))
Feb 15 Transport Services, Web Caches (Read Sections 2.1.3 - 2.1.5, 2.2.5)
3 Feb 18   Email (Read Sections 2.4.0-2.4.4) (Optional: When is Email 'Delivered') Multi-threaded web server
Feb 20 Structure of Distributed Programs: Multithreading (Posix Threads, Blocking, man page for stat)
Feb 22 DNS (Read Section 2.5)
4 Feb 25   Peer to Peer (Read Sections 2.6.0-2.6.1)
Feb 27 Distributed Hash Tables (Read Section 2.6.2)
Mar 01 Transport Layer & Multiplexing & UDP (Read Sections 3.1-3.3)
  Mar 04 Oberlin Cancels Classes
Mar 06 Cynthia at Conference
Mar 08
5 Mar 11   DNS Assignment Overview (Read Beej Section 5.8, Beej Section 6.3, Assignment Description and Sample Code) Talking to DNS
Mar 13 Reliable Data Transfer (Read Sections 3.4.0-3.4.1)
Mar 15 Midterm Review
6 Mar 18   Bittorrent Assignment and Select() (Beej Select - Section 7.2)
Mar 20 Midterm Exam
Mar 22   Midterm Overview
  Mar 25 Spring Break
Mar 27
Mar 29
7 Apr 01   Pipelining (Read Sections 3.4.2-3.4.4) Event based bittorrent client
Apr 03 TCP (Read Sections 3.5.0 - 3.5.4)
Apr 05 BitTorrent Assignment
8 Apr 08   Flow Control and Connection Management (Read Sections 3.5.5-3.5.6)
Apr 10 Congestion Control (Read Sections 3.6, 3.7(Skip 3.6.2-3.6.3))
Apr 12 Network Layer, Circuit vs Datagram (Read Sections 4.1-4.2)
9 Apr 15   Routing (Read Sections 4.3 (Skip 4.3.5)) Reliable transport over an unreliable link
Apr 17 IP (Read Sections 4.4.0-4.4.2)
Apr 19 ICMP, IPv6 (Read Sections 4.4.3 - 4.4.5)
10 Apr 22   Routing Algorithms (Read Sections 4.5.0 - 4.5.2)
Apr 24 Internet Routing (Read Sections 4.5.3, 4.6) High performance transport over an unreliable link
Apr 26 Multiple Access (Read Sections 5.1, 5.3)
11 Apr 29   Ethernet, Error Checking (Read Sections 5.2, 5.4.0-5.4.2)
May 01 Switches and VLANS (Read Sections 5.4.2-5.4.4)
May 03 Wireless and Mobile (Read Sections 6.1-6.3.5)
12 May 06   Mobility Principles, Mobile IP (Read Sections 6.5 - 6.6) Research paper review
May 08 Putting it all together (Read Sections 5.7)
May 10 Class Wrap-up & Final Review ATT Hacker
Video Poker Hacking Dismissed
US Government Buying 0 Days
CISPA - Cybersecurity Policy
Warrantless Email Search
  May 18 Final Exam 7-9 pm

Course Description

Goals and course objectives

My goals and objectives for students taking this course are as follows:

  1. Understand the basics of how networks and the internet work.
  2. Understand the challenges inherent in building distributed systems, and techniques for dealing with them.
  3. Be able to write programs which communicate over a network.


The text for the course is Computer Networking: A Top-Down Approach, 6th Edition, by Kurose and Ross. It is absolutely required that you have one of these books, as there will be daily quizzes based on the required readings.

Kurose Ross

Computer Networking by Kurose and Ross


Course grades will be calculated based on the following distribution:

Course Policy

Peer Instruction

We will be using Peer Instruction, a teaching model which places stronger emphasis on classroom discussion and student interaction. As part of this, you will be assigned an iClicker, which you will need to register. You will be expected to attend all lectures, having completed the assigned reading and ready to discuss with your classmates.


I allow for three missed classes by dropping the three lowest quiz scores. If you attend all the classes, you will be rewarded by having your low grades dropped!


You are expected to complete these labs on your own. However, you are free to discuss them with your fellow students, and encouraged to post questions about them on Blackboard. A good rule of thumb is discuss with your classmates away from your computer, and to wait fifteen or twenty minutes between the discussion and when you make changes to your code. Labs will be due on Sunday at 8 pm.

According to college policy, every assignment must include the following signed statement:

"I have adhered to the Honor Code in this assignment."

Please include this statement in your lab headers, along with your name.

Late assignments will be penalized according to the following chart. Extra credit will not be accepted after the initial deadline.


There is a forum for this class on Blackboard. You are encouraged to use this forum as a vehicle to ask questions about the class and the labs, and to answer each other's questions. If you have a question that is at all general, please ask it on Blackboard rather than via email, as this will allow your fellow students to also benefit from the answer.

Accommodations for students with disabilities

If you have a disability that might impact your performance in this course, or requires special accommodation, please contact me as soon as possible so that appropriate arrangements can be made. Support is available through Student Academic Services, specifically Jane Boomer. You will need to contact them to get your disability documented before accommodations can be made.