Modern computer systems consist of many abstraction layers 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.
The basic objectives of the course are to understand what digital computing systems comprise and how they are organised.
Specifically, you will understand
the role of abstraction and protocols in computer systems;
how operating systems, computer networks and computer architecture underpin the development and maintenance of digital computing systems;
one subject of choice in one these three areas in greater detail according to specific learning goals.
Moreover, you will put this knowledge to practice in a project with your chosen subject, again guided by specific learning goals provided during the course. Finally, you will learn how to work in teams, create and execute a project, present knowledge to others and guide other through the process of learning about your subject.
You will find the timetables for all courses and degree programmes of Leiden University in the tool MyTimetable (login). Any teaching activities that you have sucessfully registered for in MyStudymap will automatically be displayed in MyTimetable. Any timetables that you add manually, will be saved and automatically displayed the next time you sign in.
MyTimetable allows you to integrate your timetable with your calendar apps such as Outlook, Google Calendar, Apple Calendar and other calendar apps on your smartphone. Any timetable changes will be automatically synced with your calendar. If you wish, you can also receive an email notification of the change. You can turn notifications on in ‘Settings’ (after login).
For more information, watch the video or go the the 'help-page' in MyTimetable. Pleas note: Joint Degree students Leiden/Delft have to merge their two different timetables into one. This video explains how to do this.
Mode of instruction
After an introductory phase, the course will consist 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. To reinforce the knowledge, each team has to provide a multiple choice quiz with their presentation that all students have to take. Next, group proposes a project, through which specified learning goals have to be acquired. Feedback is provided on the feasibility and sufficiency of the proposal. The remaining time of the course is dedicated to carry out the proposed project.
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.
1. Presentation that summarises study topic (group grade): 20%
2. Multiple choice quiz on presentation (group grade): 20%
3. Project execution and report (group grade): 20%
4. Individual project task (individual grade): 40%
The course is passed if all parts, including the quizzes, have been completed, the individual project task (4) is at least graded with a 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.
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.
From the academic year 2022-2023 on every student has to register for courses with the new enrollment tool MyStudymap. There are two registration periods per year: registration for the fall semester opens in July and registration for the spring semester opens in December. Please see this page for more information.
Please note that it is compulsory to both preregister and confirm your participation for every exam and retake. Not being registered for a course means that you are not allowed to participate in the final exam of the course. Confirming your exam participation is possible until ten days before the exam.
Extensive FAQ on MyStudymap can be found here.
Communication will mainly happen through the fora on Brightspace. Individual questions should be directed to firstname.lastname@example.org (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.