Version: 5.2.1

Syllabus

This syllabus will evolve throughout the semester so check it often.

1. 1/9 1/10 Review; inexact; accumulators (DrRacket all)

2. 1/11, 17 1/18 Data, classses, unions; Eclipse intro

3. 1/19, 23, 24 1/25 Complex data, methods conditionals, dispatch; inexact tests

4. 1/25, 26, 30 1/31 Methods for complex data, World, Type checking errors

5. 2/1, 2, 6 2/7 Abstract classes, constructors, exceptions, privacy; File read helper

6. 2/8, 9, 13 2/14 Equality, Function objects, Singleton pattern?

7. 2/15, 16 2/21 Circular data, methods, State change; fromStringData

8. 2/22, 23, 27 2/28 More imperative methods, generics, designing to interfaces, getters, setters, predicates; (Lab: stacks, lists w. generics)

9. 2/29, 3/1, 12 3/13 Traversals, Collections, Traversals with effects; ArrayList

10. 3/14, 15, 19 3/20 Loops, ADT's, Visitors; (Lab: ArrayList, sorting in place)

11. 3/21, 22, 37 3/28 Map, HashMap, Equality; Array

12. 3/29, 30, 4/2 4/3 Big Oh and Algorithms (introduce some standard ones); (Lab: Time trials, more algorithms)

13. 4/4, 5, 9 4/10 More algorithms (e.g.graph traversals, union/find, …); I/O, GUIs (Lab: GUI interactions, maybe more…)

14. 4/11, 12 4/17, 18 Q&A: what does it all mean; Lab: project presentations