2.1 Template for designing recursive algorithms2.2 Size of the problem2.3 Base cases2.4 Problem decomposition2.5 Recursive cases, induction, and diagrams2.5.1 Thinking recursively through diagrams2.5.2 Concrete instances2.5.3 Alternative notations2.5.4 Procedures2.5.5 Several subproblems2.6 Testing2.7 Exercises