UTC503
Titre Officiel Cnam : Paradigmes de programmation
-
Nombre d’heures
26
-
Modalités
Enseignement à distance
-
Crédits ects
3
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 oeuvre ; comprendre leurs différences.
Délais d'accès :
Inscription 1er semestre et annuel :
- Modalité présentiel/hybride : de juillet à mi-octobre
- Modalité FOAD (100% à distance) : de juillet à mi-novembre
Inscription 2ème semestre :
- Modalité présentiel/hybride : de juillet à mi-février
- Modalité FOAD (100% à distance) : de juillet à mi-mars
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.
Nous contacter
Modalités d’enseignement :100% à distanceMixte : à distance + cours en sallePrésentiel
Méthodes et modalités pédagogiques
Pédagogie qui combine apports académiques, études de cas basées sur des pratiques professionnelles et expérience des élèves.
Équipe pédagogique constituée pour partie de professionnels. Un espace numérique de formation (ENF) est utilisé tout au long du cursus.
Programme :
- 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.
- 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, 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.
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.
Cette unité d'enseignement est valorisable dans les certifications suivantes :
- CPN84B51 - Développer, tester et intégrer un composant utilisable dans l'infrastructure applicative, système, technique ou de sécurité d'un Système d'Information d'une entreprise
- CYC9106A - Diplôme d'ingénieur Cybersécurité
- CYC9105A - Diplôme d'ingénieur Systèmes d'information
- CYC9104A - Diplôme d'ingénieur Informatique, réseaux, systèmes et multimédia (IRSM)
- LG025B11 - Bloc de compétence Identification d'un questionnement au sein d'un champ disciplinaire
- CYC9101A - Diplôme d'ingénieur Architecture et ingénierie des systèmes et des logiciels (AISL)
- CPN8401A - Titre RNCP Niveau 6 Concepteur en architecture informatique Réseaux et systèmes
- CPN8402A-1 - Titre RNCP Niveau 6 Architecture Ingénierie des Systèmes et des Logiciels (AISL)
- CPN8403A - Titre RNCP Niveau 6 Concepteur en architecture informatique parcours Cybersécurité
- LG02501A-4 - Licence informatique sécurité des systèmes d'information - L3
- CPN8402A-2 - Titre RNCP Niveau 6 Systèmes d'information (ISI)
- LG02501A-3 - Licence informatique développement objet et Web - L3
- LG02501A-2 - Licence informatique cybersécurité - L3
- LG02501A-1 - Licence informatique Parcours Systèmes et réseaux - Sécurité virtualisation - L3