|  |  |  | Lecture and Topics | Reading and Exercises | 
| 
 | 
| Feb. | 4 |  | Introduction | DD 1 | 
|  | 6 |  | An Introduction to C | DD 2, 3.1-10 | 
|  | 11 |  | More About C | DD 3.11-12, 9.1-6, 9.10-11, 10.9, HH 5, 8, 15, 23 | 
|  | 13 |  | Functions and Modules | DD 5.1-12, 14.5-6, HH 10, 11, DD Self-Review pp. 46-48 | 
|  | 18 |  | Arrays | DD 6.1-7, 6.9, DD Self-Review pp. 87-89, DD Self-Review pp. 189-191
Exercise Set 1,
Exercise Set 2 | 
|  | 20 |  | Strings | DD 8.1-3, 8.5-7, 14.4, DD Self-Review pp. 244-245 | 
|  | 25 |  | The TOY Machine | DD Appendix E, pp. 305-310, DD Self-Review pp. 354-355 | 
|  | 27 |  | TOY Instructions | DD Self-Review pp. 903-904, DD 10.9 | 
| Mar. | 4 |  | Branches and Loops | Exercise Set 3 | 
|  | 6 |  | Recursion | DD 5.13-15, 6.8 | 
|  | 6 |  | 1st Midterm Exam, McCosh 10, 7:00-8:30pm |  | 
|  | 11 |  | Quicksort | DD 6.6, Exercise Set 4,
Postscript cheatsheet | 
|  | 13 |  | Pointers | DD 7.1-4, 7.6-10, DD Self-Review pp. 299-301
Exercise Set 5 | 
|  | 25 |  | Structures | DD 10.1-7, DD Self-Review pp. 423-425 | 
|  | 27 |  | Dynamic Memory Allocation | DD 7.6, 12.3, 14.11, emalloc.c,strsave.c | 
| Apr. | 1 |  | Dynamic Data Structures | DD 12.1-6, DD Self-Review pp. 498-499
Exercise Set 6 | 
|  | 3 |  | Writing Efficient Programs | DD 12.7 | 
 | 8 |  | Analysis of Algorithms |  | 
|  | 10 |  | Elementary Systems Programming | DD 1.11, 13 | 
|  | 10 |  | 2nd Midterm Exam, McCosh 10, 7:00-8:30pm |  | 
|  | 15 |  | Compilers |  | 
|  | 17 |  | Operating Systems | DD 11.1-5 | 
|  | 22 |  | Regular Expressions |  | 
|  | 24 |  | Hard Problems |  | 
|  | 28 |  | Guest Lecture (Rob Shillner) and Course Evaluations |  | 
| May | 1 |  | Viruses and Secret Messages |  | 
|  | 17 |  | Final Exam, 7:30pm, Palmer 301 |  |