Skip to content
This repository has been archived by the owner on Jan 13, 2024. It is now read-only.

Commit

Permalink
plan
Browse files Browse the repository at this point in the history
  • Loading branch information
sdpython committed Aug 25, 2022
1 parent f3038cc commit 02bbc58
Show file tree
Hide file tree
Showing 2 changed files with 189 additions and 14 deletions.
152 changes: 152 additions & 0 deletions _doc/sphinxdoc/source/blog/2022/2022-09-07_seance1.rst
@@ -0,0 +1,152 @@

.. blogpost::
:title: Introduction à la programmation (sketch)
:keywords: teachings
:date: 2022-09-07
:categories: article
:lid: blog-intro-2022-ensae

**Présentation**

* Avant l'ENSAE, programmation en classes préparatoires, `Informatique en CPGE <https://info-llg.fr/>`_
* concepts de base, tests, boucles, fonctions
* calcul matriciel
* notion de quelques algorithmes
* langage python
* Après l'ENSAE
* réalisation de nombreux projets en python
* plus grande culture algorithmique, graphes, algorithmes probabilistes
* notion d'ingénierie logicielle
* tests unitaires
* notion de processeur, CPU, GPU
* manipulations des données
* Selon les options
* langages plus bas niveau C/C++
* autres langages, javascript pour les sites web, SQL pour les bases de données, R pour les statistiques
* SAS...
* Python à l'ENSAE depuis 2005
* beaucoup de choses ont changé depuis
* Python : machine learning
* numpy, scikit-learn, pandas, matplotlib, jupyter
* deep learning = python
* automatisation, site web
* Python : langage commun à toutes les universités de par le monde
* facile, travail plus facile pour les professeurs également
* interfaçage avec C++

**Assembler des algorithmes existants**

* Trouver le plus court chemin d'une station de métro à une autre ? -->
plus court chemin dans un graphe
* Même question en tenant compte des temps de changement de ligne ?
* Optimiser la tournée d'un camion poubelle

**Automtiser**

* Lancer tous les matins la récupération automatiques de données
épidémiologiques pour construire un rapport de suivi

**Machine learning aujourd'hui**

* Apprentissage fait avec python
* :epkg:`scikit-learn`
* deep learning : :epkg:`pytorch`
* Code faisant les calculs écrit en C/C++/asm
* :epkg:`numpy`, :epkg:`scipy`
* :epkg:`scikit-learn`, `_tree.pyx
<https://github.com/scikit-learn/scikit-learn/blob/main/sklearn/tree/_tree.pyx>`_
* Déploiement (utilisation des modèles) sur
d'autres langages encore (javascript, C#, go, ...)
* Python très lent malgré et difficile à maintenir
d'une version de python à une autre
* Le Cloud `AWS <https://aws.amazon.com/fr/>`_,
`Azure <https://azure.microsoft.com/>`_ ...
* Démocratisation dans de nombreux pays
* `Health Data Hub <https://www.health-data-hub.fr/>`_
* `data.gouv.fr <https://www.data.gouv.fr/fr/>`_

**Deep Learning**

* Le deep learning envahit la vie quotidienne
* santé (aide au diagnotisque)
* sécurité (vidéo surveillance),
* automatisation (voiture)
* publicité, objets connectées
* ...
* Besoin de calculs, besoin de codes rapides
* CPU, GPU, TPU
* `NVIDIA A100 <https://www.nvidia.com/en-us/data-center/a100/>`_,
innovation matérielle et logicielle
* recherche très active dans ce domaine
* Modèles de plus en plus gros
* Il ne suffit plus d'être bon en maths, ou bon en informatique,
il faut être les deux

**Ingéniérie logicielle**

* Le point faible des ingénieurs français
* On commence l'informatique avant la prépa dans d'autres pays
* Pas assez de pratique, un bon codeur a beaucoup codé.
* **tests unitaires :** à connaître avant d'aller passer un entretien d'embauche
* intégration continue
* A chaque modification, on vérifie que les tests unitaires passent.
* documentation
* C'est fastidieux mais indispensable dans un monde open source.
* Les projets qui ont réussi ont toujours une bonne documentation.
* culture algorithmique
* un produit matriciel n'est pas aussi simple qu'on le dit quand on veut qu'il soit rapide
* :ref:`l-algoculture`
* git
* Un outil injustement méconnu des juristes.

**Thèse...**

* C/C++ : même si vous n'en avez pas besoin tous les jours,
on code mieux en python quand on connaît un langage bas niveau
car on comprend mieux tout ce que le langage nous cache
* linux

**Cours, premiere semestre**

* TD : :ref:`l-td1a`
* Evaluation, anciens examens :ref:`l-seances-notees-1A`

**Cours, second semestre**

* Projet : :ref:`l-projinfo1a`

