# Course Content

## Lecture Slides

CS135 has an extensive set of slides that are used in lectures. They are available for purchase from Media Doc. They are also available online (see below!) if you prefer to have them on your computer or print them yourself. In any case, you should have a copy that you can take notes on during lectures.

Reading the slides is not a substitute for attending lectures. The slides do not contain anything that the instructor says, writes on the board, or demonstrates on a computer during lectures. If you miss a lecture, you should contact a classmate who was present and catch up promptly.

Title
Slides
Description
Slides with Commentary & Videos
M01 Syllabus Details about how the course works.
Slides with commentary
M02 Functions Writing functions is at the heart of using a functional programming language.
Slides with commentary
M03 The design recipe Our process for developing programs.
Slides with commentary
M04 Simple data We start with numbers, but also need strings, symbols, and booleans.
Slides with commentary
M05 Syntax & semantics of Beginning Student Defining rigourously what our programs mean.
Slides with commentary
M06 Lists Working with a list of data; data definitions.
Slides with commentary
M07 Natural numbers -- recursively Working with natural numbers based on a self-referential data definition.
Slides with commentary
M08 More lists Lists of lists, processing multiple lists, etc.
Slides with commentary
M09 Patterns of recursion Looking beyond simple patterns of recursion to accumulative recursion and generative recursion.
Slides with commentary
M10 Structures Data that belongs together.
Slides with commentary
M11 Trees Extending lists to include branches.
Slides with commentary
M12 Local definitions and lexical scope Software engineering.
Slides with commentary
M13 Functions as first class values Functions that consume or produce functions and more.
Slides with commentary
M14 Functional abstraction Going beyond function templates.
Slides with commentary
M15 Generative recursion Recursion that is not based on the form of the data.
Slides with commentary
M16 Graphs Directed graphs (not the Excel kind).
Slides with commentary
M17 Computing history Major milestones leading to functional and imperative programming.
Slides with commentary

### Errors

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.