| Moon's day | Tiw's day | Woden's day | Frigga's day | 
|---|
| 
| Jan 12 |  | Algorithms and analysis. Introduction, review of algorithms, sorting |  |  
 |  | 
| Jan 13 |  | Counting comparisons |  |  lab 1
 |  | 
| Jan 14 |  | Sorting on lists; recursive sort |  |  
 |  | 
| Jan 16 |  | Algorithm analysis--first try |  |  proj 1. Due 1/28
 |  | 
|  | 
| Jan 20 |  | Instrumentation |  |  lab 2
 |  |  | 
| Jan 23 |  | Analysis; searching |  |  
 |  | 
| 
| Jan 26 |  | Software development. Revision control (intro to SVN); API generation (intro to Javadoc)  |  |  
 |  | 
| Jan 27 |  | Revision control and object-oriented review |  |  lab 3
 |  | 
| Jan 28 |  | Good programming practices (documentation and style, etc) |  |  
 |  | 
| Jan 30 |  | Object-oriented programming. Review: classes and subtyping |  |  proj 2. Due 2/13
 |  | 
| 
| Feb 2 |  | Abstract classes and inheritance |  |  
 |  |  | 
| Feb 4 |  | More inheritance; overriding |  |  
 |  | 
| Feb 6 |  | Pred/prey simulation |  |  
 |  | 
|  | 
| Feb 10 |  | Object-oriented design |  |  lab 4
 |  | 
| Feb 11 |  | UML; aggregation and acquantaince; reuse and refactoringSlides
 |  |  
 |  |  | 
|  |  | 
| Feb 18 |  | Responsibility, coupling, and cohesion |  |  
 |  | 
| Feb 20 |  | Finalizers; String interning; for-each loop; enumerations |  |  
 |  | 
|  | 
| Feb 24 |  | More adventure game |  |  lab 6
 |  |  | 
| Feb 27 |  | Private and inner classes |  |  
 |  | 
|  |  | 
| Mar 4 |  | Data structures. Concrete vs abstract data types; linked vs. array-based |  |  
 |  |  | 
|  |  |  |  | 
|  | 
| Mar 17 |  | Stacks and queues |  |  lab 8
 |  | 
| Mar 18 |  | Binary trees |  |  proj 5, due 4/1
 |  |  | 
| 
| Mar 23 |  | Traversing binary trees |  |  
 |  |  |  | 
| Mar 27 |  | Design patterns. Review patterns so far |  |  
 |  | 
| 
| Mar 30 |  | The Strategy pattern |  |  
 |  |  | 
| Apr 1 |  | The State pattern |  |  proj 6, due 4/15
 |  | 
| Apr 3 |  | The Adaptor and Decorator patterns |  |  
 |  | 
|  | 
| Apr 7 |  | Adaptor and Decorator |  |  lab 11
 |  |  |  | 
| 
| Apr 13 |  | Systems. Introduction to C; types, basic I/O, functions |  |  
 |  | 
| Apr 14 |  | Managing a C project |  |  lab 12
 |  | 
| Apr 15 |  | Computer memory; C types; structs and arrays |  |  
 |  |  | 
| 
| Apr 20 |  | Pointers; dynamic allocation of memory |  |  proj 7, due 3/29
 |  |  |  |  | 
|  | 
| Apr 28 |  | Object-oriented programming in C |  |  lab 14
 |  | 
| Apr 29 |  | More computer architecture |  |  
 |  |  |