This is a tentative syllabus for the course, and is likely to change. Links will be added regularly with current/upcoming 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 (or "DSA"). At the beginning of the class some reading will be from the alternate web book Problem Solving with Data Structure (or "PSDS"). Feedback is appreciated — typos, suggestions for more detailed explanations, additional examples, etc.

DateTopicsReferencesOutDue
Sep 16Intro to OO programming and JavaCh. 1; Ch. 1, 2.1-2.2 (PSDS) SA-0
Sep 18Classes and ObjectsCh. 2.3-2.4 (PSDS)SA-1SA-0
Sep 20Finish Classes and Objects. Image ProcessingCh. 3 (PSDS)
Sep 23 Finish Image Processing. Arrays. Interfaces and PolymorphismCh. 2, 3.1SA-2SA-1
Sep 25ArrayLists and Inheritance6.1SA-3SA-2
Sep 27Linked ListsCh. 3.2-3.5PS-1SA-4SA-3
Sep 30Graphics, GUI components, Listeners, CallbacksSA-4
Oct 2More GUIs.PS-2SA-5PS-1
Oct 4Abstract Classes. Review of Algorithm Analysis.Ch. 4
Oct 7Stacks, Queues, DequeuesCh. 5SA-6SA-5
Oct 9Iterators, with List examplesCh. 6SA-6
Oct 11Class CancelledPS-2
Oct 14TreesCh. 7PS-3SA-7
Oct 16Traverals, Expression Trees, ExceptionsSA-8SA-7
Oct 18Heaps and Priority QueuesCh. 8SA-8
Oct 21Maps, Sets, and Instant Runoff ElectionsCh. 9.1PS-4SA-9PS-3
Oct 23Hash tablesCh. 9.2, 9.3
Oct 25Binary Search TreesCh. 10.1SA-9
Oct 28Midterm, 7-10 pm, in LSC Arvo J. Oopik 1978 Auditorium (Room 100)
Oct 30Binary Search TreesCh. 10.1
Nov 1Graphs and their RepresentationsCh. 13.1, 13.2SA-10
Nov 4 Graph traversals (BFS, DFS)Ch. 13.3, 13.4PS-5PS-4
Nov 6Shortest Paths (Dijkstra's) and A* searchCh. 13.5SA-10
Nov 8 Game Tree SearchSA-12
Nov 13 Kalah and the Model/View/Controller PatternPS-6PS-5
Nov 14 (x)Balanced BSTsCh. 10.4, 10.5, 14.3
Nov 15Skip ListsCh. 9.4SA-12
Nov 18Concurrency and Threads. Synchronization. Deadlocks.PS-6
Nov 22Final, 8-11 am, Murdough Cook