Informatique et recherche
opérationnelle
IFT2030

Concepts des langages de programmation

Automne 2002


Accueil

Professeur et
Démonstrateurs

Horaires et locaux

Notes de cours

Démonstrations
et devoirs

Examens

Liens utiles

Au sujet du
livre de cours

Consultez vos notes

Foire aux questions
(FAQ)

Plan de cours

Objectifs (texte repris de la page de cours de Miklós Csürös)

Ce cours présente les concepts à la base des langages de programmation, en prenant comme examples des langages représentatifs de ces concepts. Nous étudierons ainsi la programmation impérative (avec C/C++ et les problèmes que les pointeurs apportent), la programmation fonctionnelle (avec Scheme), la programmation par objets (avec C++ et Java), la programmation logique (avec Prolog), et la programmation parallèle (avec Java). L'approche du cours mettra l'emphase sur l'apprentissage des principes de base des langages, tels que la représentation des unités de base, le typage et les mécanismes d'exécution. Nous ne cherchons pas à former des spécialistes d'aucun des langages étudiés, mais plutôt à donner une solide formation de base qui permettra à l'étudiant(e) d'approfondir selon sa volonté n'importe lequel des milliers de langages de programmation qui existent. En plus des cours théoriques, des travaux de programmation seront donnés, visant la compréhension des concepts et l'illustration de différents paradigmes de programmation. Le cours n'est pas à strictement parler un ``cours de programmation´´ car il y a une composante théorique importante.

Plan (très) approximatif

C'est la pemière fois que je donne ce cours, aussi n'ai-je pas encore une idée très précise du temps que me prendrons les différents points que nous aborderons en cours. Voici cependant l'ensemble minimal de points que je souhaite aborder avec vous:
  • Buts du cours, ouvrages de référence, barême
  • Brève histoire des langages (et de leur évolution)
  • Interprétation versus compilation (généralités)
  • Choix d'un langage de programmation (quelques critères)
  • Analyse lexicale et syntaxique, quelques mots sur la théorie des languages
  • Application à la réalisation d'un compilateur (P-code) pour un mini langage
  • Quelques mots sur l'analyse sémantique
  • Variables, liaisons (binding), portée, durée de vie
  • Types (définition et vérification)
  • Structures de contrôle (boucles, branchements, etc), implémentation
  • Sous-programmes, méchanismes de passage de paramètres, implémentation
  • Types de données abstraits (example de la librairie STL pour C++)
  • Programmation orientée objet (POO)
  • Programmation concurrente, applications client/serveur
  • Programmation fonctionnelle (avec Scheme)
  • Programmation logique (avec Prolog)

Barême

Vous serez évalués dans ce cours par des examens et des travaux à remettre.

Intra25 points (noté sur 100)
Final30 points (noté sur 100)
Devoir 1 (TP1)15 points (noté sur 15)
Devoir 2 (TP2)15 points (noté sur 15)
Devoir 3 (TP3)15 points (noté sur 15)

La note finale est calculée selon la formule suivante:
Soit Exam = (25 * Intra + 30 * Final) / 55,
Si Exam >= 50,
   alors Note = Exam + TP1 + TP2 + TP3
   sinon Note = Exam + 0.5 * (TP1 + TP2 + TP3)

La conséquence évidente de ce calcul est qu'il faut réussir les examens pour avoir plus de 50% au cours.  La note sur  100 est convertie en note littérale (A+, A, A-, etc.) à la fin du cours seulement, selon un barème qui dépendra à la fois de la moyenne du groupe et de la répartition des résultats obtenus, par rapport aux années passées.



Dernière mise à jour : Sun Jan 5 13:40:51 EST 2003
dift2030@iro.umontreal.ca