CS107e Spring 2026

CS107e is Computer Systems from the Ground Up. Read more about the course and review answers to common questions from prospective students and enrollment information.


When and where

    This week in CS107e

    Week 3
    Lecture
    Mon 4/13
    C Functions ( slides, code )

    How functions are implemented. Control flow: call and return. Parameter passing, local variables, return value. Coordination on use of registers. Runtime stack management.

    Readings:

    • Read up on C functions (Chapter 4 in K&R, or Section 4 in Essential C).
    Lab/assign Lab 2: Below C Level ( writeup )

    Prelab to prep before lab.

    Assignment 2: Clock
    Lecture
    Fri 4/17
    Communication and the Serial Protocol ( )

    Using gpio pins to transmit bits/signals, UART hardware peripheral, Ascii character set, C-strings. Strategies for testing and debuggging.

    Readings:

    • Review this excellent tutorial on serial communication from Sparkfun.
    • Use your C reference to read up characters, C-strings, and output functions (putc,puts,printf) (Sections 1.5, 1.6, 1.9, 5.5, 6, 7 in K&R; or Section 3 in EssentialC). C-strings are primitive compared to Java/C++ strings; take note of the manual effort required to use and pitfalls to avoid.
    • Read our course guides on testing and gdb debugger.
    • Historical diversion: Poul-Henning Kamp's essay on The Most Expensive One-byte Mistake. Did Ken, Dennis, and Brian choose wrong with NUL-terminated text strings?
    • Summer reading: The Victorian Internet by Tom Standage is a neat faascinating account of the world shift due to the advent of the telegraph and early digital communication.

    See schedule for entire quarter.

    Meet the team