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

Fall 2025

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

Course information

  • Location: W01-0004 (Wheatley)
  • Schedule: Tuesday/Thursday 4:00PM - 5:15PM

Instructor contact

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