Aller au contenu

Chapitre 2. Bases de la programmation

Pourquoi est-il important d’apprendre la programmation ? Regardez cette vidéo pour comprendre en deux minutes chrono !

Trois ressources utiles pour ce chapitre

StudioCode | Pour réviser la programmation par bloc
Avant de commencer

Si vous êtes en classe, désactiver le son de l’ordinateur. Sur l’ordinateur distribué par la région Île-de-France , maintenir enfoncée la touche Fn et sans la relâcher appuyer sur la touche F7 puis relâcher les deux touches précédentes.

Accéder à StudioCode
  1. Rendez-vous à l’adresse https://studio.code.org/hoc/1.
  2. Une fois sur la page mettre en plein écran en appuyant sur la touche F11 .
  3. Fermer la fenêtre de la vidéo d’introduction, fermer les deux messages et cliquer sur OK.
  4. Dans la liste déroulante en bas à gauche de la fenêtre, choisir la langue française.
  5. Aider maintenant l’oiseau à attraper le cochon en réalisant les exercices.

Astuces :

  • Pour ajouter un bloc au programme, choisir un bloc dans la colonne Blocs (blocs disponibles) et faire un glissé-déposé vers la colonne Espace de travail (le programme).
  • Une fois que plusieurs blocs ont été ajoutés à la colonne Espace de travail, tester le programme en cliquant sur le bouton Démarrer.
  • Il est possible de supprimer un bloc de la colonne Espace de travail en faisant un glissé-déposé vers la colonne Blocs.
  • Il est possible de modifier la position d’un bloc dans la colonne Espace de travail en faisant un glissé-déposé vers le haut ou vers le bas.
Py-Rates | Pour décrouvrir la programmation Python
Avant de commencer

Si vous êtes en classe, désactiver le son de l’ordinateur. Sur l’ordinateur distribué par la région Île-de-France , maintenir enfoncée la touche Fn et sans la relâcher appuyer sur la touche F7 puis relâcher les deux touches précédentes.

Accéder à Py-Rates
  1. Cliquez sur ce lien py-rates.fr
  2. Une fois sur la page mettre en plein écran en appuyant sur la touche F11 .
  3. Choisir un personnage en cliquant dessus puis cliquer sur le bouton Je commence !. Noter votre identifiant de partie par exemple dans votre carnet de liaison.
  4. Cliquer sur le bouton C’est parti !. Déplacer le curseur de vitesse tout à droite côté lièvre. Vous pourrez réduire la vitesse ultérieurement si nécessaire.
  5. Le but du jeu est de déplacer le personnage afin de prendre la clé puis de se rendre au coffre pour l’ouvrir.
    1. Commencer par lire la rubrique Notions de base dans le menu d’aide à gauche. 2 Dans un premier temps, commencer par prendre la clé. Pour cela, compléter le programme en écrivant les instructions pertinentes. Au fur et à mesure des ajouts, tester le programme en cliquant sur le bouton Exécuter.
    2. Maintenant, on souhaite se rendre au coffre pour l’ouvrir. Problème : on ne dispose pas de suffisamment de lignes ! Pour résoudre la situation, consulter les rubriques du menu d’aide à gauche. En vous inspirant de l’aide, compléter le programme afin d’atteindre et d’ouvrir le coffre.
Corrections commentées
Niveau 1.

Capture d'écran du niveau 1 de Pyrates

1
2
3
4
5
6
7
8
9
avancer()
droite()
avancer()
gauche()
avancer()
droite()
for _ in range(16): #(1)!
    avancer() #(2)!
ouvrir() #(3)!
  1. 🙋‍♂️ Le nombre 16 indique que l’instruction avancer() contenue dans la boucle for sera exécutée 16 fois. Cela permet d’économiser 14 lignes de code !

  2. 🙋‍♂️ L’instruction avancer() est décallée vers la droite d’une indentation. Cela signifie que cette instruction est contenue dans la boucle for. Cette instruction sera donc répétée 16 fois.

  3. 🙋‍♂️ L’instruction ouvrir() permettant d’ouvrir le coffre ne doit être exécutée qu’une seule fois à la fin du trajet lorsque le personnage se trouve devant le coffre. On a donc pris soin de ne pas mettre d’indentation avant l’instruction ouvrir() afin que cette instruction soit exclue de la boucle.

Astuces.

  • Cliquez sur les plus pour afficher les explications.
  • Cliquez sur le coin haut droit du cadre de code pour copier le programme.
Niveau 2.

Capture d'écran du niveau 2 de Pyrates

Niveau 2. Boucle for (suite)
for _ in range(6): #(1)!
    sauter() #(2)!
    avancer()
avancer() #(3)!
gauche()
avancer()
avancer()
for _ in range(9): #(4)!
    coup() #(5)!
    avancer()
