Skip to content

Latest commit

 

History

History

README.md

Computer Architecture

English | 简体中文

Overview

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.

Prerequisites

Recommended:

  • Programming - Understanding of basic programming concepts helps contextualize how software interacts with hardware

Programming Languages

  • 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

Recommended Resources

Textbooks

  • 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

Video Lectures

Berkeley CS 61C - Great Ideas in Computer Architecture

  • Institution: UC Berkeley
  • Platform: Berkeley course site / Internet Archive
  • Description: Covers C programming, assembly, processor design, memory hierarchy, parallelism
  • Pairs with: CS:APP textbook

Nand2Tetris Course

  • Platform: Coursera / nand2tetris.org
  • Description: Project-based course building a complete computer system from logic gates
  • Pairs with: The Elements of Computing Systems textbook

Online Resources

Exercises

Practice Problems

  • 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

Projects

  • Build a complete computer system (Nand2Tetris)
  • Complete CS:APP lab assignments

Study Notes

[Personal notes and key insights can be added here during study]

Progress Tracking

  • 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