UTC503 : Paradigmes de programmation (3 ECTS)
Pré-requis
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
Connaître et approfondir certains paradigmes de programmation : logique, fonctionnel, réactif, objet ; savoir les mettre en œuvre ; comprendre leurs différences.
Contenu
- Contenu sans obligation d'exhaustivité: 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. Au mois 50% du programme (et de l'examen) concernent un autre paradigme que la programmation objet (dominant aujourd'hui).
- Structure: L’enseignement comprendra un noyau de cours magistraux, mais surtout un volume important de TP sur machine. En particulier, on partira d’un ou plusieurs objectifs de programmation et leur déclinaison dans divers paradigmes.
Modalités de validation
Examen final obligatoirement sur papier, complété éventuellement d’un contrôle continu.
Contenu de l'examen final et du contrôle continu:
- Pas plus de 50% sur le paradigme impératif/objet dans les cours et dans l'examen. Le but est de voir autre chose que le paradigme dominant. Au choix un ou deux autres paradigmes, il ne s'agit pas de devenir des spécialistes mais de savoir écrire des petits programmes idiomatiques.
- Pas moins de 70% de questions de programmation, c'est-à-dire pour lesquelles l'élève doit écrire du code. Ceci est valable également pour les TD/TP. les QCM sont donc EXCLUS notamment à l'examen.
Formations
Cette unité d'enseignement est dispensée dans les formations suivantes :
- Licence générale Informatique parcours Informatique Générale (L3) (LG02501A)
- Titre RNCP Niveau 6 Concepteur intégrateur d'infrastructures informatiques (systèmes et réseaux, applicatives, ou de sécurité) parcours Cybersécurité (CRN0803A)
- Titre RNCP Niveau 6 Concepteur intégrateur d'infrastructures informatiques (systèmes et réseaux, applicatives, ou de sécurité) parcours Systèmes d'information (CRN0802A)
- Titre RNCP Niveau 6 Concepteur intégrateur d'infrastructures informatiques (systèmes et réseaux, applicatives, ou de sécurité) parcours Systèmes et réseaux (CRN0801A)
- Diplôme d'ingénieur informatique parcours Cybersécurité (CYC9106A)
- Ingénieur Informatique - systèmes d'Information (ISI) et business intelligence (CYC9105A)
- Ingénieur Informatique parcours Informatique, Réseaux, Systèmes et Multimédia (IRSM) (CYC9104A)
Cette unité d'enseignement n'est dispensée dans aucun centre pour le moment.
N'hésitez pas à revenir consulter cette page régulièrement.