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. Feedback is appreciated — typos, suggestions for more detailed explanations, additional examples, etc.

Date Problems Techniques References Out Due
Mar 26 intro basic Java program structure, classes & objects, console 1 SA-0
Mar 28 animated blobs objects, classes, inheritance; GUI event-driven programming 2 SA-1 SA-0
Mar 30 animated images lists, images SA-2 SA-1
Apr 2 image processing image representation, nested loops SA-3 SA-2
Apr 4 video processing put it all together PS-1 SA-3
Apr 6 lists interfaces; generics; exceptions; linked lists 7.1, 3.2 SA-4
Apr 9 lists 2 efficiency; array lists; iterators 7.2, 3.1.1, 4-4.3, 7.4
Apr 11 hierarchies trees and recursion 8 SA-4
Apr 13 hierarchies 2 binary search trees 11.1 PS-2 PS-1
Apr 16 midterm 1 LSC 100 6:00pm - 8:00pm
Apr 18 info retrieval maps, sets 10.1
Apr 20 hashing hash functions, tables 10.2 SA-5
Apr 23 keeping order stacks, queues 6 SA-6 PS-2 & SA-5
Apr 25 prioritizing priority queues, files 9.1, 9.2 PS-3 SA-6
Apr 27 prioritizing 2 heaps 9.3, 9.4
Apr 30 No class
May 2 relationships graphs 14.1, 14.2 SA-7
May 4 graph traversal breadth- and depth-first search 14.3 PS-4 PS-3
May 7 midterm 2 LSC 100 6:00pm - 8:00pm
May 9 shortest paths Dijkstra's algorithm, A* search 14.6 SA-7
May 11 pattern matching finite automata
May 14 pattern recognition hidden Markov models PS-5 PS-4
May 16 web services acronym soup (URL, REST, XML, GUI) Java tutorials
May 18 client/server sockets, threads Java tutorials
May 21 synchronization synchronized blocks, monitors, semaphores Java tutorials SA-8 PS-5
May 23 producer/consumer streams Java tutorials PS-6 SA-8
May 25 balance 2-3-4 trees, red-black trees Ch 11.2, 11.5, 11.6 SA-9
May 28 No class Memorial Day
May 30 string finding Boyer-Moore, tries, suffix trees Ch 13.2, 13.3 PS-6 & SA-9
June 3 final exam LSC 100 3:00pm - 6:00pm