CS 450: Structure of Higher Level Languages (Section 1)

Fall 2026

Past editions: Fall ‘25, Fall ‘24, Fall ‘23, Spring ‘23, Fall ‘22, Spring ‘21, Spring ‘20, Spring ‘19

Course information

  • Location: W01-0005 (Wheatley-Peters)
  • Schedule: Tuesday/Thursday 11:00AM - 12:15PM

Instructor contact

  • Email: Tiago.Cogumbreiro@umb.edu
  • Office hours: Tuesday/Thursday 1:45pm-3:15pm (in-person)
  • Office location: (M03-0201-16) Room 0201-16, 3rd floor, McCormack

Class Schedule

Note: Any lecture titles in future dates are considered tentative.

Date # Lecture Download
🙙 1. Basic Functional Programming 🙚
Tue, Sep 8 01 Course info, arithmetic in Racket, evaluation
Thu, Sep 10 02 Branching and function definitions
Tue, Sep 15 03 Lists and code serialization
🙙 2. Advanced Functional Programming 🙚
Thu, Sep 17 04 Recursion, nested definitions
Tue, Sep 22 05 Modules, structs, (map) updating lists
Thu, Sep 24 06 Functions as data-structures, currying
🙙 3. Optimized Functional Programming 🙚
Tue, Sep 29 07 foldr, looping first-to-last
Thu, Oct 1 08 foldl, looping last-to-first
Tue, Oct 6 09 Homework help; tail-recursion
🙙 4. Lazy evaluation 🙚
Thu, Oct 8 10 TypedRacket, thunks, and promises
Tue, Oct 13 11 Infinite streams
Thu, Oct 15 12 Finite streams, evaluating expressions
🙙 5. Implementing function calls 🙚
Tue, Oct 20 13 Language λS: slow function calls
Thu, Oct 22 14 Language λE: fast function calls
Tue, Oct 27 15 Exercises
🙙 6. Implementing Racket's define 🙚
Thu, Oct 29 16 Specifying λD
Tue, Nov 3 17 Implementing λD
Thu, Nov 5 18 Exercises
🙙 7. Monads and side effects 🙚
Tue, Nov 10 19 Garbage collection
Thu, Nov 12 20 The state monad
Tue, Nov 17 21 Loops and error monad
🙙 8. Abstraction 🙚
Thu, Nov 19 22 Monadic error; Monadic continuations
Tue, Nov 24 23 Parameters; Generic methods
Thu, Nov 26 (School closure)
Tue, Dec 1 24 Macros
🙙 9. Object Oriented Programming 🙚
Thu, Dec 3 25 LambdaJS
Tue, Dec 8 26 JavaScript method and class inheritance
Thu, Dec 10 27 Conclusion