CPSC 327 Data Structures and Algorithms Spring 2025

Final Exam Review Information

The final exam will be during the registrar-assigned final exam timeslot. Take care of any necessary business before the exam so that you do not need to leave the room during the exam.

The exam will be closed book, but you may use one page of notes which you will turn in with your exam. Important: "One page" means one side of an 8.5x11" piece of paperhardcopies only, you may not use a tablet or laptop or other device to access your notes during the exam. (It's fine to create your notes electronically if you want, just make sure you print them out before the exam!) In addition, your notes must be personally prepared by you — you may not use generative AI to produce a set of notes, copy another student's notes, or make copies of your own for others. (Creating your own notes is an essential part of the learning process — deciding what to include requires engagement with the material which reinforces understanding and improves long-term retention of the material, provides an opportunity for review in order to identify gaps in your knowledge in time to ask questions before the exam, increases confidence in what you do know, and encourages taking ownership of your own learning.)

The exam will focus on algorithm development and complexity. (Other material will play a supporting role — big-Oh and data structures come in when considering efficiency, for example — but there won't be questions solely about that material.) Specific topics include:

"The development of ... algorithms" means

For the algorithm development processes, you will be provided with a listing of the steps for each paradigm without further description. (Such as what is given in the posted feedback for homeworks 7-11.) You should know (or include in your page of notes) what those steps mean/involve as well as the relevant patterns (easy split, easy merge, process input, produce output, etc) but you do not need to memorize exactly which steps go with which paradigms.

Homeworks 6-12 and the ski-o and time-o programming assignments cover material that may be on the exam. Expect questions like those on the homeworks (developing an algorithm via graph modeling or using the process for a particular paradigm, identifying avenues for improving backtracking through pruning and branch-and-bound, NP-completeness reductions) as well as questions about particular aspects or steps of the algorithm development processes and short answer questions about definitions or concepts relating to the algorithm development processes, reductions, complexity, and strategies for dealing with NP-complete problems.