Polymorphism and ProofsCovers parametric polymorphism, lists construction, tuples, generic methods, merge sort, and proving program properties.
Subtyping and PolymorphismExplores subtyping rules, challenges, and its connection to various forms of polymorphism in programming languages.
Polymorphism: Cons-ListsCovers the concept of polymorphism in programming and the implementation of immutable linked lists in Scala.
Subtyping and GenericsExplores subtyping, generics, type bounds, variance, covariance, and array typing challenges in Java and Scala.
Translation of forExplains the translation of for-expressions in Scala using map, flatmap, and filter functions, with examples and a discussion on its generalization to different types.
Generics and SubtypingCovers advanced concepts in generics and subtyping in Java, focusing on LinkedList implementation and List interface.
Types and Inductive RelationsDiscusses the importance of types, unsound type systems, and inductively defined relations for a small language's type system.
Virtual Methods in C++Covers polymorphism in C++ through virtual methods, explaining method resolution and the interaction with constructors.