mercredi 22 juillet 2015

Introduction à Python - Diapos

Mon premier contact avec Python date du début des années 2000. Un langage de programmation inconnu - pour moi - m’intéresse toujours. J’avoue que l’intérêt ne m’a pas forcément sauté aux yeux après avoir effectué quelques essais. Un langage objet de plus, interprété de surcroît (et l’interpréteur ne brillait pas par ses performances à cette époque), ne me semblait pas follement enthousiasmant par rapport à l’existant.

Ma curiosité a de nouveau été attisée au milieu des années 2000 lorsque je me suis intéressé au logiciel de data mining Orange. En effet, ce dernier proposait une librairie pour Python, donnant à l’utilisateur de définir des séquences de traitement évoluées permettant de mener des études complètes, en partant de la préparation des données, en passant par la construction de modèles prédictifs et leur évaluation, pour aboutir à leur déploiement.

C’était un moment crucial parce qu’à la même période, je m’interrogeais sur l’opportunité d’enseigner R en tant que langage de programmation - et non pas en tant que simple logiciel de statistique, la nuance mérite d’être soulignée - à l’Université. Finalement, j’avais fait le pari de R. Bien m’en a pris, c’est un cours qui est apprécié, et la page web dédiée est la plus visitée de mon site.

Ces dernières années, j’ai vu Python arriver (revenir) en force, avec deux caractéristiques qui m’interpellent forcément : il est devenu un des langages privilégiés pour l’enseignement de la programmation ; il est très populaire dans le domaine du data science, au point d’être positionné comme un concurrent sérieux pouvant mettre à mal la suprématie de R. Hé ben dis donc, manifestement, il est temps de reconsidérer la question attentivement.

Pourquoi cette percée de Python ? La question est vaste. Pour ma part, j’ai identifié plusieurs aspects qui m’intéressent particulièrement. (1) Il possède toutes les fonctionnalités d’un langage de programmation évolué, et il est pourtant simple à appréhender. Pour préparer mon cours et me familiariser avec le langage, je me suis échiné à refaire tous les TP de mes cours de programmation. Je les ai réalisés en un temps record alors que je ne connaissais pas du tout le langage. Ça ne trompe pas ce genre de choses. (2) Il propose aujourd’hui des bibliothèques de calcul performantes pour le traitement et l’analyse de données, en particulier pour le machine learning. Celui d’Orange que j’avais cité plus haut, mais aussi scikit-learn que je dois absolument tester dans un prochain tutoriel. Et il y en a d’autres. (3) Un élément clé dans le contexte actuel où le big data provoque la frénésie, voire l’hystérie, de tous les acteurs de la société, il permet d’implémenter des applications dans des nouveaux environnements tels que Hadoop (programmation map reduce) ou Spark (en utilisant les API de MLlib). Ouh là là, là aussi je sens que des tutoriels vont venir. (4) Enfin, par rapport à R, il présente l’avantage d’être plus généraliste, plus adapté à un cours générique d’initiation à la programmation. R en revanche me semble plus approprié lorsqu’il s’agit d’approfondir la programmation statistique.

J’ai donc décidé de passer à Python mon cours de programmation en L3 IDS. Ce premier post me donne l’opportunité de partager mes diapos pour la première séance où j’introduis les principales notions du langage, avant de lancer les étudiants sur une série d’exercices sur machine. Les étudiants sont assez hétérogènes, certains ont déjà programmé dans d’autres langages, d’autres ont eu à peine 6 heures d’algorithmie dans les jambes. Je dois schématiser autant que possible, voire simplifier, pour ne laisser personne en chemin.

D’autres diapos suivront, abordant les différents thèmes de la programmation Python.

Mots clés : langage python, types de données, affectation, calculs, structures algorithmiques, branchements conditionnels, boucles
Lien : Introduction à Python
Fichiers : Exemples illustratifs
Références :
Python - Official Site