**Ressource, supports pour ce cours**

* TD : `Python dans tous ses états <http://www.xavierdupre.fr/app/ensae_teaching_cs/helpsphinx3/index.html>`_
* Rappels : `Petit voyage au pays du machine learning <http://www.xavierdupre.fr/app/papierstat/helpsphinx/index.html>`_
* Programmation : `Apprendre la programmation avec Python <http://www.xavierdupre.fr/app/teachpyx/helpsphinx/index.html>`_
* Un peu plus mathématique : `Les maths d’abord, la programmation ensuite <http://www.xavierdupre.fr/app/mlstatpy/helpsphinx/index.html#mlstatpy>`_

Et puis...

* Les moteurs de recherche : `python + message d'erreur`, `cheatsheet`
* `Questions tagged [python] <https://stackoverflow.com/questions/tagged/python>`_
* `Compétition de code par Google <https://codingcompetitions.withgoogle.com/codejam>`_
* `Compétition de code en français ou presque <https://tryalgo.org/contests/>`_
* `Projet Euler <https://projecteuler.net/>`_

**A la fin de l'année, vous devriez pouvoir...**

* Imaginer une stratégie automatique au 2048.
* Simuler une épidémie, des régimes de retraites
* Supprimer les pesticides en programmant des drones pour couper
les mauvaises herbes ou couper les feuilles infectées par le mildiou
* Lutter contre les îlots de chaleur dans les villes en verdissant les toits
avec un mélange de plantes en fonction de la disposition du toit
(`Singapour : des gratte-ciels anti-pollution
<https://www.francetvinfo.fr/monde/environnement/singapour-des-gratte-ciels-anti-pollution_2868081.html>`_)
* Devenir le prochain `covidtracker <https://covidtracker.fr/>`_
* Calculer l'exposition d'une économie à un certain type de produit...
`PSA : l’usine de Rennes à l’arrêt par manque de semi-conducteurs
<https://www.leparisien.fr/economie/psa-lusine-de-rennes-a-larret-par-manque-de-semi-conducteurs-19-08-2021-MADPPG5OMJA2LH5DYFHWB6CBTU.php>`_
`Panne Orange : quelles conséquences ?
<https://www.franceinter.fr/emissions/le-13-14/le-13-14-03-juin-2021>`_,
`Xavier Jaravel, meilleur jeune économiste 2021 pour ses travaux sur l'innovation et les inégalités
<https://start.lesechos.fr/societe/economie/xavier-jaravel-meilleur-jeune-economiste-2021-pour-ses-travaux-sur-linnovation-et-les-inegalites-1319721>`_,

Tout est sur `GitHub <https://github.com/sdpython>`_.
51 changes: 37 additions & 14 deletions _doc/sphinxdoc/source/questions/route_1A_2022.rst
Expand Up @@ -83,30 +83,53 @@ Techniques
.. contents::
:local:

Séance 1 - 7/9 - introduction
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Séance 1 - 7/9 - introduction, dictionnaire
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* :ref:`2022-09-07` (< 30 minutes)
* :ref:`2020suffixrst`

Séance 2 - 14/9 - jeu de dictionnaires, regex
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Séance 2 - 14/9 - programmation dynamique, voyageur de commerce
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* :ref:`2020editrst`
* :ref:`2020suffixrst`

Séance 3 - 21/9 - top k, profiling
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Séance 3 - 21/9 - numpy, pandas
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Séance 4 - 28/9 - edit distance, numpy
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* :ref:`2020numpyrst`
* :ref:`2020pandasrst`

Séance 5 - 5/10 - TSP, dataframe avec données COVID
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Séance 4 - 28/9 - graphes
^^^^^^^^^^^^^^^^^^^^^^^^^

Séance 6 - 12/10 - bag, json, xml, simulation COVID
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* :ref:`2020graphrst`
* :ref:`2020ordonnancementrst`

Séance 7 - 19/10 - graphes, flask
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Séance 5 - 5/10 - sérialisation, tests unitaires, profiling
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* sérialisation, json, xml, pickle (à venir)
* tests unitaires (à venir)
* timeit, profiling (cprofile), comparaison de produit matriciels (à venir)

Séance 6 - 12/10 - expressions régulières, webscrapping
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* :ref:`2020regexrst`
* webscrapping (à venir)

Séance 7 - 19/10 - top k, tri
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* :ref:`2020topkrst`
* révisions en prévision du TD noté

Séance 8 - 26/10 - graphes
^^^^^^^^^^^^^^^^^^^^^^^^^^

* :ref:`2020carterst`
* TD noté... lien après la séance,
énoncés des années précédentes :
:ref:`l-seances-notees-1A`
Expand Down

0 comments on commit 02bbc58

Please sign in to comment.