Algorithmes
De Scratch à Python : Donne des ordres à ton ordinateur !
Tu as déjà suivi une recette de cuisine ou les instructions pour monter un meuble ? C'est un peu ça, un algorithme ! C'est une suite d'instructions précises et ordonnées pour résoudre un problème. Dans ce chapitre, tu vas apprendre à créer tes propres algorithmes, d'abord de façon visuelle avec Scratch, puis en écrivant du vrai code avec Python. Tu vas voir, c'est comme apprendre à parler à l'ordinateur dans sa langue !
Objectifs du chapitre
- Comprendre ce qu'est un algorithme et à quoi il sert
- Savoir créer un programme simple avec des blocs dans Scratch
- Écrire et exécuter tes premiers scripts en Python
- Identifier les structures de base communes aux deux langages (séquence, boucle, condition)
Le cours
1. Qu'est-ce qu'un algorithme ?
Un algorithme, c'est une méthode. C'est une suite finie et non ambiguë d'instructions qui permet de résoudre un problème ou d'atteindre un objectif. On en utilise tous les jours sans le savoir : la recette d'un gâteau, l'itinéraire pour aller au collège, ou les règles d'un jeu. Pour un ordinateur, ces instructions doivent être extrêmement précises, car il ne peut pas deviner ce que tu veux dire. L'objectif est de décomposer un problème complexe en une série de petites actions simples que la machine peut exécuter.
Exemple
Algorithme pour traverser une rue en sécurité : 1. S'approcher du bord du trottoir. 2. Regarder à gauche. 3. Regarder à droite. 4. Si une voiture arrive, attendre. Sinon, traverser. 5. Regarder à gauche à nouveau en traversant.
Formule
Problème → Décomposition en étapes → Algorithme → Programme → Résultat
Astuce
Pense à un robot très bête mais très obéissant. Il fait EXACTEMENT ce que tu lui dis, ni plus, ni moins. Ton algorithme doit être écrit pour lui !
2. Programmer visuellement avec Scratch
Scratch est un langage de programmation visuel créé par le MIT. Au lieu d'écrire du texte, tu assembles des blocs colorés comme des pièces de Lego. C'est parfait pour débuter car tu te concentres sur la logique de l'algorithme sans te préoccuper de la syntaxe (l'orthographe du code). L'interface est simple : une scène où tes personnages (les lutins) évoluent, une palette de blocs à disposition, et une zone pour assembler tes scripts. Les principaux types de blocs sont les mouvements, les apparences, les sons, les contrôles (boucles, conditions) et les capteurs.
Exemple
Programme pour faire dire bonjour à un chat et avancer : 1. Prendre le bloc événement 'quand le drapeau vert est cliqué'. 2. Y attacher le bloc apparence 'dire Bonjour ! pendant 2 secondes'. 3. Y attacher le bloc mouvement 'avancer de 10 pas'.
Astuce
Les blocs s'emboîtent uniquement s'ils sont logiquement compatibles. C'est un bon moyen de vérifier que ton algorithme a du sens ! La couleur des blocs t'aide aussi à les retrouver.
3. Écrire du code avec Python
Python est un langage de programmation textuel très utilisé par les professionnels. Il est réputé pour sa syntaxe claire et lisible, ce qui en fait un excellent choix pour débuter l'écriture de code. Ici, tu vas taper tes instructions ligne par ligne dans un éditeur. Un programme Python est un simple fichier texte avec l'extension .py. Pour l'exécuter, tu utilises l'interpréteur Python qui lit et suit tes instructions. Les bases à connaître sont : comment afficher un message à l'écran, comment demander une information à l'utilisateur, comment stocker une valeur dans une variable, et comment utiliser les structures de contrôle.
Exemple
Programme Python qui demande ton prénom et te salue : prenom = input('Quel est ton prénom ? ') print('Bonjour', prenom, '!') # La variable 'prenom' stocke la réponse de l'utilisateur. # La fonction print() affiche le message à l'écran.
Formule
instruction(argument) # Exemple : print('texte')
Astuce
En Python, l'indentation (les espaces ou tabulations en début de ligne) est CRUCIALE. Elle définit les blocs de code (comme les intérieurs de boucles ou de conditions). Utilise toujours la même indentation (4 espaces est la convention).
4. Les structures communes : Séquence, Boucle, Condition
Que ce soit en Scratch ou en Python, tous les algorithmes reposent sur trois grandes structures de base. La SÉQUENCE : c'est l'exécution des instructions les unes après les autres, dans l'ordre. La BOUCLE (ou répétition) : elle permet de répéter un bloc d'instructions plusieurs fois, sans avoir à le réécrire. La CONDITION (ou alternative) : elle permet de faire des choix dans l'algorithme. Le programme exécute un bloc d'instructions seulement SI une condition est vérifiée, SINON il peut en exécuter un autre. Maîtriser ces trois structures, c'est maîtriser l'essentiel de la programmation !
Exemple
Scratch : Boucle 'répéter 10 fois' pour faire avancer un lutin. Condition 'si... alors... sinon...' pour vérifier si le lutin touche le bord. Python : # Boucle for i in range(5): print('Je me répète') # Condition age = int(input('Ton âge ? ')) if age >= 18: print('Majeur') else: print('Mineur')
Astuce
Pour vérifier la logique de ton algorithme, fais-le 'tourner dans ta tête' ou sur papier avec des valeurs simples. C'est ce qu'on appelle la 'vérification à la main' ou l'exécution mentale.
Notions clés à retenir
Algorithme
Suite finie et non ambiguë d'instructions permettant de résoudre un problème.
Programme
Écriture d'un algorithme dans un langage de programmation compréhensible par une machine.
Variable
Boîte symbolique (un nom) dans laquelle on peut stocker une valeur (un nombre, un texte, etc.) pour l'utiliser plus tard.
Boucle
Structure qui permet de répéter un bloc d'instructions plusieurs fois.
Condition (SI... ALORS...)
Structure qui permet d'exécuter des instructions seulement si une condition est vérifiée.
Syntaxe
Ensemble des règles d'écriture d'un langage de programmation (comme la grammaire et l'orthographe).
Erreurs à éviter
- ✗Oublier de décomposer le problème en étapes assez simples. On veut souvent aller trop vite et écrire un programme pour le problème entier d'un coup. Il faut y aller pas à pas.
- ✗Confondre le signe égal '=' en mathématiques et en programmation. En Python, '=' est une AFFECTATION (je mets la valeur de droite dans la variable de gauche), ce n'est pas une égalité mathématique. Pour comparer, on utilise '=='.
- ✗Négliger les erreurs de syntaxe, surtout en Python. Un oubli de ':', de parenthèse fermante, ou une mauvaise indentation empêchera ton programme de fonctionner. L'ordinateur est très pointilleux !
Types d'exercices
Traduction d'algorithme
On te donne un algorithme en français (ex: calculer la moyenne de trois notes). Tu dois le programmer à la fois en Scratch et en Python.
Débogage (Debug)
On te donne un programme Scratch ou Python qui contient des erreurs (de logique ou de syntaxe). Tu dois les identifier et les corriger.
Écriture d'algorithme
À partir d'un problème concret (ex: un jeu de devinette où l'ordinateur choisit un nombre), tu dois écrire l'algorithme sur papier avant de le coder.
Comparaison Scratch/Python
On te donne un petit programme dans un langage, tu dois le réécrire dans l'autre langage en identifiant les structures communes (séquence, boucle, condition).
Pour aller plus loin
- Les fonctions (ou blocs personnalisés) : Créer tes propres instructions pour éviter de répéter du code.
- Les listes (ou tableaux) : Stocker plusieurs valeurs dans une seule variable, comme une liste de scores ou de noms.
- Les algorithmes de recherche et de tri : Comment un ordinateur trouve une info dans une liste ou la classe par ordre alphabétique ?
