It is also about proving that they really work in all possible cases, and showing how much time they take when confronted with a large version of the problem for which they were designed. If they're not so fast, then we also have to think about how to modify them. Sometimes properly organizing the data makes a crucial difference, so we will look at a variety of data structures and how they support related algorithms. The problems that the algorithms and data structures are designed to solve come from a wide variety of interesting and important application areas. Many of them may at first glance look like arbitrary mathematical puzzles, but that is because certain details have been abstracted away in the interests of clarity and generality.
Quizzes are closed book with no notes.
The final will cover the whole course but will place enough additional emphasis on the material studied after the second exam to compensate for the fact that this last material has not been on either of the two exams. All testing is closed book. No notes on quizzes. No photocopying of anything, even the textbook, though you may write out material from it verbatim. No copying of anyone else's notes, even by hand.