Information about the midterm ----------------------------- You are allowed to bring one sheet of 8.5 by 11 inch piece of paper with any handwritten notes (written by you) you'd like on one side of the paper. Put all your belongings at the front of the room. Turn off phones which should be in your belongings at the front of the room. Besides your cheat sheet, you should only have with you pen/pencil, maybe a drink/snack. You do not need a calculator, no computer, no phone. Go the restroom before class!! If the exam has a small mistake or needs a clarification, I will write it on the board. For a big mistake, I will interrupt the class with an announcement. On the exam: -- When taking the exam, use points to guide you. A 10 point question should roughly take 10 minutes. There ae 100 points and 120 minutes so there are 20 minutes of wiggle room. -- Don't erase! Cross out (because often what you think is wrong is actually correct or close to correct). -- Show all work on the exam. I give lots of partial credit. And in many cases work is essential to demonstrate your understanding, e.g., Dijkstra's algorithm, balancing a tree. -- Ask me a question if you don't understand something or for any confusion as there is something magical about saying it out loud. -- If you are truly stuck, I'll sell you a hint. Code: -- You don't have to comment but feel free to write me a note about anything. -- Please use meaningful names and proper indentation. -- If you need to add some code to code you have already written, it's fine to write it off to the side with an arrow showing where it goes. -- For all problems, especially code, please use the exam and go to scratch paper if you mess up. But don't start on scratch paper. -- For all problems, turn in all your scratch paper. The exam covers -- Review material as covered in class and lab1: OOP basics, ADTs, complexity (There will likely be a problem similar to functions of lab1.) -- Priority queues and binary heaps (theory, implementation, and practice) -- Graphs (theory, implementation, uses) only algorithms covered in lecture. -- General trees (theory and implementation) -- Binary Trees including .. Binary search trees as in lab2 .. General Binary trees as in lab2 (Likely be a problem similar to functions of lab2.) .. Execution trees .. AVL trees (structure, use, insertion only) .. General theory of 2-3 tree (structure, use, insertion only) .. General theory of B-tree (structure and use) -- Tries (structure, use, insertion) You are responsible for all algorithms covered and their complexity. (E.g., Huffman encoding, etc.)