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.
The basic objectives of the course are to understand the role and basic concepts of
operating systems, of computer networks and of hardware design.
Furthermore, it is expected that each student understands one further subject of choice in
one these three areas in greater detail, and is able to work on this subject and explain it to other
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 their subjects, and
will introduce some basics of the Unix shell and programming.
We then proceed by forming small groups and each group picks one subject that aligns with the
potential capabilities and interest of the group members.
Each group 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: 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
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.
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.
Jim Kurose, Keith Ross. Computer Networking: A Top Down Approach, 8th ed. Pearson, 2020.
David M. Harris and Sarah L. Harris. Digital design and computer architecture, 2nd ed. Elsevier, 2012.
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 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
Individual questions should be directed to (and not to personal email addresses, as these may get lost among other emails).
The contact information can also be found on the website of the course.
Onderwijscoördinator Informatica, Riet Derogee