-----------------------------------------------------------------

Computer Science, Fall 2007

CS242 “Computer Networks”

Goals

-----------------------------------------------------------------

 Image courtesy of the Research Group Computer Networks, University of Paderborn (Germany)

A computer network with different components: Static wired hosts, routers, access points and dynamically connected wireless devices such as PDAs, GPS units, cellphones, WiFi laptops, first responder emergency units and sensors.

 

 

 

 

Instructor: Daniel Bilar (dbilar, x3093)

Lectures:  Monday and Thursday 2:50pm-4pm, SCI 270

Lab:  We may use some lecture time slots for lab purposes

Class Book: Kurose, J. and Ross, K. , "Computer Networks", 4th edition (2007), Addison Wesley , ISBN 0321497708

Course homepage: http://cs.wellesley.edu/~cs242

Office hours: MTh 4:30-5:30pm

-----------------------------------------------------------------

Cannot tell a mixed-impedance ARCnet from a Multistation Access Unit without overtaxing your MAC convergence function? Me neither. Our goal is not primarily to learn acronyms by heart, but to understand on a conceptual and systemic level what computer networking is about.

How does this global network infrastructure work and what are the design principles on which it is based? The primary object of study will be the commonly known `Internet' (which stands for INTERconnected NETworks) and the five layers (application, transport, network, link, and physical) used to implement it.

We will give an overview of the components, algorithms, protocols, and structures of computer networks in the context of the forces - political, historical, optimization and fortuitous- that shaped them. The topic space is immense, but will include the Internet design philosophy and implementations; the WWW; protocol layers; network security and much more. We may, if time permits, looks at the structure of non-computer networks such as social/friendship networks.

We will strive to explain the concepts as a learning community in plain English, whenever possible.

Prerequisites: The only prerequisite is CS230 or by permission of the instructor. We will assume a knowledge of elementary data structures such as arrays, records, stacks, queues, and trees.

-----------------------------------------------------------------

Links for this class:

Lecture notes

Assignments

Papers

Expectations on working together

Other useful links for this class:

Wireshark

Encyclopedia of computer networking

How Stuff Works

How to read a scientific paper efficiently

How to give a technical presentation

-----------------------------------------------------------------

Goals: This course has set of specific and general learning goals: First, we want to gain an understanding of problems that real-life computer networks were designed to solve, the abstractions, metrics and constraints (technical and other) that drove the design processes, and the various implementations of said design.

In parallel, we will acquire techniques and practices to learn - how to negotiate difficult technical material, efficiently approach it, how to read network traces,  how to deal step-by-step with unknowns. 

Students who take this class should be prepared to have the discipline to keep up with the readings. In addition, we will have practical hands-on units, some math and some programming.

Not to worry .. we will - as a learning community together - learn appropriate analytical tools, modeling and work processes to do this.

(major) Understand the fundamental networking problems and solution techniques

(major) Appreciate the details of several protocols as example implementations of fundamental principles

(major) Efficiently read, negotiate, investigate and absorb technical concepts

(minor) Creative and interesting synthesis in the culminating project

(minor) Use software tools to look under the network `hood'

(minor) Present technical concepts to an audience

-----------------------------------------------------------------

Expectations: I will do my best to make the course interesting, worthwhile and pertinent to your education. You will have plenty of opportunities to show that me you are making progress. I will evaluate your work fairly and constructively and I will be of assistance in and out of class to help you reach these learning goals.

From you, if you choose to take this class, I will expect a commitment to your fellow students and to me. I will expect that you attend class regularly, prepared; that you will make an honest effort to grapple with and reflect on the material; that you will continuously identify problems you may have and find ways to overcome them, on your own and with my help.

Evaluations: There will be homeworks, labs, and a culminating project with a class presentation. Regularly handing in a progress report counts, as well.

Readings: Our material will be drawn from the texbook, but we may also read research papers, industry white papers, and RFCs.

Progress Reports: The weekly progress report is a very important part of the class: It is here that I can gauge whether you understand the new concepts. Each week everyone in the class is required to send me a progress report via email telling me how the week went for you.

For example, you might want to include what you accomplished in the course during the week, what went well in the lectures or labs, what went poorly, what is still confusing to you, what made you excited and what made you howl out into the night. You should also include which class meetings your report pertains to (which implies your attendance).

