Cours 2017-2018

Algorithmique [INFOB237]

  • 4 crédits
  • 22.5h+22.5h
  • 2e quadrimestre
Langue d'enseignement: Français
Enseignant: Schobbens Pierre

Acquis d'apprentissage

L'étudiant sera capable de :
 
- formaliser un problème à partir d'un énoncé ;
 
- résoudre le problème de façon systématique pour proposer un programme correct et efficace.
 

Objectifs

Apprendre une démarche rigoureuse de construction de programmes efficaces: l'algorithmique.
 

Contenu

Toutes les méthodes reposent sur la démarche de spécification formelle, implémentation et preuve. L'évaluation de l'efficacité d'un problème est basée sur un calcul du temps d'éxécution et de consommation de la mémoire (théorie de la complexité) La récursion sert de base à ce cours. Nous utilisons d'abord des structures de données récursives: arbres, arbres rouges-noirs, listes, etc. Ensuite, des méthodes systématiques de construction de programmes efficaces seront présentées: 1- la méthode "diviser pour régner" 2- les méthodes de mémorisation, dont la programmation dynamique 3- la méthodes gloutonne 4- la méthode générer/tester  5- les méthodes heuristiques
 

Table des matières

Partie I. Spécification par pré et et post-conditions, preuves par invariants et variants. Evaluation du temps d'éxécution. Récursion. Structures de données récursives: arbres, arbres rouges-noirs, listes, etc. Partie II. Méthodes de construction de programmes. 1- la méthode "diviser pour régner" 2- les méthodes de mémorisation, dont la programmation dynamique 3- la méthodes gloutonne 4- la méthode générer/tester 5- la méthode des contraintes 6- les méthodes heuristiques

Description des exercices

 1- Consolidation des prérequis: - écriture de spécifications; - construction d'algorithmes par la technique de l'invariant; - types abstraits (liste chaînée, liste doublement chaînée, arbre binaire,...). 2- Appropriation des méthodes vues au cours théorique: - construction d'algorithmes par les différentes méthodes; - calcul de la complexité des algorithmes construits.

Disciplines

Analyse de systèmes informatiques

Co-requis

Techniques de programmation [INFOB233]

Méthodes d'enseignement

Un cours magistral illustré de nombreux exemples, plus des travaux pratiques. Les étudiants sont également invités à faire des exercices à domicile.
 

Mode d'évaluation

Examen écrit. La question principale demande de résoudre efficacement un problème nouveau.
 

Sources, références et supports éventuels

Le cours suit une partie du livre: Introduction à l'algorithmique, de T. Cormen, C. Leiserson, R. Rivest, C. Stein (ed. Dunod).

Langue d'enseignement

Français

Lieu de l'activité

NAMUR

Faculté organisatrice

Faculté d'informatique
rue Grandgagnage 21
5000 NAMUR
T. 081725252
F. 081724967
secretariat.info@unamur.be

Cycle

Etudes de 1er cycle