Administrivia for CSE/EE 461 (Autumn 2001; Wetherall)

Introduction to Computer Communication Networks

Time/Place: MWF 3:30 to 4:20pm in EE1 125

Instructor: David Wetherall (

Office Hours: Sieg 210, MF 2:30-3:30pm.

TAs: Janet Davis (, Sushant Jain (

Course Web: Look at this page. It has links to everything you need for the course.

Course Description: This course introduces the basics of networking, ranging from sending bits over wires to the Web and distributed computing. We focus on the internetworking ground in-between these two extremes for distributed, large-scale, heterogeneous networks such as the Internet. The goal of the course is to give students an appreciation of the fundamental challenges of networking, design strategies of proven value, and common implementation technologies. We will cover the following topics: framing, error correction, packet switching, multi-access (Ethernet), addressing and forwarding (IP), distance vector and link state routing, queuing and scheduling, reliable transport, congestion control (TCP), quality of service, naming (DNS), and security.

Prerequisites: There are two. First, a basic ability to develop software programs to complete the programming assignments. We will be using C with Linux development tools. Any of your favorite C books is a useful asset; I recommend the succinct classic, The C Programming Language, by Kernighan and Ritchie. Second, a basic understanding of probability concepts to complete the written assignment questions.

Mailing List: Join the class mailing list right away by sending email to with "subscribe cse461" as the contents. We will use this list for clarifications, last minute announcements, etc., and you should feel free to use it for class related discussion.

Textbook: Computer Networks: A Systems Approach, by Larry Peterson and Bruce Davie. Morgan Kaufmann, 2nd edition, 2000. This is required reading, and the only networking book you will need (regardless of what the bookstore might recommend). I have placed a copy of Peterson, plus Keshav and Tannenbaum, two other worthwhile books, on reserve at the Engineering Library.

Programming Projects: There is a substantial programming project comprised of five programming assignments. Over the quarter, we will build a collective class network called the Fishnet! You will work in pairs except for the first assignment, which you must complete individually. The first two assignments are short and worth 5% each, and the remaining three are worth 10% each, for a total of 40% of your grade.

Lab Access and Accounts: You should gain access to the CSE Labs right away. CSE majors should already have access and an account. Non-majors must fill out a request form. It is possible for you to develop your programs on non-Lab machines, as long as they compile on the Lab machines without any changes whatsoever (needed so that we can automatically compile your source). However, the node you develop will not be able to participate in the class-wide Fishnet unless your machine has a statically-assigned public IP address; cable modem users typically donít have this.

Written Assignments: There are three written homework assignments, each worth 10% of your grade.

Turnin and Late Policy All turnin, both electronic and written for programming projects and written assignments, is due at the beginning of class and will be considered late once we leave the classroom. For the programming assignments in which you are working in pairs, you turnin only one solution per team. You may turn in one (1) programming project plus one (1) written assignment late without penalty, as long as it reaches the TA before the next class, whenever this may be, when solutions will generally be handed out. No further late homeworks will be accepted.

Final: There is a comprehensive final worth the remaining 30% of your grade. Note that there is no midterm.

Grading Summary: Five programming projects, 40%, three written assignments, 30%, and a final, 30%.

Collaboration Policy: (Adapted from Diorio.) Unless we specifically state otherwise, we encourage you (your team in the case of programming assignments) to collaborate on homework provided (1) You spend at least 15 minutes on each and every problem alone, before discussing it with others, and (2) You write up each and every solution as your own program or in your own writing, using your own words, and understand the program or solution fully. Copying someone else's written homework or programs is cheating (see below), as is copying from another source (prior year's material, etc.).

Cheating Policy: Cheating is a very serious offense. If you are caught cheating, you can expect a failing grade and initiation of a cheating case in the University system. Basically, cheating is an insult to the instructor, to the department, and most importantly, to you. If you feel that you are having a problem with the material, or don't have time to finish an assignment, or have any number of other reasons to cheat, then talk with the instructor. Just don't cheat. To avoid creating situations where copying can arise, never publicly post your solutions. If in doubt about what might constitute cheating, send the instructor email describing the situation.