Explores subtyping, generics, and variance in Scala, emphasizing the importance of precise type descriptions and demonstrating practical applications of for expressions.
Covers fundamental programming and object-oriented programming concepts in Java, including variables, types, control structures, and basic algorithmic concepts.
Covers the proof of the Bourgain's ARV Theorem, focusing on the finite set of points in a semi-metric space and the application of the ARV algorithm to find the sparsest cut in a graph.
Explores object-oriented programming concepts, polymorphism, inheritance, and dynamic binding in Java, emphasizing the importance of correct object comparison.