Concepts des langages informatiques [ LINGI1131 ]
5.0 crédits ECTS
30.0 h + 30.0 h
1q
Enseignant(s) |
Van Roy Peter ;
|
Langue d'enseignement: |
Anglais
|
Lieu de l'activité |
Louvain-la-Neuve
|
Ressources en ligne |
iCampus: > https://www.icampus.ucl.ac.be/claroline/course/index.php?cid=INGI1131
|
Préalables |
Maîtrise de la programmation dans un langage de haut niveau, donnée par exemple par les cours SINF1121 ou FSAB1402.
|
Thèmes abordés |
- Concepts, techniques et paradigmes des langages de programmation
- Paradigmes de programmation concurrente
- Techniques de raisonnement et de conception pour la programmation
- Programmation pratique et applications pratiques
|
Acquis d'apprentissage |
Les étudiants ayant suivi avec fruit ce cours seront capables de
- définir avec précision et utiliser à bon escient dans les programmes de taille moyenne les concepts-clé de programmation;
- définir précisemment les principaux paradigmes de programmation, avec les concepts qu'ils contiennent et les propriétés qu'ils donnent à des programmes;
- expliquer comment les langages fonctionnent dans les paradigmes de programmation, ainsi que les relations entre les paradigmes;
- apprendre rapidement de nouveaux langages;
- concevoir de nouveaux langages ciblant une application quelconque;
- interfacer différents langages de programmation;
- définir les principaux paradigmes de la programmation concurrente (état ''partagé, passage de messages et concurrence déclarative), avec les concepts qu'ils contiennent et les propriétés qu'ils donnent aux programmes;
- écrire des programmes de taille moyenne dans ces paradigmes de programmation concurrente.
Les étudiants auront développé des compétences méthodologiques et opérationnelles. En particulier, ils ont développé leur capacité à
- penser à l'aide d'abstractions (raisonner correctement sur ''un système qui comprend plusieurs couches d'abstractions, et de définir de nouvelles abstractions pour simplifier la résolution d'un problème).
|
Modes d'évaluation des acquis des étudiants |
- Test au milieu du quadrimestre (dispensatoire pour 1/4 de la matière).
- Projet (1/4 de la note).
- Examen écrit en session (3/4 de la note).
|
Méthodes d'enseignement |
- Séances magistrales chaque semaine.
- Séances de travaux pratiques en salle informatique chaque semaine.
- Projet de conception et programmation à faire pendant la deuxième moitié du cours.
|
Contenu |
- Compréhension profonde des concepts majeurs des langages de programmation. Les concepts sont présentés dans un cadre uniforme. Le cours est organisé autour d'une présentation progressive et cohérente des différents paradigmes de programmation concurrente.
- Concepts majeurs de la programmation qui inclut fonction, objet, classe, abstraction, instantiation, héritage, état, encapsulation, concurrence, dataflow, évaluation paresseuse, non-déterminisme, agent (objet actif), verrou (lock), moniteur, transaction, interblocage (deadlock), programmation d'ordre supérieur, compositionnalité, etc.
- Description d'un large éventail des paradigmes de programmation, relation entre ces paradigmes et introduction aux principaux langages de programmation.
- Techniques de raisonnement et de conception avec les différents paradigmes pour concevoir des programmes corrects.
- Applications pratiques dans plusieurs domaines (par exemple, la simulation des circuits logiques, la simulation des ascenseurs, un gestionnaire de transactions).
|
Bibliographie |
- Van Roy P. et Haridi S, "Concepts, Techniques, and Models of Computer Programming", MIT Press, March 2004. (support obligatoire)
- Mozart Programming System version 1.4.0, www.mozart-oz.org.
|
Cycle et année d'étude |
> Bachelier en sciences de l'ingénieur, orientation ingénieur civil architecte
> Bachelier en sciences de l'ingénieur, orientation ingénieur civil
> Bachelier en sciences informatiques
> Année d'études préparatoire au master en sciences informatiques
> Bachelier en sciences économiques et de gestion
> Bachelier en sciences mathématiques
|
Faculté ou entité en charge |
> INFO
|
<<< Page précédente
|