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/20 |
| 1. Why CS; Basic arithmetic; Course administrivia |
| |
01/21 |
| 2. Defining constants and functions; Simple animations |
| |
01/22 |
|
| ||
| ||||
| ||||
01/25 |
| 3. Booleans, conditionals, tests |
| |
01/27 |
| 4. The Design Recipe |
| |
01/28 |
| 5. World Programs |
| |
01/29 |
|
| ||
01/29 |
| Homework due at 9pm |
| |
| ||||
| ||||
02/01 |
| 6. Structure type definitions |
| |
02/03 |
| 7. Practicing structures |
| |
02/04 |
| 8. World Program design with structures |
| |
02/05 |
|
| ||
02/05 |
| Homework due at 9pm |
| |
| ||||
| ||||
02/08 |
| 9. Union data |
| |
02/10 |
| 10. Nested fixed-size data |
| |
02/11 |
| 11. Self-referential data definitions |
| |
02/12 |
| Lab 4 (partners assigned) |
| |
02/12 |
| Homework due at 9pm |
| |
| ||||
| ||||
02/15 |
| Presidents' Day (no classes) |
| |
02/17 |
| 12. Lists; Functions on lists |
| |
02/18 |
| 13. Lists of structures; Practicing programs with lists |
| |
02/19 |
|
| ||
02/19 |
| Homework due at 9pm |
| |
| ||||
| ||||
Exam coming up: 02/25 @ 12am-11:59pm | ||||
02/22 |
| 14. Similarities in functions |
| |
02/24 |
| 15. Exam 1 prep |
| |
02/25 |
| 16. Abstracting function behavior |
| |
02/26 |
| No Lab! |
| |
02/26 |
| Homework due at 9pm |
| |
| ||||
| ||||
03/01 |
| 17. Exam 1 discussion |
| |
03/03 |
| 18. ISL-provided abstractions |
| |
03/04 |
| 19. Practicing function abstractions |
| |
03/05 |
|
| ||
03/05 |
| Homework due at 9pm |
| |
| ||||
| ||||
03/08 |
| 20. Scope and Local |
| |
03/10 |
| 21. Design Recipe for abstractions |
| |
03/11 |
| 22. Practice: Design Recipe for abstractions |
| |
03/12 |
|
| ||
03/12 |
| Homework due at 9pm |
| |
| ||||
| ||||
03/15 |
| 23. Function abstractions with 'Lambda' |
| |
03/17 |
| 24. Multiple complex inputs |
| |
03/18 |
| 25. Practice: Multiple complex inputs |
| |
03/19 |
| Lab 8 (new partners assigned) |
| |
03/19 |
| Homework due at 9pm |
| |
| ||||
| ||||
03/22 |
| 26. Trees |
| |
03/25 |
| 27. Mutually recursive data |
| |
03/26 |
|
| ||
03/26 |
| Homework due at 9pm |
| |
| ||||
| ||||
03/29 |
| 28. Practice: Mutually recursive data |
| |
03/31 |
| 29. Introducing graphs |
| |
04/01 |
| 30. Functions on graphs |
| |
04/02 |
|
| ||
04/02 |
| Homework due at 9pm |
| |
| ||||
| ||||
Exam coming up: 04/08 @ 12am-11:59pm | ||||
04/05 |
| 31. Accumulators |
| |
04/07 |
| 32. Exam 2 prep |
| |
04/08 |
| 33. Practice: Accumulator-based functions |
| |
04/09 |
| No lab! |
| |
04/09 |
| Homework due at 9pm |
| |
| ||||
| ||||
04/14 |
| 34. Exam 2 discussion |
| |
04/15 |
| 35. Generative recursion |
| |
04/16 |
| No Lab! |
| |
04/16 |
| Homework due at 9pm |
| |
| ||||
| ||||
04/19 |
| 36. Practicing generative recursion |
| |
04/21 |
| 37. Wrapping up |
| |
|