Explore la programmation fonctionnelle vérifiée, la vérification formelle, les résolveurs SMT, la vérification de type, les fonctionnalités Scala, l'automatisation et les types dépendants.
Couvre les concepts de base de la programmation orientée objet en Java, mettant l'accent sur l'encapsulation, l'abstraction et l'importance d'organiser des programmes complexes.
Explore la mutation sûre dans Scala, en mettant l'accent sur la gestion de l'état mutable et son importance dans les interactions, la modélisation et l'efficacité de mise en œuvre.
Explore l'analyse automatisée de terminaison à l'aide de paires de dépendances, couvrant les techniques classiques et modernes, les concours annuels et des outils comme AProVE.
Les étudiants en 'Numerics for Fluids, Structures and Electromagnétiques' doivent compléter les projets individuellement ou par paires, en suivant des règles spécifiques et des critères d'évaluation.
Explore la programmation réactive fonctionnelle comme une alternative plus propre et plus fonctionnelle au modèle d'observateur traditionnel, en utilisant des signaux pour simplifier les hiérarchies d'observateurs complexes.
Couvre la définition d'un langage de programmation simple et sa sémantique à grande échelle, y compris les expressions arithmétiques et les commandes impératives.