This site supports a course and a textbook that guide students through the construction of a modern, full-scale computer system (hardware and software) from first principles. In the process, the students practice many major computer science (CS) abstractions studied in typical CS courses and make them concrete through 12 guided implementation projects. The lectures, book chapters and projects are highly modular and one can pursue subsets of them in any order and scope.
SCHOCKEN, SHIMON AND NOAM NISAN. 2005. The elements of computing systems: Building a modern computer from first principles. Cambridge: MIT Press.