CSCI-325: Network Programming

Fall 2009

Instructor

Instructor: Brad Richards
Lectures: TH 391 — MF 12:00-12:50, TTh 12:30-1:20
Phone: 879-3579
Email: brichards@ups.edu
Office: Thompson 401
Office Hours: MTTh: 3:00-3:50, F: 1:05-1:50 and by appt.

Contents

Resources:

Schedule:

Week Topic Reading Assignment
8/31 History, Media, Switching, Bandwidth, Multiplexing,
Stack Model
Chapter 1  
9/7 Connections, Application Layer, Protocols, HTTP, FTP
No Class Monday
Chapter 2  
9/14 SMTP, POP & IMAP, Sockets Programming Chapter 2 Asmt 1
9/21 Framing, Error detection, Multiple access protocols Chapter 5  
9/28 Ethernet, hubs & switches, PPP Chapter 5  
10/5 Wireless Networking Chapter 6 Asmt 2
10/12 Transport layer, UDP, Reliability Chapter 3 Asmt 3
10/19 More on reliability, TCP
(No class Monday, Tuesday)
Chapter 3 Exam Friday (Old exam)
10/26 TCP timeout management, flow control Chapter 3 802.11 Project Overview
Checkpoint #1
11/2 TCP & congestion Chapter 3  
11/9 NW layer, IP, Routers Chapter 4 Checkpoint #2
11/16 More on Routing Chapter 4  
11/24 Security, Attacks and countermeasures
(No class Thursday, Friday)
Chapter 8 Checkpoint #3
12/1 Multimedia Chapter 9  
12/8 Wrap-up and review
Tuesday is Last Day
  Final Checkpoint

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 (some in C++). The programming assignments will be challenging, but will give you direct experience with network fundamentals. Students should have the following upon completion of the course:

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.

The programming assignments form a crucial part of the course, and students are required to work on them individually unless otherwise specified. Inappropriate collaboration with other students will be subject to severe penalties. I encourage you to interact with each other and discuss possible implementation approaches, but any sharing of code — even algorithms or designs — will be considered cheating. Please review the Academic Honesty policy in The Logger and ask me if you have any questions regarding its application to this course.

Lectures will begin and end on time — do your best to get to class before the start of the lecture. Use of cell phones is extremely disruptive, so please remember to turn your phones off while in the classroom.

Academic accommodations are available for students with disabilities who are registered with the Office of Disability Services. Please schedule an appointment with the instructor early in the semester to discuss any accommodations for this course which have been approved by the Disability Services Coordinator as indicated in your accommodation letter.

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: