CS 450: Structure of Higher Level Languages
Fall 2024
Past editions: Fall ‘23, Spring ‘23, Fall ‘22, Spring ‘21, Spring ‘20, Spring ‘19
Course information
- Location: (W01-0005) Room 0005, 1st floor, Wheatley
- 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, Sep 4 | 01 | Course info, arithmetic in Racket, evaluation | |
Mo, Sep 9 | 02 | Branching and function definitions | |
We, Sep 11 | 03 | Lists and code serialization | |
🙙 2. Advanced Functional Programming 🙚 | |||
Mo, Sep 16 | 04 | Recursion, nested definitions | |
We, Sep 18 | 05 | Modules, structs, (map) updating lists | |
Mo, Sep 23 | 06 | Functions as data-structures, currying | |
🙙 3. Optimized Functional Programming 🙚 | |||
We, Sep 25 | 07 | foldr, looping first-to-last | |
Mo, Sep 30 | 08 | foldl, looping last-to-first | |
We, Oct 2 | 09 | Homework help; tail-recursion | |
🙙 4. Lazy evaluation 🙚 | |||
Mo, Oct 7 | 10 | TypedRacket, thunks, and promises | |
We, Oct 9 | 11 | Infinite streams | |
Mo, Oct 14 | (School closure) | ||
We, Oct 16 | 12 | Finite streams, evaluating expressions | |
🙙 5. Implementing function calls 🙚 | |||
Mo, Oct 21 | 13 | Language λS: slow function calls | |
We, Oct 23 | 14 | Language λE: fast function calls | |
Mo, Oct 28 | 15 | Exercises | |
🙙 6. Implementing Racket's define 🙚 | |||
We, Oct 30 | 16 | Specifying λD | |
Mo, Nov 4 | 17 | Implementing λD | |
We, Nov 6 | 18 | Exercises | |
Mo, Nov 11 | (School closure) | ||
🙙 7. Monads and side effects 🙚 | |||
We, Nov 13 | 19 | Garbage collection | |
Mo, Nov 18 | 20 | The state monad | |
We, Nov 20 | 21 | Loops and error monad | |
🙙 8. Abstraction 🙚 | |||
Mo, Nov 25 | 22 | Monadic error; Monadic continuations | |
We, Nov 27 | 23 | Parameters; Generic methods | |
Mo, Dec 2 | 24 | Macros | |
🙙 9. Object Oriented Programming 🙚 | |||
We, Dec 5 | 25 | LambdaJS | |
Mo, Dec 9 | 26 | JavaScript method and class inheritance | |
We, Dec 11 | 27 | Conclusion |