Lectures and Precepts

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