<- Archives UCL - Programme d'études ->



Computer language concepts [ LINGI1131 ]


5.0 crédits ECTS  30.0 h + 30.0 h   2q 

Enseignant(s) Van Roy Peter ;
Langue
d'enseignement:
Anglais
Lieu de l'activité Louvain-la-Neuve
Ressources
en ligne

> https://icampus.uclouvain.be/claroline/course/index.php?cid=ingi1131

Préalables

Au sein du programmeSINF1BA : LFSAB1402

Au sein du programme FSA1BA: LFSAB1101, LFSAB1102, LFSAB1201, LFSAB1202, LFSAB1301, LFSAB1401

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

Eu égard au référentiel AA du programme « Bachelier ingénieur civil », ce cours contribue au développement, à l'acquisition et à l'évaluation des acquis d'apprentissage suivants :

  • AA1.1, AA1.2
  • AA2.4-7
  • AA4.1, AA4.3-4

Eu égard au référentiel AA du programme « Bachelier en sciences informatiques », ce cours contribue au développement, à l'acquisition et à l'évaluation des acquis d'apprentissage suivants :

  • S1.I5
  • S2.2-4
  • S5.2, S5.4-5

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).

Le projet est obligatoire et se fait pendant le quadrimestre.  Il ne peut être fait qu'une fois et il compte pour toute l'année académique.

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 2, www.mozart-oz.org.
Autres infos

Préalables:

  • FSAB1402 : Maîtrise de la programmation dans un langage de haut niveau
Cycle et année
d'étude
> Année d'études préparatoire au master en sciences informatiques
> Bachelier en sciences de l'ingénieur, orientation ingénieur civil
> Bachelier en sciences économiques et de gestion
> Bachelier en sciences mathématiques
> Bachelier en sciences informatiques
Faculté ou entité
en charge
> INFO


<<< Page précédente