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 |   | TBA | 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 | |
Thu 12/18 | Final exam details and study resources |   |   | 12/9: Assignment 6 |