Programming Languages Part A is a course offered by The University of Washington through Coursera and taught by Proffesor Dan Grossman.
The course is as an introduction to the basic concepts of programming languages, with a strong emphasis on functional programming.
-
Syntax vs. semantics vs. idioms vs. libraries vs. tools
-
ML basics (bindings, conditionals, records, functions)
-
Recursive functions and recursive types
-
Benefits of no mutation
-
Algebraic datatypes, pattern matching
-
Tail recursion
-
Higher-order functions; closures
-
Lexical scope
-
Currying
-
Syntactic sugar
-
Equivalence and effects
-
Parametric polymorphism and container types
-
Type inference
-
Abstract types and modules