diff --git a/algorithmique/abstract.txt b/algorithmique/abstract.txt index 7367d01..8bb0511 100644 --- a/algorithmique/abstract.txt +++ b/algorithmique/abstract.txt @@ -3,31 +3,33 @@ Initiation à l'algorithmique et présentation de la programmation **Présentation du cours** -- L'accent est mis sur l'approche **algorithmique scientifique**, dite algorithmique - algébrique puisque qu'il s'agit d'un domaine de l'algèbre (comme sous-ensemble de - l'arithmétique modulaire) ; - -- Cette approche étant assez exigeante, aucun formalisme fort de l'algorithmique - mathématique ne sera présenté. Aucun symbole mathématique donc, et seulement du pseudo-code. - L'approche mathématique forte utilisant le formalisme de l'algorithmique algébrique est en - général enseignée en France uniquement aux cours des grandes écoles. - -- L'algorithmique présentée ici est donc délibérément pseudo-scientifique mais en revanche - ouverte au multi-paradigme. En général l'évocation d'un algorithme en pseudo code est toujours - réducteur car limité au style de programmation le plus à la mode actuellement, c'est-à-dire le - 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 - spécifique à chacun des styles évoqués. +- 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...) -- Parce qu'un honnête programmeur doit avoir une vue d'ensemble de l'état de l'art, - nous évoquerons un panorama des différents langages existant, historiques et actuels, en les - comparants les uns aux autres. - -- Durant tout le cours, nous souhaitons proposer une pédagogie par l'exemple, et nous nous - limiterons l'exposé à deux langages : principalement le Python3 pour la programmation - impérative, modulaire et objet, mais nous évoquerons aussi certains exemples en langage OCaml +- Le point de vue mathématique étant assez exigeant, aucun formalisme fort de + l'algorithmique mathématique ne sera présenté. Aucun symbole mathématique donc, et + seulement du pseudo-code. + 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 + des grandes écoles. + +- L'algorithmique présentée ici est donc délibérément pseudo-scientifique mais en revanche + ouverte au multi-paradigme. En général l'évocation d'un algorithme en pseudo code est toujours + réducteur car limité au style de programmation le plus à la mode actuellement, c'est-à-dire le + 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 + spécifiques à chacun des styles évoqués. + +- Et parce qu'un honnête programmeur doit avoir une vue d'ensemble de l'état de son art, + 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 + limiterons l'exposé à deux langages : principalement le Python3 pour la programmation + impérative, modulaire et objet, mais nous évoquerons aussi certains exemples en langage OCaml à propos de la programmation fonctionnelle et générique. - - - + + + diff --git a/algorithmique/cours/annexes/agile.txt b/algorithmique/cours/annexes/agile.txt index 3329ff2..43dd756 100644 --- a/algorithmique/cours/annexes/agile.txt +++ b/algorithmique/cours/annexes/agile.txt @@ -1,8 +1,8 @@ -bilan agile -============ +Les méthodes agile +=================== -mode itératif -------------- +Le mode itératif +----------------- - livrer des versions successives et utilisables qui convergent vers la version finale @@ -14,15 +14,15 @@ mode itératif - les specs détaillées sont écrites "juste à temps" -planification agile -------------------- +La planification agile +----------------------- - chaque livraison est un projet qui est planifié en tant que tel - utiliser l'expérience acquise pour affiner les estimations - préservation de l'écologie du projet au quotidien (code, tests...) -confiance, feedback ---------------------- +La confiance, feedback +----------------------- - livraisons régulières - progrès visibles par tous (pas d'effet tunnel) @@ -30,8 +30,8 @@ confiance, feedback - investissement du Product Owner - chercher la collaboration plutôt que la confrontation -agilité ---------- +L'agilité +---------- - le projet n'est pas joué d'avance - cultiver la souplesse @@ -39,8 +39,8 @@ agilité - sortir de la confrontation, jouer le "nous collectif" mettre tout le monde sur le mme pont et amener tout le monde à bon port -outils agiles --------------- +Les outils agiles +------------------ - planification par itérations de 4 semaines - entrepot de source partagé @@ -56,7 +56,7 @@ outils agiles - suivi de l'avancement - documentation -le product owner +Le product owner ----------------- idéalement, @@ -65,16 +65,16 @@ idéalement, - fibre projet - dispo à 100% -tests ------ +Les tests +--------- - automatiser - viser l'exhaustivité - tester une cible mouvante - migrer les tests d'une release à l'autre -questions importantes ------------------------ +Questions importantes en environnement agile +---------------------------------------------- - quelle durée d'itération ? - comment découper en itérations ? diff --git a/algorithmique/cours/annexes/scrum.txt b/algorithmique/cours/annexes/scrum.txt index 13d035b..3777780 100644 --- a/algorithmique/cours/annexes/scrum.txt +++ b/algorithmique/cours/annexes/scrum.txt @@ -1,13 +1,15 @@ scrum ===== -scrum +.. glossary:: - Scrum est une méthode agile pour la gestion de projets - Le terme Scrum est emprunté au rugby et signifie mêlée. - Ce processus s'articule en effet autour d'une équipe soudée, - qui cherche à atteindre un but, comme c'est le cas en rugby - pour avancer avec le ballon pendant une mêlée. + scrum + + Scrum est une méthode agile pour la gestion de projets + Le terme Scrum est emprunté au rugby et signifie mêlée. + Ce processus s'articule en effet autour d'une équipe soudée, + qui cherche à atteindre un but, comme c'est le cas en rugby + pour avancer avec le ballon pendant une mêlée. Scrum définit trois rôles principaux : diff --git a/algorithmique/cours/conf.py b/algorithmique/cours/conf.py index b607f02..b6f284c 100644 --- a/algorithmique/cours/conf.py +++ b/algorithmique/cours/conf.py @@ -71,7 +71,7 @@ language = 'fr' # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +today_fmt = '%d/%m/%Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. @@ -233,7 +233,7 @@ latex_logo = '_static/cesi.jpg' # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -latex_use_parts = True +latex_use_parts = False # If true, show page references after internal links. #latex_show_pagerefs = False diff --git a/algorithmique/cours/index.txt b/algorithmique/cours/index.txt index 6bfd1ab..13ed2a0 100644 --- a/algorithmique/cours/index.txt +++ b/algorithmique/cours/index.txt @@ -1,8 +1,6 @@ Introduction à l'algorithmique ================================ -Contents: - .. toctree:: :maxdepth: 2 @@ -10,17 +8,8 @@ Contents: langage modularite machine - + annexes/index .. FIXME machine, algorithmique - - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` -