CSE/EE 461: Introduction to Computer-Communication Networks, Autumn 2007
  CSE Home   About Us   Search   Contact Info 
 
Course Home
 Home
Administation
 Overview
 Using course email
 Email archive
 Anonymous feedback
 View feedback
 Homework Turnin
 
Most Everything
 Schedule
 
Information
 UW/ACM Tutorials
   

Course Overview

  Pre-requisites
  Topics
  Non-Goals

Assignments
  Grades

Exams

Policies


 
Pre-requisites

Required

  • CSE 143: for basic understanding of software and general programming skills and experience
  • MATH/STAT 390, STAT 391, IND E 315, or CSE 321: some simple probabilistic arguments are used from time to time.
Generally Useful
  • CSE 303: the text uses C as a programming language. Some course programming may be in C; the default build/run system is Linux.
  • CSE 451: concurrency is inherent in networking.
  • CSE 326: so are data structures.
  • CSE 378: so is the idea that all data is just bits, at some level.
Gravy
  • CSE 401: compiling is a key idea in one topic (RPC). Specification vs. implementation is everywhere.
You must have the required pre-requisites. The other courses listed here are useful, but not required.

back to top     


 
Topics

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 between these two extremes, particularly focusing on the engineering of the Internet - goals, constraints, solutions, and experiences. The outcome of this course for you should be an appreciation of the fundamental challenges of networking, design strategies of proven value, and common implementation technologies. Topics will include: framing, error correction, packet switching, multi-access (Ethernet), addressing and forwarding (IP), distance vector and link state routing, queueing and scheduling, reliable transport, congestion control (TCP), quality of service, naming (DNS), and security.

back to top     


 
Non-Goals

This course won't:

  • make you an expert in managing networks, including your home network.
  • turn you into a behemoth protocol programmer.
It will help with both, by making sure you understand the central issues, engineering trade-offs, and successful approaches that are being used.

back to top     


 
Assignments

There will be four kinds of assignments given throughout the class:
  • Textbook Reading: you will be given reading assignments from the course textbook associated with each lecture. You should try to finish the reading before coming to the lecture. We will be covering a large fraction of the topics in the text. It won't be easy to catch up if you fall behind. Don't.
     
  • Textbook(-style) questions: Some assignments may include questions from the text, occasionally supplemented with similar questions I invent. These assignments should be handed in at the end of class on the due date. (Make sure you read the late policy below.)
     
  • Additional Reading and Analysis: The text does a great job of covering the key points over a wide breadth of topics. We'll supplement this by reading key papers about some more narrow aspect of each topic. As well as providing greater depth on individual topics, the reading taken as a whole should help you become more sophisticated in undestanding and performing engineering analyses of problem solutions. You will hand in a no-more-than 2 page writeup on each reading
     
  • Programming: You don't want to come out of a networking course having never once written code that sends data across an actual network. You won't.

    The default implementation language is Java. As skeleton code will be provided in it, it's unlikely that there will be attractive alternatives. If you'd like to use something else, though, just ask.

    The default system for our use is attu.cs.washington.edu. It's very likely other systems will work for you as well. The only problem we've run into in the past with some other machines is that the version of Java installed was not sufficiently up to date.

This is a 4 credit hour course, meaning that it deserves something like 12-16 hours of your undivided attention per week. Try to reserve hours for the reading and stick to your schedule, even if some programming assignment that isn't going as well as you expected (i.e., all of them, for all of us) is coming due shortly.

back to top    


 
Grades

     I reserve the right to "fine tune" this later, but grades will be assigned roughly as follows:

  • Homeworks: 50%
  • Midterm: 20%
  • Final: 30%

back to top     


 
Exams

     There will be one midterm and a final exam for this course:
  • Midterm: Wednesday, October 31
  • Final : 2:30pm-4:20pm, Thursday December 13, 2007

back to top    


 
Policies

(Many of these policies are taken verbatim from previous instances of this course.)
  • Late Policy: unless otherwise indicated, assignments are due by the end of lecture on their due date. Generally speaking, assignments will be due on Wednesdays, and solutions discussed in section on Thursdays. Assignments can be turned in up to the beginning of the first section, but will have a 15% penalty applied. We will not consider granting Incompletes as grades.

  • Reasonableness: the "Reasonable Person Principle" applies throughout this course. This principle simply states that a reasonable request made in a reasonable fashion shall be reasonably handled by reasonable persons. The TA's and I are reasonable people, and experience says that most all of you are as well.

  • Cheating vs. Collaboration: Collaboration is a very good thing. On the other hand, cheating is considered a very serious offense. Please don't do it! Concern about cheating creates an unpleasant environment for everyone. If you cheat, you risk losing your position as a student in the department and the college. The department's policy on cheating is to report any cases to the college cheating committee. What follows afterwards is not fun.

    So how do you draw the line between collaboration and cheating? Here's a reasonable set of ground rules. Failure to understand and follow these rules will constitute cheating, and will be dealt with as per university guidelines.

    The Gilligan's Island Rule: This rule says that you are free to meet with fellow student(s) and discuss assignments with them. Writing on a board or shared piece of paper is acceptable during the meeting; however, you should not take any written (electronic or otherwise) record away from the meeting. This applies when the assignment is supposed to be an individual effort or whenever two teams discuss common problems they are each encountering (inter-group collaboration). After the meeting, engage in a half hour of mind-numbing activity (like watching an episode of Gilligan's Island), before starting to work on the assignment. This will assure that you are able to reconstruct what you learned from the meeting, by yourself, using your own brain.

    The Freedom of Information Rule: To assure that all collaboration is on the level, you must always write the name(s) of your collaborators on your assignment.

back to top   


Computer Science & Engineering
University of Washington
Box 352350
Seattle, WA  98195-2350
(206) 543-1695 voice, (206) 543-2969 FAX
[comments to zahorjan at cs.washington.edu]