Fundamentals of Computer Systems, Autumn 2020

Description

Modern computer systems consist out of many layers of abstraction and have the possibility to communicate with other systems in many ways. During this course, we take a journey through these layers and the communication mechanisms.

On the top layer of general purpose computers, phones, etc. we find applications, which are the interface between humans and the computer. That applications run smoothly and safely is ensured by an operating system. The operating system is our first part of the journey, during which we will see how operating systems schedule processes, connect applications with hardware and ensure a smooth operation of the computer.

The next part of the journey is how computer communicate with each other through networks. We start again from the perspective of an application and then make our way through the operating system all the way to how data is transported physically from one computer to another. This will allow us to see how data corruption and manipulation can be prevented.

In the final part of the journey, we go all the way down to the circuits underlying computer systems. Here, we will see how circuits are built, a CPU works and how we can make our own computer for special tasks. We end on the lowest level: the physical underpinnings of computers. Here we will see how transistors process the information we feed them all the way from the application down here.

Contact

Communication will mainly happen through the fora on Brightspace. Individual questions should be directed to LIACS - Fundamentals of Computer Systems <func@liacs.leidenuniv.nl> (and not to personal email addresses, as these may get lost among other emails). The course is also in the studiegids.

What you will do

  • Study a topic of choice, see below.
  • Prepare three presentations or pod-casts of this topic as a team, which all have to prepared together but are given each by one team member. For teams of four, this means that one team member can, for example, do the final project presentation instead, while teams of three can share that presentation.

    The three outputs should explain different aspects of your study topic. This can either be by increasing complexity, in layers or also complementary aspects.

  • Propose and carry out a small project that fits your study topic. The project consists also of a small written report at the end.
  • Present your project to your colleagues.

The timeline of all of this can be found below.

Assessment method

The final grade is composed as follows.

  1. Oral subject presentation: 40%
  2. Project (execution, outcome and written report): 40%
  3. Oral project presentation: 20%

The course is passed if all three parts have been completed and the average grade (rounded) is at least 6. If the course is not passed, the oral subject presentation (1) and project presentation (3) can be individually retaken. Should this not be sufficient to pass the course, an individual oral examination on one subject, chosen by the instructor, can be offered, but only a passing grade can be obtained in this way.

Reading list

Slides from the introductory lectures will be provided. The course is mainly based on the following books, the introductory chapters of which constitute the basic knowledge of the course.

The course may also refer to the following books, which can be used for further self-study.

Course Schedule

Week 1: Organisation and Introduction

Wednesday, 02 September, 11:15

Week 2: Overview over Course Content and Operating Systems

Wednesday, 09 September, 11:15

In this first overview lecture, we get an overview over the three areas of this course: operating systems, computer architecture and computer networks. We then begin by discussing the essentials of operating systems. The presentation is online available for personal consumption, as is the recording of the lecture. Enjoy!

Week 3: Cancelled

Wednesday, 16 September, 11:15

The lecture had to be cancelled due to personal circumstances.

Week 4: Overview Lecture Computer Architecture

Wednesday, 23 September, 11:15

In this second overview lecture, we discuss the essentials of computer architecture. You can go through the presentation by yourself, but I recommend watching also the recording to get further explanation.

Week 5: Overview Computer Networks

Wednesday, 30 September, 11:15

This week, we do two things: we have a lecture and you will pick your study topic.

  1. Overview Lecture Computer Networks (Wed, 30 Sep, 11:15)

    In this third, and last, overview lecture, we discuss the essentials of computer networks. For convenience, you can find the presentation online.

  2. Pick Study Topic (Deadline: Fri, 02 Oct, 23:59 CEST)

    During this week, you will have to pick with your group a study topic. To do so, take a look at the map of study topics and, if needed, go through the overview lectures to find your topics of interest. When you have identified at least three possible topics, go to the selection page to fill in the preferences with your group. You have to fill in your selection latest by Fri, 02 Oct, 23:59 CEST.

    Note that, in order to study a topic, you will have to study all indicated chapters/sections from the root to the topic. You may find data integrity under in operating systems → persistence → data integrity, and thus you have to study chapter 1–4, 35–36, 46 and 45 for this topic. Don’t worry, many of these are very short! If a chapter/section is marked with an asterisk, then it is optional.

    Based on your preferences, we will assign you a topic that you will then study with your group and turn into short presentations/pod-casts for your colleagues in this course (the deadlines are indicated below). Starting with week 8 you will also propose and execute a small project based on the topic of your choice.

    Thus, choose topics that you think you would enjoy studying!

