Introduction to the fundamental concepts of computer systems through bare metal programming on the Raspberry Pi. Explores how five concepts come together in computer systems: hardware, architecture, assembly code, the C language, and software development tools. Students do all programming with a Raspberry Pi kit and several add-ons (LEDs, buttons). Topics covered include: the C programming language, data representation, machine-level code, computer arithmetic, compilation, memory organization and management, debugging, hardware, and I/O. Enrollment limited to CS 40. Check website for details: http://cs107e.stanford.edu on student selection process. Prerequisite: CS 106B or CS 106X, and consent of instructor. There is a $CS 75 course lab fee. Students may not earn credit for both CS 107 and CS 107E.
3-5 units · Letter or Credit/No Credit · GER: WAY-FR
Introduction to the fundamental concepts of computer systems through bare metal programming on the Raspberry Pi. Explores how five concepts come together in computer systems: hardware, architecture, assembly code, the C language, and software development tools. Students do all programming with a Raspberry Pi kit and several add-ons (LEDs, buttons). Topics covered include: the C programming language, data representation, machine-level code, computer arithmetic, compilation, memory organization and management, debugging, hardware, and I/O. Enrollment limited to 40. Check website for details: http://cs107e.stanford.edu on student selection process. Prerequisite: CS106B or CS106X, and consent of instructor. There is a $75 course lab fee. Students may not earn credit for both CS 107 and CS 107E.
Offered in Winter 2026, Spring 2026 at Stanford University.