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
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