This is a tentative syllabus for the course. Links will be added regularly with topics and assignments. Notes will be provided for each class, linked from the date. Unless otherwise indicated, references are to the textbook Data Structures & Algorithms in Java by Goodrich and Tamassia. Feedback is appreciated — typos, suggestions for more detailed explanations, additional examples, etc.

Day # Date Problems Techniques References Out Due
Day1 Mar 25 intro class goal, syllabus, Java basics 1 SA-0
Day2 Mar26, Mar 27 encapsulation classes, instance variables, contructors, overloading 2 SA-1 SA-0 (Survey due Mar 25, 11:59pm)
Day3 Mar 29 inheritance base classes, subclasses, overriding SA-2 SA-1
Day4 Apr 1 graphics buffered images, video SA-3 SA-2
Day5 Apr2, Apr 3 abstraction abstract data types, asymptotic notation 7.1 PS-1 SA-3
Day6 Apr 3, 5 lists linked list implementation 3.2 SA-4
Day7 Apr 8 (eclipse) Apr 9 lists 2 growing array implementation 7.2, 3.1.1, 4-4.3, 7.4 SA-4
Day8 Apr 10 hierarchies trees and recursion 8 PS-2 PS-1
Apr 12 midterm 1 6:00pm - 8:00pm Room Wilder 104
Day9 Apr 15 hierarchies 2 binary search trees 11.1
Day10 Apr 17 hierarchies 3 balance, 2-3-4 trees, red/black trees Ch 11.2, 11.5, 11.6 SA-5
Day11 Apr 19 info retrieval maps, sets 10.1 SA-6 SA-5 & PS-2
Day12 Apr 22 hashing hash functions, tables 10.2 SA-7 SA-6
Day13 Apr 24 keeping order stacks, queues 6 SA-8 SA-7
Day14 Apr 26 prioritizing priority queues, heaps 9.1 - 9.4 PS-3 SA-8
Apr 29 midterm 2 6:00pm - 8:00pm Room Wilder 104
Day15 May 1 relationships graphs 14.1, 14.2 SA-9
Day16 May 3 graph traversal breadth- and depth-first search 14.3 PS-4 PS-3
Day17 May 6 shortest paths Dijkstra's algorithm, A* search 14.6 SA-9
Day18 May 8 pattern matching finite automata
Day19 May 10 pattern recognition hidden Markov models PS-5 PS-4
Day20 May 13 (no class, video) web services acronym soup (URL, REST, XML, GUI) Java tutorials
Day21 May 15 (no class, video) client/server sockets, threads Java tutorials
Day22 May 17 (no class, video) synchronization synchronized blocks, monitors, semaphores Java tutorials SA-10 & PS-6
Day23 May 20 producer/consumer streams Java tutorials PS-5 & SA-10
Day24 May 22 string finding Boyer-Moore, tries, suffix trees Ch 13.2, 13.3
May 24 review Final recap
May 27 Memorial day
May 29 review ask questions about the final PS-6
Jun 3 final exam 3:00pm - 6:00pm Cummings 100