Couvre les concepts d'interfaces Comparable et Comparator en Java, en expliquant comment les classes implémentent ces interfaces pour permettre la comparaison d'objets.
Couvre le polymorphisme dans la programmation orientée objet, en se concentrant sur le polymorphisme d'inclusion et sa mise en œuvre à travers des hiérarchies de classes et des méthodes virtuelles.
Explore les fonctionnalités de base de la programmation orientée objet, y compris la répartition dynamique, l'encapsulation, l'héritage et le sous-typage, en utilisant des exemples Java et des informations pratiques.
Se concentre sur la mise en œuvre d'un vérificateur de type pour Amy, couvrant l'analyse des noms et des types, la génération de contraintes de frappe et l'importance de la vérification de type dans la compilation.
Couvre les concepts d'algèbre abstraite en utilisant des classes de type dans Scala, y compris la définition des monoïdes, la généralisation des fonctions de réduction et les lois de classe de type.