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
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
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.
The basic objectives of the course are to understand what digital computing systems are and
how such systems are organised.
Specifically, we will study the role of abstraction and protocols, and how operating systems,
computer networks and computer architecture underpin the development and maintenance of
digital computing systems.
Additionally, each student will understand at least one further subject of choice in one these
three areas in greater detail, and is able to explain this subject to other students and
to work on a project within this subject as a team.
Central objectives are therefore also the organisation of team work, writing and presenting.
Mode of instruction
After an introductory phase, the course will consist out of self-study and project work.
Concretely, initial lectures will give an overview over the three areas and the learning goals of the course.
We then proceed by forming teams and each team picks one subject that aligns with the
potential capabilities and interest of the members.
Each team studies this subject in-depth and presents a summary to the other students of the course.
Based on the acquired knowledge, each group proposes a small project, again aligned with the
capabilities of the group, which constitutes the remaining time of the course.
The final grade is composed as follows.
1. Oral subject presentation of the study content: 30%
2. Project (execution, outcome and written report): 50%
3. Oral project presentation: 20%
The course is passed if all three parts have been completed and the average grade (rounded) is at
If the course is not passed, the oral subject presentation (1) and project presentation (3)
can be individually retaken, while the project report (3) 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.
Presentation material 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.
Jim Kurose, Keith Ross. Computer Networking: A Top Down Approach, 8th ed. Pearson, 2020. (7th edition suffices)
David M. Harris and Sarah L. Harris. Digital design and computer architecture, 2nd ed. Elsevier, 2012.
The following books are not integral part of the course but may be used for further self-study.
Abraham Silberschatz, Peter B Galvin and Greg Gagne. Operating System Concepts 10 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.
In MyTimetable kun je alle vak- en opleidingsroosters vinden, waarmee jij je persoonlijke rooster kunt samenstellen. Onderwijsactiviteiten waarvoor je in uSis staat ingeschreven, worden automatisch in je rooster getoond. Daarnaast kun je My Timetable gemakkelijk koppelen aan een agenda-app op je telefoon en worden roosterwijzigingen automatisch in je agenda doorgevoerd; bovendien ontvang je desgewenst per e-mail een notificatie van de wijziging.
Voor meer informatie over Brightspace kun je op deze link klikken om de handleidingen van de universiteit te bekijken. Bij overige vragen of problemen kan contact opgenomen worden met de helpdesk van de universiteit Leiden.
Communication will mainly happen through the fora on Brightspace.
Individual questions should be directed to email@example.com (and not to personal email
addresses, as these may get lost among other emails).
The contact information can also be found on Brightspace and the website of the course.
Onderwijscoördinator Informatica, Riet Derogee