ITEC 360: Final Exam Topics - Spring 2020
DRAFT
-
Updates :
- No updates at this time.
-
- Coverage - primarily what we actually did in lecture and homeworks
- Exam 1: Chapters 2 (Asymp. Analysis),3 (Brute Force), 4
(Decrease and Conquer), Appendix A (Math)
- Exam 2 (if we'd had it): Chapters 5 (DivCon), 8 (DP), Appendix B
(Recurrences)
- Since Exam 2 (so to speak): Chapter 9 (Greedy), 6 (Trans/Con), 7 (Space/Time
Tradeoffs), 11 (Lower bounds, P/NP), App B (Forward Sub)
- Lecture and notes, supplemented by relevant sections of the text
- Homeworks and programs
- Approximate Percentages (not updated for spring 2020):
- Material from test 1: 30%
- Material from test 2: 20%
- Material since test 2: 60%
- In cases, it's hard to determine which section a question falls in, and a question's percentage is
split between 2 sections (ie performance of sorting could fall under test 1 material or material since test 2).
- Chapter 9: Greedy Algorithms
- Relation to and differences with Dynamic Programming
- Role of choices and subproblems
- Definitions of and approaches to common problems:
- Change making
- Graph problems (see below)
- Huffman coding
- Knapsack variations (we only did basic knapsack)
-
Activity selection
-
Greedy property
- Chapter 9: Graph Algorithms (Graphs also in chapter 3)
- Define a graph
- Differentiate in diagrams, definition, and data structures the difference between directed
and undirected graphs
- Describe and give the adjacency list and adjacency matrix implementations of a graph
- Trace algorithms for breadth first search of a graph
- Trace algorithms for depth first search of a graph
- Chapter 9: Minimum Spanning Trees
- Define a tree as it relates to a graph
- Define a spanning tree
- Define a minimum spanning tree
- Trace Prim's and Kruskal's algorithms for finding a MST
- Chapter 9: Shortest Path Algorithms
- Define the shortest path problem
- Trace the operation of Dijkstra's algorithm for solving the single source shortest path
problem
- Compare and contrast Dijkstra's and Kruskal's Algorithms
- Chapter 6: Transform and Conquer
- AVL Trees: AVL property, and purpose of rotations
- 2-3-4 Trees
- Properties
- How to add elements to a 2-3-4 tree (split on way down or up)
- Red-Black Trees
- Relation to 2-3-4 trees
- Can you have two black nodes in a row? Certainly.
-
Relation of properties to 2-3-4 trees
- B-Trees (text covers in Chapter 7)
- Definition
- Purpose
- Performance
-
Properties
-
Order, number elements vs number children per node
- Heaps:
- Applications: Heap sort, priority queue
- Heap property
- Array implementation
- Almost complete
- Indices of children and parent
- Heap sort:
- Operation: Remove and store largest, restore heap property
- Didn't mention: "Remove" by moving to end and changing index of end of heap
- Priority queues: Remove largest, repair heap
- Performance: Sort, repair
-
Operations: Construct heap from top or bottom, (re)heapify, sort
-
Construct heap top down and bottom up
- Problem reduction:
- Examples: uniqueness reduces to closest pair, minheap reduces to maxheap, others
- Definition
- Performance and reduction
- Chapter 7: Space and Time Tradeoff
- String Matching:
- Brute force:
- Basic ideas:
- Compare at end
- Pre-build tables showing shift amount
- Horspools: build tables and perform
- Boyer-Moore: build tables and perform, contrast with Horspool
- Linear Sort (not on 2020 exam)
- Give the performance and input requirements,
and give and trace the algorithm for counting (ie distribution) sort
- Give the performance,
and give and trace the algorithm for radix sort
- Give the performance,
and give and trace the algorithm for bucket sort
- Hash Tables
- Give and explain the best, worst, and expected case for hash table
insert, delete, search (successful and unsuccessful)
- Explain basic concepts and terms such as hash
function, hash to,
collision, chaining, load factor, simple uniform hashing
- Define perfect hashing and it's performance
- Chapter 11: Lower Bounds and NP Completeness:
- Define comparison based sorting
- Give the lower bounds for best and worst case for comparison based sorting
- Define concepts: P, NP, NP-Complete
- Explain the significance of NP-Complete problems
- Explain the role of reduction in NP-Completeness theory
- Explain how to prove that a problem is NP-Complete
- Define terms: P, NP, NP-Complete