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