NYU Programming Languages Notes

These are my notes for NYU’s Master’s-level Programming Languages course (CSCI-GA.2110), which I took in the Spring 2016 semester. Below are detailed notes for every lecture, as well as notes for a few recitations, in the cases where the recitation material was useful and differentiated enough from the lectures.

These were taken on-the-fly during the lectures, and haven’t really been edited, so they might not be perfect or complete, but may still be useful.

If you found this useful, feel free to shoot me an email, tweet at me, or browse the rest of the site!

Jan 27: Intro, Turing machines, and syntax

Jan 28 (Recitation): More on compilation, regexes, and CFGs

Feb 3: Regular expressions, context-free grammars, and scoping

Feb 4 (Recitation): A few CFG examples

Feb 10: Scoping, higher-order functions, and Ada

Feb 17: Ada and parameter passing

Feb 24: The runtime stack, and Scheme

Mar 2: More Scheme

Mar 9: Even more Scheme, and the lambda calculus

Mar 23: Recursion and reduction order in the lambda calculus

Mar 24 (Recitation): More on currying and the Y combinator

Mar 30: ML programming

Mar 31 (Recitation): More on the Y combinator, order of application, and Church encoding

Apr 6: More ML, and object-oriented programming

Apr 13: Subtyping on functions, and generic types

Apr 20: Subtyping of generic classes, and Scala

Apr 27: More Scala, and heap allocation

May 4: Heap allocation internals, garbage collection, and exam review