avancer() #(6)!
ouvrir()
  1. 🙋‍♂️ Le nombre 6 indique que les instructions sauter() et avancer() contenues dans la boucle for seront exécutées 6 fois. Cela permet d’économiser 9 lignes de code !

  2. 🙋‍♂️ Les instructions sauter() et avancer() sont décallées vers la droite d’une indentation. Cela signifie que ces deux instructions sont contenues dans la boucle for. Ces deux instructions seront donc répétées 6 fois. Ainsi, le personnage peut atteindre la clé !

  3. 🙋‍♂️ Les instructions avancer(), gauche(), avancer(), avancer() permettent de passer au niveau inférieur. Cette série d’instructions ne doit être exécutée qu’une seule fois. On a donc pris soin de ne pas mettre d’indentation avant chacune de ces quatre instructions afin que ces instructions soient exclues de la boucle précédente.

  4. 🙋‍♂️ Le nombre 9 indique que les instructions coup() et avancer() contenues dans la boucle for seront exécutées 9 fois. Cela permet d’économiser 15 lignes de code !

  5. 🙋‍♂️ Les instructions coup() et avancer() sont décallées vers la droite d’une indentation. Cela signifie que ces deux instructions sont contenues dans la boucle for. Ces deux instructions seront donc répétées 9 fois. Ainsi, le personnage peut traverser le tunnel en cassant au fur et à mesure les pots en terre cuite !

  6. 🙋‍♂️ Les instructions avancer() et ouvrir() permettant d’atteindre puis d’ouvrir le coffre ne doivent être exécutée qu’une seule fois à la fin du trajet lorsque le personnage se trouve proche du coffre. On a donc pris soin de ne pas mettre d’indentation avant les instructions avancer() et ouvrir() afin que ces instructions soient exclues de la boucle précédente.

Astuces.

  • Cliquez sur les plus pour afficher les explications.
  • Cliquez sur le coin haut droit du cadre de code pour copier le programme.
Niveau 3.

Capture d'écran du niveau 3 de Pyrates

Niveau 3. Découverte de la notion de variable
sauter_hauteur(4) #(1)!
avancer()
sauter_hauteur(3)
for _ in range(4): #(2)!
    avancer()
    avancer()
    nbre_caisses = lire_nombre() #(3)!
    avancer()
    sauter_hauteur(nbre_caisses) #(4)!
avancer()
ouvrir()
  1. 🙋‍♂️ L’instruction sauter_hauteur(4) permet au personnage de sauter d’une hauteur de quatre unités.

  2. 🙋‍♂️ Le nombre 4 indique que la suite d’instructions suivantes sera répétée 4 fois :

    avancer()
    avancer()
    nbre_caisses = lire_nombre()
    avancer()
    sauter_hauteur(nbre_caisses)
    
    Cela permet d’économiser 14 lignes de code !

  3. Cette instruction est une affectation de variable. Ici, on crée une variable dont le nom est nbre_caisses. Cette variable prend comme valeur initiale le nombre lu sur le message de la bouteille avec l’instruction lire_nombre(). Voici un exemple d’exécution qui peut se produire (il faut lire cette ligne de droite à gauche) :

    1. Tout d’abord l’expression lire_nombre() est évaluée : le nombre est lu sur le message de la bouteille (par exemple, ce nombre peut être 3). Ainsi l’instruction devient dans cet exemple nbre_caisses = 3.
    2. Ensuite, l’affectation de variable a lieu : le nom nbre_caisses est stocké en mémoire et est associé à la valeur 3.
  4. Dans cette instruction, on utilise la valeur stockée précédemment dans la variable nbre_caisses. Par exemple cette valeur peut être le nombre 3. Ainsi, l’instruction devient sauter_hauteur(3) et le personnage saute d’une hauteur de trois caisses.

Astuces.

  • Cliquez sur les plus pour afficher les explications.
  • Cliquez sur le coin haut droit du cadre de code pour copier le programme.
Niveau 4.

Capture d'écran du niveau 4 de Pyrates

Niveau 4. Conditionnelle à deux branches
for _ in range(5): #(1)!
    avancer()
    direction = lire_chaine() #(2)!
    if direction == "gau": #(3)!
        gauche()
    else: #(4)!
        droite()
    avancer() #(5)!
avancer() #(6)!
ouvrir()
  1. 🙋‍♂️ Le nombre 5 indique que les instructions décalées vers la droite (lignes 2 à 8) c’est-à-dire les instructions contenues dans la boucle for seront exécutées 5 fois. Cela permet d’économiser 27 lignes de code !

  2. 🙋‍♂️ Cette instruction est une affectation de variable. Ici, on crée une variable dont le nom est direction. Cette variable prend comme valeur initiale la chaîne de caractère lue sur le message de la bouteille rencontrée avec l’instruction lire_chaine(). Voici un exemple d’exécution qui peut se produire (il faut lire cette ligne de droite à gauche) :

    1. Tout d’abord l’expression lire_chaine() est évaluée : la chaîne est lue sur le message de la bouteille (par exemple, cette chaîne peut être "gau"). Ainsi l’instruction devient dans cet exemple direction = "gau".
    2. Ensuite, l’affectation de variable a lieu : le nom direction est stocké en mémoire et est associé à la valeur "gau".
  3. 🙋‍♂️ 1er cas. Si la variable direction est égale à "gau" (condition), on oriente le personnage vers la gauche avec l’instruction gauche(). Remarque. Attention, le test d’égalité direction == "gau" utilise l’opérateur double égal !

  4. 🙋‍♂️ 2nd cas. Sinon, on oriente le personnage vers la droite. Remarquez que le mot clé else n’est pas suivi d’une condition.

  5. 🙋‍♂️ Après avoir choisi la direction vers laquelle orienter le personnage, on doit dans les deux cas avancer. Il faut donc penser à décaler vers la gauche l’instruction avancer(). Si on conserve l’alignement avec l’instruction précédente, le personnage n’avancera que dans le second cas c’est-à-dire lorsque la direction choisie est la droite ce qui est incorrect.

  6. 🙋‍♂️ Les instructions avancer() et ouvrir() ne doivent être exécutées qu’une seule fois en fin de programme. On a donc pris soin de ne pas mettre d’indentation avant chacune de ces deux instructions afin que ces instructions soient exclues de la boucle for précédente.

