Readings marked "Rec." are recommended, others are required.
King =
  C Programming: A Modern Approach (Second Edition),
      K. N. King, Norton & Co. 2008.
K&P =
  The Practice of Programming,
      Brian W. Kernighan and Rob Pike, Addison-Wesley 1999.
P&U =
  ARM 64-bit Assembly Language,
      Larry Pyeatt with William Ughetta, Newnes 2019.
| DATE | READINGS | LECTURE (Click for slides) | PRECEPT (Click for handouts) | WHAT'S DUE | 
|---|---|---|---|---|
| Wed 09/03 – Thu 09/04 | Unix Tutorial for Beginners; Rec.: GNU Emacs Tutorial; Rec.: Linux Pocket Guide (excerpt: Programming with Shell Scripts) | Course intro, Linux and bash | Computing environment | |
| Mon 09/08 – Tue 09/09 | King Ch. 1-6, 7.3, 9, 14, 20.1; Rec.: K&P Ch. 1 | Git, Intro to C | Emacs, Bash | |
| Wed 09/10 – Thu 09/11 | Wikipedia DFA article | Building C Programs, DFAs | Simple C Programs, Program Preparation | 9/11: Assignment 0 | 
| Mon 09/15 – Tue 09/16 | King Ch. 15 | C Program Design, Logical Ops | C, Multi-File Programs | |
| Wed 09/17 – Thu 09/18 | King Ch. 7; Rec.: GNU GDB Tutorial | Numeric Data Types | Multi-File C Programs, gdb | 9/18: Assignment 1 | 
| Mon 09/22 – Tue 09/23 | King Ch. 8, 11-13, 24.1; Rec.: K&P Ch. 2, 4 | Pointers, Arrays, Strings | C Pointers and Arrays | |
| Wed 09/24 – Thu 09/25 | Rec.: GNU Make Tutorial | Building with make | C Strings | |
| Mon 09/29 – Tue 09/30 | King Ch. 16, 17.1-6 | Structs, arguments, dynamic memory | Dynamic Memory Management | |
| Wed 10/01 – Thu 10/02 | Rec.: K&P Ch. 6 | Testing | Debugging DMM | 10/2: Assignment 2 | 
| Mon 10/06 – Tue 10/07 | King Ch. 19 | Data Structures | Abstract Data Types | |
| Wed 10/08 – Thu 10/09 | Midterm details / study resources | Midterm exam | void Pointers; Assignment 3 | |
| Mon 10/20 – Tue 10/21 | King Ch. 17.7; Rec.: K&P Ch. 5 | Debugging | Function Pointers | |
| Wed 10/22 – Thu 10/23 | King Ch. 10, 18; Rec.: K&P Ch. 8 | Modularity | Scope, Linkage, Duration | |
| Mon 10/27 – Tue 10/28 |   | Assignment 4 intro | Abstract Objects, Assignment 4 Part 1 | 10/28: Assignment 3 | 
| Wed 10/29 – Thu 10/30 |   | VM, Storage, Caching | DynArray ADT, Assignment 4 Parts 2/3 | |
| Mon 11/03 – Tue 11/04 | P&U Ch. 2-4; Reference: ARMv8 Instruction Set; Reference: ARM Architecture | Assembly Language (I) | ARM and Assembly Intro | |
| Wed 11/05 – Thu 11/06 | P&U Ch. 5 | Assembly Language (II) | Assembly Fundamentals and Control | |
| Mon 11/10 – Tue 11/11 | P&U Ch. 6 | Assembly Functions | Assembly Control, Register Addressing | |
| Wed 11/12 – Thu 11/13 | P&U Ch. 7; gdb with ARM walkthrough | Assignment 5 intro | Local Variables and Function Calls | 11/13: Assignment 4 | 
| Mon 11/17 – Tue 11/18 | Rec.: K&P Ch. 7 | Performance | BigInt_add, gdb for BigInt_add | |
| Wed 11/19 – Thu 11/20 |   | Assignment 6 intro | "B" Attack Recap, Writing Binary, gdb | |
| Mon 11/24 |   | No lecture | No precepts | |
| Mon 12/01 – Tue 12/02 |   | Machine Language | Mini-Assembler, "A" Attack Details | 12/2: Assignment 5 | 
| Wed 12/03 |   | Assembler and Linker | No precepts | |
| Tue 12/16 | Final exam details and study resources |   |   | 12/9: Assignment 6 |