About the final exam
The final exam will test your knowledge of data structures and algorithms. There will be no questions specifically on C++. There will be 10 questions. The exam will be administered on Brightspace. You will have 165 minutes—this is two hours and 45 minutes, which is the standard time for a conventional final exam. (If you have an accommodation letter for 1.5x time, then you will have 248 minutes to complete the exam.)
- You must complete the exam in a single session. You may not pause the exam and return later.
- The exam is open note, open slides, open book. You may consult any official course material that’s been posted on Brightspace or the textbook for the course (Essential Algorithms).
- You may not use any other resources. No Google-ing for answers. No Chegg. No ChatGPT.
- You may not collaborate with other students or discuss the final with other students.
- All answers you submit must be your own.
- You may use calculators of any kind. You may use your computer (except to collaborate or research answers). If you like you can write computer programs to solve the exam problems.
Topics:
- Nodes with pointers
- Singly-linked lists
- Stacks and queues
- Analysis of complexity, including asymptotic (big O) notation
- Auxiliary and space complexity
- Trees
- Rooted trees
- Binary trees
- Traversal and search
- Depth-first search and breadth-first search
- Pre-order and post-order traversal
- In-order traversal of binary trees
- Binary search trees
- AVL trees
- Splay trees
- B-trees
- Binary heap
- Priority queue
- d-heap
- Sorting
- Simple comparison algorithms
- Bubble sort
- Selection sort
- Insertion sort
- Stable vs unstable sorting
- Divide and conquer
- Merge sort
- Quicksort
- Median-of-three method
- Bucket sort and radix sort
- Heap sort
- Simple comparison algorithms
- Searching linear structures
- Linear search
- Binary search
- Interpolation search
- Hash tables
- Horner hash
- Hash collisions
- Separate chaining
- Linear probing
- Quadratic probing
- Double hashing
- Relations and equivalence relations
- Equivalence classes
- The dynamic equivalence problem
- Weighted union
- Path compression
- Graphs
- Undirected graphs
- Directed graphs
- Weighted graphs
- Adjacency list
- Adjacency matrix
- Topological sort
- Shortest path
- Dijkstra’s algorithm
- Bellman-Ford algorithm
- Network flows
- Max flow - min cut
- Ford-Fulkerson algorithm for max flow
- Minimum spanning tree
- Prim’s algorithm
- Kruskal’s algorithm
Copyright © 2023–2025 Clayton Cafiero
No generative AI was used in producing this material. This was written the old-fashioned way.