M6: Recursion¶
This module provides an introduction to recursive functions and recursively-defined data structures.
Pre-recorded Lectures¶
The pre-recorded lectures are available through Canvas.
The lectures include a video to introduce the module (“Overview of Module M6”) and the instructor (coming soon) and a series of 5-20 minute videos divided into three sections:
- 6a - Recursive Functions
6a.1 - Introduction to Recursion
6a.2 - Anatomy of a Recursive Function Call
6a.3 - How to Think Recursively
6a.4 - Binary Search
- 6b - Trees
6b.1 - Introduction to Trees
6b.2 - Using Trees
- 6c - Bonus: Functional Programming
6c.1 - Introduction to Functional Programming
6c.2 - Higher-Order Functions
6c.3 - Anonymous Functions
6c.4 - map(), filter(), and reduce()
Textbook Chapters¶
The chapters corresponding to this module are:
A PDF version of the textbook is also available here.
You will be asked to log in with your CNetID before you can see the textbook.
Please note that the pre-recorded lectures cover largely the same material as the book. We recommend starting with the pre-recorded lectures, and then reading through the book (but do not feel bad if you find yourself skipping large portions of the textbook, if you feel they tread on material that you already understood when watching the lectures)
Zoom Sessions¶
You will find the links to the Zoom sessions on Canvas.
- Week 8
Wednesday, November 18th: Lab #6
Friday, November 20th: Q&A and extended example
Files from Stimulus example:
Lab¶
In the November 18th lecture, we will be working through a few of the problems in this lab. You are not expected to complete the lab before that lecture, but you should try to read through it so you are familiar with its contents.
Short Exercises¶
Short Exercises #6, due Friday, Dec 4 at 3pm CST
Programming Assignment¶
Programming Assignment #6, due Friday, Dec 4 at 3pm CST