Paradigmes de programmation

Code UE : UTC503-BRT

  • Cours + travaux pratiques
  • 3 crédits

Responsable national

Samira CHERFI

Responsable opérationnel

Pierre COURTIEU

Public et conditions d'accès

Connaître un langage de programmation avancé, comme java, et maîtriser les notions d’algorithme, de procédure et fonction, d’objet, de méthode, et d’héritage.

Objectifs pédagogiques

Connaître et approfondir les principaux paradigmes de programmation : impératif, logique, fonctionnel, réactif, objet ; savoir les mettre en œuvre ; comprendre leurs différences.

Compétences visées

Pouvoir aborder un nouveau langage de programmation ou une nouvelle bibliothèque en reconnaissant les usages dans ceux-ci des principaux paradigmes. La plupart des langages de programmation actuels étant hybrides, et s’ouvrant de plus en plus au paradigme fonctionnel, les connaissances dans un paradigme seront utilisables au-delà de celui-ci.

  • Contenu:Paradigme objet, généricité, héritage et polymorphisme, introspection ; paradigme fonctionnel, lambda expressions, clôtures, objets persistants, promesses ; paradigme logique. Divers langages de programmation pourront être abordés, par exemple Java ou C# pour le paradigme objet, Javascript, Scala, Haskell ou Kotlin pour la programmation fonctionnelle, Prolog pour la programmation logique.
  • Structure: L’enseignement comprendra un noyau de cours magistraux, mais surtout un volume important de TD/TP. En particulier, on partira d’un problème donné, et on verra comment le résoudre dans les divers paradigmes.

Examen final, complété éventuellement d’un contrôle continu.