Astuces.

  • Cliquez sur les plus pour afficher les explications.
  • Cliquez sur le coin haut droit du cadre de code pour copier le programme.
Thonny | Pour écrire et exécuter ses premiers programmes Python

Thonny est un IDE pour débuter avec Python. Il offre un mode debug visuel très puissant pour comprendre ce que fait l’ordinateur pas à pas. C’est un logiciel gratuit qui s’installe avec sa propre distribution de Python.

  1. Rendez-vous sur le site de Thonny.
  2. Téléchargez le fichier d’installation.
  3. Installez Thonny sur votre ordinateur.

Remarque. Si vous êtes lycéen-ne et avez reçu un ordinateur distribué par le lycée, Thonny est sans doute déjà installé sur votre ordinateur.

Conseil pour l’enseignant-e

Pour rendre lisible au tableau le texte et les boutons de l’interface de Thonny, n’hésitez pas à augmenter transitoirement l’échelle d’affichage de l’ordinateur utilisé pour la projection. Voici un tutoriel sous Windows.

Séance 1. Notion d’algorithme

Séance 2. Notion de programme, répétition d’instructions

Séance 3. Boucle for, découverte des variables

Séance 4. Types et valeurs de base

Séance 5. Programmes avec affectations de variables

Programmes Python de cette séance
Activité 2. Analyser un programme avec Thonny
1
2
3
4
5
6
prix_baguette = 0.9
nbre_baguette = 3
total = prix_baguette * nbre_baguette
message = "Prix total :"
print(message)
print(total)
Activité 3. Écrire un programme avec Thonny
1
2
3
4
5
6
7
8
prix_pommes = 2.5
masse_pommes = 180
prix_poires = 3
masse_poires = 150
total = prix_pommes * masse_pommes + prix_poires * masse_poires
message = "Recette totale :"
print(message)
print(total)

Séance 6. Branchements conditionnels

Séance 7. Boucle for et variable de boucle

Quizz Kahoot!

Exceptionnellement, en cas d’oubli ou de décharge de votre ordinateur, vous pouvez participer au quizz depuis votre smartphone.

Avant tout, vérifier que le son de votre appareil est coupé.

Dans la suite, pour participer au quizz, il vous sera demandé :

  • d’entrer un code PIN. Ce code PIN est affiché au tableau pendant les minutes qui précèdent le lancement du quizz.
  • de choisir un pseudo. Veuillez s’il vous plaît choisir comme pseudo votre prénom pour que l’on puisse identifier les scores au cours du quizz.

Une fois ces deux étapes réalisées, vous devrez patienter le temps que tous les élèves de la classe soient connecté-e-s.

Attention, chaque question à choix multiples du quizz est chronométrée (30 secondes à 2 minutes) et plus vous êtes rapide, plus vous recevez de points !

Pour rejoindre la salle d’attente du quizz, rendez-vous à l’adresse www.kahoot.it et suivre les étapes proposées.

Information destinée au/à la professeur-e

Pour projeter puis lancer le quizz, réaliser les étapes ci-dessous.

  1. Cliquez sur le lien donné ci-apprès.
  2. Cliquez sur le bouton Connexion (si vous avez déjà un compte Kahoot) ou sur le bouton S’inscrire pour vous créer un compte Kahoot.
  3. La page vous proposant des forfaits payants est susceptible de s’afficher. Scrollez vers la bas et choisissez Continue with basic qui permet une utilisation gratuite de Kahoot.
  4. Ouvrez la salle d’attente du quizz en appuyant sur le bouton Commencer.
  5. Les élèves se connectent à l’aide du code PIN depuis leur téléphone ou leur ordinateur, leurs prénoms apparaissent à l’écran.
  6. Lorque toute la classe est connectée, appuyez sur le bouton Commencer.

Lien vers le quizz

Programmes Python de cette séance
for _ in range(3):
    print("But !")
for nbre in range(3): # pour nbre allant de 0 à 2
    print("et")
    print(nbre)
for nbre in range(1, 3): # pour nbre allant de 1 à 2
    print("et")
    print(nbre)
for nbre in range(1, 4): # pour nbre allant de 1 à 3
    print("et")
    print(nbre)
print("zéro")

Séance 8. Boucle while