Location and Logistics
CSE 332 Spring 2025 Final Exam: Thursday, June 12, 2025
12:30-2:20pm (1 hour & 50 minutes)
The final will be in Bagley Hall, rooms 131 and 154
BOTH lecture A & lecture B will take the exam at this time. We'll tell you which room you'll be in a few days before the exam.
Conflict Exam
If you are unable to make that time due to a pre-existing scheduling conflict, please fill out this form by Friday May 30th.
If you are sick the day of the exam do not come to the exam. Send Robbie an email so we know why you're not there, and we will schedule makeup exams as needed. Similarly in the event of some other emergency (e.g., a car accident on your way to campus), send Robbie an email and we'll schedule a makeup.
Final exam policies
1. Closed book, closed notes.
2. No calculators, cell phones, or other electronic devices allowed.
3. You will be provided a reference sheet during the exam. We expect it to be this reference sheet, but might add more similar information if needed.
The final is cumulative, which means we can ask you about any topic from the whole class. That said, we will put significantly more focus on the second-half of the course. I will not ask you to actually *do* an AVL insertion, but having a reasonable idea of how these work would be a good idea.
This is roughly: Sorting, Graphs, Parallelism, Concurrency, P/NP.
Possible topics Include at least: (NOT NECESSARILY AN EXHAUSTIVE LIST)
- Topics from the first half (see the midterm list)
- Sorting
- Sorts:
- Simple Sorts: Insertion Sort, Selection Sort
- Heap Sort
- Merge Sort
- Quick Sort
- Knowing there are non-comparison based sorts, and that they require extra assumptions about the input; an extra video covers Bucket Sort & Radix Sort, though we won't ask you to execute these.
- Know run-times and properties (stable, in-place, etc.)
- Know how to carry out the sort
- Lower Bound for Comparison-based Sorting
- Won't be asked to give full proof
- But may be asked to use similar techniques
- Be familiar with the ideas
- Graphs - In general, know how to carry out the operation/algorithm & running time.
- Graph Basics
- Definition; weights; directedness; degree
- Paths; cycles
- Connectedness
- DAGs
- Graph Representations
- Adjacency List
- Adjacency Matrix
- What each is; how to use it; pros and cons of each.
- Graph Traversals
- Breadth-First
- Depth-First
- What data structures are associated with each?
- Dijkstra's Algorithm for Finding Shortest Paths
- Topological Sort
- Prim's Algorithm for Finding Minimum Spanning Trees
- Kruskal's Algorithm for Finding Minimum Spanning Trees
- Use of Disjoint Sets in Kruskal's Algorithm
- Parallelism
- ForkJoin Parallelism, and Associated Terms (Work, Span, etc.)
- ForkJoin Applications, ex: Parallel Summing of an Array
- Reduce: parallel sum, multiply, min, find, etc.
- Map: bit vector, string length, etc.
- Be able to write Java fork join code for simple maps & reductions
- Parallel Prefix Sum Algorithm, Filters, etc.
- Analysis of Parallel Algorithms
- Amdahl's Law
- Given a scenario, use maps, reduces, filters and/or packs to give a high-level algorithm description
- Concurrency
- Race Conditions
- Data Races
- Bad Interleavings
- Synchronizing your code
- Locks, Reentrant locks
- Java's synchronized statement
- Issues of lock scheme granularity: coarse vs fine
- Issues of critical section size
- Deadlock
- Be able to write pseudo-code for Java threads & locks
- P, NP, NP-completeness
- What does each of these classes mean
- Examples of problems in each class (problems will either be ones we've explicitly discussed or closely-related problems)
- What to do if you think the problem you are trying to solve is
NP-complete?
Topics not tested on
- IntelliJ
- Generics
- Java syntax
Misc
- Note that you WILL likely be required to write Java code (in
particular Fork-Join code), but we will not be
sticklers for Java syntax. Edge cases and other details of a
correct algorithm - yes, semicolons - no.
Previous finals
We provide some exams from previous quarters of 332 to help with
your studying. Be aware that the topics covered may vary from what
will be covered on our exam - refer to the list above if you are
wondering about a particular topic. Our hope is that these exams
will be useful in your studying, but you should NOT take
them as a guarantee of exactly what your exam will be like this
quarter. They are provided only to help you in your
studying. We recommend taking these exams on your own in a timed
environment to get practice both with the material and with
managing your time. Most students find this approach better
preparation than just looking at the solutions.
Finals for Robbie's 332 courses
Finals written by other instructors
When looking at these finals, be on the lookout for differences between quarters. In particular, we haven't covered some topics (e.g., B-trees) that will appear in other finals. Additionally, our definition of P requires problems to be decision problems (other courses just required a polynomial time algorithm), so answers may be different
- CSE 332 25wi Sample Final,
Soln
- CSE 332 23sp Final,
Soln
- CSE 332 23wi Final, (Soln)
- CSE 332 22su Final - Part 1, (Soln)
- CSE 332 22su Final - Part 2, (Soln)
- CSE 332 19au Final, (Soln)
- CSE 332 19wi Final,
(Soln)
- CSE 332 18au Final,
(Soln)
- CSE 332 18wi Final,
(Soln)
- CSE 332 17au Final,
(Soln)
- CSE 332 16au Final,
(Soln)
- CSE 332 15wi Final,
(Soln)
- CSE 332 12sp
final
(Soln)
- CSE 332 12wi
final
(Soln)
- CSE 332 12su
final
(Soln) Note:
this exam was only 90 minutes long.
- CSE 332 10sp
final
(Soln)
- CSE 332 10su
final (no solution available) Note: this exam was only an hour
long.
Good luck with your exam studying!