CS 450: Structure of Higher Level Languages
Fall 2022
Past editions: Spring ‘21, Spring ‘20, Spring ‘19
Course information
- Location: (Y02-2300) Room 2300, 2nd floor, University Hall
- 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)
TA office hours (IN PERSON)
- Dakai Tzou, office hours: 7:00PM - 7:45PM, Monday and Wednesday @ Y02-2300 (where we have classes)
- Paul Maynard, office hours: Monday, Wednesday at 3:00PM-4:00PM; Tuesday 11:00AM-12:00noon @ M03-0201-33 (SVL office)
Class Schedule
Note: Any lecture titles in future dates are considered tentative.
Date | # | Lecture | Download |
---|---|---|---|
Mo, Sep 5 | (School closure) | ||
֍ Basic Functional Programming ֍ | |||
We, Sep 7 | 01 | Course info, arithmetic in Racket, evaluation | |
Mo, Sep 12 | 02 | Branching and function definitions | |
We, Sep 14 | 03 | Pairs, lists, user structures, and quoting | |
֍ Advanced Functional Programming ֍ | |||
Mo, Sep 19 | 04 | Nested definitions, tail calls | |
We, Sep 21 | 05 | Activation frames, modules, structs, first-class funcs | |
Mo, Sep 26 | 06 | Implementing AST's, currying, exists | |
We, Sep 28 | 07 | Filter, append, foldr | |
Mo, Oct 3 | 08 | Reverse, join-strings, foldl, performance | |
֍ Lazy evaluation ֍ | |||
We, Oct 5 | 09 | Delayed evaluation | |
Mo, Oct 10 | (School closure) | ||
We, Oct 12 | 10 | Streams / Evaluating expressions | |
֍ Formal methods; Lambda calculus ֍ | |||
Mo, Oct 17 | 11 | Language λS: slow function calls | |
We, Oct 19 | 12 | Lexical/dynamic scoping, function closures | |
Mo, Oct 24 | 13 | Language λE: fast function calls | |
֍ Mutable lambda calculus ֍ | |||
We, Oct 26 | 14 | Language λF: adding definitions incorrectly | |
Mo, Oct 31 | 15 | Implementing λF | |
We, Nov 2 | 16 | Language λD: adding definitions correctly | |
֍ Monads and side effects ֍ | |||
Mo, Nov 7 | 17 | Garbage collection | |
We, Nov 9 | 18 | Effectful operations | |
Mo, Nov 14 | 19 | Monadic error/list; generics; parameters | |
We, Nov 16 | 20 | Monadic continuations | |
֍ Abstraction ֍ | |||
Mo, Nov 21 | 21 | Pattern-matching | |
We, Nov 23 | 22 | Generic methods | |
Mo, Nov 28 | 23 | Macros | |
֍ Object Oriented Programming ֍ | |||
We, Nov 30 | 24 | LambdaJS | |
Mo, Dec 5 | 25 | JavaScript method and class inheritance | |
We, Dec 7 | — | Translating SimpleJS to LambdaJS | |
Mo, Dec 12 | 26 | QA | |
We, Dec 14 | 27 | QA |