Ce cours permet d'acquérir une bonne connaissance des significations pouvant être attribuées aux constructions syntaxiques de programmes, des méthodes de raisonnement et de validation des programmes. Il forme à la conception et au développement raisonné d'applications et facilite la compréhension des choix et modes de fonctionnement des outils et ateliers de développement. Avoir suivi l'UE Fondements de la Programmation de licence est une bonne préparation.