Explore des sujets avancés d'ingénierie logicielle et de traitement du signal en utilisant des listes paresseuses pour construire un synthétiseur sonore à partir de zéro.
Couvre la modélisation des instructions de contrôle avec des fonctions dans Scala, y compris les boucles while, les boucles de répétition et la traduction for-loops.
Couvre la sémantique des langages de programmation, en se concentrant sur le langage Add et le rôle des règles de réécriture et des machines CK dans la compréhension du sens.
S'intéresse à la vérification de type, à la reconstruction, aux équations, à l'unification, au système Hindley/Milner, au polymorphisme et aux principaux types.
Explore les cartes, les opérateurs de type, l'équivalence, les types de première classe, System Fw, Coq, et les défis de la vérification de type dans les langages de programmation.
Couvre la sémantique opérationnelle et les stratégies d'évaluation dans le calcul lambda, y compris redex, les stratégies d'évaluation alternatives et les booléens de l'Église.