Week 6: Beginning of Self-Study

Wednesday, 07 October, 11:15

This week, we will distribute the study topics and you will receive your topic latest Monday, 05 October.

The online interaction on Wed, 07 Oct, 11:15 will be a general Q&A session and individual study help.

Week 7: Self-Study

Wednesday, 14 October, 11:15

Individual study help during online interaction (presence not mandatory).

Week 8: Second Presentation and 1st Discussion Session

Note: Nothing on 21 October (test week) and the time changes from this week on!

  • 1st Presentation due Monday, 26 October, 23:59 CEST
  • Presentation session with discussion Wednesday, 28 October, 14:15 (presence mandatory)
  • Project proposal due Friday, 30 October, 23:59 CEST

Week 9: Beginning of Project Work and 2nd Discussion Session

  • Proposal feedback by Wednesday, 04 November
  • Discussion session Wednesday, 04 November, 14:15

Week 10: Second Presentation and 3rd Discussion Session

  • 2nd presentation due Monday, 09 November, 23:59 CEST
  • Discussion session Wednesday, 11 November, 14:15

Week 11: Project Milestone and 4th Discussion Session

  • Discussion session – Wednesday, 18 November, 14:15
  • Project milestone Friday, 20 November, 23:59 CEST

Week 12: Third Presentation and 5th Discussion Session

  • 3rd presentation due Monday, 23 November, 23:59 CEST
  • Discussion session Wednesday, 25 November, 14:15

Week 13: 6th Discussion Session

Wednesday, 02 December, 14:15

  • Discussion session Wed, 02 Dec, 14:15

Week 14: Project Conclusion and 7th Discussion Session

Wednesday, 09 December, 14:15

  • Discussion session Wed, 09 Dec, 14:15
  • Project with report due Friday, 11 December, 23:59 CEST

Project Presentation

In the project presentation, you introduce your colleagues to your project, what you have done, and how the project went. The presentations can be pre-recorded and submitted at your convenience, also already in December is possible. We will have a final session where we get together to discuss the projects and finish the course.

  • Submission of pre-recorded presentations due Monday, 11 January, 08:00 CEST.

  • Presentation session starting Monday, 11 January, 09:00 (we consume and discuss together the pre-recorded presentations)

Topic Assignment

Group Topic
1 Software-defined Networks
2 Locks
3 TCP
4 Encryption, Integrity, Signatures
5 Access Control
6 Cryptography
7 Hard Disk Drives and RAID
8 Sharing CPU
9 Addressing modes and x86 (was: Arithmetic and Sequential Blocks)
10 E-Mail and DNS
11 X/Z and Karnaugh maps
12 Memory and Logic arrays
13 Advanced Scheduling
14 Timing and Parallelism
15 Crash Consistency
16 Sharing Memory
17 Embedded I/O (Micro-controller)
18 Paging
19 Data Plane (IP)
20 Authentication
21 Data Integrity
22 Concurrency Bugs
23 Basic File Systems
24 Analogue Signals and Transistors
25 Web and HTTP
26 WiFi (was: Condition Variables)
28 Programming and Compiling
29 P2P and Streaming
30 SSD
31 Multiplexer and Timing
32 Operational Security
33 WiFi
34 Error Correction
35 Control Plane
37 Multiple access and Switched LANs
38 Securing Communication
39 Memory