Programming paradigms

lsinf2335  2019-2020  Louvain-la-Neuve

Programming paradigms
Note du 29 juin 2020
Sans connaitre encore le temps que dureront les mesures de distances sociales liées à la pandémie de Covid-19, et quels que soient les changements qui ont dû être opérés dans l’évaluation de la session de juin 2020 par rapport à ce que prévoit la présente fiche descriptive, de nouvelles modalités d’évaluation des unités d’enseignement peuvent encore être adoptées par l’enseignant ; des précisions sur ces modalités ont été -ou seront-communiquées par les enseignant·es aux étudiant·es dans les plus brefs délais.
5 crédits
30.0 h + 15.0 h
Q2
Enseignants
Mens Kim;
Langue
d'enseignement
Anglais
Préalables
Ce cours suppose des connaissances de base dans un ou plusieurs langages de programmation.
Une condition minimale pour suivre ce cours est d'avoir réussi les cours de programmation (ou équivalent):
  • LINFO1101 ou LEPL1401 (informatique 1)
  • LEPL1402 (informatique 2)
Thèmes abordés
Au cours de sa carrière, un informaticien ou ingénieur logiciel sera confronté à de nombreux langages et paradigmes de programmation. Pour faire des choix de conception éclairées lors de la sélection d'un langage particulier, il ou elle doit comprendre les principes qui sous-tendent la façon dont les fonctionnalités du langage de programmation sont définis, mis en 'uvre et utilisés.
Ce cours examinera, dans une perspective historique, les principes directeurs des grands paradigmes de programmation, à partir des premiers langages de programmation jusqu'aux plus récents. Comme tel, il mettra l'accent sur les grands principes, les points forts et les différences entre divers langages et divers paradigmes de programmation.
Acquis
d'apprentissage

A la fin de cette unité d’enseignement, l’étudiant est capable de :

1 Eu égard au référentiel AA du programme « Master ingénieur civil en informatique », ce cours contribue au développement, à l'acquisition et à l'évaluation des acquis d'apprentissage suivants :
  • INFO1.2
  • INFO2.4-5
  • INFO6.3-4
Eu égard au référentiel AA du programme « Master [120] en sciences informatiques », ce cours contribue au développement, à l'acquisition et à l'évaluation des acquis d'apprentissage suivants :
  •  
  • SINF5.2, SINF5.4-5
  • SINF6.4
Les étudiants ayant suivi avec fruit ce cours seront capables de
  • décrire et différencier les principaux paradigmes de programmation (y compris la programmation procédurale, la programmation fonctionnelle, la programmation logique, la programmation orientée objet, la programmation concurrente, ainsi que les paradigmes de programmation plus récents)
  • déterminer à quel paradigme appartient un langage de programmation;
  • identifier et discuter des principes de conception d'un langage ou d'un paradigme donné;
  • choisissez une langage ou un paradigme approprié pour résoudre un problème particulier et argumenter ce choix;
  • écrire de petits programmes dans une sélection des différents langages et paradigmes vu dans le cours;
  • placer un langage de programmation par rapport à d'autres dans une perspective historique;
  • comparer les différents langages de programmation sur base de leurs principes de conception sous-jacents;
  • comprendre l'impact des différents choix de conception d'un langage (syntaxe, le passage de paramètres, portée, abstraction, ...).
 

La contribution de cette UE au développement et à la maîtrise des compétences et acquis du (des) programme(s) est accessible à la fin de cette fiche, dans la partie « Programmes/formations proposant cette unité d’enseignement (UE) ».
Méthodes d'enseignement
Le cours consistera des cours magistraux où les caractéristiques et propriétés d'un ou plusieurs langages seront expliqués en détail. En parallèle, les étudiants apprendront à programmer dans ces langages lors des travaux pratiques et les missions de programmation.
Modes d'évaluation
des acquis des étudiants
Pendant l'année, en parallèle avec le cours et les labos, les étudiants (individuellement ou en binôme) étudieront en détail plusieurs langages vus dans le cours, en réalisant trois missions de programmation dans trois langages différents. Ces missions seront évalués via des interviews et des présentations au professeur et à l'assistant du cours. Ces missions remplacent l'examen traditionnel du cours.
Autres infos
Préalable :
  • Avoir un intérêt pour les paradigmes de programmation et les concepts des langages de programmation, comme par exemple vu dans le LINGI1131 de cours.
  • Plus l''étudiant a été confronté à différents langages de programmation, plus il ou elle appréciera ce cours.
Ressources
en ligne
http://moodleucl.uclouvain.be/course/view.php?id=4653
Bibliographie
Références
Comme les langages étudies peuvent varier d'un année à un autre, les références conseillés pour ce cours pourront varier également. Néanmoins, une référence très utile qui couvre un large éventail de langages de programmation reste :
o   'Principles of Programming Languages - Design, Evaluation and Implementation' by Bruce J. MacLennan.
Support
Les transparents des cours magistraux ainsi que d'autres  informations pratiques relatives au cours seront accessibles sur Moodle.Moodle sera également le moyen de communication préféré entre les étudiants et l'équipe didactique.
Faculté ou entité
en charge
INFO


Programmes / formations proposant cette unité d'enseignement (UE)

Intitulé du programme
Sigle
Crédits
Prérequis
Acquis
d'apprentissage
Master [120] en sciences informatiques

Master [120] : ingénieur civil en informatique