Syllabus
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.
| ||||
01/07 |
| 1. Why CS; Arithmetic of numbers, strings, images; Administrivia |
| |
01/09 |
| 2. Defining functions on numbers, strings, images; Defining functions with more than one input |
| |
01/10 |
| 3. Booleans and conditionals; enumerated data; functions on enumerated data |
| |
01/11 |
|
| ||
| ||||
| ||||
01/14 |
| 4. Unions; functions on union data |
| |
01/16 |
| 5. The design recipe for data and functions |
| |
01/17 |
| 6. World programs |
| |
01/18 |
|
| ||
| ||||
| ||||
01/21 |
| MLK Day - no class |
| |
01/23 |
| 7. More on world programs; An introduction to Posns |
| |
01/24 |
| 8. A world program with Posns |
| |
01/25 |
|
| ||
| ||||
| ||||
01/28 |
| 9. Designing structure data definitions; working with custom structures |
| |
01/30 |
| 10. A world program with custom structures |
| |
01/31 |
| 11. Practice with structure data |
| |
02/01 |
| Lab 4 (partner assignment (effective for homework 6)) |
| |
| ||||
| ||||
02/04 |
| 12. Arbitrarily large data; self-referential data |
| |
02/06 |
| 13. Designing functions over arbitrarily large data |
| |
02/07 |
| 14. A world program with arbitrarily large data |
| |
02/08 |
|
| ||
| ||||
| ||||
02/11 |
| 15. Lists; functions on lists |
| |
02/13 |
| 16. Lists of structures; structures of lists |
| |
02/14 |
| 17. Practice designing functions on lists |
| |
02/15 |
| Lab 6 (partner re-assignment (effective for homework 10)) |
| |
| ||||
| ||||
Midterm coming up: 02/20 @ 6:00-9:00pm | ||||
02/18 |
| President's Day - no class; Review session for exam 1 |
| |
02/20 |
| 18. Snake game - Day 1 |
| |
02/21 |
| 19. Snake game - Day 2 |
| |
| ||||
| ||||
02/25 |
| 20. Snake game - Day 3 |
| |
02/27 |
| 21. Similarities in functions; designing abstractions |
| |
02/28 |
| 22. DrRacket provided abstractions |
| |
03/01 |
|
| ||
| ||||
| ||||
| ||||
| ||||
03/11 |
| 23. Local and scope; functions as values |
| |
03/13 |
| 24. Practice with list abstractions and local |
| |
03/14 |
| 25. Anonymous functions; lambda |
| |
03/15 |
|
| ||
| ||||
| ||||
03/18 |
| 26. Practice with list abstractions and lambda |
| |
03/20 |
| 27. Trees |
| |
03/21 |
| 28. Mutually recursive data |
| |
03/22 |
| Lab 9 (partner re-assignment (effective for homework 16)) |
| |
| ||||
| ||||
03/25 |
| 29. Practice with mutually recursive data |
| |
03/27 |
| 30. Graphs; functions on graphs |
| |
03/28 |
| 31. Accumulators |
| |
03/29 |
|
| ||
| ||||
| ||||
Midterm coming up: 04/03 @ 6:00pm-9:00pm | ||||
03/31 |
| Review session for exam 2 |
| |
04/01 |
| 32. Practice with accumulators |
| |
04/03 |
| 33. Generative recursion |
| |
04/04 |
| 34. Practice with generative recursion |
| |
| ||||
| ||||
04/08 |
| 35. TBD |
| |
04/10 |
| 36. TBD |
| |
04/11 |
| 37. TBD |
| |
04/12 |
|
| ||
| ||||
| ||||
04/15 |
| Patriot's day - no class |
| |
04/17 |
| 38. Wrap up; Q+A session |
| |
|