Accueil >FORMATIONS >Unités d’enseignements (UEs) et supports >Unités d’enseignements (UEs) >AISL

UTC503 : Paradigmes de programmation

Enseignants:  Pierre COURTIEU
UE:  UTC503 Paradigmes de programmation
Fiche descriptive de l'UE: Cliquez ici

Responsable national : Pierre COURTIEU
Enseignants : Jean-Ferdinand SUSINI, Pierre COURTIEU

Ce module présente différents paradigmes de programmation. Au CNAM Paris centre nous avons choisi de présenter les 3 paradigmes suivants : la programmation objets, la programmation fonctionnelle et la programmation réactive. Il ne s’agit pas de devenir un spécialiste de chacun de ces paradigmes mais de saisir l’esprit de chacun, le type de situation où ils peuvent être utiles et de savoir développer de implémentations très simples. Chaque paradigme est étudié dans un langage de programmation dont c’est le paradigme principal. La variété de langages étudiés est un objectif du cours.

Le cours est entièrement en ligne (FOAD 100%), les supports sont principalement des vidéos. Vous pouvez voir ici la vidéo d’introduction :

## Description officiel du contenu de l’UE

## Page Moodle du cours

Une fois inscrit vous la trouverez dans votre espace personnel sur https://par.moodle.lecnam.net .

## Questions Fréquentes

 Je n’ai jamais programmé, est-il possible de suivre cette UE quand même ? Non ce n’est pas possible. Même si il n’est pas nécessaire d’être un programmeur expérimenté, les unités UTC sont des unités de début de cycle ingénieur en informatique. Elles s’adressent à des bac+2 en informatique. Il n’est pas raisonnable de démarrer ce cycle sans avoir déjà un peu appris à programmer. Il existe au CNAM des UEs spécifiquement prévues pour vous permettre d’entrer dans le cycle ingénieur après un bac+2 non informatique : typiquement NFP135.
 Pourquoi étudier des langages "exotiques" ? C’est précisément l’objectif de ce cours : élargir votre vision de la programmation afin de vous préparer aux changements à venir (et déjà en cours) dans le monde de la programmation. Par ailleurs étudier un paradigme de programmation dans un langage "spécialisé" dans ce paradigme est pédagogiquement plus simple (par exemple faire du fonctionnel en Java ou en C est bien sûr possible, mais plus compliqué). Des cours d’apprentissage et d’approfondissement de langages mainstream (Java notamment) existent dans le cursus ingénieur CNAM. Par exemple NFP121 ou GLG203 abordent des aspects avancés de la programmation objet en général et Java en particulier.
 Un examen présentiel pour une formation à distance ? Vraiment ? Oui. *ATTENTION* : il faut contacter son centre régional, qui va organiser l’examen localement (dans tous les centres le même jour).
 Un examen écrit oblige à programmer sur papier, n’est-ce-pas un peu absurde ? et pourquoi cette limitation des supports ? Bonne question. Il se trouve que beaucoup d’enseignants réfléchissent à ces questions. Voici les raisons (forcément discutables, mais c’est ainsi) qui ont poussé à ce choix :
-# Les TPs sont des entraînements indispensables et vous mettent en situation "réaliste". C’est leur raison d’être. Le but de l’examen n’est pas le même : il s’agit d’évaluer votre acquisition des connaissances et compétences du cours. En cela la contrainte de "situation réaliste" est hors sujet.
-# Programmer sur papier n’a effectivement pas beaucoup d’intérêt en soi, mais c’est un des seuls moyens aujourd’hui de tester vos connaissances sérieusement : les TPs peuvent être faits avec une aide extérieure, par copié-collé, avec chatgpt, etc. L’examen papier évite ces problèmes.
-# La limitation à une feuille A4 permet de vous obliger à programmer "from scrach" plutôt qu’en essayant de copier une solution à un problème précédent "qui ressemble". Encore une fois pour essayer d’évaluer sérieusement votre "savoir faire".
-# Comme programmer sur papier présente des difficultés l’examen sera nettement plus léger que les TPs mais avec une note éliminatoire comme expliqué sur la page du cours. Par ailleurs les détails syntaxique ou d’API seront négligés à la correction et le sujet contient les extraits des API nécessaires.
 Sur quels langages de programmation s’appuie cette UE ? Il y aura probablement du java, du caml (ou du javascript) ainsi qu’un langage "à flux" ou réactif (lustre, reactJS).
 Est-ce qu’il y a un contrôle continu ? Oui, des TP notés sont prévus. Probablement 3. Un examen écrit est également prévu.
 Les documents sont ils autorisés à l’examen ? Uniquement une feuille A4 recto-verso. Pas d’appareil électronique.
 Comment est calculée la note finale ? C’est la moyenne entre l’examen et la moyenne au TPs notés, à condition que la note à l’examen soit supérieure ou égale à la note éliminatoire de 7/20.
 Comment est calculée la note finale de 2e session ? Exactement de la même manière. _Il FAUT_ donc faire les devoirs dans tous les cas.
 Quels devoirs sont obligatoires ? TOUS LES DEVOIRS NOTÉS SONT OBLIGATOIRES, MÊME POUR OBTENIR LA 2e SESSION. Les dates limites de dépôt des devoirs notés sont intentionnellement très tardives pour permettre à tout le monde de s’organiser. En revanche elle sont fermes. Des retards dans les rendus peuvent être autorisés pour raison de santé uniquement. En encore : tout retard retarde également la publication éventuelle d’une correction pour les autres... Prenez donc de l’avance, pour éviter un ennui de santé de dernière minute.
 Quel volume d’heures de travail est à prévoir ? Environ 30 heures, il s’agit d’un demi module (3 ECTS). Bien entendu si vous n’avez pas le niveau requis en programmation (auquel cas il est déconseillé de s’inscrire tout de suite, voir plus haut) il vous faudra nettement plus d’heures pour y arriver.
 Quand commencent les cours ? dès le début du semestre, en février donc.
 Mettez-vous à disposition les annales précédentes pour s’entraîner à l’examen ? Oui il y a au moins un examen blanc sur le site.
 Est-ce difficile ? Si vous savez déjà programmer cela ne devrait pas être très difficile. Attention cependant : certains des paradigmes que nous allons aborder vont vous paraître très différents de ce dont vous avez l’habitude. Il vous faudra peut-être un peu de temps pour les comprendre. C’est normal, accrochez vous. Il ne s’agit pas de devenir spécialiste de chacun des paradigmes, juste de saisir l’esprit sur des exemples simples.
 Quand aura lieu la 2e session ? Fin août début septembre, durant la semaine officielle consacrée à cela au centre Parisien. Les modalités seront exactement les même que la 1e session.
 Les vidéos ne sont pas visibles dans mon navigateur. Normalement ce problème est maintenant réglé (les vidéos étant désormais sur le même site que lecnam.net). Merci de signaler si ce n’est pas le cas. Référence : https://assistance-numerique.cnam.fr/videos/. Notamment sur iphone ou ipad il fallait accepter le "suivi inter-site" mais ce n’est en principe plus nécessaire.