formations/algorithmique/cours/presentation.txt

53 lines
2.5 KiB
Plaintext
Raw Normal View History

2017-04-07 15:28:36 +02:00
Avant propos
2017-04-10 12:25:40 +02:00
============
2017-03-18 16:37:36 +01:00
2017-04-10 12:25:40 +02:00
Introduction
~~~~~~~~~~~~
2017-03-18 16:37:36 +01:00
2017-03-20 10:21:52 +01:00
- L'accent est mis sur l'approche **algorithmique scientifique**, dite algorithmique
algébrique. L'algorithmique est un sous-domaine de l'algèbre et des
approches modulaires (arithmétique modulaire...)
2017-04-07 15:28:36 +02:00
- Le point de vue mathématique étant assez exigeant, **aucun formalisme fort** de
2017-03-22 09:13:07 +01:00
l'algorithmique mathématique ne sera présenté. Aucun symbole mathématique donc, et
2017-03-20 10:21:52 +01:00
seulement du pseudo-code.
2017-03-22 09:13:07 +01:00
L'approche mathématique forte utilisant le formalisme mathématique de
l'algorithmique algébrique est en général enseignée en France uniquement aux cours
2017-03-20 10:21:52 +01:00
des grandes écoles.
- L'algorithmique présentée ici est donc délibérément pseudo-scientifique mais en revanche
2017-04-07 15:28:36 +02:00
ouverte au **multi-paradigme**. En général l'évocation d'un algorithme en pseudo code est toujours
2017-03-20 10:21:52 +01:00
réducteur car limité au style de programmation le plus à la mode actuellement, c'est-à-dire le
2017-04-07 15:28:36 +02:00
**style impératif**. Nous présenterons un éventail des plus grands paradigmes de programmation
existants. Nous nous limiterons à la **programmation impérative, fonctionnelle, modulaire,
générique et objet**. Nous envisagerons les structures de données et les structures de contrôle
2017-03-20 10:21:52 +01:00
spécifiques à chacun des styles évoqués.
2017-04-07 15:28:36 +02:00
- Et parce qu'un honnête programmeur doit avoir une vue d'ensemble de **l'état de son art**,
2017-03-20 10:21:52 +01:00
nous évoquerons un panorama des différents langages existants -- historiques et contemporains --
en les comparants les uns aux autres.
- Durant tout le cours, nous souhaitons proposer une pédagogie par l'exemple, et nous nous
2017-04-07 15:28:36 +02:00
limiterons l'exposé à deux langages d'implémentation des algorithmes : le **Python** pour la programmation
impérative, modulaire et objet, et nous évoquerons aussi certains exemples en langage **OCaml**
à propos de la programmation fonctionnelle, modulaire et générique.
2017-04-10 12:25:40 +02:00
Objectifs de ce cours
~~~~~~~~~~~~~~~~~~~~~
Il s'agit de :
- maîtriser et concevoir un algorithmes de base,
- choisir une représentations appropriée des données,
- décomposer en sous-problèmes et affinements successifs,
- organiser les modules ou fonctions.
Le développement raisonné dalgorithmes et leur implantation
permet d'acquérir les qualités suivantes :
+ Analyser et modéliser un problème,
+ Spécifier,
+ Exprimer, une problématique, une solution ou un algorithme,
+ Traduire un algorithme dans un langage de programmation,
+ Concevoir un algorithme répondant à un problème précisément posé.