The purpose of the report is to (a) have you reflect on what you accomplished/learned (or didn't accomplish or learn) during the week, and to (b) give me feedback on how I'm doing as your instructor and how well you are picking up the material. The weekly reports are due regularly by the end of the day each Friday, starting Friday, Sep 14th , 2007. For a couple of different report styles, see here, here, here, here , here and here

Homework: There will be occasional small homework assignments.

Classroom activity: Before each class, I will expect you to hand in assigned homework/labs, do the assigned reading and review the material from the previous class. Since the new material will depend on what was previously covered, reviewing will help you as the course progresses. There will be many opportunities in class for discussion and you will not be able to participate if you do not review and keep up.

During discussions, I do not expect you to read my mind when I ask questions, but I do expect you to try to give reasons for your answers. Nobody will be put down for incorrect answers or seemingly “stupid” questions – there are no power games in this class. We are a community of learners, me included.

-----------------------------------------------------------------

Culminating Project: The culminating project may be completed in groups of two. It can take one of two forms:

1.      A theoretical reaction paper, in which you read at least three topic-related papers, at least one of which is not on the required reading list. You should then write approximately 5-8 pages in which you address the following points:

What is main technical content of the papers?

Why is it interesting in relation to one or more course topics?

What are the weaknesses of the papers, and how could they be improved?

What are some promising further research questions in the direction of the papers, and how could they be pursued?

The discussion should go beyond a mere summary of the papers. For instance, you might discuss some weaknesses in the papers, and suggest alternative approaches; formulate different hypotheses than the papers and suggest experiments that could be used to validate the hypotheses; discuss related work from a different field that the authors were not aware of, or a potential application of the work to a different field.

2.      An empirical project, in which you experimentally evaluate an algorithm, a model, construct a program or measure on an interesting data set. You may program something, use network simulation software (or other types of suitable software). You will submit a report approximately 5-10 pages long.

For either form, you will submit a 1-page proposal by the seventh week of classes. Format will be posted. Projects are subject to approval.

Student Presentations:

Everyone will give one presentation during the semester. The presentations will be about 30 minutes long. You will give a lecture to the class, including answering all questions from the class. It will be beneficial (but it is not required) for you to give a dry run of your lecture to me before you give it to the class. See the handout Technical Presentations for advice on giving a good talk.

-----------------------------------------------------------------

Attendance: You are expected to attend every class. If you are unable to make a class, please inform me of the reasons beforehand via email. Please make every effort to attend. Flagrant absenteeism will be noted. You are responsible for all information presented in class, whether or not you are there.

Collaboration and Working together: Please give credit where credit is due. There is no shame in not knowing, but there is in dishonesty. For a complete discussion, please read "Expectations of Working Together"


-----------------------------------------------------------------

Exams and Grades: I do not curve, because it encourages grade jockeying and zero-sum game mentality. If everyone achieves an A, that is fine with me. The course grade will be determined as follows:

Labs/Progress reports

60%

Project

20%

Presentation

10%

Class participation

10%

The minimum grade you will receive is shown below. Grades may be raised and plusses or minuses added at my discretion.

Number

Grade

Meaning

90-100%

A

All major and minor goals achieved

80-89%

B

All major goals, most minor goals achieved

70-79%

C

All major goals, some minor goals achieved

60-69%

D

One major goal achieved, but student is not prepared for advanced work

below 60%

F

None of the major goals achieved

-----------------------------------------------------------------

Learning strategies:  Every course has effective ways of achieving mastery of the material. This course is no different. Among the strategies you should adopt are

Negotiate the readings smartly : Assiduously do the readings and use efficient techniques to negotiate the content. You will get a whole lot more out of the lecture; in addition, these techniques are completely general.

Cooperative learning: Explain the concepts in your own words to a fellow student, i.e. be a tutor to a tutee. This is so valuable I cannot stress it enough. By doing so you consolidate and integrate your own knowledge, and you learn a great deal about how to learn since you have to diagnose the tutee ’s learning problem in order to help him/her overcome it.

Experiment: Do not be shy to go to a computer and try out concepts mentioned in class and in the papers. You can use Wireshark, Java, C, Matlab - whatever floats your boat and you are comfortable using.

Start your culminating project early.

-----------------------------------------------------------------

This syllabus is subject to change. The authoritative version is always found on the CS 242 course homepage, http://cs.wellesley.edu/~cs242

August 22th  2007, Daniel Bilar (dbilar at wellesley dot edu)