Aller au contenu

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 turtle pour 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 ~/bin pour 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