Syllabus
Week |
| Topic |
| Readings |
|
| |||
|
| |||
|
| |||
|
| |||
|
| |||
|
| |||
|
| |||
|
| |||
|
| |||
|
| |||
|
| |||
|
| |||
|
| |||
|
|
The topics are linked to the detailed weekly lecture schedule listed below. The readings are linked to the on-line version of the textbook.
You are responsible for the readings. The lectures will help you understand the readings and may add pragmatic tips. But both the weekly homeworks and the exams will cover the assigned reading.
As the semester may unfold in unpredictable ways, the syllabus is subject to change.
Detailed Lecture Schedule
Homeworks are due at 9:00pm on the day they are listed in the schedule.
| ||||
01/06 |
| 1. Why CS; Basic arithmetic; Course administrivia |
| |
01/08 |
| 2. Defining constants and functions; Simple animations |
| |
01/09 |
| 3. Booleans, conditionals, tests |
| |
01/10 |
|
| ||
| ||||
| ||||
01/13 |
| 4. The Design Recipe |
| |
01/15 |
| 5. World Programs |
| |
01/15 |
| Homework due at 9pm |
| |
01/16 |
| 6. Structure type definitions |
| |
01/17 |
|
| ||
| ||||
| ||||
01/20 |
| MLK Day (no classes) |
| |
01/22 |
| 7. Practicing structures |
| |
01/22 |
| Homework due at 9pm |
| |
01/23 |
| 8. World Program design with structures |
| |
01/24 |
|
| ||
| ||||
| ||||
01/27 |
| 9. Union data |
| |
01/29 |
| 10. Nested fixed-size data |
| |
01/29 |
| Homework due at 9pm |
| |
01/30 |
| 11. Self-referential data definitions |
| |
01/31 |
|
| ||
| ||||
| ||||
02/03 |
| 12. Lists; Functions on lists |
| |
02/05 |
| 13. Lists of structures; Practicing programs with lists |
| |
02/05 |
| Homework due at 9pm |
| |
02/06 |
| 14. Similarities in functions |
| |
02/07 |
| Lab 5 (new partners assigned) |
| |
| ||||
| ||||
02/10 |
| 15. Abstracting function behavior |
| |
02/12 |
| 16. ISL-provided abstractions |
| |
02/12 |
| Homework due at 9pm |
| |
02/13 |
| 17. Practicing function abstractions |
| |
02/14 |
|
| ||
| ||||
| ||||
Exam coming up: 02/20 @ 6pm-8pm | ||||
02/17 |
| Presidents Day (no classes) |
| |
02/19 |
| 18. Scope and Local |
| |
02/19 |
| Homework due at 9pm |
| |
02/20 |
| Exam 1 prep |
| |
02/21 |
| No Lab! |
| |
| ||||
| ||||
02/24 |
| 19. Design Recipe for abstractions |
| |
02/26 |
| 20. Practice: Design Recipe for abstractions |
| |
02/26 |
| Homework due at 9pm |
| |
02/27 |
| 21. Function abstractions with 'Lambda' |
| |
02/28 |
|
| ||
| ||||
| ||||
03/10 |
| 22. Multiple complex inputs |
| |
03/12 |
| 23. Practice: Multiple complex inputs |
| |
03/12 |
| Homework due at 9pm |
| |
03/13 |
| 24. Trees |
| |
03/14 |
| Lab 8 (new partners assigned) |
| |
| ||||
| ||||
03/17 |
| 25. Mutually recursive data |
| |
03/19 |
| 26. Practice: Mutually recursive data |
| |
03/19 |
| Homework due at 9pm |
| |
03/20 |
| 27. Catch-up Day |
| |
03/21 |
|
| ||
| ||||
| ||||
03/24 |
| 28. Introducing graphs |
| |
03/26 |
| 29. Functions on graphs |
| |
03/26 |
| Homework due at 9pm |
| |
03/27 |
| 30. Accumulators |
| |
03/28 |
|
| ||
| ||||
| ||||
03/31 |
| 31. Practice: Accumulator-based functions |
| |
04/02 |
| 32. Generative recursion |
| |
04/02 |
| Homework due at 9pm |
| |
04/03 |
| 33. Practicing generative recursion |
| |
04/04 |
|
| ||
| ||||
| ||||
Exam coming up: 04/07 @ 6pm-9pm | ||||
04/07 |
| Exam 2 prep |
| |
04/09 |
| Exam 2 discussion |
| |
04/09 |
| Homework due at 9pm |
| |
04/10 |
| 34. Advanced topics |
| |
04/11 |
| No lab! |
| |
| ||||
| ||||
04/14 |
| 35. Wrapping up, AMA |
| |
|