| Date | Cliff | Dr. Mamat | ||||
|---|---|---|---|---|---|---|
| 28 Jan, 2025 | Intro | Notes: Link | Intro | Slides: Intro | ||
| Ocaml | Slides: Link Notes: Link |
OCaml Basics | Slides: OCaml Basics | |||
| Notes | Notes: Notes | |||||
| 30 Jan, 2025 | OCaml Lists | Slides: OCaml Lists | ||||
| 4 Feb, 2025 | Lets, Tuples, and Records | Slides: Lets, Tuples, and Records | ||||
| 6 Feb, 2025 | Functions | Slides: Link Notes: Link |
More | Higher Order Functions | Slides: Higher Order Functions | |
| 11 Feb, 2025 | Map and Fold | Slides: Map and Fold | ||||
| Notes | Notes: Notes | |||||
| Data Types | Slides: Data Types | |||||
| Notes | Notes: Notes | |||||
| 13 Feb, 2025 | Imperative OCaml | Slides: Link | Tail Recursion | Slides: Tail Recursion | ||
| Notes | Notes: Notes | |||||
| Closures | Slides: Closures | |||||
| Notes | Notes: Notes | |||||
| 18 Feb, 2025 | Property Based Testing | Slides: Link Notes: Link |
Imperative OCaml | Slides: Imperative OCaml | ||
| Jose Calderon's PBT notes | Notes: Link | Jose Calderon | Notes | Notes: Notes | ||
| Property-Based Random Testing | Slides: Property-Based Random Testing | |||||
| Notes | Notes: Notes | |||||
| 20 Feb, 2025 | Regular Expressions | Slides: Link Notes: Link |
Regular Expressions | Slides: Regular Expressions | ||
| 25 Feb, 2025 | Finite State Machines | Slides: Link Notes: Link |
Finite Automata | Slides: Finite Automata | ||
| 27 Feb, 2025 | Finite Automata: NFAs and DFAs | Slides: Finite Automata: NFAs and DFAs | ||||
| Notes | Notes: Notes | |||||
| 4 Mar, 2025 | Reducing NFA to DFA | Slides: Reducing NFA to DFA | ||||
| 11 Mar, 2025 | Grammars | Slides: Link Notes: Link |
Context Free Grammars | Slides: Context Free Grammars | ||
| 13 Mar, 2025 | Compilers | Slides: Link Notes: Link |
Parsing | |||
| Parsing | Slides: Parsing | |||||
| Parser Examples | Notes: Parser Examples | |||||
| Video | Notes: Parser example (Old youtube video) | |||||
| 25 Mar, 2025 | Operational Semantics | Slides: Operational Semantics | ||||
| Notes | Notes: Notes | |||||
| Interpreter Example 1 | Notes: Interpreter Example 1 | |||||
| Interpreter Example 2 | Notes: Interpreter Example 2 | |||||
| 27 Mar, 2025 | OpSem | Slides: Link Notes: Link |
||||
| 1 Apr, 2025 | Typing | Slides: Link Notes: Link |
Type Checking | Slides: Type Checking | ||
| 3 Apr, 2025 | Subtyping | Slides: Subtyping | ||||
| Notes | Slides: Notes | |||||
| Type Inference | Slides: Type Inference | |||||
| 8 Apr, 2025 | Lambda Calculus | Slides: Link Notes: Link |
Lambda Calculus Basics | Slides: Lambda Calculus Basics | ||
| Notes | Notes: Notes | |||||
| 15 Apr, 2025 | Lambda Calculus Encodings | Slides: Lambda Calculus Encodings | ||||
| Lambda Calculus Code | Notes: Lambda Calculus Code | |||||
| 17 Apr, 2025 | Rust Intro | Slides: Rust Intro | ||||
| Ownership | Slides: Ownership | |||||
| Notes | Notes: Notes | |||||
| 22 Apr, 2025 | Rust | Notes: Link | Book | Collections | Slides: Collections | |
| 24 Apr, 2025 | Structs and Enums | Slides: Structs and Enums | ||||
| 29 Apr, 2025 | Garbage Collection | Notes: Link | Garbage Collection | Slides: Garbage Collection | ||
| 1 May, 2025 | Traits | Slides: Traits | ||||
| Examples | Notes: Examples | |||||
| Closures & Iterators | Slides: Closures & Iterators | |||||
| Examples | Notes: Examples | |||||
| 6 May, 2025 | Software Security | Slides: Software Security | ||||
| 8 May, 2025 | Security | Slides: Link | Box Smart Pointer, Trait Objects | Slides: Box Smart Pointer, Trait Objects | ||
| Interior Mutability | Slides: Interior Mutability | |||||