Computer Science
>
>

CS 107e Computer Systems from the Ground Up

Winter 2023

Stanford University

CS 107e focuses on bare metal programming on the Raspberry Pi, serving as an introduction to embedded systems. It covers the entire process from the microprocessor to the C programming language. The course aims to build a solid understanding of how modern computers execute programs and how program development tools work.

Course Page

Overview

CS107 is the third course in Stanford's introductory programming sequence. The CS106A/B courses provide students with a solid foundation in programming methodology and abstractions, and CS107 follows on to develop the skills needed to build computer systems.

CS107e: Computer Systems from the Ground Up is a variant of CS107 that teaches the fundamental concepts of computer systems through bare metal programming on the Raspberry Pi. Bare metal programming means you will not run an operating system on the Raspberry Pi and will make minimal use of libraries. This course also serves as an introduction to embedded systems. The course starts with the microprocessor and moves up to the C programming language, without skipping anything in between. The goal is to build a solid understanding of all aspects of how modern computers execute programs and how program development tools work.

Prerequisites

No data.

Learning objectives

The major learning goals for the course are:

  • To understand how computers represent information, execute programs, and control peripherals.
  • To master command-line programming tools and the C programming language.

Topics covered include:

  • the ARM architecture
  • assembly language and machine-level code
  • the C programming language
  • compilation, linking and loading
  • debugging
  • memory organization and management
  • controlling peripherals: GPIO, graphics, sound, and keyboards

Textbooks and other notes

No data

Other courses in Computer Systems

CS 110: Principles of Computer Systems

Winter 2022

Stanford University

CSE 351 The HW/SW Interface

Autumn 2022

University of Washington

CS 107A: Problem-solving Lab for CS 107

Autumn 2022

Stanford University

ELE/COS 475 Computer Architecture

Fall 2019

Princeton University

Courseware availability

Lecture slides and codes available at Schedule

No videos available

Assignments available Assignments

Labs available at Labs

Covered concepts