Introduction à la programmation, avec Python et Jupyter#
À propos de ce cours#
Objectifs pédagogiques
Ce cours, en construction, 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 en autonomie et par touches successives les concepts de base de la programmation.
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.
Comment utiliser ce cours
Étudiants de Paris-Saclay, Fédération Éducation Recherche Renater
Connectez vous au service MyDocker@Paris-Saclay avec vos identifiants Adonis et «demandez un environnement».
Cliquez sur le bouton «Connexion à l’interface».
Suivez les instructions de la page d’accueil (qui sera similaire à ce document).
Hors Fédération Renater Éducation Recherche
Vous pouvez travailler sur le matériel pédagogique en ligne avec JupyterLite.
Limitation: votre travail sera sauvegardé dans votre navigateur web. Si vous changez d’ordinateur ou de navigateur web, vous ne le retrouverez pas.Alternativement, vous pouvez télécharger le matériel pédagogique depuis ici. Vous aurez aussi besoin d’installer un certain nombre de logiciels (jupyterlab, jupylates, Laby). Des instructions d’installation seront ajoutées ici ultérieurement.
Béta test au Master d’Optométrie de Paris-Saclay
Vous pouvez utiliser ce document partagé pour donner vos retours sur ce cours et accéder à des annexes.
Un cours libre et réutilisable
Ce cours est produit dans le cadre de SaclAI-School, par mutualisation de ressources pédagogiques de différents cours existants. Il 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.
Ce cours s’appuie sur de nombreux logiciels libres et, dans l’esprit des communs numériques, de nombreux éléments ont été repris ou inspirés de ressources pédagogiques existantes, dont Introduction à la programmation en Python pour la biologie de P. Fuchs et N. Poulain et CodEx. 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.
⚠️Les exercices Codex sont sous une licence plus restrictive (CC-BY-NC-SA). Il conviendra donc, pour des usages commerciaux, de ne pas inclure ces exercices.⚠️
Ce cours est aussi une vitrine et un terrain d’expérimentation pour l’enseignement avec Jupyter. À venir: description des stratégies pédagogiques, conventions d’écriture et outils utilisés: MyST, Jupylates, …
Structure du cours
Un parcours pédagogique de ces feuilles vous est proposé ci-dessous. Vous pouvez choisir de l’adapter 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).
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 déjà êtes familier avec l’utilisation de Jupyter, vous pouvez passer directement à la suite.
Ouvrez la feuille de travail 00-PriseEnMainJupyter.md.
Suivez les instructions qu’elle contient.
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. Vous pouvez cocher les cases ci-dessous au fur et à mesure que vous finissez les feuilles. Si vous bloquez sur l’un des défis, n’hésitez pas à passer à la suite et y revenir ultérieurement.
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.
Répéter :
S’adapter :
Compter :
Notes aux enseignants
Laby n’est pas juste un jeu. Le but est de capitaliser sur les notions que les élèves auront ainsi perçu de manière intuitive, comme l’exécution séquentielle d’un programme, les boucles, les conditionnelles, les fonctions, …
Une erreur fréquente des apprenants est d’oublier de mettre debut()
.