Cette unité d’enseignement n’est pas accessible aux étudiants d’échange !
Enseignants
Langue
d'enseignement
d'enseignement
Français
Préalables
Ce cours suppose acquises des compétences de base en programmation visées par les cours LSINC1101/LINFO1101 et les notions sur l'algorithmique et les structures de données simples visées par le cours LSINC1402/LEPL1402.
Le(s) prérequis de cette Unité d’enseignement (UE) sont précisés à la fin de cette fiche, en regard des programmes/formations qui proposent cette UE.
Le(s) prérequis de cette Unité d’enseignement (UE) sont précisés à la fin de cette fiche, en regard des programmes/formations qui proposent cette UE.
Thèmes abordés
- Paradigmes de programmation (y compris fonctionnel, orienté objet, dataflow et multi-agent)
- Sémantique formelle et techniques de raisonnement
- Abstraction procédurale (programmation d'ordre supérieur)
- Abstraction de données (y compris orienté objet et types de données abstraits)
- Programmation concurrente (y compris état partagé, passage de messages et dataflow déterministe)
- Programmation symbolique (y compris conception algorithmique)
Acquis
d'apprentissage
d'apprentissage
A la fin de cette unité d’enseignement, l’étudiant est capable de : | |
Eu égard au référentiel AA du programme « Bachelier en Sciences de l'Ingénieur, orientation ingénieur civil », ce cours contribue au développement, à l'acquisition et à l'évaluation des acquis d'apprentissage suivants :
|
|
Contenu
Le but de ce cours est d'élargir et approfondir les connaissances en programmation acquises dans les précédents cours. Ce cours aborde les sujets suivants:
- Le cours donne un cadre uniforme pour tous les concepts de programmation, organisés en paradigmes de programmation.
- Le cours donne une sémantique formelle et des techniques de raisonnement pour tous les paradigmes présentés.
- Le cours donne une introduction au lambda calcul comme base de la programmation fonctionnelle et la programmation d'ordre supérieur.
- La programmation d'ordre supérieur est utilisée comme principe organisateur pour construire des abstractions procédurales.
- La programmation concurrente est présentée en deux formes, le dataflow déterministe et la concurrence à passage de messages.
- L'abstraction de données est présentée dans sa forme générale et avec ses deux formes principales, la programmation orientée-objet et les types de données abstraits.
- La programmation symbolique et la conception d'algorithmes sont utilisés partout dans le cours.
- Cinq paradigmes de programmation importants sont abordés dans ce cours: la programmation fonctionnelle, la programmation orientée objet, la programmation dataflow déterministe, les acteurs dataflow et la programmation avec objets actifs (multi-agent).
Méthodes d'enseignement
- Cours magistral chaque semaine
- Séances de travaux pratiques en salle informatique chaque semaine, pour résoudre des problèmes simplifiés en utilisant les concepts vu au cours
- Un grand projet de conception et d'implémentation pour appliquer ces concepts dans le cadre d'une application plus complexe.
Modes d'évaluation
des acquis des étudiants
des acquis des étudiants
- Test dispensatoire 25% (vers la 7e semaine)
- Projet 25%
- Examen final (50%) (ou 75% si on refait la partie du test)
Faculté ou entité
en charge
en charge