Page 3
Description : Paradigmes de programmation. Programmation procédurale, commande, séquencement et
pointeur. Programmation fonctionnelle, abstraction fonctionnelle, application, inférence de
types. Programmation orientée objet, classes, objets, messages et héritage (simple et
multiple). Programmation parallèle et distribuée en Java. Modularité et structuration.
Langages ML et Java.
PR : IFT-10541 ou IFT-19966
Objectifs : Ce cours porte sur les différents concepts des langages de programmation. Il se veut un cours
de base, indispensable à tout informaticien. L'objectif est d'initier les étudiants aux différents
paradigmes de programmation. Ainsi, nous aborderons dans ce cours :
• Paradigme de programmation fonctionnelle (lambda-calcul, ML),
• Paradigme de programmation orientée objet (Java),
• Paradigme de programmation parallèle (Java, Concurrent ML).
Pour chaque paradigme, nous présenterons :
• Les motivations,
• Les concepts spécifiques,
• L'étude détaillée d'un ou plusieurs langages représentatifs.
Nous évoquerons également, d'une manière détaillée, les aspects structuration et modularité,
traitement d'exceptions, contrôle de types, sécurité, etc.
D. Évaluation des apprentissages
L’évaluation du cours se fera comme suit :
• Si la moyenne des 2 examens est inférieure à 50%, la note finale sera calculée comme suit :
(Examen1 + Examen2) / 2
• Si la moyenne des 2 examens est supérieure ou égale à 50%, la note finale sera composée des résultats
des 2 examens et des 2 travaux pratiques de programmation. La note finale sera la moyenne pondérée
des 4 notes et ce comme suit :
(Examen1 + Examen2 + Moyenne des 2 TPs) / 3
Chaque examen se tiendra en deux (2) heures. Tout document est permis durant les examens. La note
minimale de passage est de 60%. Les cotes seront attribuées selon le barème suivant :
A+ [95-100] A [90-95[ A- [87-90[ Réussite
B+ [84-87[ B [81-84[ B- [78-81[ Réussite
C+ [75-78[ C [72-75[ C- [70-72[ Réussite
D+ [65-70[ D [60-65[ Réussite
E [0-60[ Échec
W Échec pour abandon