Python dans tous ses états#

Ce site propose le contenu des séances de travaux pratiques en programmation que je dispense à l”ENSAE. Ces cours s’appuient principalement sur le langage Python. Le contenu est librement disponible sur GitHub/ensae_teaching_cs gitlogo et permet à quiconque de contribuer à ce cours.

Ce site est principalement un site d’exercices. D’autres contenus dont je suis l’auteur principal sont disponibles :

Avant-propos#

Les langages R et Python sont devenus incontournables dans le domaine des statistiques. Python l’est encore plus dans le domaine de l’intelligence artificielle et notemment du deep learning. Ils sont simples, open source, s’apprennent rapidement, sont utilisés par beaucoup et disposent de nombreuses pages, blogs, listes de diffusions qui leur sont dédiés. R est utilisé par les chercheurs mais il est peu pratique pour développer un site web ou un jeu. Python est beaucoup plus polyvalent et de plus en plus populaire notamment grâce aux deep learning. Il est enseigné à l”ENSAE depuis 2004. Les premiers pas sont parfois rebutants mais on arrive vite à quelque chose à condition d’y passer un peu de temps au démarrage. La programmation est indispensable pour traiter les données, les visualiser, automatiser les tâches les plus répétitives, et s’amuser (voir code_beatrix). Python est maintenant un prérequis pour devenir datascientist. La programmation est devenue indispensable dans tout travail datascience ou plus généalement tous les métiers manipulant des données. Certaines pratiques logicielles telles que les tests unitaires et des langages bas niveau tels que le C++ sont incontournables pour commencer une thèse. La thèse ou PhD est encore aujourd’hui le seul diplôme reconnu dans le monde entier et ouvre plus facilement les portes de nombreuses entreprises.

3 niveaux

Les cours proposés sont de difficultés croissantes et orientés pour un statisticien ou un data scientist. La pratique est un élément essentiel de l’apprentissage de la programmation. Quoi qu’on en dise, il faut aussi être créatif.

  • 1A : syntaxe de langage, premiers algorithmes, programmation dynamique, Data Frame, premiers graphes

  • 2A : python pour un statisticien, Data Frames, calcul matriciel, machine learning, exercices d’algorithmie

  • 3A : calculs distribués, Map/Reduce, Hadoop, PIG, Spark, depuis un notebook

Le blog associé à ce site publie des liens vers des vidéos, des données, met en valeur certaines mises à jour, aborde des sujets connexes aux enseignements proposés. Chaque cours est validé par un projet et c’est principalement durant cet exercice qu’on apprend et qu’on exprime ses idées. Dire qu’on sait programmer simplement parce qu’on a réussi les exercices du cours serait un peu comme prétendre savoir jouer aux échecs après avoir pris connaissance des règles et sans avoir jamais joué une partie.

Contenu des enseignements#

Getting Started - Démarrer#

L’immense majorité des langages de programmation est de langue anglaise. La documentation de tous les logiciels partagés est en anglais. Certains paragraphes y sont souvent présents comme Getting Started. Les résultats des recherches sur internet sont très souvent plus intéressants lorsqu’elles sont libellées en anglais.

Notebooks#

Les séances utilisent les notebooks Jupyter. C’est le support privilégiés des chercheurs lors des conférences scientifiques. Il offre un espace de travail réactif, agréable et très pratique quand il s’agit de partager son travail. Chaque séance mélange notions et exerices qu’on peut faire directement dans le notebook une fois téléchargé. La correction est également rédigée sous forme de notebook afin de pouvoir aisément jouer avec la solution mais elle fonctionnera dans n’importe quel autre environnement.

Démarrage / Installation#

Voir En résumé : Anaconda pour des instuructions détaillées sous Windows, Linux et MacOS.

Le langage est devenu populaire aussi parmi les data scientists grâce à un ensemble de librairies qui ont offert un service équivalent à ce que propose R. pandas, numpy, matplotlib, scikit-learn ont élevé le niveau de fonctionnalités, les notebooks Jupyter ont changé la façon de travailler. Les modules les plus utilisés sont maintenant fournis sur toutes les plate-formes avec la distribution Anaconda. Sous Windows, la grande majorité des modules sont également disponibles.

Dépendences et automatisation#

Ces cours représentent plus de 60 heures de cours et travaux pratiques. Ils sont exécutées chaque mois pour assurer que les codes qu’ils contiennent fonctionnent sans avoir à le faire au prélable. Cela nécessite un peu d’automatisation implémentée en Python mise à disposition sous forme de modules (voir listes des dépendances).

En diagonal#

Contributions#

Le cours est open source et disponible sur GitHub. N’hésitez pas à contribuer en m’envoyant des pull requests sans même avoir à récupérer tous les fichiers sur votre ordinateur : Editing files in your repository.

Modules

Functions

Classes

Methods

Static Methods

Properties

Index du module

Collection d’examples

Page de recherche

License

Changes

ensae_teaching_cs: teaching materials, algorithmic, machine learning

Index

FAQ

Galleries de notebooks

Getting started

Statistics on code

Unit Test Coverage

Build status Build Status Windows https://circleci.com/gh/sdpython/ensae_teaching_cs/tree/master.svg?style=svg https://badge.fury.io/py/ensae-teaching-cs.svg MIT License https://codecov.io/github/sdpython/ensae_teaching_cs/coverage.svg?branch=master GitHub Issues Codacy Badge Notebook Coverage Downloads Forks Stars size