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 | 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 VAC 104 |