Date Topic Reading HW  
Week 1        
Sep 06 Introduction and Course Overview      
Sep 08 Introduction to UNIX and the shell Read LCL, Chapters 1-3
Run the vim and emacs tutorials
HW0  
Week 2        
Sep 13 UNIX Commands Read LCL, Chapters 4-8    
Sep 15 Version control and git Read LCL, Chapters 9-11.
Git Book, sections 1.1, 1.3, 1.6, 1.7, 2.1, and 2.2
Interactive Git Tutorial
  Exercise 2
Exercise 3
Exercise 4
Week 3        
Sep 20 Introduction to C and Compilation Effective C Ch. 1 HW1  
Sep 22 Makefiles A short introduction to Make
Variables in Make
Implicit rules in Make
Standard targets in Makefiles
   
Week 4        
Sep 27 Objects, Functions, and Types Effective C Ch. 2 HW2  
Sep 29 Arithmetic Types Effective C Ch. 3
Dis Ch. 4.1 - 4.6
   
Week 5        
Oct 04 Expressions and Operators Effective C Ch. 4 HW3  
Oct 06 Control Flow Effective C Ch. 5    
Week 6        
Oct 11 Dynamically Allocated Memory Effective C Ch. 6    
Oct 13 Project Proposals      
Fall Break        
Week 7        
Oct 25 Debugging, Testing, and Analysis Effective C Ch. 11
DiS Ch. 3.1 - 3.4
21st Century C, Ch. 2
HW4  
Oct 27 Characters and Strings Effective C Ch. 7    
Week 8        
Nov 01 Self-referential Structures DiS Ch. 2.5 - 2.7 HW5  
Nov 03 Input/Output Effective C Ch. 8    
Week 9        
Nov 08 No class, sick kids…   HW6  
Nov 10 Input/Output      
Week 10        
Nov 15 Advanced git   HW7  
Nov 17 Compression Read HW8    
Week 11        
Nov 22 Open Source Software      
Nov 24 Thanksgiving Break      
Week 12        
Nove 29 System Calls DiS 13.0 - 13.1    
Dec 01 Processes DiS 13.2 HW8  
Week 13        
Dec 06 Interprocess Communication DiS 13.4    
Dec 08 Virtual Memory DiS 13.3    
Week 14        
Dec 13 Buffer Overflows