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. |

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 | The design recipe | Our process for developing programs. |

1up 3up slides | Slides with commentary | |

M04 | Simple data | We start with numbers, but also need strings, symbols, and booleans. |

1up 3up slides | Slides with commentary | |

M05 | Syntax & semantics of Beginning Student | Defining rigourously what our programs mean. |

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 | Structures | Data that belongs together. |

1up 3up slides | Slides with commentary | |

M11 | Trees | Extending lists to include branches. |

1up 3up slides | Slides with commentary | |

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

1up 3up slides | Slides with commentary | |

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

1up 3up slides | Slides with commentary | |

M14 | Functional abstraction | Going beyond function templates. |

1up 3up slides | Slides with commentary | |

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

1up 3up slides | Slides with commentary | |

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

1up 3up slides | Slides with commentary | |

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

1up 3up slides | Slides with commentary |

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.