Conception & Construction de Programmes
Quatrième année 'Ingénieur"
Institut National d'Informatique
25 séances de 1h3O
D.E ZEGOUR & W.K HIDOUCI
PARTIE I : CONCEPTION DE PROGRAMMES 1. Concepts préliminaires A. O-notationIntroduction O-notation Opérations Somme Produit Règles générales Exemple Analyse des algorithmes récursifs Dilatation Devinette Récurrence Analyse des algorithmes à 'GOTO' B. Graphes et Arbres
Introduction Définition Graphe orienté Graphe non orienté Représentation mémoire Matrice Tableau de listes Modèle Parcours des graphes 'Depht first search' 'Breadh First search' Applications. Détermination du plus court chemin ( Algorithme de Dijkstra) Problème du Voyageur du Commerce (PVC) 2. Diviser pour régner
A. Principe général B. Applications Tri par fusion Multiplication de grands nombres Organisation d'un tournoi Tour de Hanoi C. Recommandations 3. Programmation dynamique
A. Principe général B. Applications Triangle de PASCAL Série mondiale Multiplication chaînée de matrices Les plus courts chemins 4. Exploration systématique de graphes
A. Introduction B. Exploration en profondeur : Backtracking Exemples Placer 8 reines dans un échiquier Problème des cruches d'eau Sortie d'un labyrinthe Application dans les arbres de jeu Min-Max Jeu des X et des O Jeu des billes Elagage(Coupe) alpha-béta Exemple Exploration en largeur Passage de a à b avec application d'un nombre minimal de fonctions 5. Heuristiques
A. Introduction B. Recherche d'une branche Hill Climbing Beam Search Best First Search C. Recherche de la meilleure branche Branch and Bound Branch and Bound avec sous estimations Branch and Bound avec programmation dynamique A* PARTIE II : CONSTRUCTION DE PROGRAMMES 1. Concepts préliminaires : A. Systèmes formels
Définition d'un système formel Morphologie Théorie propre Classes d'un système formel Classes données Classes construites Décidabilité des systèmes formels Restrictions Un exemple de système formel Quelques systèmes formels Système relationnel Système logique Système applicatif B. Théorie du point fixe
Rappel Ensemble ordonné Majorant, Minorant Borne inférieure, borne supérieure Treuilli, treuilli complet Fonction croissante Fonction continue Théorème du point fixe Enoncé Démonstration 2. Programmation procédurale
A. Introduction B. Les différents schémas B-schémas D-schémas R-schémas BJn-schémas REn-schémas RECn-schémas Variantes Comparaison des structures Relation entre schémas Relation entre structures Quelques résultats C. Transformations Définition Quelques transformations remarquables Bohm et Jacoppini : B --> D Méthode par automate : B --> D Arsac : B --> REn Williams and Chen : B --> D Ramshaw : B-->REn R --> B ( Procédé sémantique ) D. Preuves Introduction Correction partielle Correction totale Preuves sur les D-schéma(Hoare) Axiome d'affectation Règles de la séquentielle, l'implication, la conditionnelle, la répétitive Problème de l'arrêt Preuves sur les R-algorithmes Règle de l'appel récursif(Hoare) Exemple Preuves sur les B-algorithmes(Floyd) Automatisation E. Le projet "CONCORDE"
Introduction Les différents types de schéma Construction Correction Transformation Objectif pratique Objectif pédagogique Les travaux réalisés 3. Programmation fonctionnelle
A. Introduction Définition Caractéristiques Schéma fonctionnel Quelques langages fonctionnels B. Lambda-Calcul Variables et fonctions en mathématiques La (-notation Fonction à plusieurs arguments Les systèmes (-applicatifs Grammaire du (-calcul Notion de variables libres et liées Changement de variables Substitution Contraction Réduction Théorie propre du -calcul Forme normale Ordre de réduction Théorème de Church-Rosser ( première forme ) Théorème de Church-Rosser ( deuxième forme ) Fonctions récursives C. Preuves Deux approches : système formel et point fixe Approche "Point fixe" Concepts mathématiques Notion de fonctionnelle et de point fixe. Fonction moins définie Convergence Idée de la preuve Exemples D. Le langage LISP Objets Structure d'un programme Primitives de manipulation des listes Primitives booléennes Définition de nouvelles fonction Fonctionnelle (Fonction de fonctions) Exemples E. Interpréteur . Forme interne . Algorithme d'interprétation. 4. Programmation logique
A. Introduction B. Logique des prédicats du premier ordre Syntaxe Sémantique Propriétés Inconsistance et validité d'une formule Variables libres, variables liées Forme normale conjonctive Forme normale disjonctive Règle d'inférence C. Démonstrateur automatique Substitution Unification Couple de désaccord Algorithme d'unification Principe de résolution Algorithme général de résolution Détermination des résolvantes Résolution dans un cas simple Propriété de la résolution Résolution dans Prolog Clauses de Horn Les différents cas Pas d'inférence Exemples D. Le langage PROLOG Concepts généraux Données manipulées Portée des variables et des constantes Structure d'un programme Structure interne Opérations Exemples Fonctionnement de Prolog sur un exemple 5. La programmation objet (PO)
A. Présentation Origine des langages Objet Introduction Concepts de la POO Encapsulation Héritage (Surcharge) Polymorphisme Conception POO B. Illustration de la POO en Pascal Définition d'objet(encapsulation) Héritage Redéfinition de méthode(surcharge) Objets dynamiques Polymorphisme Méthodes virtuelles C. Application : TURBO-VISION Généralités Introduction Objets visuels événements Objets muets Hiérarchie des classes Exemple Le programme Commentaires 6. Le projet 'Ecole 2000'
Introduction Les différents types de schéma Construction Evaluation Objectifs Les travaux réalisés 7. Spécifications de programmes et de systèmes
A. Introduction B. Spécification de programmes Introduction Opérationnelle ( Calculatoire ) Denotationelle ( Relationnelle ) C. Spécification de systèmes Introduction Idées générales Usage Qualités Orientation Spécification algébrique Spécification relationnelle Spécification Z