Final Exam Study Guide
See the syllabus for the deadline.
NOTE
In-person students must take the exam in class during the last class period and the official exam time.
This exam shall have 2 sections, each worth 50%:
a GitHub/Auto-Grader with multiple problems and
a Blackboard section.
Both sections will be timed and cannot be paused. Blackboard will allow you to reconnect if you lose your connection. Each Auto-Graded problem will have a separate time limit, as stated in its instructions.
The final will consist of programming problems and stepping through the iterations of algorithms (showing the state at each step). Big O will also be a significant topic during your final. Your Auto-Grader grade is based on the percentage of passing test cases.
Included Topics
Data Structures:
Arrays
Linked List (singly- and doubly-linked)
Vectors, Stack, Queue, Circular Buffer
Trees:
- Binary Search Tree (Ordered Sets, Ordered Maps)
- Heaps
- Priority Queues
- B-trees
- Quadtrees
Hash Tables implemented via Chaining and Linear Probing: (a.k.a., Unordered Set, Unordered Map,)
Graphs (Adjacency List, Adjacency Matrix)
- Types: Directed, Undirected, Simple (no loops or parallel edges), and Strongly-Connected (all vertices are connected)
Algorithms:
Sorting: Bubble, Selection, Insertion, Quick, Merge, Heap
Searching: Linear, Binary, Depth-first search (DFS), Breadth-first search (BFS)
Traversing: preorder, inorder, postorder
Graphs: DFS, BFS, Dijkstra's Shortest Path, Prim's Minimum Spanning Tree
Deleting and inserting into each data structure
Copy constructor for each data structure
Other:
Compare/contrast, with space complexity and runtime complexity in Big-O notation.
Know what each data structure does and how it does it.
Recursive and iterative solutions to the above algorithms
Function pointers and function objects
Memory Allocation: Dynamic/Heap, Stack, and Static memory
Templates
Operator Overloading
Example Question
You may reference the Midterm Study Guide for example questions. The format will be very similar.
I have provided an example problem in the exam2-0/
directory that you can try before starting the real exam problems. Use it to understand the procedure before you focus on problem-solving when timed.