Subtyping and PolymorphismExplores subtyping rules, challenges, and its connection to various forms of polymorphism in programming languages.
Image Processing in FijiCovers the basics of image processing using Fiji software, focusing on managing files and applying filters.
Polymorphism and ProofsCovers parametric polymorphism, lists construction, tuples, generic methods, merge sort, and proving program properties.
Arrays: Declaration in JavaCovers the declaration and initialization of arrays in Java, including syntax rules and techniques for initializing elements.
Taming Null ReferencesExplores the challenges of null references in programming languages and proposes solutions to mitigate their drawbacks while ensuring compatibility with existing codebases.
Introduction to Java VariablesCovers Java variables, including declaration, initialization, assignments, and constants, highlighting naming conventions and dynamic assignments.
Subtyping and GenericsExplores subtyping, generics, type bounds, variance, covariance, and array typing challenges in Java and Scala.
Generics and SubtypingCovers advanced concepts in generics and subtyping in Java, focusing on LinkedList implementation and List interface.
Compiler Extension LabCovers the Compiler Extension Lab, focusing on adding new functionality to a simple functional language compiler.
Introduction to Arrays: JavaCovers the introduction to arrays in Java, focusing on structured data representation and efficient data manipulation.
Generics in JavaCovers the concept of generics in Java, focusing on implementation and usage.
Deep Copy in JavaCovers deep copy in Java, including polymorphic copy and the clone method.