# COP-3530, Data Structures Lectures

- May 5: Administrivia
- May 5, 7, 12: Java Review
- MAY 5 CODE:
Assign1.java
Set.java
BogusSet.java
- MAY 7 CODE (includes a little from start of May 12):
Assign1.java
Set.java
BogusSet.java
- MAY 12 CODE:
Assign1.java
Set.java
BogusSet.java
- Read Chapters 1 - 4, Sections 7.1 to 7.3, and the Appendix, most of which is review material.
- Packages, interfaces, iterators
- Dynamically expanding arrays and
`ArrayList` (Section 2.4)
- StringBuffers
- Function Objects (Section 4.7)
- Nested, local, and anonymous classes (Section 4.7)
- Inner Classes (Section 6.2, 15.1, 15.2)

- May 14, 19: The Collections API
- CODE FROM MAY 19
- Read Chapter 6
- The Collections API
- Linked list review
- Sets
- Maps
- Iterators
- Assignment #2 discussion

- May 21, 28: Algorithm Analysis
- Read Chapter 5
- Big-Oh
- Maximum subsequence sum examples

- May 28, June 2: Recursion
- Recursion review
- Divide and conquer (Section 7.5)
- More recursion examples Recursion.java
- Discussion of Assignment #3

- June 4, 9: More Algorithm Analysis
- Single-operation costs
- Singly, and doubly linked lists
- Logarithms
- Binary search
- Mergesort (Section 8.5)
- Divide-and-conquer analysis

- June 11, 16: Linked Lists
- Implementation of
`java.util.LinkedList`
- Day11.java source code from June 11 class.
- Read Chapter 17

- June 18: Midterm
- June 23, 25, 30: Binary search trees
- June30.java source code from class.
- Insertion, find, deletion
- size, height, toString
- Implementation of contains and add

- July 2: AVL Trees
- July 7, 9, 14: Shortest Paths
- Read Section 14.3
- Discussion of Assignment #5

- July 14 and 16: Priority Queues
- July 21 and 23: Hash Tables
- Chapter 20 and 6.7.2.
- Discussion of Java 1.2 Collections API:
`HashSet`, `HashMap`, `equals`,
and `hashcode`

- July 28 and 30: Sorting
- Read Chapter 8
- Heapsort
- Quicksort
- Lower bounds for sorting

- Aug 4: Review
- Aug 6: Second Exam