Syllabus
This web page is deprecated.
Please see the main page for Fundamentals I.
The topics are linked to detailed weekly lecture plans below. The readings point into the on-line version of the text book.
You are primarily responsible for the readings. The lectures will help you understand those and will occasionally add highly pragmatic tips. But, the weekly problem sets and the exams will cover the reading material.
A semester tends to unfold in unpredictable ways, meaning the syllabus is subject to change. The most likely change concerns the last two weeks, which cover material that varies from semester to semester. Extra-credit problem sets, if any, will be based on this material.
Details
Assignments are due at 8:59 pm on the day they are listed.
| ||||
09/05 |
| 1. Why CS; Arithmetic of numbers, strings, images; Administrivia |
| |
09/06 |
| 2. Arithmetic of strings, functions, simple animations |
| |
| ||||
| ||||
09/10 |
| 3. Booleans, conditionals |
| |
09/11 |
|
| ||
09/12 |
| 4. The design recipe |
| |
09/13 |
| 5. World programs |
| |
| ||||
| ||||
09/17 |
| 6. Structure type definitions |
| |
09/18 |
|
| ||
09/19 |
| 7. Custom structures |
| |
09/20 |
| 8. More on custom structures |
| |
| ||||
| ||||
09/24 |
| 9. Unions |
| |
09/25 |
| Lab 3 (partner assignment) |
| |
09/26 |
| 10. Transition from fixed-size to arbitrary-size data |
| |
09/27 |
| 11. Self-referential data definitions |
| |
| ||||
| ||||
10/01 |
| 12. Lists and designing functions on lists |
| |
10/02 |
|
| ||
10/03 |
| 13. Lists of structures |
| |
10/04 |
| 14. More on lists of structures |
| |
10/07 |
| Optional review session for exam 1 (4-6pm) |
| |
| ||||
| ||||
Midterm coming up: 10/11 @ 6:00-9:00pm | ||||
10/08 |
| Columbus day: no classes |
| |
10/09 |
|
| ||
10/10 |
| 15. Similarities in functions |
| |
10/11 |
| 16. Abstractions |
| |
| ||||
| ||||
10/15 |
| 17. DrRacket-provided abstractions |
| |
10/16 |
| Lab 6 (new partners assigned) |
| |
10/17 |
| 18. More DrRacket-provided abstractions |
| |
10/18 |
| 19. Scope and local |
| |
| ||||
| ||||
10/22 |
| 20. Design recipe for abstractions |
| |
10/23 |
|
| ||
10/24 |
| 21. Practice with abstractions |
| |
10/25 |
| 22. Programming with I/O |
| |
| ||||
| ||||
10/29 |
| 23. Trees |
| |
10/30 |
|
| ||
10/31 |
| 24. Multiple complex inputs |
| |
11/01 |
| 25. Mutually recursive data |
| |
| ||||
| ||||
11/05 |
| 26. Graphs |
| |
11/06 |
|
| ||
11/07 |
| 27. Ad-hoc functions on graphs |
| |
11/08 |
| 28. More on graphs |
| |
| ||||
| ||||
11/12 |
| Veterans day: no classes |
| |
11/13 |
|
| ||
11/14 |
| 29. Design recipe for generative recursion |
| |
11/15 |
| 30. Practice with generative recursion |
| |
| ||||
| ||||
11/19 |
| 31. More on generative recursion |
| |
11/21 |
| Thanksgiving break: no classes |
| |
11/22 |
| Thanksgiving break: no classes |
| |
11/25 |
| Optional review session for exam 2 (4-6pm) |
| |
| ||||
| ||||
Midterm coming up: 11/28 @ 6:00pm-9:00pm | ||||
11/26 |
| 32. Accumulators |
| |
11/27 |
|
| ||
11/28 |
| 33. Practice with accumulators |
| |
11/29 |
| 34. Lambda |
| |
| ||||
| ||||
12/03 |
| 35. Practice with lambda |
| |
12/04 |
|
| ||
12/05 |
| 36. Wrap up |
| |
|