Programmer
3.4 Programmer¶
Ce que recouvre la compétence : écrire des programmes et des algorithmes pour répondre à un besoin (automatiser une tâche répétitive, résoudre un problème, traiter un volume important) ou pour créer un contenu riche comme un jeu ou un site. Thématiques Pix : algorithmique (séquences, boucles, conditions, variables, fonctions), langages, automatisation, débogage, programmation web.
Progression par niveaux (résumé)¶
- N1-N2 : lire et comprendre un algorithme simple, programmer des séquences d'instructions par blocs.
- N3 : utiliser boucles, conditions et variables, corriger un programme qui ne fonctionne pas.
- N4-N5 : passer à un langage textuel, structurer avec des fonctions, automatiser une tâche réelle.
- N6+ : concevoir un programme complet, gérer les erreurs, réutiliser des bibliothèques, planifier l'exécution automatique de tâches.
Version Linux et libre¶
Programmation par blocs
- Snap! : libre, dans le navigateur, plus puissant que Scratch
- TurboWarp : version libre et rapide compatible Scratch, avec application de bureau Linux
- Blockly Games : progression ludique vers la logique de programmation
Python, le passage naturel au code textuel
- Thonny : conçu pour débuter, avec exécution pas à pas pour visualiser les variables
- Basthon : Python et notebooks dans le navigateur, pensé pour l'enseignement en France
- JupyterLab pour mêler code, texte et graphiques
- Module
turtlepour dessiner, Pyxel ou Pygame pour créer des jeux
Automatiser sous Linux (l'atout majeur de l'environnement)
- Scripts Bash : boucles sur des fichiers, renommage par lots, sauvegardes
- Exemple parlant :
for f in *.jpg; do magick "$f" -resize 800x "petit-$f"; done - Planifier des tâches : cron ou les minuteurs systemd, ce qui répond directement à la mention des « logiciels de planification de tâches » dans le référentiel
- Alias et petits scripts dans
~/binpour se créer ses propres commandes - Macros LibreOffice en Basic ou en Python
Éditeurs et environnements
- Geany, Kate : simples et légers
- VSCodium : version libre de VS Code, sans télémétrie
- nano pour débuter en terminal, Vim ou Emacs pour aller loin
Web
- HTML, CSS, JavaScript avec un éditeur et Firefox
- Outils de développement de Firefox (F12) : inspecter, modifier une page en direct, lire les erreurs
- p5.js : programmation créative et visuelle
Jeux
- Godot : moteur de jeu libre complet, 2D et 3D
- GDevelop : création de jeux sans coder ou presque
Robotique et électronique
- Raspberry Pi : ordinateur sous Linux pour piloter capteurs et moteurs
- Arduino IDE, MicroPython, micro:bit
- Thymio : petit robot éducatif avec environnement libre
La culture du libre
- Lire le code source d'un logiciel qu'on utilise
- Versionner son travail avec Git et le publier sur Codeberg (lien 2.3)
Débogage
- Lire un message d'erreur, afficher des valeurs intermédiaires, exécuter pas à pas, tester avec des cas limites
Idées d'activités¶
- Débuter avec Snap!, puis réécrire le même programme en Python dans Thonny
- Écrire un script Bash qui trie un dossier de téléchargements par type de fichier, puis le planifier chaque soir avec cron
- Programmer un petit jeu avec Pyxel ou Godot
- Modifier une page web en direct avec les outils de développement de Firefox, puis créer la sienne
- Piloter une LED ou un capteur avec un Raspberry Pi
- Modifier un petit logiciel libre existant (changer un texte, une couleur) pour comprendre ce que signifie avoir accès au code