----------------------------------------------------- What you should know before to take the 1st midterm: ----------------------------------------------------- 1. algorithm analysis: - be able to analyze fragments of code - be able to give the corresponding big-Oh notation - be able to describe the specific case(s) leading to best/worst-case complexity 2. lists/arrays: - know the pros and cons - understand the mechanisms of both data structures - be able to compare two algorithms: one using arrays, the other using lists - be able to choose the best algorithm to solve a given problem, and to justify the use of a data structure instead of the other one. 3. stacks: - know what a stack is - know what it is useful for - be able to describe an algorithm using a stack for a given problem - be able to discuss the time complexity of an algorithm using a stack