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