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.
Introduit les fondamentaux de l'ingénierie logicielle, couvrant le traitement de l'instruction, les algorithmes, les langages de programmation, les abstractions, les tests, la sécurité et l'open source.
Explore les défis de programmation, les techniques de débogage, les tests de logiciels et les pratiques de sécurité dans le développement de logiciels.
Couvre l'étude mathématique des comportements de programme, l'analyse, les langages spécifiques à un domaine et les outils puissants de conception de langage.
Introduit des enregistrements, des variantes, des règles d'évaluation, des règles de dactylographie, des défis d'aliasing et des avantages dans les langages de programmation.
Offre un cours de crash en MATLAB, couvrant la représentation des données, l'indexation des tableaux, les opérations mathématiques, et les pièges communs.
Explore les défis des références nulles dans les langages de programmation et propose des solutions pour atténuer leurs inconvénients tout en assurant la compatibilité avec les bases de code existantes.
Explique le processus de résolution des contraintes de type en utilisant l'algorithme d'unification et la généralisation de l'inférence de type flexible.
Présente des algorithmes en tant que procédures de résolution de problèmes, couvrant la complexité, l'exactitude et la mise en œuvre dans divers langages.
Explore les fondements de la vérification modulaire en utilisant la logique de séparation pour des programmes concomitants réalistes et discute des défis de l'état mutable partagé dans la concorde.