Skip to content

Latest commit

 

History

History
74 lines (54 loc) · 2.65 KB

home.md

File metadata and controls

74 lines (54 loc) · 2.65 KB
layout title permalink
page
Spring 2018
index.html

Welcome to the Spring 2018 offering of CS107e!

CS107 is the third course in Stanford's introductory programming sequence. CS106 provides students with a solid foundation in programming methodology and abstractions, and CS107 follows on to give you the skills needed to build computer systems.

There are two major learning goals for the course.

First, to understand how computers represent information, execute programs, and control peripherals.

Second, to master command-line programming tools and the C programming language.

The course builds understanding from the ground up using bare metal programming on the Raspberry Pi. Bare metal programming uses no operating system and few external libraries.

Students will receive a Raspberry Pi and a kit of parts, and all assignments will run on the Raspberry Pi. Assignments build upon each other by adding more and more functionality to a core library. They culminate in a simple personal computer shell using a keyboard and display.

Finally, students do a project of their choosing where they build a complete hardware-software system.

For information about the differences between CS107 and CS107e, check out this FAQ.

Announcements

All class announcements will be posted on Piazza.

Course Info

  • Lectures: Mon & Fri 10:30 AM-11:50 PM, Gates B12
  • Labs: Tue & Wed 6:30pm-8:30pm, Gates B21
  • Lecturers: Chris Gregg, Phil Levis
  • CAs: Jean-Luc Watson, Lenny Truong
  • Section Leaders: Jane Lange, Matt Trost
  • Office Hours: Google Calendar

Schedule

In the readings, K&R is The C Programming Language (Kernighan and Ritchie), and EssentialC is a PDF available via Stanford's CS Library. A digital copy of K&R is available to Stanford students via Safari Books Online.

Please read the assigned readings before attending lecture and lab. You should also read the guides for each week.

{% include schedule.html %}