Please find up to date course information in Canvas:
This course gives an introduction to the key concepts of digital design, computer architecture, compliers and software engineering. This is done constructively, by building a simple, but general purpose computer from basic digital building blocks up to the operating system. In this process we explore many ideas and techniques used in the design of modern hardware and software systems.
During the course, students build the software emulation of a computer, through the sequence of small projects, each addressing a building block of a modern computing system.