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