Mise en route
Présentation, fonctionnement, premiers pas.
Généralités sur le cours
Cours du S5, L3 Maths (MA), assuré par Lionel Vaux Auclair.
Des informations officielles
(Adapté du site de l’offre de formation.)
Volume: 12h CM + 18h TP.
Les objectifs:
- consolider les acquis mathématiques (surtout en arithmétique et algèbre) en les revisitant sous un point de vue algorithmique et effectif,
- développer une aisance de la pratique de la programmation pertinente dans un contexte mathématique (et donc pour la poursuite d’études en maths, y compris master recherche, concours d’enseignement, etc.).
Compétences visées:
- mobiliser des connaissances mathématiques en algèbre et arithmétique pour établir ou contester la correction d’un algorithme ou d’un programme;
- identifier, parmi les définitions et résultats mobilisés en mathématiques, ceux qui sont présentés de manière effective, et donc directement susceptibles d’êtres réalisés algorithmiquement;
- transcrire un algorithme élaboré (du niveau de ceux abordés explicitement en licence de maths) en programme Python;
- proposer ou critiquer des choix d’implémentation: types de données, structuration du programme, appel à des bibliothèques externes, etc.
Contenu
Le développement principal du cours est la constructions des corps finis de caractéristique $p$ comme quotient de $\mathbf{F}_p$ par un polynôme irréductible. L’accent est mis sur le caractère effectif de cette construction et sa traduction algorithmique : étant donnés $p$ premier et $n\in \mathbf{N}$, on veut calculer automatiquement les tables des opérations du corps à $p^n$ éléments.
En préliminaire à cette construction, on revisite les bases algorithmiques de l’arithmétique (opérations sur $\mathbf{N}$ et $\mathbf{Z}$, construction de $\mathbf{Z}/p\mathbf{Z}$ comme quotient, arithmétique des polynômes).
On met en œuvre chacune de ces construction théoriques en définissant des classes Python munies de méthodes traduisant les opérations. On s’attache également à évaluer l’efficacité des algorithmes mis en œuvre (sans nécessairement chercher l’optimalité).
Si le temps le permet, on évoquera une application de la construction des corps finis : les codes correcteurs d’erreurs.
M3C
- en session 1: $\mathrm{NF} = \mathrm{Max} (\mathrm{ET}, (2 \mathrm{ET} + 3 \mathrm{CC})/5) $;
- en session 2: $\mathrm{NF} = \mathrm{ET} $.
L’examen terminal ($\mathrm{ET}$) est un examen écrit de 2h.
Le contrôle continu ($\mathrm{CC}$) est l’ensemble des rendus au cours du semestre.
Organisation
Une séance de 2h30/semaine, sur 12 semaines, en mode cours/TP.
Prérequis
- tout votre cursus en mathématiques et informatique,
- le niveau de Python attendu en fin de L2.
Pour démarrer…
Autour des suites définies par récurrence.
À suivre…
Pour la prochaine fois:
- assurez-vous de diposer d’un environnement adéquat pour écrire des programmes Python et les utiliser;
- vérifiez que vous maîtrisez les bases…