# Problem Set 10 - Due Wed Apr 27 at 23:00

1. Slides and notebooks from Lec 21 (Intro to Recursion) and to some degree from Lec 22 (Turtle Recursion).
2. Problems and solutions from Lab 11 (Recursion).
3. Think Python, Ch. 5, Sections 5.8–5.10 on recursion; Think Python, Ch. 6, Sections 6.5–6.9 on fruitful recursion might also be useful although this week we are not doing any fruitful recursive functions.

• Task 1: Recursion Drills — A series of problems from simple to medium-complex designed to help you practice writing recursive functions. Does not include branching or fruitful recursion. This is an individual task.

• Task 2: Recursive Circles — Create the similar concentric circles to the earlier circles task, using recursion instead of loops. You may complete EITHER this task or the recursive scales task, but you don't have to complete both. For this problem, having a partner is optional but recommended.

• Task 3: Recursive Scales — Create similar musical scales to the earlier scales task, using recursion instead of loops. You may complete EITHER this task or the recursive circles task, but you don't have to complete both. For this problem, having a partner is optional but recommended.

This problem set will give you practice with basic recursion, without needing fruitful recursion.

If you want to find a partner to work with for this problem set, use this Google Sheet to do so.

Reminders

• You can also use the server to take a 24-hour extension on this problem set if you need to.
• You should check the rubric for each task before you submit. The second and third tasks are alternates: you must complete one or the other, but you do not have to complete both. You must complete the first task (which is an individual task).

Time Estimate

Our per-task estimate for this pset is 2-4 hours, and our estimate for total time spent across all tasks is 5–8 hours, plus up to an hour of reading.

## How to turn in this Problem Set

• For recursionDrills, submit `recursionDrills.py`.
• For recursiveCircles, each team member must submit `recursiveCircles.py`.
• For recursiveScales, each team member must submit `recursiveScales.py`.