Information about the midterm

Since the class before us finishes at 5:30pm, to give you more time, either for the exam or between classes, we will start at 5:40pm.

You are allowed to bring one sheet of 8.5 by 11 inch piece of paper with any handwritten notes you'd like (written by you) on one side of the paper.

Spread out in the room. With so few students, everyone gets their own table.

If you are really stuck on a problem, I sell hints. Also be sure to ask questions if anything confuses you (no points will be taken off). Often just by asking the question, it clarifies the issue.

And don't erase! Often I can still read erased work and too often, it is more correct than what is given as the answer. If the answer is correct, I won't look at crossed out work. But if the answer is not correct, I consider all work looking for partial credit. I always want to see an understanding. In fact, be bold. Use pen (but not red)!

If you're not a good test taker, a general approach to manage time is to allow the number of minutes by the number of points. For example, for a 10-point question, allow 10 minutes. This isn't precise as some questions take less time, some more, but it's a good rule of thumb. For a 100-point exam, 100 minutes gives you some extra time. Using this technique will save you from something I hate to see ... where someone spends a lot of time on a problem when they would have only lost a point or two anyway, and then doesn't have enough time for a 30-point problem.

The exam covers

  • Review material as covered in class and lab1: OOP basics, ADTs, complexity
  • Priority queues and binary heaps (theory, implementation, and practice)
  • Graphs (theory, implementation, uses) only algorithms covered in lecture and notes.
  • General trees (theory and implementation)
  • Binary Trees including
          -- Binary search trees as in lab2
          -- General theory of 2-3 tree (structure, use, insertion)
          -- General theory of B-tree (structure and use)
          -- AVL trees (structure, use, insertion)

    You are responsible for all algorithms covered and their complexity.

    Don't use the old exam to study from, first study, then take the exam in two hours to test yourself.

    Write your answers on the exam. If you mess up, cross out, and use scratch paper. But don't write on scratch first.

    And if you haven't learned it by now, the golden rule of exams is ... keep the grader happy. I.e., Don't do abnormal things. For example, don't use x in a for loop. The variable newNode is challenging when reading code such as Node* newNode = new Node;

    And remember to bring a pen (or pencil if you insist) ... Wes.