Audience

This core lecture (Stammvorlesung) addresses Bachelor and Master students in Computer Science and related programs.
Bachelor students must have passed the base lecture Programming 1.
The lectures Math 3 (Stochastics) and Programming 2 are recommended.
The language of the course is English; the language of the programming lab is C.

Contents

The course will explain data networks.
Internet protocols will be used to motivate and explain basic concepts in data networks, as the Internet is today's data network par excellence.
The lecture is split into four roughly equivalent parts:
(1) A conceptual overview,
(2) network models,
(3) concrete solutions, and
(4) a programming lab.

Conceptual Overview

Based on the first five chapters of the book by Kurose/Ross, but omitting many technical details, you will learn about the challenges of making a possibly world-wide data network work, about the structure of the solution we know as the Internet, and about its implementation from a very high-level view.

Concrete Solutions

We will revisit the problems and solutions sketched in the first part in significantly more detail, covering the full details of subjects such as error correction, routing or medium access.
We will mainly draw on the books by Kurose/Ross and Bertsekas/Gallager, supplemented by other sources.

Lab

To conclude our tour of data networks and the Internet, you will experience the challenges—and fun!—of implementing (parts of) such a network yourself.

Dates

Lectures

Lectures take place between 11 April and 21 July at the following times:

Mon

08:30-10:00

E1 3, HS 002

Thu

08:30-10:00

E1 3, HS 002

Tutorials

Tutorials take place on the following days, starting from 10 May and ending on 27 July:

Tue

14:00-16:00

E1 3, SR 107

Tue

16:00-18:00

E1 3, SR 016

Wed

08:30-10:00

E1 3, SR 015

Wed

10:00-12:00

E1 3, SR 107

Exams

There will be three written exams, one for each of the first three parts of the lecture, denoted EX1 through EX3.
For each exam, there will also be a re-exam (REXi); REX3 will be an oral exam.
Participation in the re-exams is independent of participation in the regular exams.
The exam schedule is as follows:

REX1:

Sat, 2011-04-30, 11:00-12:00

REX1:

Wed, 2011-05-18, one hour in 18:00-20:00

REX2:

Sat, 2011-06-18, one hour in 09:00-10:30

REX2:

Fri, 2011-09-30, 13:30-14:30

REX3:

Thu, 2011-09-29, 13:30-14:30

REX3:

week 42, likely 17 or 18 October

Programming Lab

The fourth part of the lecture is a programming lab.
The assignment will be announced shortly after EX2.
We will require completion of a first milestone by the end of the lecture period and approval of the complete project before 23 September.
Working in groups will be mandatory; the group size will be three students.

Grading

Your grade will be calculated from the results of the exams, their re-exams, and the lab.
Informally, to pass the course, you have to pass EX1 (or REX1), at least one of EX2 (or REX2) and EX3 (or REX3), and successfully complete the lab. Formally:

In each exam or written re-exam, you can achieve up to 60 points. Oral re-exams will be graded directly. For each written exam, there will be a monotonically decreasing function mapping points to numbers in [1, 4] ∪ {5.0}. If you pass the programming project, you can achieve a bonus in the range [0, 1]. Let N(EXi)/N(REXi) denote the number (or grade) you achieved in an exam. By abuse of notation, we use EXi = min{N(EXi), N(REXi)}. Furthermore, let P be true iff you passed the lab, and BP the bonus you achieved. Your final grade will then be calculated as follows: