As a course
https://uiuc-cs421-sp25.netlify.app/
- We will drop the lowest MP score. Used.
- drop 3 of the scores of activities
- 333/50035 + 199/30050 + 6/305 + 108/20
Overview


- New Programming Paradigm
- Functional Programming
- Immutable Program State
- Functions are first-class citizens. Pass as arguments to other functions, manipulate as objects.
- Environments and Closures
- Make the notion of program state more flexible
- Patterns of Recursion
- How to make functions calling themselves efficient
- Pattern matching
- Continuation Passing Style
- How to abstract the notion of program counter and location where the execution continues
- Language Translation
- Lexing and Parsing
- Type Systems
- Interpretation
- Language Semantics
- Operational Semantics
- Lambda Calculus
- Axiomatic Semantics
Terms
- Partial application = sectioning
- Closure
- Formal parameter
- curried/uncurried: multiple arguments vs. one tuple argument
Functional Programming
You will learn functional programming by learning how to build interpreters in Haskell.
Ocaml (fa2024)
Ocaml
Haskell (sp2025)