Exam 1 Topics

Review materials covered from the slides, assigned reading, homework, plicker questions, and in-class questions. You should be able to sufficiently justify why any algorithm or data structure operation has the time complexity it does.

Exam 2 Topics

Topics are implicitly cumulative, not explicitly. That is, I will not directly ask you questions from exam 1 topics. However, many exam 2 topics depend on content we previously covered. For example, you’ll need to understand asymptotic notation as we continue to use that to represent the run time of an algorithm. It is also expected you understand and can use previous data structures and algorithms. Review materials covered from the slides, assigned reading, homework, plicker questions, and in-class questions. You should be able to sufficiently justify why any algorithm or data structure operation has the time complexity it does.

Types of questions

There is one page for each problem (which may consist of sub-problems).

Try to work as many problems as possible. If you get stuck, briefly write down your ideas and then move on to the next problem – you can come back later if there’s time. The last problem is a challenging bonus problem, which is worth less points. Save the last bonus question for last; it is entirely optional. Be concise and give well-organized explanations. Long, rambling, or poorly written/organized explanations, which are difficult to follow, will receive less credit.

Expect questions of the following form: