L'incrédulité est quelquefois le vice d'un sot, et la crédulité le défaut d'un homme d'esprit.
Denis Diderot (sur mon T shirt!)

Instructions : Prog 1 Avance de 1 pas Répète tout 5 fois Inconvénient : On rigole quand l'élève est trop près du tableau ! Prog 2 Regarde devant Si tu peux avancer d'un pas alors : Avance de 1 pas Répète tout 5 fois
Ainsi, on peut voir un algorithme comme une suite d'instructions répétitives en interaction avec le monde extérieur.
Pour décrire un algorithme de façon lisible, on utilise un pseudo-code. Reprenons l'exemple de l'élève robot :
Debut : l'élève Robot tq repeter 5 fois avancer d'un pas fin_tq fin
Dans cette écriture standardisée :
tq (pour tant que), suivi plus loin d'un fin_tq, délimite une structure répétitive.avancer d'un pas est une instruction.Une représentation graphique — le logigramme — aide encore à gagner en lisibilité :
Dans un logigramme, 4 symboles importants :
Des connecteurs fléchés indiquent le sens de déroulement de l'algorithme.
Debut : l'élève Robot2
tq repeter 5 fois
regarder devant
si tu peux avancer
avancer d'un pas
fin_si
fin_tq
fin
Sur feuille blanche, réalisez le logigramme correspondant au pseudo-code suivant :
Debut : La porte
tq la porte est fermée
dire toc toc toc
si la porte s'ouvre
entrer
fin_si
fin_tq
fin
Les tq et les si doivent toujours être ouverts avant d'être fermés.
Au collège le MSI (programme destiné à l'installation sous Windows) est disponible sur le réseau dans P:\Math\Python. L'élève l'installe sur son poste, pour tous les utilisateurs (for all users). L'installation est aisée et rapide (next-next-next).
À noter : https://www.python.org/downloads/ est l'adresse de téléchargement officielle.
L'IDLE est (entre autres) une super calculatrice :
On peut remarquer que Python respecte les priorités opératoires. Un avantage sur une calculatrice traditionnelle : l'utilisateur peut relire ses calculs et voir tous les résultats simultanément.
Sur une calculatrice on peut faire 10+5 EXE et elle affiche 15, puis faire *2 EXE et elle affiche 30, ça ne marche pas sous Python !
Si ! En utilisant l'opérateur _ (tiret du 8) :
Python ne comprend pas tout ! Rien ne sert de lui dire bonjour !
bonjour n'est pas défini : on va comprendre ce que cela veut dire !
Dans l'IDLE je demande aux élèves de taper exactement :
prenom="Laurent"
(en remplaçant Laurent par leur propre prénom) puis d'appuyer sur ENTRÉE.
La réponse de Python est étonnante : >>> — il ne se passe rien !
Que s'est-il passé ? Nous avons créé une variable prenom (sans majuscule, sans accent) : une boîte en carton dans laquelle nous avons rangé une chaîne de caractères (string).
Je demande ensuite de taper :
print(10*prenom)
Et, avant d'appuyer sur ENTRÉE, de tenter de deviner ce qui va se passer.
autreprenom = "Robert\n"print(100*autreprenom)
\n est un caractère non imprimable qui initie un passage à la ligne.
Je profite du mini chahut généré par cette dernière activité pour mimer une petite colère :
Vous me copierez 1000 fois : "Je ne dois pas parler en classe !"
Hum… Oui vous pouvez utiliser Python !
print(1000*"je ne dois pas parler en classe !")
Ou, plus joli :
print(1000*"je ne dois pas parler en classe ! \n")
Dans l'IDLE, je crée une variable :
mot = "anticonstitutionnellement"
et j'essaye successivement :
mot[2] → affichage « t »
mot[5] → affichage « o »
Afficher avec cette syntaxe la lettre i puis la lettre a.
Pour Python, mot[x] renvoie la lettre d'indice x — et le premier indice est… zéro !
| Lettre | a | n | t | i | c | o | n | s | ... |
| Indice | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ... |
J'essaye maintenant :
mot[2 : 5] → affichage « tic »
Avec la même syntaxe, essayer d'afficher « cons ».
La syntaxe mot[2 : 5] affiche les lettres d'indices 2 à 4 (la lettre d'indice 5 est la première non affichée).
D'où : mot[4 : 8] → affichage « cons »
J'essaye maintenant :
mot[1 : 7 : 2] → affichage « nio »
mot[1:7:-2] → affichage « »
mot[7:1:-2] → affichage « soi »
Que signifie ce troisième nombre ?
Certaines valeurs peuvent être omises : essayez mot[5:], mot[:5] et mot[::-1] !
Au cycle 4, les élèves s'initient à la programmation, en développant dans une démarche de projet quelques programmes simples, sans viser une connaissance experte et exhaustive d'un langage ou d'un logiciel particulier. En créant un programme, ils développent des méthodes de programmation, revisitent les notions de variables et de fonctions sous une forme différente, et s'entraînent au raisonnement.
Décomposer un problème en sous-problèmes afin de structurer un programme ; reconnaître des schémas. Écrire, mettre au point (tester, corriger) et exécuter un programme en réponse à un problème donné. Écrire un programme dans lequel des actions sont déclenchées par des événements extérieurs. Programmer des scripts se déroulant en parallèle. - Notions d'algorithme et de programme. - Notion de variable informatique. - Déclenchement d'une action par un événement, séquences d'instructions, boucles, instructions conditionnelles.
Jeux dans un labyrinthe, jeu de Pong, bataille navale, jeu de nim, tic tac toe. Réalisation de figure à l'aide d'un logiciel de programmation pour consolider les notions de longueur et d'angle. Initiation au chiffrement (Morse, chiffre de César, code ASCII...). Construction de tables de conjugaison, de pluriels, jeu du cadavre exquis... Calculs simples de calendrier. Calculs de répertoire (recherche, recherche inversée...). Calculs de fréquences d'apparition de chaque lettre dans un texte pour distinguer sa langue d'origine : français, anglais, italien, etc.
En 5e, les élèves s'initient à la programmation événementielle. Progressivement, ils développent de nouvelles compétences, en programmant des actions en parallèle, en utilisant la notion de variable informatique, en découvrant les boucles et les instructions conditionnelles qui complètent les structures de contrôle liées aux événements.
Partager :