Subtyping and PolymorphismExplores subtyping rules, challenges, and its connection to various forms of polymorphism in programming languages.
Polymorphism and ProofsCovers parametric polymorphism, lists construction, tuples, generic methods, merge sort, and proving program properties.
Types and Inductive RelationsDiscusses the importance of types, unsound type systems, and inductively defined relations for a small language's type system.
Type InferenceExplores type inference in statically typed languages, using algorithms to assign types to program expressions accurately.
Python Programming BasicsCovers the basics of Python programming, focusing on flow control structures, interactive mode, script mode, and variables.
Compiler Extension LabCovers the Compiler Extension Lab, focusing on adding new functionality to a simple functional language compiler.