Schedule


Below is a preview of our week-by-week plan for the entire quarter. There may be slight adjustments and rearrangements as we go. The schedule for the final project is set and will not change.

In the readings below, K&R refers to Kernighan and Ritchie's classic text The C Programming Language (accessible via Stanford's subscription to Safari Books Online). Nick Parlante's EssentialC is another great C reference. Please do the recommended readings before lecture for best effect!

Week 1
Lecture
Mon 9/23
Introduction and welcome
Lab/assign Lab 0: Orientation Assignment 0: Git oriented
Lecture
Fri 9/27
RISC-V architecture
Week 2
Lecture
Mon 9/30
RISC-V assembly and machine code
Lab/assign Lab 1: Getting to know your Mango Pi Assignment 1: Larson Scanner
Lecture
Fri 10/4
From Assembly to C
Week 3
Lecture
Mon 10/7
C Pointers and Arrays
Lab/assign Lab 2: Below C Level Assignment 2: Clock
Lecture
Fri 10/11
C Functions
Week 4
Lecture
Mon 10/14
Communication and the Serial Protocol
Lab/assign Lab 3: Debugging and Testing Assignment 3: String Formatting
Lecture
Fri 10/18
Modules, Libraries, and Linking
Week 5
Lecture
Mon 10/21
Memory Management
Lab/assign Lab 4: Linked and Loaded Assignment 4: Backtrace and Malloc
Lecture
Fri 10/25
Week 6
Lecture
Mon 10/28
Keyboards and the PS/2 Protocol
Lab/assign Lab 5: Keyboard Surfin' Assignment 5: Keyboard and Simple Shell
Lecture
Fri 11/1
C Mastery
Week 7
Lecture
Mon 11/4
Graphics and the framebuffer
Lab/assign Lab 6: Drawing into the Framebuffer Assignment 6: Graphics Library and Console
Lecture
Fri 11/8
Interrupts
Week 8
Lecture
Mon 11/11
Interrupts, cont'd
Lab/assign Lab 7: Mango Pi, Interrupted Assignment 7: System Monitor with Interrupts
Lecture
Fri 11/15
Sensors
Week 9
Lecture
Mon 11/18
/lectures/Sensors2/
Lab/assign Lab 8: Project Team Meeting 1 Final Project
Lecture
Fri 11/22
Project
Week 10
Lecture
Mon 11/25
Thanksgiving recess
Lab/assign
Lecture
Fri 11/29
Thanksgiving recess
Week 11
Lecture
Mon 12/2
/lectures/Guest/
Lab/assign Lab 9: Project Team Meeting 2
Lecture
Fri 12/6
Wrap or There and Back Again
Week 12
Final Project
Demo session Fri 12/13 at 9:00 am
Code submission due Fri 12/13 at 11:59 pm