Understanding how computers work at the hardware level, from logic gates to processor design. This module covers computer systems, memory hierarchy, processor architecture, and the relationship between hardware and software.
Recommended:
- Programming - Understanding of basic programming concepts helps contextualize how software interacts with hardware
- C (Intermediate) - Low-level programming for understanding memory management and hardware interaction
- Assembly (Beginner) - Understanding of assembly language for processor-level operations
- HDL (Hardware Description Language) (Beginner) - For Nand2Tetris hardware simulation
-
Computer Systems: A Programmer's Perspective by Randal Bryant and David O'Hallaron (3rd Edition)
- Practical programmer-oriented approach to computer architecture
- Recommended: Chapters 1-6 for foundational understanding
- Level: Intermediate
- ISBN: 978-0134092669
-
The Elements of Computing Systems (Nand2Tetris) by Noam Nisan and Shimon Schocken
- Build a computer from first principles (logic gates to Tetris)
- Cohesive understanding of entire system
- Recommended: First six chapters and associated projects
- Level: Beginner to Intermediate
- Available online
-
Computer Organization and Design by David Patterson and John Hennessy
- Classic text, more hardware-focused
- Advanced reading after CS:APP or Nand2Tetris
- Level: Intermediate to Advanced
- Institution: UC Berkeley
- Platform: Berkeley course site / Internet Archive
- Description: Covers C programming, assembly, processor design, memory hierarchy, parallelism
- Pairs with: CS:APP textbook
- Platform: Coursera / nand2tetris.org
- Description: Project-based course building a complete computer system from logic gates
- Pairs with: The Elements of Computing Systems textbook
- Nand2Tetris website - Projects and software for building a computer
- CS:APP Student Site - Labs and resources
-
Source: Nand2Tetris projects (Chapters 1-6)
-
Difficulty: Intermediate
-
Estimated time: 50-100 hours
-
Topics: Logic gates, ALU, CPU, assembler, hardware simulation
-
Source: CS:APP labs
-
Difficulty: Intermediate to Advanced
-
Estimated time: 10-20 hours per lab
-
Topics: Bit manipulation, bomb lab, buffer overflow, memory allocation
- Build a complete computer system (Nand2Tetris)
- Complete CS:APP lab assignments
[Personal notes and key insights can be added here during study]
- Completed core textbook readings (CS:APP Ch 1-6 or Nand2Tetris Ch 1-6)
- Watched primary video lecture series
- Finished Nand2Tetris projects or CS:APP labs
- Understanding of processor architecture and memory hierarchy
- Review and reinforcement