Subtyping and Generics in ScalaExplores subtyping, generics, and variance in Scala, emphasizing the importance of precise type descriptions and demonstrating practical applications of for expressions.
Polymorphism: Cons-ListsCovers the concept of polymorphism in programming and the implementation of immutable linked lists in Scala.
Subtyping and PolymorphismExplores subtyping rules, challenges, and its connection to various forms of polymorphism in programming languages.
Merge Sort: Divide-and-ConquerIntroduces Merge Sort, a divide-and-conquer algorithm for efficient array sorting, discussing correctness, runtime analysis, linear-time merging, and recurrence solving techniques.
Hashing and SortingCovers hashing, sorting, extendible hashing, linear hashing, and external sorting.
Solving RecurrencesFocuses on solving recurrences in divide-and-conquer algorithms using various techniques and examples.
Types and Inductive RelationsDiscusses the importance of types, unsound type systems, and inductively defined relations for a small language's type system.