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 3/30
Welcome and intro to RISC-V
Lab/assign Lab 0: Orientation Assignment 0: Git oriented
Lecture
Fri 4/3
RISC-V assembly and machine code
Week 2
Lecture
Mon 4/6
From Assembly to C
Lab/assign Lab 1: Getting to know your Mango Pi Assignment 1: Larson Scanner
Lecture
Fri 4/10
C Pointers and Arrays
Week 3
Lecture
Mon 4/13
C Functions
Lab/assign Lab 2: Below C Level Assignment 2: Clock
Lecture
Fri 4/17
Communication and the Serial Protocol
Week 4
Lecture
Mon 4/20
Modules, Libraries, and Linking
Lab/assign Lab 3: Debugging and Testing Assignment 3: String Formatting
Lecture
Fri 4/24
Memory Management
Week 5
Lecture
Mon 4/27
C Mastery
Lab/assign Lab 4: Linked and Loaded Assignment 4: Stack and Heap
Lecture
Fri 5/1
Keyboards and the PS/2 Protocol
Week 6
Lecture
Mon 5/4
Sensor Input
Lab/assign Lab 5: Keyboard Surfin' Assignment 5: Keyboard and Simple Shell
Lecture
Fri 5/8
Graphics and the framebuffer
Week 7
Lecture
Mon 5/11
Output
Lab/assign Lab 6: Drawing into the Framebuffer Assignment 6: Graphics Library and Console
Lecture
Fri 5/15
Interrupts
Week 8
Lecture
Mon 5/18
Interrupts, cont'd
Lab/assign Lab 7: Mango Pi, Interrupted Assignment 7: System Monitor with Interrupts
Lecture
Fri 5/22
Project
Week 9
Lecture
Mon 5/25
Memorial Day
Lab/assign Lab 8: Project Team Meeting 1 Final Project
Lecture
Fri 5/29
Wrap or There and Back Again
Week 10
Lecture
Mon 6/1
No lecture (work on projects)
Lab/assign Lab 9: Project Team Meeting 2
Lecture
Fri 6/5
No lecture
Week 11
Final Project
Demo session Wed 6/10 at 9:00 am
Code submission due Wed 6/10 at 11:59 pm