Lecture: Computer Networks (WS23/24)

In this lecture-based course we will explore the principles underlying the design of computer networks and the Internet. We will discuss the layered architecture of the network stack and dive into the network protocols at each layer that make data communication happen from one place to another. Specific topics that will be covered include modulation, addressing, packet switching and forwarding, routing, reliable delivery, congestion/flow control, and applications like DNS, world-wide-web, and video streaming. The lecture will be accompanied by exercise sessions for homework assignments.

Course In­form­a­tion

Learning Goals

After taking this course, you will be able to

  • Explain the basic principles of computer networks and the Internet.
  • Describe the layered architecture and explain the essential function(s) in each layer.
  • Apply basic information theory and network protocol specifications to calculate network properties such as maximum bit rate, congestion window size, data transfer time, etc.
  • Implement network protocols to build own customized networks and networked applications.

 

Meth­od of As­sess­ment

The course goals will be assessed by a final written exam (100% of the final grade). Throughout the course, there will be non-graded exercises to help with the preparation for the exam. There will also be two project assignments and passing each of them can bump up your final grade by one step (max. two bonus steps).

 

Text­books

  • Andrew S. Tanenbaum, David J. Wetherall. Computer Networks (5th edition).
  • Larry Peterson, Bruce Davie. Computer Networks: A Systems Approach (online at book.systemsapproach.org/).

 

Pre­requis­ites

Since this is a third-year BSc course, it is expected that you already have knowledge about computer organization, operating systems, systems programming with C, and other programming languages like Python.

Teach­ing Ma­ter­i­al

All teaching materials are released here. If you would like to use them in your own course and would like to have access to source files, please get in touch. 

Lecture Slides

  • Lecture 1: Introduction [pdf]
  • Lecture 2: The Physical Layer [pdf]
  • Lecture 3: The Link Layer - Part 1 [pdf]
  • Lecture 4: The Link Layer - Part 2 [pdf]
  • Lecture 5: The Network Layer - Part 1 [pdf]
  • Lecture 6: The Network Layer - Part 2 [pdf]
  • Lecture 7: The Transport Layer - Part 1 [pdf]
  • Lecture 8: The Transport Layer - Part 2 [pdf]
  • Lecture 9: The Transport Layer - Part 3 [pdf]
  • Lecture 10: DNS and The Web [pdf]
  • Lecture 11: Video Streaming [pdf]
  • Lecture 12: Linux Networking [pdf]