Lectures
- Linux Overview (slides)
- Scripting Languages (slides)
- Functional Programming with OCaml (slides)
- OCaml Lists (slides)
- OCaml Bindings and Builtin Types (slides)
- OCaml Higher Order Functions (slides)
- OCaml Tail Recursion (slides)
- OCaml Data Types (slides)
- OCaml Closures (slides)
- OCaml Imperative Programming (slides)
- Introduction to Lexical Analysis (slides)
- Implementation of Lexical Analysis (slides)
- Introduction to Parsing (slides)
- Top-Down Parsing (slides)
- Abstract Syntax Trees (slides)
- Operational Semantics (slides)
- Code Generation (slides)
- Rust Basics (slides)
- Rust Ownership, References, and Lifetimes (slides)
- Rust Collections (slides)
- Rust Structs and Enums (slides)
- Rust Traits (slides)
- Rust Closures (slides)
- Rust Smart Pointers (slides)
- Dynamic Memory Allocation (slides)