Search for contacts, projects,
courses and publications

Computer Architecture


Langheinrich M.

Course director

Dominici G.


Kirilenko D.


Laporte M.



In this course, students learn how one can describe the basic operations in a computer using digital logic, and how these operations can be realized in both hardware and software. Students gradually combine these basic operations into a "microarchitecture" -- a software-controlled datapath that connects digital memory with an arithmetic-logical unit -- on which one can then build more and more complex "layers" that will finally allow the writing of complex programs in human-readable programming languages. This knowledge not only forms the basis for understanding how something as complex as a modern computer actually works, but is also a pre-requisite for learning about many advanced topics in informatics.


After successfully completing the course, students will know the basic principles of how a computer functions, from the very basic building blocks (transistors and logical gates) to the more complex components (CPU, memory, buses, I/O interfaces).

Teaching mode

In presence

Learning methods

Frontal lectures, weekly exercises & quizzes (ungraded), lab sessions

Examination information

The final grade will be based on a student's Midterm (30%) and Final (70%) exam scores. Optional assignments and/or quizzes (corrected but ungraded) will offer continuous learning feedback throughout the semester.