> Accueil > Formation initiale > Programmes du cursus ingénieur > Programme de troisième année - Informatique
Formation initiale
 
Formations
Organisation cursus ingénieur
Organisation cursus Master Recherche
Programmes cursus ingénieur
Programmes cursus Master Recherche
Admission
Débouchés



 
Programme de troisième année - Informatique
 

CONCEPTS DES LANGAGES ET TECHNIQUES DE PROGRAMMATION

28,5h C/ 15h TD / 2 EE / 3 crédits ECTS / SI_CLT

Yolaine Bourda, Dominique Marcadet, Sylvain Peyronnet, Franck Capello

Il s'agit de présenter les différents styles de langages de programmation et leurs domaines d'application et de préciser les concepts sous-jacents.

Présentation

Programmation fonctionnelle, impérative, déclarative (rappels). Programmation par objets, par aspects, par composants. Histoire des langages de programmation.

Concepts de base

Données : typage, conversions, pointeurs, allocation, ramasse-miettes, durée de vie, déclaration et définition, constante, tableaux, généricité. Identificateurs : portée, espace de noms, références. Fonctions : définition, passage d'arguments, retour de valeur, surcharge, valeurs par défaut. Opérateurs : arité, priorité, associativité, ordre d'évaluation, affectation, égalité, surcharge. Exceptions. Entrées/sorties.

Approche objet

Définition de classes, protection, héritage, polymorphisme. Construction, destruction, affectation. Variables et méthodes de classe, autres membres. Classes abstraites. Identification dynamique de type, introspection.

Techniques de programmation

Idiomes : poignée, lettre/enveloppe, héritage dynamique, double dispatch. Généricité : conteneurs, algorithmes, objets fonctions, expressions génériques, méta-programmation.

Langages de programmation (en) logique et par contraintes.

Syntaxe du langage Prolog : faits et règles. Unification. Stratégie de Prolog. Quelques prédicats prédéfinis. Les opérateurs. Traitement des grammaires. Autres applications.

Solveurs de contraintes. Applications de la programmation par contraintes.

Programmation parallèle et algorithmes pour le parallélisme et pour les systèmes distribués

Langages parallèles : langages concurrents, langages distribués.

Calcul sur grille : architectures et applications de grid computing, déploiement de données massives, distribution des calculs massifs.

Algorithmes de gestion de la distribution. Réseaux et routage. Élection. Algorithmes à vagues. Algorithmes de terminaison. Algorithmique utilisant la distribution. Classements sur architectures spécialisées. Algorithmes sur les graphes.

Bibliographie

Le Langage C++ 4ème Édition, Bjarne Stroustrup, Campus Press, 2003, ISBN : 2-7440-7003-3.
Modern C++ Design: Generic Programming and Design Patterns Applied, Andrei Alexandrescu, Addison Wesley, 2001, ISBN : 0-201-70431-5.
C++ Templates: The Complete Guide, David Vandervoorde & Nicolai M. Josuttis, Addison Wesley, 2002, ISBN : 0-201-73484-2.