00:00 Designing loops: start in the middle
03:34 Designing loops: how to stop
04:09 Designing loops: how to start
04:52 You don't always start at zero!
05:41 Designing loops: corner cases
09:06 Another solution
15:38 Using performance to compare the solutions
19:12 Observing a linear-time algorithm
20:44 Observing a quadratic-time algorithm