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.
- "Structured Computer Organisation", Andrew S. Tanenbaum, Todd Austin. 6th Edition (International), Pearson Education, 2012, ISBN-10: 0273769243, ISBN-13: 978-0273769248