Computer Systems
FreeComputer Systems from the Ground Up
FreeFree tier
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.