Essentials of Computing Systems, Autumn 2021
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.
This course focused on digital computer systems. However, students may choose to study other kinds of computing systems (analog, biological, etc.) if they align with the learning goals of the course.
Contact
The course is given by Henning Basold and Tanjona Ralaivaosaona. Communication will mainly happen through Brightspace. Individual questions should be directed to LIACS - Essentials of Computing Systems (EssenCS) 2021 <essencs21@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
- Follow four introductory lectures
- Form a team with other students
- Choose and study a specialised topic as team
- Propose and carry out a small project that fits the learning goals of your study topic
- Prepare an intermediate presentation on your study topic and the proposed project
- Prepare a final presentation of your project
- Write a project report
The timeline can be found below.
Presentation Sessions
Throughout the semester, we will have sessions for watching and discussing the videos that you prepare as teams, see the schedule below. The videos are 10 minutes long and we will have about 5 minutes for discussion after each. Attendance of the presentation session is mandatory, either on site or on Zoom.
Project
Your project will have to show that you reached the general learning goals of the course and the specific learning goals of your chosen topic. The specific learning goals are separated into operating systems, computer networks and computer architecture.
Project Presentation
In the project presentation, you introduce your colleagues to your project, what you have done, and how the project went. The presentations has to be a recorded 5 minute video. We will have a final session where we get together to discuss the projects and finish the course.
Assessment method
The final grade is composed from a team grade and a personal grade as follows. First the team receives a grade that consists of
- Intermediate presentation with weight 30%,
- Project (execution, outcome and written report) with weight 50%, and
- Final project presentation with weight 20%. Each team member receives a personal grade that is determined by their individual involvement in the team work, as it is observed by the tutors and through an evaluation of the team by its members. The final grade of each course participant is obtained by weighing the team grade by 60% and the individual grade by 40%.
For example, if team “Bird’s Eye” obtained an 8 in both presentations and a 9 in the project, and Klaus is evaluated with a personal grade of 7, he receives a 7.6 (rounded to 7.5). On the other hand, if Alice receives a personal grade of 9, she will obtain an 8.4 (rounded to 8.5).
The course is passed if all three parts have been completed, and the team and personal grade are at least 6. If the course is not passed, the intermediate presentation (1) and project presentation (3) can be individually retaken, and the project report can be improved with the feedback provided by the tutors.
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.
- Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau. Operating Systems: Three Easy Pieces, Version 1.00. Arpaci-Dusseau Books, 2018. (Freely available)
- Jim Kurose, Keith Ross. Computer Networking: A Top Down Approach, 8th ed. Pearson, 2020. (7th and 8th edition on Library Genesis)
- David M. Harris and Sarah L. Harris. Digital design and computer architecture, 2nd ed. Elsevier, 2012. (E-Book available via the above link)
The course may also refer to the following books, which can be used for further self-study.
- Abraham Silberschatz, Peter B Galvin and Greg Gagne. Operating System Concepts, 10th ed. Wiley Publishing, 2018.
- Andrew S. Tanenbaum. Computer Networks, 5th ed. Pearson, 2011.
- Blaine Readler. Verilog by Example: A Concise Introduction for FPGA Design, Full ARC Press, 2011.
- Adel S Sedra, Kenneth C. Smith, Tony Chan Carusone and Vincent Gaudet. Microelectronic Circuits, 8th ed. Oxford University Press, 2020.
- Charles Petzold. Code: The Hidden Language of Computer Hardware and Software. Microsoft Press, 2000.
- David M. Harris and Sarah L. Harris. Digital design and computer architecture, ARM Edition, Elsevier, 2016.
Course Schedule
Week 1: Organisation and Introduction
- Introductory lecture on Wednesday, 08 September, 14:15: information about course and overview over the three areas operating systems, computer architecture, computer networks and their relation.
- Forming teams and choosing a team name on Brightspace (Deadline: Thu, 10 Sep, 23:59 CEST)
Week 2: Overview over Course Content and Operating Systems
- Lecture on Wednesday, 15 September, 14:15 about the essentials of operating systems. The presentation is online available.
- Teams meet and schedule meetings with tutors
Week 3: Overview Lecture Computer Networks
- Lecture on Wednesday, 22 September, 14:15 about the essentials of computer networks. The presentation is online available.
Week 4: Overview Lecture Computer Architecture
-
Lecture on Wednesday, 29 September, 14:15 about the essentials of computer architecture The presentation is online available.
-
Teams pick study topic (Deadline: Fri, 01 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, 01 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 a short presentation for your colleagues in this course (the deadlines are indicated below). Starting with week 6 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!
We will distribute the topic assignment Monday, 04 October.
Week 5: Beginning of Self-Study
- Self-study in teams
- Meeting with instructors (individual groups) during and around lecture time on Wednesday, 06 October, 14:15. Teams will be able to pick time slots.
Week 6: Self-Study and Project Proposal
- No session on Wednesday, 13 October
- Self-study in teams
Week 7: Self-Study and Project Proposal
- Intermediate presentation session Wednesday, 20 October, 14:15 with discussion
- Self-study in teams
- Teams propose project (Deadline: Wed, 20 Oct, 23:59 CEST)
- Tutors provide feedback on proposal by Friday, 22 October.
Week 8: Project work and Self-Study
Note: Nothing on 27 October (test week)
- Self-study in teams
- Teams execute project
Week 9: 1st Presentation Session, Project work and Self-Study
- Intermediate presentation session Wednesday, 10 November, 14:15 with discussion
- Self-study in teams
- Teams execute project
- Project milestone (Deadline: Fri, 12 Nov, 23:59 CEST)
- Tutors provide feedback on milestone by Wednesday, 17 November
Week 10: Full Day Presentation Session and Project work
- Intermediate presentation session Wednesday, 17 November, 09:15 until 16:00 with discussion
- Teams execute project
Week 11: 3rd Presentation Session and Project work
- Intermediate presentation session Wednesday, 24 November, 14:15 with discussion
- Teams execute project
Week 12: 4th Presentation Session and Project work
- Intermediate presentation session Wednesday, 01 December, 14:15 with discussion
- Teams execute project
Week 13: 5th Presentation Session, Project Report and Presentation
- Intermediate presentation session Wednesday, 08 December, 14:15 with discussion
- Teams prepare project report and final presentation (Deadline: Fri, 10 Dec, 23:59 CEST)
Week 14: Project Presentation
- Project presentation session Wednesday, 15 December, 09:15 with discussion