Instructors: Marc Langheinrich
Academic Programs: Bachelor of Science in Informatics
Workload: 6 ECTS
The class teaches 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). 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, such as Hardware/Software Co-Design, System Programming, Compilers, and Operating Systems.