503

La spécialité ISN aux lycées Vauvenargues et Cézanne d’Aix en Provence

Arnaud Lathelize [1]

Présentation

Au lycée Vauvenargues d’Aix-en-Provence, deux groupes d’élèves suivent
l’enseignement de l’option Informatique et Sciences du Numérique : le premier
comprend 18 élèves, les uns issus de TS-SVT, les autres de TS-SI et le deuxième
comprend 14 élèves, tous issus de TS-SVT, et qui proviennent les uns du lycée
Vauvenargues et les autres du lycée Cézanne. Dans le premier groupe,
l’enseignement est assuré conjointement par un professeur de mathématiques et un
professeur de Sciences de l’Ingénieur, et dans le deuxième par un professeur de
mathématiques (c’est moi) et un professeur de physique. Les professeurs concernés
ont bénéficié de onze jours de formation en 2011-2012, puis de dix jours en 2012-
2013, formation organisée par les inspections de Mathématiques et de Sciences de
l’Ingénieur en partenariat avec l’IREM d’Aix-Marseille. Empiétant sur nos journées
de travail au lycée, elle nous oblige à des remplacements de cours acrobatiques
difficiles à mettre en place. Par ailleurs des sites ont été créés, notamment par
l’IREM, pour nous procurer diverses ressources (voir http://isn.irem.univ-mrs.fr/ et https://science-info-lycee.fr/).

Sur les 14 élèves du groupe où j’interviens, 3 seulement avaient déjà une expérience
de programmation (en incluant la création de pages html). Avec mon collègue de
physique, nous avons interrogé les élèves sur leur motivation et nous en avons
recensé essentiellement deux : la curiosité (certains étant attirés par l’informatique
tout en n’étant que de simples utilisateurs) et le choix par défaut (pour caricaturer :
les maths, c’est trop difficile, la physique, je ne l’aime pas et les SVT me seront
inutiles car je n’ai pas envie de faire médecine.).

Démarrage et mini-projets.

Nous avons consacré les deux premières séances au codage de l’information :
pourquoi un ordinateur manipule des 0 et des 1, qu’est-ce que l’écriture en système
binaire ou hexadécimal, comment sont représentées les données dans un ordinateur.
Le professeur de physique a réinvesti à cette occasion les notions de synthèse des
couleurs pour le codage des images, et les notions d’onde sonore, d’échantillonnage
et de bande passante pour le codage du son.
Puis nous avons mis très vite les élèves en situation devant les ordinateurs afin qu’ils se familiarisent avec l’environnement et la syntaxe du langage Python. Les élèves devaient participer fin décembre à un stage Hippocampe de 3 jours à l’IREM d’Aix-
Marseille sur le thème du traitement des images, et nous avons jugé préférable qu’ils
aient quelques rudiments de programmation en Python pour en tirer profit au
maximum.
Nous avons donc organisé un enseignement d’algorithmique et de programmation
sous forme de mini-projets.

Le premier fut la programmation d’un jeu de pendu : dans un premier temps le
programme devait demander à un utilisateur de saisir un mot puis d’afficher la
première et dernière lettre de ce mot, complétées par des tirets représentant les lettres
intérieures. Ce fut l’occasion d’aborder la première structure de données de Python
(les chaînes de caractères) et de programmer une première boucle. Dans un deuxième
temps, un deuxième utilisateur devait deviner le mot comme dans le jeu de pendu.
Ceci permit d’aborder les tests. Nous avons laissé des pistes d’amélioration de ce
programme pour les élèves les plus avancés : choix d’un mot dans un dictionnaire
(fichier externe) et mise en place d’une interface graphique avec la bibliothèque Tkinter de Python.

Le deuxième mini-projet fut la programmation d’un jeu de bataille navale. « Encore
un jeu ! » se dira-t-on, mais il nous a semblé plus motivant pour les élèves de
programmer un jeu familier dont ils connaissent parfaitement les règles que de
rechercher un terme dans une suite ou de programmer l’algorithme d’Euclide. Le
programme devait construire une grille de 5 ¥ 5 cases et devait y placer aléatoirement
un bateau de longueur une case. Ensuite un utilisateur devait retrouver le bateau en
saisissant des coordonnées. Le programme devait préciser lorsque l’utilisateur avait
saisi des coordonnées voisines du bateau. Ce deuxième mini-projet fut l’occasion
d’aborder une nouvelle structure de données, les listes sous Python et de programmer
des parcours dans des listes. Les pistes pour poursuivre et élargir ce projet sont : la
mise en place d’une interface graphique avec Tkinter, la recherche d’un algorithme
même naïf pour que l’ordinateur devienne un joueur, la comparaison de deux
algorithmes en faisant jouer deux ordinateurs l’un contre l’autre et pourquoi pas une
mise en réseau de deux ordinateurs avec une interface leur permettant de s’affronter.

Le troisième mini-projet fut un détecteur d’erreurs de parenthésage dans une
expression mathématique incluant la recherche de parenthèses mal placées et des
suggestions de corrections.

J’ai présenté ces trois mini-projets en projetant au tableau des programmes
fonctionnels, sans montrer le code source, afin que les élèves comprennent bien ce
que j’attendais d’eux. À la suite de cette présentation, nous avons réfléchi ensemble
à la structure générale de l’algorithme, et aux structures de données à utiliser. C’est
au moment de ce brain-storming que j’ai pu introduire les notions de cours
(algorithme, boucle, fonction en Python, structure de données chaînes de caractères
ou listes, …). Puis les élèves se sont répartis par groupes de travail de 2 élèves et ont
eu 4 heures soit 2 séances pour construire un programme. Lors de ces 4 heures, je
suis passé dans chaque groupe pour aider, débattre des différentes options choisies.
Les groupes ne travaillant pas à la même vitesse, j’ai pu proposer des améliorations pour les élèves les plus avancés. À la fin de ces 4 heures, j’ai récupéré les codes
sources des programmes et les algorithmes pour évaluer les élèves.
Ces trois mini-projets nous ont occupés jusqu’au mois de décembre.

Pour ce premier trimestre, nous avons résolu la question de l’évaluation par une
épreuve en vingt questions portant sur le codage, la représentation de données dans
l’ordinateur, et la lecture d’un petit programme écrit en Python.

Lors du stage Hippocampe, les élèves ont constitué 4 groupes. Deux ont travaillé sur
la reconnaissance de formes : un utilisateur écrit un chiffre sur un logiciel de dessin,
le programme essaie de reconnaître ce chiffre. Les deux autres groupes ont travaillé
sur le traitement d’image : création de filtres pour réduire le bruit dans une image et
recherche de contours. Les élèves ont pu mettre en pratique leurs connaissances en
Python et ce fut une expérience enrichissante.

D’autre part, l’enseignement d’ISN prévoit une évaluation au baccalauréat sous
forme de projets : le stage hippocampe nous a permis d’initier des projets. En effet,
les élèves ont voulu poursuivre le travail effectué lors de ce stage.

Informatique et société.

En ce qui concerne la partie du programme traitant d’informatique et société, nous
avons repris une idée d’une collègue d’un lycée de Marseille que nous avons
rencontrée lors d’une formation : nous avons proposé une liste d’une dizaine de
sujets autour de ce thème (Qu’est-ce que la loi Hadopi ?, que siginifie « logiciel
libre » ?, qui gouverne internet ? quelles lois s’appliquent sur internet ?, qu’est-ce que
la CNIL ?, etc.), puis les élèves par groupe de deux vont préparer un exposé de 15 à
20 minutes, qui sera suivi d’un débat. Actuellement, nous n’avons pas encore
commencé cette activité en classe.

Le web et la communication au sein du groupe.

Pour la partie concernant les pages Web (HTML et CSS), nous nous sommes appuyés
sur les connaissances des élèves : nous avons demandé à deux élèves ayant des
compétences dans ce domaine de nous présenter la construction de pages HTML en
séparant bien le contenu de la forme.

Nous aborderons la structure de données dictionnaire en Python par l’intermédiaire
d’un programme gérant un répertoire téléphonique (même si ce n’est pas très
original) et nous nous inspirerons d’un TP sur lequel nous avons travaillé lors de
notre formation pour aborder les algorithmes de tri et la recherche dichotomique :
l’idée est de créer un correcteur orthographique à l’aide d’un dictionnaire contenant
les mots de la langue française ainsi que les verbes conjugués… Ce dictionnaire
contient environ 470 000 mots. On mesure le temps d’une recherche séquentielle,
puis on imagine vouloir corriger un manuscrit de 100 000 mots. Comment améliorer
la vitesse de recherche ? On motive ainsi la notion de tri et la recherche
dichotomique. Puis nous comparerons les résultats ainsi obtenus avec ceux de la
recherche dans la structure de données dictionnaire de Python et nous constaterons
qu’elle est encore plus rapide que la recherche dichotomique. Pourquoi ? Nous introduirons alors la notion de fonction de hachage.

La communication sur les projets est indispensable : nous avons créé avec les élèves
un site collaboratif de type WIKI pour échanger les idées et les codes Python.

Les sujets des projets ne sont pas encore parfaitement définis à l’heure où j’écris ces
lignes. Un groupe a commencé à construire un jeu avec un générateur de labyrinthe.
D’autres veulent utiliser ce qu’ils ont appris pendant le stage Hippocampe pour
l’appliquer à la gestion de l’entrée du parking d’un immeuble privé avec
reconnaissance de forme pour lire les plaques d’immatriculation des véhicules et
identification d’un visage par comparaison de ses contours avec une base de données.
Le projet est ambitieux, mais le but est de construire un projet en ne développant
complètement que quelques parties.

Conclusion.

Pour conclure, les élèves de notre groupe prennent beaucoup de plaisir à cet
enseignement, d’après leurs dires. Ce qu’ils apprécient, c’est le travail en équipe,
l’activité sous forme de mini-projet, la mise en situation des notions. Ils aiment l’idée
de résoudre des problèmes à l’aide de l’informatique. Certains sont déjà décidés à
poursuivre vers des études en informatique.

Cet enseignement de deux heures par semaine est un début, certes, mais à mon avis,
ce n’est pas assez, et je pense que l’on pourrait commencer l’enseignement de
l’informatique dès la seconde.

<redacteur|auteur=500>

Notes

[1arnaud.lathelize@ac-aix-marseille.fr

Les Journées Nationales
L’APMEP

Brochures & Revues
Ressources

Actualités et Informations
Base de ressources bibliographiques

 

Les Régionales de l’APMEP