# Topic List; PDFs; Errata

The “Slides with commentary” is the most complete representation of the material you are to learn in CS135.

The slides portion of those pages are also available as 1up and 3up PDFs. They work better with screen readers and print better, but lack the commentary, videos, and self-check exercises.

Title Slides | Description Slides with Commentary & Videos | |
---|---|---|

M01 | Syllabus | Details about how the course works. |

1up 3up slides | Slides with commentary | |

M02 | Functions | Writing functions is at the heart of using a functional programming language. |

1up 3up slides | Slides with commentary | |

M03 | Simple data | Booleans, strings, and symbols. |

1up 3up slides | Slides with commentary | |

M04 | The design recipe | Our process for developing programs. |

1up 3up slides | Slides with commentary | |

M05 | Structures | Data that belongs together. |

1up 3up slides | Slides with commentary | |

M06 | Lists | Working with a list of data; data definitions. |

1up 3up slides | Slides with commentary | |

M07 | Natural numbers -- recursively | Working with natural numbers based on a self-referential data definition. |

1up 3up slides | Slides with commentary | |

M08 | More lists | Lists of lists, processing multiple lists, etc. |

1up 3up slides | Slides with commentary | |

M09 | Patterns of recursion | Looking beyond simple patterns of recursion to accumulative recursion and generative recursion. |

1up 3up slides | Slides with commentary | |

M10 | Binary Trees | Extending lists to include branches. |

1up 3up slides | Slides with commentary | |

M11 | Mutual Recursion | Recursion involving two or more functions. |

1up 3up slides | Slides with commentary | |

M12 | General Trees | Trees with more than two branches. |

1up 3up slides | Slides with commentary | |

M13 | Local definitions and lexical scope | Software engineering. |

1up 3up slides | Slides with commentary | |

M14 | Functions as first class values | Functions that consume or produce functions and more. |

M15 | Lambda | Making anonymous functions. |

M16 | Functional abstraction | Going beyond function templates. |

M17 | Generative recursion | Recursion that is not based on the form of the data. |

M18 | Graphs | Directed graphs (not the Excel kind). |

M19 | Computing history | Major milestones leading to functional and imperative programming. |

### Errata

Errors in the lecture slides will be listed here. If you discover an error that is not posted here, please talk to your instructor about it.

- 2024-10-02: Updated M06-47 to better match our actual practise with respect to assignment expectations.