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/02 – Thu 09/03 |
Unix Tutorial for Beginners; Rec.: GNU Emacs Tutorial; Rec.: Linux Pocket Guide (excerpt: Programming with Shell Scripts) |
Course intro, Linux and bash | Course intro, Computing environment | |
| Mon 09/07 – Tue 09/08 |
  | No lecture (Labor day) | No precepts | |
| Wed 09/09 – Thu 09/10 |
King Ch. 1-6, 7.3, 9, 14, 20.1; Rec.: K&P Ch. 1 |
Git, Intro to C | Emacs, Bash | |
| Mon 09/14 – Tue 09/15 |
Wikipedia DFA article | Building C Programs, DFAs | Simple C Programs, Program Preparation | 9/15: Assignment 0 |
| Wed 09/16 – Thu 09/17 |
King Ch. 15 | C Program Design, Logical Ops | C, Multi-File Programs | |
| Mon 09/21 – Tue 09/22 |
King Ch. 7; Rec.: GNU GDB Tutorial |
Numeric Data Types | Multi-File C Programs, gdb | 9/22: Assignment 1 |
| Wed 09/23 – Thu 09/24 |
King Ch. 8, 11-13, 24.1; Rec.: K&P Ch. 2, 4 |
Pointers, Arrays, Strings | C Pointers and Arrays | |
| Mon 09/28 – Tue 09/29 |
Midterm exam 1 | C Strings | ||
| Wed 09/30 – Thu 10/01 |
King Ch. 16, 17.1-6 | Structs, arguments, dynamic memory | Dynamic Memory Management | |
| Mon 10/05 – Tue 10/06 |
Rec.: K&P Ch. 6 | Testing | Debugging DMM | 10/6: Assignment 2 |
| Wed 10/07 – Thu 10/08 |
King Ch. 19 | Data Structures | Abstract Data Types | |
| Mon 10/12 – Tue 10/13 |
King Ch. 10, 18; Rec.: K&P Ch. 8 |
Modularity | void Pointers; Assignment 3 | |
| Wed 10/14 – Thu 10/15 |
Rec.: GNU Make Tutorial | Building with make | Function Pointers | |
| Mon 10/19 – Tue 10/20 |
  | No lecture (Fall break) | No precepts | |
| Wed 10/21 – Thu 10/22 |
  | No lecture (Fall break) | No precepts | |
| Mon 10/26 – Tue 10/27 |
King Ch. 17.7; Rec.: K&P Ch. 5 |
Debugging | Scope, Linkage, Duration | |
| Wed 10/28 – Thu 10/29 |
  | Assignment 4 intro | Abstract Objects, Assignment 4 Part 1 | 10/29: Assignment 3 |
| Mon 11/02 – Tue 11/03 |
  | Storage Hierarchy | DynArray ADT, Assignment 4 Parts 2/3 | |
| Wed 11/04 – Thu 11/05 |
Midterm exam 2 | No precepts | ||
| Mon 11/09 – Tue 11/10 |
P&U Ch. 2-4; Reference: ARMv8 Instruction Set; Reference: ARM Architecture |
Assembly Language (I) | ARM and Assembly Intro | |
| Wed 11/11 – Thu 11/12 |
P&U Ch. 5 | Assembly Language (II) | Assembly Fundamentals and Control | 11/12: Assignment 4 |
| Mon 11/16 – Tue 11/17 |
P&U Ch. 6 | Assembly Functions | Assembly Control, Register Addressing | |
| Wed 11/18 – Thu 11/19 |
P&U Ch. 7; gdb with ARM walkthrough |
Assignment 5 intro | Local Variables and Function Calls | |
| Mon 11/23 – Tue 11/24 |
Rec.: K&P Ch. 7 | Performance | BigInt_add, gdb for BigInt_add | |
| Wed 11/25 – Thu 11/26 |
  | No lecture (Thanksgiving) | No precepts | |
| Mon 11/30 – Tue 12/01 |
  | Assignment 6 intro | "B" Attack Recap, Writing Binary, gdb | 12/1: Assignment 5 |
| Wed 12/02 – Thu 12/03 |
  | Machine Language | Mini-Assembler, "A" Attack Details | |
| Mon 12/07 |   | Assembler and Linker | No precepts | |
| Wed 12/09 |   |   |   | 12/9: Assignment 6 |
| Tue 12/15 |   |   |   | 12/15: Dean's Date Last Day for Late Assignments |
| Wed 12/16 | Final exam details / study resources | Final exam |   |