Date Topic Reading HW  
Week 1        
Jan 31 Introduction and Course Overview      
Feb 02 Introduction to UNIX and the shell Read LCL, Chapters 1-3
Run the vim and emacs tutorials
HW0  
Week 2        
Feb 07 UNIX Commands Read LCL, Chapters 4-8    
Feb 09 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        
Feb 14 Introduction to C and Compilation Effective C Ch. 1 HW1 Exercise 7
Feb 16 Makefiles A short introduction to Make
Variables in Make
Implicit rules in Make
Standard targets in Makefiles
   
Week 4        
Feb 21 Objects, Functions, and Types Effective C Ch. 2 HW2  
Feb 23 Arithmetic Types Effective C Ch. 3
Dis Ch. 4.1 - 4.6
   
Week 5        
Feb 28 Expressions and Operators Effective C Ch. 4    
Mar 02 Control Flow Effective C Ch. 5 HW3  
Week 6        
Mar 07 Dynamically Allocated Memory Effective C Ch. 6    
Mar 09 Debugging, Testing, and Analysis Effective C Ch. 11
DiS Ch. 3.1 - 3.4
21st Century C, Ch. 2
   
Week 7        
Mar 14 Project Proposals      
Mar 16 No class (RJH at SIGCSE)   HW4  
Fall Break        
Week 8        
Mar 28 Characters and Strings DiS 2.6    
Mar 30 Self-referential Structures DiS Ch. 2.5, 2.7    
Week 9        
Apr 04 Input/Output Effective C Ch. 8 HW5  
Apr 06 Input/Output      
Week 10        
Apr 11 Advanced git   HW6  
Apr 13 Compression Read HW8    
Week 11        
Apr 18 Open Source Software   HW7  
Apr 20 System Calls DiS 13.0 - 13.1    
Week 12        
Apr 25 Processes DiS 13.2    
Apr 27 Interprocess Communication DiS 13.4    
Week 13        
May 02 Networking      
May 04 Virtual Memory DiS 13.3 HW8  
Week 14        
May 09 TBD      
May 11 Buffer Overflows