Essentials of Computing Systems, Autumn 2022
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 Dalia Papuc. Communication will mainly happen through Brightspace. Individual questions should be directed to LIACS - Essentials of Computing Systems (EssenCS) 2022 <essencs22@liacs.leidenuniv.nl> (and not to personal email addresses, as these may get lost among other emails).
What you will do
- Follow four introductory lectures
- Form a team with other students
- Choose and study a specialised topic as team
- Prepare an intermediate presentation of your study topic together with a quiz for your peers
- Follow the presentations of your peers and pass the quizzes for the presentations
- Propose and carry out a small project that fits the learning goals of your study topic
- Write a project report
You can get a quick idea of the course and the timeline from the overview diagram. Further details are explained is the section of the corresponding activity.
Presentations and Quizzes
As a team, you will have to prepare a presentation of your topic for your peers. Each video will be have to be 20 minutes long and be accompanied by a quiz. To pass the course, you each student has to individually pass the quizzes of all presentations.
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.
Assessment method
The multiple choice quizzes provided with each presentation have to be taken by every student individually to complete the course.
The final grade is composed as follows.
- Presentation that summarises study topic (group grade): 20%
- Quiz questions on presentation (group grade): 20%
- Project execution and report (group grade): 20%
- Individual project task (individual grade): 40%
The course is passed if all parts, including the quizzes, have been completed, the individual grade (4) is at least 6, and the average grade (rounded) is at least 6. If the course is not passed, the presentation (1) can be individually retaken, the project report (3) and individual task (4) can improved by using the provided feedback. 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.
- [AA18] Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau. Operating Systems: Three Easy Pieces, Version 1.00. Arpaci-Dusseau Books, 2018. (Freely available)
- [KR20] Jim Kurose, Keith Ross. Computer Networking: A Top Down Approach, 8th ed. Pearson, 2020.
- [HH12] 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 and learning goals may also refer to the following books, which can be used for further self-study.
- [SGG18] Abraham Silberschatz, Peter B Galvin and Greg Gagne. Operating System Concepts, 10th ed. Wiley Publishing, 2018.
- [Tan11] Andrew S. Tanenbaum. Computer Networks, 5th ed. Pearson, 2011.
- [Rea11] Blaine Readler. Verilog by Example: A Concise Introduction for FPGA Design, Full ARC Press, 2011.
- [SSCG20] Adel S Sedra, Kenneth C. Smith, Tony Chan Carusone and Vincent Gaudet. Microelectronic Circuits, 8th ed. Oxford University Press, 2020.
- [Pet00] Charles Petzold. Code: The Hidden Language of Computer Hardware and Software. Microsoft Press, 2000.
- [HH16] David M. Harris and Sarah L. Harris. Digital design and computer architecture, ARM Edition, Elsevier, 2016.
- [Cle06] Alan Clements, Principles of Computer Hardware, 2006. Oxford University Press.
Course Schedule
Deadlines
All times are in CEST. These deadlines are fixed and cannot be changed.
- Thu, 15 Sep, 23:59: Team formation
- Fri, 23 Sep, 23:59: Topic pick
- Fri, 14 Oct, 23:59: Presentation and quiz
- Mon, 24 Oct, 23:59: Project proposal
- Fri, 11 Nov, 23:59: Project milestone
- Fri, 02 Dec, 23:59: Project artefact and report
- Mon, 19 Dec, 23:59: Project improvement deadline
Feedback Dates
- Monday, 26 September: Topic assignment
- Friday, 28 October: Proposal feedback and project start
- Wednesday, 02 November: Project kick-off meeting
- Friday, 18 November: Milestone feedback
- Monday, 12 December: Project feedback and marks
Attendance
We expect you to be present during the following days in Gorleaus 4/5.
- Wednesday, 07 September, 09:00: Introduction and lecture
- Wednesday, 14 September, 09:00: Lecture
- Wednesday, 21 September, 09:00: Lecture
- Wednesday, 28 September, 09:00: Kick-off self-study
- Wednesday, 19 October, 09:00: Finalising project proposal
- Wednesday, 02 November, 09:00: Working towards project milestone
- Wednesday, 23 November, 09:00: Project work
- Wednesday, 30 November, 09:00: Finalising project
From Wednesday, 28 September on, the supervisor will be present to discuss with you the progress and help with issues.
Lectures
Week 1: Organisation and Introduction to Operating Systems
- Introductory lecture on Wednesday, 07 September, 09:00: information about course and overview over the three areas operating systems, computer architecture, computer networks and their relation.
- Lecture on the essentials of operating systems. The presentation is online available.
- Forming teams and choosing a team name on Brightspace (Deadline: Thu, 15 Sep, 23:59 CEST)
Week 2: Introduction to Computer Networks
- Lecture on Wednesday, 14 September, 09:00 with an introduction to the essentials of computer networks. The presentation is online available.
- Teams meet and schedule meetings with tutors
Week 3: Introduction to Computer Architecture and Topic Pick
-
Lecture on Wednesday, 21 September, 09:00 with an introduction to the essentials of computer architecture The presentation is online available.
-
Teams pick study area (Deadline: Fri, 23 Sep, 23:59 CEST)
During this week, you will have to pick with your group a study area. To do so, take a look at the map of study topics and, if needed, go through the overview lectures to find your areas of interest. When you have identified at least three possible areas, go to the selection page to fill in the preferences with your group. You have to fill in your selection latest by Fri, 23 Sep, 23:59 CEST.
Each area comes with three topics, which you will have to distribute over three teams in your group. 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!
Based on your preferences, we will assign you an area that you will then study with your group and turn into a short presentation for your colleagues in this course. Your project will also be in the your chosen area.
Thus, choose areas that you think you would enjoy studying!
We will distribute the topic assignment Monday, 26 September.