Initiation à la programmation en collège

Cette action a été menée dans le cadre du déplacement d'une classe de 3ième (21 élèves) à l'université Lille 1 le jeudi 3 mars 2016. L'objectif est de démystifier l'informatique en donnant un aperçu de ce qu'est la programmation. Pour cela, on mobilise la même démarche pédagogique utilisée avec les écoles primaires, mais en sélectionnant certains aspects pour balayer en 3h seulement ce qui est réalisé en 6h avec les CM1/CM2.

Organisation de l'après-midi:

  • notion fondamentales de l'algorithme via la programmation par cartes d'action (jeu de société + lightbot)
  • renforcement des notions fondamentales via la programmation graphiques (à la Scratch) et textuelle (python).

Séquence 1 (TD - 1h30): Notions fondamentales de l'algorithmique

Cette première séquence a pour objectif d'introduire les notions fondamentales de l'algorithmique: notion d'instruction, de séquence d'instruction, de syntaxe et de sémantique, notion d'exécution et de bug, notion de répétition et de fonction (ne manque que l'alternative !).

Première étape: notions fondamentales avec le jeu dont vous êtes le héros (45mn)

On utilise le jeu de plateau “jeu dont vous êtes le héros” mais directement avec un personnage orienté de manière relative. L'activité débute par une présentation d'une séquence simple d'action impliquant les cartes avancer, droite et gauche. Cela permet d'introduire la syntaxe des cartes d'action et leur sémantique lors de l'exécution.

L'activité se réalise avec 3/4 élèves par plateau de jeu et une rotation des rôles: un élève propose un algorithme, un autre l'exécute en pointant la carte à évaluer et le dernier élève effectue les déplacements du personnage sur le plateau.

Séquences simples: on commence par des séquences simples, puis l'on on ajoute des obstacles pour aboutir à des algorithmes un peu plus long en nombre d'instructions. On termine cette phase sur des séquences fortement redondantes afin de faire la transition vers la notion de répétition.

Notion de répétition: après un ou deux exemples induisant un grand nombre d'instructions avec redondance, on peut introduire la notion de répétition. Initialement avec une seule action répétée dans le corps de la boucle, ensuite avec plusieurs boucles (toujours avec une seule répartition), ensuite des boucles avec plusieurs instructions. On évite les boucles imbriquées pour l'instants pour cause de soucis au niveau de la syntaxe choisie.

Notion de fonction: sur l'exemple d'une situation induisant une redondance

Deuxième étape: Renforcement avec Lightbot sur tablette (45mn)

On bascule sur des binômes afin d'avoir une tablette pour 2 élèves pour l'activité reposant sur Lightbot. Lors de cette séquence, les élèves renforcent les notions vues avec le jeu de société et sont chacun plus impliqués car les élèves alternent l'usage de la tablette lors de chaque niveau. Cela permet néanmoins une résolution conjointe, favorisant d'éventuels transferts de connaissances.

Séquence 2 (TP - 1h30): programmation graphique et textuelle

Cette deuxième séquence se réalise avec des ordinateurs et marque la transition d'un langage basé sur des cartes d'actions à une programmation graphique plus générale (syntaxe de blocs à la Scratch), puis à la programmation textuel “classique” lors de l'activité tortue avec le langage python.

Première étape: studio.code.org (45mn)

Dans cette étape, les élèves sont confrontés à un contexte similaire aux précédents: résolution d'un puzzle mais cette fois-ci à l'aide d'un langage graphique similaire à celui de Scratch. Le temps étant restreint, on travaille directement sur les parcours *artiste* de studio.code.org:

Deuxième étape: la tortue en python (45mn)

Pour cette dernière étape, on bascule sur la programmation textuelle avec le langage python. L'objectif est de montrer un “vrai” langage de programmation utilisé par des informaticiens et permettant d'écrire n'importe quel type de programme. Afin de faciliter la transition avec les activités précédentes, on reste dans le cadre de la réalisation de dessin. Cela permet de mobiliser les mêmes raisonnements sur le positionnement et les orientations, et de fournir un débuggage visuel direct.

On exploite la même ressource qu'avec les primaires, les collégiens manipuleront sûrement un peu plus les fonctions cependant: