Computer Systems logo

Computer Systems

Free

Computer Systems from the Ground Up

FreeFree tier
Type
Open Source
Company
Stanford University

About Computer Systems

CS107e: Computer Systems from the Ground Up is a Stanford University course that teaches fundamental computer systems concepts through bare metal programming on a RISC-V single board computer (the Mango Pi MQ-Pro). Students learn the RISC-V architecture, assembly language, C programming, compilation, debugging, memory organization, and peripheral control (GPIO, graphics, sound, keyboards) without an operating system. The course culminates in building a simple personal computer shell and a capstone hardware-software project. It is open-source and freely available.

Key Features

Bare metal programming on a RISC-V single board computer (Mango Pi MQ-Pro)
Covers RISC-V ISA, assembly language, and machine-level code
Teaches C programming language with minimal library use
Memory-mapped I/O and GPIO peripheral control
Compilation, linking, loading, and debugging skills
Command-line programming tools and Unix proficiency
Projects build a core library culminating in a personal computer shell
Capstone project: complete hardware-software system

Pros & Cons

Pros
  • Hands-on, project-based learning with real hardware
  • Covers low-level concepts often hidden by operating systems
  • Open-source course materials freely available on GitHub
  • Teaches both hardware and software integration
  • Stanford-level curriculum with expert instruction
Cons
  • Requires a Mango Pi MQ-Pro board and component kit
  • Assumes prior programming experience (CS106A/B)
  • Course is time-bound (quarter schedule, mandatory attendance)
  • Not a typical AI tool; focused on embedded systems education

Best For

Learning computer systems from the hardware upIntroduction to embedded systems and bare metal programmingUnderstanding how modern computers execute programsBuilding a simple personal computer with keyboard and display

FAQ

What is CS107e?
CS107e is a Stanford course taught as 'Computer Systems from the Ground Up'. It covers the fundamentals of computer systems through bare metal programming on a RISC-V single board computer (Mango Pi MQ-Pro) without an operating system.
What hardware is used in the course?
Students use a Mango Pi MQ-Pro single board computer based on the AllWinner D1 SOC, along with a kit of components. The course transitioned from Raspberry Pi to RISC-V in 2024.
What are the prerequisites for CS107e?
CS107e is the third course in the systems core sequence, expecting a solid foundation from CS106A and CS106B.
How does CS107e differ from the standard CS107?
CS107e is a variant that teaches the same fundamental concepts but through bare metal programming on a single board computer, providing a ground-up perspective. Differences are detailed in a FAQ on the course site.