[ L01 L02 L03 L04 L05 L06 L07 L08 L09 L10 L11 L12 L13 L14 L15 L16 L17 L18 L19 L20 L21 L22 L23 ]
Before lecture 14, you should:
It is crucially important that you be totally comfortable with all of the Abstraction module up through Fold Functions pt. 1 before lecture because we will build on it significantly to make much more complicated programs get much much shorter.
The starters for this lecture are:
The first thing to do is feel good for working through today's lecture - it is a difficult one. Feel good even if some of it was confusing! We are now past where many intro programming courses go. So don't be surprised if you need a couple of passes through today's material for it to truly sink in.
In terms of material we covered in module 8 it is very important to distinguish the different kinds of things we have done with abstract functions:
As part of the design of these problems we used type inference to infer the signature of the function based on it's definition. These functions end up having a template origin like (listof X) or Course and (listof Course) for example.
Whenever you are working with an abstract functions problem it is very important to be sure which of the two you are doing - designing the abstract function, or using an abstract function. Note that the last step of any abstraction from examples is to rewrite the original function definition to use abstract function - but that is a separate and final phase of the abstraction frome examples.
As always, the best way to review today's material is to rework all three starters.
The solutions for this lecture are:
Be sure to complete the before lecture section of Lecture 15 before that lecture.