Today we’ll talk about the idea of RECURSION in the pre-recorded lectures. PLEASE. PLEASE. PLEASE. Watch these videos before coming to the Tutorial session on Wednesday.
There are a lot of them. Maybe you don’t need to watch every single one at regular speed. Maybe you can watch some at double speed but then some at single speed. It’s up to you – but keep in mind we’ll ask you to actually WRITE some recursive functions in the Tutorial.
Recursion is a powerful tool that allows us to express the “solution” to a problem in terms of a “base step” and a “recursive step.” Essentially, it’s a programming tool that can make it really easy to break seemingly large problems down into simple steps. It is not exclusive to ISL+ or to functional programming. It exists in almost all programming languages as it’s often the simplest way to express a solution to complex problems.
For example, here it is in Python!
While it is powerful…it is also confusing. We have to get used to thinking in this new way in order for it to be useful to us as computer scientists.
If you’re bored, try googling “recursion” and seeing what happens!
Today's Resources
1. Exercise Files
Download Exercise Files2. Slides
3. Pre-Recorded Lecture Video(s), Mini-Quizzes, and Live Recordings
| Link | Title | Type | Duration |
|---|---|---|---|
| Video 0 | Intro (Review) | pre-recorded | 9:24 |
| Video 1 | Summing a List under the Substitution Model (Review) | pre-recorded | 5:56 |
| Video 2 | Recursion | pre-recorded | 3:07 |
| Video 3 | Recursively Summing a List (Example) | pre-recorded | 6:11 |
| Video 4 | Recursion Template | pre-recorded | 4:20 |
| Video 5 | Recursive foldr (example) | pre-recorded | 2:26 |
| Video 6 | Recursive length (example) (MQ - No Longer Available) | video_quiz | 3:48 |
| Video 7 | Sussman Form (new special form) | pre-recorded | 2:27 |
| Video 8 | Recursive iterated-beside (example) | pre-recorded | 5:37 |
| Video 9 | (Optional) Execution is Recursive! | pre-recorded | 2:34 |