Outils personnels
FUNDP > Enseignement > Cours

Cours 2012

IHDC B331 - Méthodes de programmation (2e partie)

Enseignant(s)

Pierre-Yves SCHOBBENS

Encadrement des TP/Exercices

Abdelkader HENI

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- la méthode des contraintes

6- les méthodes heuristiques

Donné en

Année(s) d'études

Quadrimestre

Théorie (h)

Exercices (h)

Crédits

Année préparatoire au 2e cycle en sciences informatiques à horaire décalé

1er

30

30

8

3e année de bachelier en sciences informatiques (horaire décalé)

1er

30

30

8

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 TP/Exercices

Les séances d'exercices sont organisées selon un triple perspective.

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.

3- Introduction au langage C:

- les différents algorithmes construits sont implémentés en C.

Méthode d'enseignement

Un cours magistral illustré de nombreux exemples, plus des travaux pratiques.

Les étudiants sont également invités à faire des exercices à domicile.

Evaluation

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

Prérequis

Connaissance de la programmation impérative, des pré- et post-conditions, des invariants.

Cette matière est donnée p.ex. par INFO1131, ou IHDC2004 et IHDC2005.

Lectures recommandées

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

Site du cours sur WebCampus

Autre site web du cours