Tue, May 7 (1:00-2:40) |
|
Format same as midterm |
|
Study advice |
|
Course material |
Data Structures Java review, arrays, generics, iterators inheritance, interfaces, polymorphism Collections List interface: ArrayList, LinkedList Set Interface: TreeSet, HashSet Map interface: TreeMap, HashMap Stack class, Queue interface, PriorityQueue class Graph interface: DiGraphList, DiGraphMatrix, GraphList, GraphMatrix low-level structures linked lists: singly vs. doubly, dummy nodes, iterators trees: hierarchical, recursive processing, binary search trees, heaps, heap sort, array implementation graphs: adjacency matrix vs. list hash tables: hash functions, load factor, rehashing collisions, clustering, probing vs. chaining Math Structures functions & sets bijections, mappings, sequences, sets & subsets linear structures lists, sets, maps nonlinear structures trees: root, leaf, child, path, height, weight, ... binary search trees, self-balancing trees (red-black, AVL), heaps graphs: vertex, edge, adjacent, incident, degree, path, ... simple vs. directed, weighted vs. unweighted depth first search, breadth first search, finite state machines counting techniques bijection rule, product rule, sum rule, division rule, generalized product rule, n choose k, inclusion/exclusion rule, pigeonhole principle proof techniques direct proof, proof by contradiction, proof by induction Algorithm Analysis algorithm analysis best vs. average vs. worst case analysis big-Oh notation, rate-of-growth analysis, big-Omega & big-Theta searching and sorting standard algorithm analysis, specialized sorting algorithms recursion recursive algorithms, recurrence relations Assignments 1. java review & design (credit card verification) 2. queues & efficiency (ArrayQueue vs. LinkedList) 3. lists & linked structures (ComboList) 4. proofs & counting (induction proofs, counting) 5. lists, trees & tries (Trie, memory/access comparisons) 6. treesets & text processing (WordSet) 7. maps & finite state machines (FSM, PathTracer, pathFinder) |