1 Exams

The midterm exam will be held Monday November 9, 2026 5-6pm in Smith 120 and Smith 205 (we will tell you which room to go to). The final exam will be held Thursday December 17, 2026 12:30-2:20pm in BAG 131 and BAG 154 (we will tell you which room to go to).

1.1 Midterm Exam

The midterm exam will be held Monday November 9, 2026 5-6pm in Smith 120 and Smith 205 (we will tell you which room to go to).

We will hold a review session on Friday November 6 during our regular lecture slots.

1.1.1 Policies

  1. Bring a photo ID with you to the exam.
  2. Closed book, closed notes.
  3. No calculators, cell phones, or other electronic devices allowed.
  4. Writing after time has been called will result in a loss of points on your exam. Be sure to put your name on your paper first.
  5. You will be provided a math reference sheet during the exam.

1.1.2 Content

All material from the course from lecture 1 up to and including AVL trees is fair game. Hashing and sorting will NOT be on the midterm. Check the lecture calendar for links to all slides used in class, as well as readings for each topic. This includes:

  • Abstract Data Types and Data structures:
    • Their Definitions and Differences
    • Examples
  • Stacks and Queues:
    • Array and Linked List implementations and running times
    • ADT Operations
  • Asymptotic Complexity:
    • Definition of big-oh, big-omega, big-theta
    • Identifying whether f(n) belongs to O(g(n)) (or big-omega, big-theta)
    • Finding constants c and n0 to demonstrate this
    • Identifying running times (best case and worst case) of example code
  • Recurrence Relations:
    • Examine recursive code and give a recurrence relation
    • Given a recurrence relation, solve it to closed form
  • Priority Queues:
    • ADT operations (insert, findMin, deleteMin, increaseKey, decreaseKey, remove)
    • The Heap data structure (including the heap property, complete tree, and buildHeap)
    • Run-times for all the above, using the array representation described in lecture.
  • Trees:
    • Definitions of height, depth
    • Preorder, Inorder, Postorder traversals of binary trees
  • Dictionaries:
    • ADT operations
    • Binary Search Trees: Definition, algorithms and running times of dictionary operations
    • AVL Trees: Definition, algorithms and running times of dictionary operations (including the definition of rotations and when to do them). The delete operation will NOT be covered.

1.1.3 Past Exams

We will post several sample exams closer to the midterm.