Schedule

Homework assignments are due at 9:30am on the day indicated. Assignments are posted to Moodle. The reading assigned each day relates to the next class's material, and is to be done before the next class meeting. For more details on class policies, please see the syllabus.

Date Due Class Topic and Materials Out Reading
Java Intro and Bags
1. M 9/16 Welcome; Java Basics
Being Bad At Math
Python-to-Java guide
HW0: Hello, Guessing Game (Java Basics) A.1–49, A.57–62,
A.67–92, B.1–29
2. W 9/18 HW0 Java: Arrays and Classes HW1: Histogram (Classes and Arrays) B.36–40, D.1–23
3. F 9/20 HW1 Java: Generics and Interfaces HW2: Pets (Interfaces) C.1–3, 1.1–21
4. M 9/23 HW2 Java: Composition; Bag ADT HW3: Spell Checker (Bag ADT) 2.1–41
5. W 9/25 Bag Impl — Array 3.1–30
6. F 9/27 HW3 Bag Impl — Linked 4.1–27
Stacks, Queues, and Lists
7. M 9/30 Quiz 1; Efficiency of Algorithms HW4: Efficiency 5.1–5
8. W 10/2 Efficiency; Stack ADT 6.1–12, 7.1–27
9. F 10/4 HW4 Stack Impl; Recursion HW5: Stack I 8.1–8.9, 9.1–9
10. M 10/7 Sorting; Sorting Efficiency HW6: Stack II 10.1–23
11. W 10/9 HW5 Sorting; Queue & Priority Queue ADTs 11.1–23, 11.34–41
12. F 10/11 Queue Impl 12.1–14
13. M 10/14 HW6 List ADT HW7: Sorting 13.1–15, 14.1–27
14. W 10/16 Quiz 2; List ADT & Impl HW8: Queue/PQ I 16.1–28
15. F 10/18 HW7 Sorted List ADT HW9: Queue/PQ II 18.1–25, 19.1–5
XX. M 10/21 No class
Dicts and Trees
16. W 10/23 HW8 Searching; Dictionary ADT 21.1–19
17. F 10/25 HW9 Hashing HW10: Hash Table 21.20–25, 22.1–16
18. M 10/28 Hashing as Dict Impl 23.1–19
19. W 10/30 HW10 Tree ADT HW11: Binary Search Tree 24.1–12
20. F 11/1 Tree Impl 25.1–27
21. M 11/4 Quiz 3; Binary Search Tree as Dict Impl 26.1–20
Heaps, Self-Balancing Trees, and Graphs
22. W 11/6 Heaps HW12: Self-Balancing Search Tree 27.1–7
23. F 11/8 HW11 AVL Trees 27.13–30
24. M 11/11 2-3 & 2-4 Trees 27.31–38
25. W 11/13 Red-Black Trees 28.1–28
26. F 11/15 HW12 Graphs 29.1–22
27. M 11/18 Graph Impl 29.23–24
28. W 11/20 Quiz 4; Graph Algorithms