Core Systems

This section explores how computers work at a fundamental level, from basic logic gates to operating systems and network protocols. You’ll gain a deep understanding of the systems that run our software.

Topics Covered

  • Procedural programming
  • Manual memory management
  • Boolean algebra
  • Gate logic
  • Memory
  • Computer architecture
  • Assembly
  • Machine language
  • Virtual machines
  • High-level languages
  • Compilers
  • Operating systems
  • Network protocols
  • And more

Course Sequence

CourseDurationEffortPrerequisites
Build a Modern Computer from First Principles: From Nand to Tetris6 weeks7-13 hours/weekC-like programming language
Build a Modern Computer from First Principles: Nand to Tetris Part II6 weeks12-18 hours/weekNand to Tetris Part I
Operating Systems: Three Easy Pieces10-12 weeks6-10 hours/weekNand to Tetris Part II
Computer Networking: a Top-Down Approach8 weeks4-12 hours/weekAlgebra, probability, basic CS

Why These Courses?

This sequence provides a comprehensive bottom-up understanding of computer systems:

  1. Nand to Tetris teaches you how to build a computer from fundamental logic gates
  2. Nand to Tetris Part II continues by implementing a compiler and an operating system
  3. Operating Systems dives deeper into OS concepts, including virtualization, concurrency, and persistence
  4. Computer Networking explains how computers communicate through network protocols

Learning Outcomes

After completing the Core Systems sequence, you will understand:

  1. How computers are built from the transistor level up
  2. How hardware and software interact
  3. How operating systems manage resources and provide abstractions
  4. How computer networks enable communication between systems
  5. How compilers translate high-level code to machine code

Importance for Computer Science

Systems knowledge is critical because:

  • It removes the mystery of how computers work
  • It helps you write more efficient code
  • It enables you to debug complex problems
  • It provides insight into performance issues
  • It forms the foundation for many specialized fields (embedded systems, cybersecurity, etc.)

Whether you plan to work at a high level of abstraction or close to the hardware, understanding the full stack of computing will make you a more effective computer scientist.