Introduction à la programmation, avec Python et Jupyter#
À propos de ce cours#
Sites web
Site web du cours (avec solutions)
Objectifs pédagogiques
Ce cours, propose une introduction à la programmation, en s’appuyant sur le langage de programmation Python et l’environnement interactif Jupyter. Il est composé d’une collection de feuilles interactives vous faisant découvrir par touches successives les concepts de base de la programmation (variables, types, conditionnelles, boucles, fonctions, modules, entrées-sorties), avec une initiation au calcul (tableaux de données, vectorisation, statistiques, visualisation) et aux bonnes pratiques (typage, tests, documentation, usage efficace et raisonné des carnets numériques, etc.). Ces éléments sont rendus concrets par des applications, notamment à l’occasion d’un mini projet final.
À l’issue de ce cours, vous aurez acquis les compétences suivantes:
Être conscient du potentiel offert par les outils de calcul scientifique et mis en confiance sur la capacité à s’en emparer.
Connaître les concepts de base de programmation.
Savoir les mettre en œuvre dans un environnement interactif pour analyser des problèmes simples issus des sciences, estimer ce qui est automatisable, et l’automatiser par itérations successives en utilisant quelques bibliothèques classiques de calcul, de traitement de données et de visualisation (numpy, pandas, matplotlib).
Savoir rédiger un rapport interactif sur un traitement de données, avec description, observation, interprétation, conclusion.
Savoir analyser et poser un regard critique sur un programme ou calcul simple d’origine extérieure: collègue, internet, IA générative, etc.
découvrir de nouvelles fonctionnalités et obtenir des suggestions: introspection, exploration de la documentation et des forums, usage léger d’IA générative, etc.
Avoir quelques notions sur l’informatique en tant que science et sur les enjeux: impact environnemental, science ouverte, données sensibles, usage de l’IA.
Vous pourrez ultérieurement renforcer ces compétences avec des cours plus avancés, par exemple sur le traitement des données et l’apprentissage statistique: (MOOC Scikit-learn, Fiddle), etc.
Prérequis
Le cours vise à ne pas avoir de prérequis hors une familiarité avec l’usage d’internet et du web; il vous suffit de vous laisser guider par les instructions. Quelques feuilles ou exercices – identifiées comme telles et non essentielles – font l’hypothèse d’une familiarité avec les mathématiques du lycée.
Édition 8-10 juin 2026
Comment utiliser ce cours
Option 1: En ligne, sur le service myDocker, pour les personnels et étudiants de tous les établissements français du supérieur (Fédération Éducation Recherche Renater)
Ouvrez la version 2026-06 du matériel pédagogique sur le service MyDocker@Paris-Saclay:
cliquez «connexion universitaire»;
choisissez votre institution (astuce: tapez par exemple «Sacl» pour trouver Université Paris-Saclay) et entrez vos identifiants;
cliquez «connexion à l’interface».
Suivez le parcours pédagogique de la page d’accueil (qui sera similaire à ce document).
Option 2: En ligne, sur le service notebook.link
notebook.link n’est pas un service institutionnel, mais est hébergé sur serveurs français par une société de confiance (QuantStack).
Si vous n’en avez pas encore un, créez un compte sur notebook.link. Cette étape est optionnelle, mais vous permettra de conserver votre travail d’une fois sur l’autre, même si vous changez d’ordinateur ou de navigateur web.
Ouvrez la version 2026-06 du matériel pédagogique sur notebook.link.
Suivez le parcours pédagogique.
Limitation
Certains éléments du cours ne sont pas fonctionnels sur notebook.link: exercices à répétition Jupylates, usage du débogueur,
Option 3: Directement sur votre ordinateur
Téléchargez la version 2026-06 du matériel pédagogique (Code -> Télécharger le code source -> zip).
Si vous avez l’habitude de
git, vous pouvez simplement faire:git clone git+https://gitlab.dsi.universite-paris-saclay.fr/IntroductionProgrammationPython/2026-06.git
Vous aurez aussi besoin d’installer un certain nombre de logiciels (jupyterlab,
jupylates, Laby). Vous pouvez par exemple utiliser uv pour cela:
Si vous ne l’avez pas déjà, installez le gestionnaire d’environnements uv.
Allez dans le dossier contenant le matériel pédagogique et lancez JupyterLab. Les logiciels requis seront automatiquement installés dans ce dossier.
uv run jupyter lab index.md
Suivez le parcours pédagogique.
Un cours libre et réutilisable
![]()
Ce cours mutualisé a pour vocation à devenir un socle commun de feuilles réutilisables pour divers cours d’introduction à la programmation, à Saclay ou ailleurs. Il peut aussi être utilisé de façon autonome.
Dans l’esprit des communs numériques, ce cours reprend ou s’inspire de nombreuses ressources pédagogiques existantes, à la Faculté d’Orsay (Info 111: Introduction à la programmation, en C++, etc.) et ailleurs (Laby, Introduction à la programmation en Python pour la biologie de P. Fuchs et N. Poulain). Ces éléments seront cités au fur et à mesure (🚧en chantier🚧). Ce cours lui-même est sous licence CC-BY-SA (Creative Commons, Attribution, Partage dans les mêmes conditions): vous êtes encouragés à réutiliser tout élément et diffuser des produits dérivés, à condition de le partager dans les mêmes conditions et d’attribuer l’œuvre originale aux auteurs. Une collaboration avec CodEx est à l’étude. Ce cours s’appuie aussi sur de nombreux logiciels libres.
Ce cours est aussi une vitrine et un terrain d’expérimentation pour l’enseignement avec Jupyter. Voir les conventions d’écriture. À venir: description des stratégies pédagogiques, outils utilisés: MyST, Jupylates, etc.
Ce projet est soutenu depuis 2024 par SaclAI-School et s’inscrit dans le projet plus large py-edu-fr depuis le lancement de ce dernier en 2025.
Parcours Pédagogique#
Note
Vous pouvez adapter le parcours pédagogique proposé ici en fonction de votre expérience. Vous pouvez aussi explorer la table des matières, où les feuilles sont classées par thème. Vous noterez que le parcours proposé tourne parmi les thèmes en revenant dessus tour à tour pour les approfondir (apprentissage en spirale).
0 - Découvrir Jupyter#
Dans ce cours, vous utiliserez des feuilles d’exercices interactives Jupyter.
Jupyter est une application web qui permet de programmer interactivement dans de
nombreux langages (Python, C++, …), un peu comme une super calculatrice, et de
rédiger des documents interactifs.
Indication
Si vous êtes déjà familier avec l’utilisation de Jupyter, vous pouvez passer directement à la suite.
Ouvrez la feuille de travail Prise en main de Jupyter
Suivez les instructions qu’elle contient.
1 - Découvrir Python#
Le jeu Laby propose plusieurs défis successifs; pour chacun d’entre eux, le but est de guider pas-à-pas une fourmi vers la sortie d’un labyrinthe à l’aide d’un programme. Chacun de ces défis sera l’occasion d’avoir un premier contact ludique avec quelques concepts (programme, conditionnelles, boucles, fonctions) que nous approfondirons par la suite.
En savoir plus sur Laby
Le jeu Laby a été originellement créé par Stéphane Gimenez et collaborateurs pour la Fête de la Science à Jussieu. Nous utiliserons ici une réimplantation de Laby pour Python, dans Jupyter.
Chaque feuille ci-dessous correspond à un défi. Ouvrez-les tour à tour dans l’ordre et suivez les instructions incluses. Si vous bloquez sur l’un des défis, n’hésitez pas à passer à la suite et à y revenir ultérieurement.
Répéter :
S’adapter :
Compter :
2 - Calculer#
3 - S’adapter au contexte : les instructions conditionnelles#
4 - Répéter : les instructions itératives (boucles)#
Attention
Les défis marqués d’un ♣ ou ♣♣ sont (nettement) plus avancés; sauf si vous êtes à l’aise et recherchez un peu de défi, nous vous recommandons de les sauter et de revenir dessus ultérieurement lorsque vous aurez vu plus formellement les concepts sous-jacents.
5 - Structurer un programme : les fonctions#
Les deux séries d’exercices suivantes ont le même objectif pédagogique : résoudre un problème plus complexe par composition de petites fonctions. Vous pouvez choisir celle que vous préférez, sachant que la première (fonction exponentielle) a un peu plus de prérequis mathématiques.
Calculer la fonction exponentielle:
Implanter un moteur simple de censure de texte:
6 - Structurer les données#
7 - Communiquer : les entrées / sorties#
Voir le cours Introduction à la programmation Python pour la biologie.
Chapitre sur les fichiers.
8 - Structurer un programme : les modules#
Voir le cours Introduction à la programmation Python pour la biologie.
Chapitre sur les modules.