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: 12:30pm to 2:00pm Tuesday, Thursday (in-person)
Class Schedule
Note: Any lecture titles in future dates are considered tentative.
Date | # | Lecture | Download |
---|---|---|---|
֍ 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 | |
֍ Advanced Functional Programming ֍ | |||
Th, Feb 2 | 04 | Recursion, nested definitions | |
Tu, Feb 7 | 05 | Activation frames, modules, structs, first-class funcs | |
Th, Feb 9 | 06 | Implementing AST's, currying, exists | |
֍ Optimized Functional Programming ֍ | |||
Tu, Feb 14 | 07 | Filter, append, foldr | |
Th, Feb 16 | 08 | Reverse, join-strings, foldl, performance | |
Tu, Feb 21 | 09 | Exercises | |
֍ Lazy evaluation ֍ | |||
Th, Feb 23 | 10 | Delayed evaluation | |
Tu, Feb 28 | 11 | Streams / Evaluating expressions | |
֍ Formal methods; Lambda calculus ֍ | |||
Th, Mar 2 | 12 | Language λS: slow function calls | |
Tu, Mar 7 | 13 | Lexical/dynamic scoping, function closures | |
Th, Mar 9 | 14 | Language λE: fast function calls | |
Tu, Mar 14 | (School closure) | ||
Th, Mar 16 | (School closure) | ||
֍ Mutable lambda calculus ֍ | |||
Tu, Mar 21 | 15 | Language λF: adding definitions incorrectly | |
Th, Mar 23 | 16 | Implementing λF | |
Tu, Mar 28 | 17 | Language λD: adding definitions correctly | |
֍ Monads and side effects ֍ | |||
Th, Mar 30 | 18 | Garbage collection | |
Tu, Apr 4 | 19 | Effectful operations | |
Th, Apr 6 | 20 | Monadic error/list; generics; parameters | |
Tu, Apr 11 | 21 | Monadic continuations | |
֍ Abstraction ֍ | |||
Th, Apr 13 | 22 | Pattern-matching | |
Tu, Apr 18 | 23 | Generic methods | |
Th, Apr 20 | 24 | Macros | |
֍ Object Oriented Programming ֍ | |||
Tu, Apr 25 | 25 | LambdaJS | |
Th, Apr 27 | 26 | JavaScript method and class inheritance | |
Tu, May 2 | 27 | Translating SimpleJS to LambdaJS | |
Th, May 4 | 28 | QA | |
Tu, May 9 | 29 | QA |