CS 450: Structure of Higher Level Languages
Fall 2023
Past editions: Spring ‘23, Fall ‘22, Spring ‘21, Spring ‘20, Spring ‘19
Course information
- Location: University Hall, Y02-2120
- Schedule: Monday/Wednesday 5:30PM - 6:45PM
Instructor contact
- Email:
Tiago.Cogumbreiro@umb.edu
- Office hours: 4:00pm - 5:00pm Monday/Tuesday/Wednesday (in-person)
Class Schedule
Note: Any lecture titles in future dates are considered tentative.
Date | # | Lecture | Download |
---|---|---|---|
🙙 1. Basic Functional Programming 🙚 | |||
We, Sept 6 | 01 | Course info, arithmetic in Racket, evaluation | |
Mo, Sept 11 | 02 | Branching and function definitions | |
We, Sept 13 | 03 | Lists and code serialization | |
🙙 2. Advanced Functional Programming 🙚 | |||
Mo, Sept 18 | 04 | Recursion, nested definitions | |
We, Sept 20 | 05 | Modules, structs, (map) updating lists | |
Mo, Sept 25 | 06 | Functions as data-structures, currying | |
🙙 3. Optimized Functional Programming 🙚 | |||
We, Sept 27 | 07 | foldr, looping first-to-last | |
Mo, Oct 2 | 08 | foldl, looping last-to-first | |
We, Oct 4 | 09 | Homework help; tail-recursion | |
Mo, Oct 9 | (no class) | ||
🙙 4. Lazy evaluation 🙚 | |||
We, Oct 11 | 10 | TypedRacket, thunks, and promises | |
Mo, Oct 16 | 11 | Infinite streams | |
We, Oct 18 | 12 | Finite streams, evaluating expressions | |
🙙 5. Implementing function calls 🙚 | |||
Mo, Oct 23 | 13 | Language λS: slow function calls | |
We, Oct 25 | 14 | Language λE: fast function calls | |
Mo, Oct 30 | 15 | Exercises | |
🙙 6. Implementing Racket's define 🙚 | |||
We, Nov 1 | 16 | Specifying λD | |
Mo, Nov 6 | 17 | Implementing λD | |
We, Nov 8 | 18 | Exercises | |
🙙 7. Monads and side effects 🙚 | |||
Mo, Nov 13 | 19 | Garbage collection | |
We, Nov 15 | 20 | The state monad | |
Mo, Nov 20 | 21 | Loops and error monad | |
We, Nov 22 | (no class) | ||
🙙 8. Abstraction 🙚 | |||
Mo, Nov 27 | 22 | Monadic error; Monadic continuations | |
We, Nov 29 | 23 | What is a PhD / Parameters | |
Mo, Dec 4 | 24 | Generic methods, Macros | |
🙙 9. Object Oriented Programming 🙚 | |||
We, Dec 6 | 25 | LambdaJS | |
Mo, Dec 11 | 26 | JavaScript method and class inheritance | |
We, Dec 13 | 27 | Conclusion |