Final Exam Pt1: Thur, August 18

Same time and location as your quiz section

Final Exam Pt2: Fri, August 19

9:40 - 10:40am, location: SIG 134


22su Final Exam pt1, Solution
22su Final Exam pt2, Solution


Final exam policies

1. Closed book, closed notes.

2. No calculators, cell phones, or other electronic devices allowed.

3. Writing after time has been called will result in a loss of points on your exam.

4. You will be provided this reference sheet during the exam.

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. This is roughly: Hashing, Sorting, Graphs, Parallelization, Concurrency, NP-completeness.


Topics Include at least

Topics not tested on


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.


Midterm Exam: Monday, July 18, 2022

9:40 - 10:40am, location: SIG 134


Midterm exam policies

1. Closed book, closed notes.

2. No calculators, cell phones, or other electronic devices allowed.

3. Writing after time has been called will result in a loss of points on your exam.

4. You will be provided this reference sheet during the exam.

All material from the course from lecture 1 up to and including B-trees is fair game.

Hashing will NOT be on the midterm.


Topics Include at least

  • Stacks and Queues - array and linked list implementations. Runtimes.
  • Big Oh (and Omega & Theta):
    • Know the definition
    • Be able to evaluate whether f(x) is O(g(x)), Big Omega, Big Theta
    • Be able to find constants c & n0 to demonstrate Big Oh, Big Omega, Big Theta
    • Examining code to determine its Big O running time.
    • Best case, worst case, average case
    • Space complexity
    • Space & Time tradeoffs
  • Recurrence Relations:
    • Know closed form for common recurrence relations
    • Given a recurrence relation, solve to closed form
  • Binary Heaps:
    • Structure & ordering properties
    • Related: Perfect and Complete Trees.
    • Insertion, findMin, deleteMin, increaseKey, decreaseKey, remove, buildHeap
    • Run-times for all the above; including intuition for expected O(1) for insert & O(n) for buildHeap
    • Array representation
    • D-heaps - how different/related to Binary Heaps
  • Tries:
    • Find, insert & delete operations as described in P2
  • Dictionary ADT: insert, find, delete
  • Binary Search Trees:
    • Binary property, BST ordering property
    • Inorder, Preorder, Postorder traversals
    • Find, insert & delete
    • Run-times for all the above
  • AVL Trees:
    • BST with stored height & balance property
    • Height bound resulting from balance property (you do not need to memorize the proof, but being familiar with how you construct the worst case AVL tree may be helpful)
    • Insertions; different rotation cases, no delete
    • Run-time for find & insert
  • Memory:
    • Temporal and spatial locality
    • Data structure choice and locality
  • B-Trees:
    • Motivation for the B-Tree; how it can minimize disk accesses
    • Structure, ordering; use of M, L; principles behind the selection of M & L
    • Insertion, find, deletion; the rules followed for insertion and deletion will be those shown in lecture
    • Run-times of the above

Topics not tested on

  • IntelliJ
  • Generics
  • Java syntax

Misc

1. Note that you may be required to write pseudocode, but it will be evaluated as an algorithm, not as valid Java (or whatever) code.

2. Writing a simple proof of some sort is a possibility. Any such proof will be intended to show that you know how to prove things. You will not be expected to have a "magic insight" in order to complete the proof.

3. The homeworks and section problems thus far are a decent indication of the types of questions that could be asked.


Previous midterms

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.