|
| 1 | +2025-09-03 : ENSAE |
| 2 | +================== |
| 3 | + |
| 4 | +**Objectif** |
| 5 | + |
| 6 | +Vous permettre de maîtriser les outils nécessaires à la réalisation de vos |
| 7 | +projets, à l'ENSAE et ce qui suivra. |
| 8 | + |
| 9 | +Le langage python est un des plus simples et un des plus populaires. |
| 10 | +Il est open source et fonctionne sur tous les systèmes d'exploitation. |
| 11 | +Il permet d'accomplir à peu près toutes les tâches, que ce soit |
| 12 | +des calculs numériques, la création d'un site web, l'automisation de |
| 13 | +tâches répétitives et complexes. |
| 14 | + |
| 15 | +**Notions à maîtriser** |
| 16 | + |
| 17 | +* éléments de bases du langages (boucles, listes, tests, fonctions) |
| 18 | +* classes (attributes, méthodes, opérateurs, héritages) |
| 19 | +* graphes, arbre |
| 20 | +* numpy (opérations standard, broadcasting) |
| 21 | +* format de données (JSON, XML, HTML, csv) |
| 22 | +* tests unitaires (package unittest, git, pull request) |
| 23 | +* profiling |
| 24 | +* algorithmes |
| 25 | + * tri fusion |
| 26 | + * recherche dichotomique |
| 27 | + * graphes (composantes connexes, Kruskal, ...) |
| 28 | + * programmation dynamique (chemin plus court dans un graphe, distance d'édition) |
| 29 | + * problème NP-complet tels que le voyageur de commerce |
| 30 | + * comment résoudre un sudoku |
| 31 | + * algorithme alpha-beta pour résoudre un jeu de réflexion (dames, échecs, othello, ...) |
| 32 | + |
| 33 | +**Notions non abordées** |
| 34 | + |
| 35 | +Manipulation de données, pandas, machine learning, elles le seront en seconde année et non en première année. |
| 36 | + |
| 37 | +**Evaluation** |
| 38 | + |
| 39 | +1 TD noté. Les classes seront abordées et un problème algorithmique. |
| 40 | +Voir aussi les précédents énoncés : :ref:`l-exams`. |
| 41 | + |
| 42 | +**Le Chat, ChatGPT, Gemini, ...** |
| 43 | + |
| 44 | +Ces outils changent véritablement la façon d'écrire du code. |
| 45 | +Ils permettent d'aller parfois trois à quatre fois plus vite |
| 46 | +pour résoudre un problème. Ils peuvent fournir une bonne base pour écrire |
| 47 | +de la documentation, des tests unitaires, pour créer un graphique, |
| 48 | +traduire un programme dans un autre langage, écrire un algorithme connu |
| 49 | +dans un cadre précis. |
| 50 | + |
| 51 | +Ils ne fournissent pas la solution mais une bonne base de départ qu'on peut retravailler |
| 52 | +ou ajouter à d'autres bouts de code construits de la même façon. |
| 53 | +Pour comprendre les réponses, il est important de connaître le langage |
| 54 | +et quelques algorithmes. |
| 55 | + |
| 56 | +La plupart du temps, on n'invente pas de nouveau, on assemble des algortihmes |
| 57 | +existants ou on les adapte dans des cas où la version classique est trop longue, |
| 58 | +ou ne prend pas en compte une contrainte particulière... |
| 59 | + |
| 60 | +.. image:: dames_chatgpt.png |
| 61 | + |
| 62 | +A qui appartient le code écrit ? |
| 63 | + |
| 64 | +**Ressources** |
| 65 | + |
| 66 | +* Ce site : `sdpython.github.io/doc/teachpyx/dev/ <https://sdpython.github.io/doc/teachpyx/dev/>`_ |
| 67 | +* :ref:`l-book-python` |
| 68 | +* exercices sur le langage :ref:`l-python` |
| 69 | +* exercices sur des algortihmes :ref:`l-algo` |
| 70 | +* examens passés :ref:`l-exams` |
| 71 | +* `Des aspects plus mathématiques d'algorithmes <https://sdpython.github.io/doc/mlstatpy/dev/>`_ |
| 72 | + |
| 73 | +**Getting Started** |
| 74 | + |
| 75 | +* `cheat sheet python <https://perso.limsi.fr/pointal/_media/python:cours:mementopython3-english.pdf>`_ |
| 76 | +* `Anaconda <https://www.anaconda.com/>`_, |
| 77 | + `miniconda <https://docs.conda.io/projects/miniconda/en/latest/>`_, |
| 78 | + `mamba <https://mamba.readthedocs.io/en/latest/installation/mamba-installation.html>`_ |
| 79 | +* `Visual Studio Code <https://code.visualstudio.com/>`_ |
| 80 | +* `git <https://git-scm.com/>`_, `github <https://github.com/>`_ |
| 81 | +* `notebook <https://jupyter.org/>`_ |
| 82 | + |
| 83 | +**Feuilles de routes** |
| 84 | + |
| 85 | +* :ref:`l-feuille-route-ensae-2024` |
| 86 | +* :ref:`l-feuille-route-ensae-2025` |
0 commit comments