diff --git a/algorithmique/cours/apercu.txt b/algorithmique/cours/apercu.txt new file mode 100644 index 0000000..35987f0 --- /dev/null +++ b/algorithmique/cours/apercu.txt @@ -0,0 +1,20 @@ +Aperçu des algorithmes fondamentaux +=================================== + +En mathématiques +----------------- + +- l'algèbre +- l'arithmétique modulaire +- la géométrie (affine, algébrique, topologique...) + + +En informatique +---------------- + +- les algorithmes sur la manipulation des structures de données + +Exemple : les algorithmes de tri, de recherche dans un arbre, un graphe... + +- les algorithmes de cryptage +- les algorithmes de calculs de dates diff --git a/algorithmique/cours/index.txt b/algorithmique/cours/index.txt index a4cdce6..b1536bc 100644 --- a/algorithmique/cours/index.txt +++ b/algorithmique/cours/index.txt @@ -11,5 +11,6 @@ Introduction à l'algorithmique programme fonctions control + apercu modularite annexes/index diff --git a/algorithmique/cours/presentation.txt b/algorithmique/cours/presentation.txt index ab7873b..1b01239 100644 --- a/algorithmique/cours/presentation.txt +++ b/algorithmique/cours/presentation.txt @@ -4,6 +4,10 @@ Avant propos Introduction ~~~~~~~~~~~~ +| "Que nul n'entre ici s'il n'est géomètre" +| (Maxime apposée au porche d'entrée de l'École de Platon) + + - 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...) @@ -27,10 +31,29 @@ Introduction 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 +- Durant tout le cours, nous souhaitons proposer une pédagogie par l'exemple, et nous 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. + impérative modulaire et objet, et le **OCaml**, car nous évoquerons aussi certains points + de programmation fonctionnelle et modulaire, polymorphe et teintée de généricité. + +Intérêt +------- + + +| "Les dieux ne connaissent pas seulement les mauvaises actions, +| mais encore les mauvaises pensées." +| Thalès de Milet + + +L'algorithmique en tant que rapport à la vérité, +en tant qu'art de découper un problème complexe en tâches élémentaires, +en tant qu'énoncés de compréhension et de sémantique, +est la seule chose vraiment profonde dans l'informatique. Le reste n'est que 0 ou 1. +Cette notion d'algorithme est profondément enracinée dans le désir humain de +transmettre des méthodes pour comprendre des problématiques, +qu'il s'agisse de procédures scientifiques ou mathématiques, de secrets, +de philosophie ou de divination au sens des anciens Grecs. +De règles linguistiques, aussi, chez les Romains. Objectifs de ce cours ~~~~~~~~~~~~~~~~~~~~~ @@ -40,7 +63,7 @@ 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. +- organiser les modules et les fonctions. Le développement raisonné d’algorithmes et leur implantation permet d'acquérir les qualités suivantes : diff --git a/algorithmique/cours/programme.txt b/algorithmique/cours/programme.txt index c862472..2a983d5 100644 --- a/algorithmique/cours/programme.txt +++ b/algorithmique/cours/programme.txt @@ -119,6 +119,17 @@ Algorithme de la longeur d'une liste Cette fonction est prédéfinie en Ocaml : `List.length` + +Algorithmes de tri +~~~~~~~~~~~~~~~~~~~ + +On désigne par "tri" l'opération consistant à ordonner un ensemble d'éléments en fonction de clés sur lesquelles est définie une relation d'ordre. + +Les algorithmes de tri ont une grande importance pratique. +Ils sont fondamentaux dans certains domaines (exemples : map-reduce en database non relationnelle). + +L'étude du tri est également intéressante en elle-même, c'est un des domaines de l'algorithmique très étudié et connu. + Algorithme de tri par insertion ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~