Académique Documents
Professionnel Documents
Culture Documents
C O L L E C T I O N
de
Sciences numériques
et Technologie
PROGRAMME
2019
LIVRE
DU PROFESSEUR
Christophe DECLERCQ
Cours ............................................................................................................................................................... 17
Activités d’application
Activité 5. Programmation du jeu de devinette ........................................................................ 18
Activité 6. Code PIN et code PUK ................................................................................................ 19
Activité 7. Suivi de ligne avec un robot .. ..................................................................................... 19
Activité 8. Des pieds et des pouces ............................................................................................ 20
Analyse et débats
Enjeu 1. Programmer ou être programmé ? ......................................................................... 21
Enjeu 2. L’informatique, une question de genre ? ................................................................. 21
2 Le réseau internet
Introduction ................................................................................................................................................... 23
Activités de découverte
Activité 1. Un site à explorer : Internet Society .. ....................................................................... 23
Activité 2. 4 800 ou 9 600 bauds ? ............................................................................................... 23
Activité 3. Connexion Bluetooth .................................................................................................. 24
Activité 4. Tous connectés ! .......................................................................................................... 24
Cours ............................................................................................................................................................... 25
Activités d’application
Activité 5. Des adresses Wi-Fi ou 4G ? ....................................................................................... 25
Activité 6. Des adresses Ethernet . . ............................................................................................. 26
Activité 7. Le routage débranché ................................................................................................ 26
Activité 8. Test de la connexion réseau ...................................................................................... 27
Activité 9. Adresse IP et adresse symbolique .. ......................................................................... 27
Activité 10. Observation du routage . . ............................................................................................ 27
Activité 11. Transmission TCP ....................................................................................................... 28
Analyse et débats
Enjeu 1. Qui gouverne internet ? .............................................................................................. 28
Enjeu 2. Le réseau internet est-il fiable ? .............................................................................. 29
Enjeu 3. La neutralité du net .................................................................................................... 29
Enjeu 4. Internet, le média universel ? ................................................................................... 29
Sommaire
Introduction ................................................................................................................................................... 31
Activités de découverte
Activité 1. Un site à explorer : Wikipédia ................................................................................... 31
Activité 2. Le code source .. ........................................................................................................... 32
Activité 3. Les URLs .. ..................................................................................................................... 32
Activité 4. L’historique de navigation .......................................................................................... 33
Cours ............................................................................................................................................................... 33
Activités d’application
Activité 5. Une nouvelle page ...................................................................................................... 34
Activité 6. Ajout de liens ............................................................................................................... 35
Activité 7. Un changement de style ............................................................................................ 35
Activité 8. Comparaison de moteurs .......................................................................................... 36
Activité 9. L’indexation d’un texte . . .............................................................................................. 36
Activité 10. Algorithme du PageRank .. ......................................................................................... 37
Analyse et débats
Enjeu 1. Le web et l’information .............................................................................................. 38
Enjeu 2. Le web et la coopération . . .......................................................................................... 38
Enjeu 3. Le web et le droit d’auteur ........................................................................................ 38
Enjeu 4. La confidentialité du web . . ......................................................................................... 38
Cours ............................................................................................................................................................... 43
Activités d’application
Activité 5. Groupes de travail . . ..................................................................................................... 43
Activité 6. Le personnage central ............................................................................................... 44
Activité 7. Le nombre de Bacon .................................................................................................. 45
Activité 8. Les petits mondes temporels ................................................................................... 45
Activité 9. Anonymat sur les réseaux sociaux .......................................................................... 46
Activité 10. La star du réseau ........................................................................................................ 46
Analyse et débats
Enjeu 1. Harcèlement numérique et cyberviolence ............................................................. 47
Enjeu 2. Les réseaux sociaux et la vie privée (RGPD) .......................................................... 47
Enjeu 3. Le modèle économique des réseaux sociaux ........................................................ 47
Enjeu 4. Réseaux sociaux et communautés .......................................................................... 48
6 Cartographie et localisation
Introduction ................................................................................................................................................... 63
Activités de découverte
Activité 1. Un site à explorer : OpenStreetMap ......................................................................... 63
Activité 2. Cartes IGN .................................................................................................................... 64
Activité 3. Distance entre deux villes ......................................................................................... 64
Activité 4. Localisation d’un mobile . . .......................................................................................... 65
Cours ............................................................................................................................................................... 65
Activités d’application
Activité 5. Les couches de Géoportail ........................................................................................ 66
Activité 6. Un itinéraire sur OpenStreetMap ............................................................................. 67
Activité 7. À bicyclette… . . .............................................................................................................. 67
Activité 8. Tremblements de terre .............................................................................................. 68
Activité 9. Un itinéraire enregistré .. ............................................................................................ 69
Activité 10. Un itinéraire programmé . . ......................................................................................... 69
Analyse et débats
Enjeu 1. Numérisation et remplacement des cartes papier .. ............................................. 70
Enjeu 2. Actualisation des cartographies numériques ........................................................ 71
Enjeu 3. Localisation et surveillance .. ..................................................................................... 71
Enjeu 4. Fiabilité et précision de la localisation .................................................................... 71
Pour aller plus loin
Activité 11. Calcul d’itinéraire . . ...................................................................................................... 71
4
Sommaire
Introduction ................................................................................................................................................... 73
Activités de découverte
Activité 1. Un site à explorer : Python sur micro:bit ................................................................ 73
Activité 2. Des capteurs dans le téléphone ............................................................................... 74
Activité 3. Une douche chaude .................................................................................................... 74
Activité 4. Une cafetière connectée ............................................................................................ 75
Cours ............................................................................................................................................................... 76
Activités d’application
Activité 5. La voiture autonome . . ................................................................................................. 77
Activité 6. Suivre la ligne .............................................................................................................. 77
Activité 7. La gyroroue .................................................................................................................. 78
Activité 8. Le contrôle d’affichage . . ............................................................................................. 79
Activité 9. Le niveau électronique ............................................................................................... 80
Activité 10. Boussole automatique ............................................................................................... 81
Activité 11. Chronomètre numérique . . ......................................................................................... 81
Analyse et débats
Enjeu 1. Sécurité des systèmes embarqués . . ........................................................................ 82
Enjeu 2. Responsabilité des systèmes embarqués .............................................................. 83
Enjeu 3. Objets connectés et énergie ...................................................................................... 83
Enjeu 4. Objets connectés et matières premières . . .............................................................. 83
8 Photographie numérique
Introduction ................................................................................................................................................... 85
Activités de découverte
Activité 1. Un site à explorer : GIMP ........................................................................................... 85
Activité 2. Codage d’une image ................................................................................................... 85
Activité 3. Pixel Art en noir et blanc ........................................................................................... 86
Activité 4. Photographies en vignette .. ....................................................................................... 87
Cours ............................................................................................................................................................... 88
Activités d’application
Activité 5. Définition et résolution . . ............................................................................................. 88
Activité 6. Métadonnées des photos . . ......................................................................................... 89
Activité 7. Des couleurs avec GIMP ............................................................................................ 89
Activité 8. Le négatif d’une image N & B ................................................................................... 90
Activité 9. Couleurs et niveaux de gris . . ..................................................................................... 91
Analyse et débats
Enjeu 1. Le prix de la gratuité des photos numériques . . ..................................................... 93
Enjeu 2. Photographie numérique et droit à l’image ........................................................... 93
Enjeu 3. Manipulation de photographies numériques ......................................................... 93
Enjeu 4. Photographie numérique et archivage .. .................................................................. 93
Affectations, variables Écrire et développer des programmes pour répondre à des problèmes et modéliser des
Séquences phénomènes physiques, économiques et sociaux.
Instructions conditionnelles
Boucles bornées et non bornées
Définitions et appels de fonctions
Thématiques du programme
Internet j Chapitre 2 p. 28
Repères historiques postal pour une bonne partie, et bientôt le téléphone fixe
Dès les années cinquante, les ordinateurs ont été mis en réseau grâce à VoIP (voix sur IP). Son trafic prévu pour 2021 est de
pour échanger des informations, mais de façon très liée aux 3 300 milliards de milliards d’octets (3,3 × 1 021 octets).
constructeurs d’ordinateurs ou aux opérateurs téléphoniques. Internet a aussi ses problèmes : absence de garantie temporelle
Les réseaux généraux indépendants des constructeurs sont nés sur l’arrivée des paquets et possibilité d’attaques par satura-
aux États-Unis avec ArpaNet (1970) et en France avec Cyclades tion en envoyant un très grand nombre de messages à un site
(1971). Cet effort a culminé avec internet, né en 1983. donné, pour y provoquer un déni de service.
La neutralité du Net, présente dès l’origine du réseau, exprime
Impacts sur les pratiques humaines l’idée que les routeurs doivent transmettre les paquets indépen-
Internet a fait progressivement disparaître beaucoup des moyens damment du type de leur contenu : texte, vidéo, etc. Mais elle est
de communication précédents : télégramme, télex, le courrier constamment remise en cause par certains lobbies industriels.
Adresses symboliques et Sur des exemples réels, retrouver une adresse IP à partir d’une adresse symbolique et
serveurs DNS inversement.
Réseaux pair-à-pair Décrire l’intérêt des réseaux pair-à-pair ainsi que les usages illicites qu’on peut en faire.
Indépendance d’internet par Caractériser quelques types de réseaux physiques : obsolètes ou actuels, rapides ou lents,
rapport au réseau physique filaires ou non.
Caractériser l’ordre de grandeur du trafic de données sur internet et son évolution.
Le Web j Chapitre 3 p. 50
Repères historiques une coopération d’une nature nouvelle entre individus et entre
1965 : invention et programmation du concept d’hypertexte organisations : commerce en ligne, création et distribution de
par Ted Nelson. logiciels libres multi-auteurs, création d’encyclopédies mises
1989 : naissance au CERN par Tim Berners Lee. à jour en permanence, etc. ; il devient universel pour commu-
1993 : mise dans le domaine public, disponibilité du premier niquer avec les objets connectés.
navigateur Mosaic. Le Web permet aussi de diffuser toutes sortes d’informations
1995 : mise à disposition de technologies pour le développe- dont ni la qualité, ni la pertinence, ni la véracité ne sont garan-
ment de site Web interactif (langage JavaScript) et dynamique ties et dont la vérification des sources n’est pas toujours facile.
(langage PHP). Il conserve des informations, parfois personnelles, accessibles
2001 : standardisation des pages grâce au DOM (Document partout sur de longues durées sans qu’il soit facile de les effacer,
Object Model). ce qui pose la question du droit à l’oubli. Il permet une exploi-
2010 : mise à disposition de technologies pour le développe- tation de ses données, dont les conséquences sociétales sont
ment d’applications sur mobiles. encore difficiles à estimer : recommandation à des fins commer-
ciales, bulles informationnelles, etc. En particulier, des moteurs
Impacts sur les pratiques humaines de recherche permettent à certains sites d’acquérir de la visibi-
Dans l’histoire de la communication, le Web est une révolution : lité sur la première page des résultats de recherche en ache-
il a ouvert à tous la possibilité et le droit de publier ; il permet tant de la publicité qui apparaîtra parmi les liens promotionnels.
6
Systèmes informatiques Identifier des algorithmes de contrôle des comportements physiques à travers les données
embarqués des capteurs, l’IHM et les actions des actionneurs dans des systèmes courants.
Interface homme-machine (IHM) Réaliser une IHM simple d’un objet connecté.
Commande d’un actionneur, Écrire des programmes simples d’acquisition de données ou de commande d’un actionneur.
acquisition des données d’un
capteur
Photosites, pixels, résolution (du Distinguer les photosites du capteur et les pixels de l’image en comparant les résolutions du
capteur, de l’image), profondeur capteur et de l’image selon les réglages de l’appareil.
de couleur
Traitement d’image Traiter par programme une image pour la transformer en agissant sur les trois composantes
de ses pixels.
Rôle des algorithmes dans les Expliciter des algorithmes associés à la prise de vue.
appareils photo numériques Identifier les étapes de la construction de l’image finale.
10
Organisation pédagogique
Le manuel est construit pour permettre des mises en œuvre diverses et faci-
liter son appropriation par l’enseignant dans le respect de sa liberté pédago-
gique. Quelques hypothèses ont cependant été posées pour tenter d’équilibrer
les activités proposées. Certaines peuvent se faire en classe entière et ne
nécessitent pas d’ordinateurs : c’est le cas de la plupart des activités notées
« activités débranchées » signalées par le pictogramme ci-dessous.
Le livre du professeur
Pour chaque chapitre, les activités proposées sont corrigées de manière
détaillée en mettant en évidence les différentes solutions possibles et
en analysant a priori les activités des élèves. L’attention est aussi portée
sur les conditions de mise en œuvre pour que les activités soient sources
d’apprentissages pour les élèves.
Même si la plupart des activités sont proposées « clé en main », certaines
peuvent nécessiter une adaptation en fonction de l’environnement infor-
matique disponible au lycée. C’est le cas en particulier des activités sur le
réseau et de celles impliquant un matériel spécifique. Des solutions alter-
natives sont proposées.
Certaines activités peuvent aussi être transposées selon le domaine d’appli
cation ciblé. Par exemple, la série d’activités d’application du chapitre 5 sur
la pollution de l’air peut être transposée avec d’autres données économiques,
statistiques ou géographiques.
14
Activités de découverte
Cette activité s’attaque au premier obstacle repéré chez les programmeurs débutants :
comprendre que ce que l’on écrit dans le programme, c’est ce que devra exécuter la
15
L’objectif est de redécouvrir la boucle dans un contexte proche des activités de dessin
vues au collège. L’absence de repère évite de se poser la question des unités utili-
sées : on suppose que l’instruction avance permet de déplacer le robot d’une case.
1. repete 4 fois
avance, tourne à droite
2. L’évaluation permet de redessiner le motif de la figure 1 .
3. repete 4 fois
repete 3 fois
avance, tourne à droite
tourne à droite, tourne à droite
L’imbrication de boucles est loin d’être évidente. On doit s’attendre plutôt de la part
des élèves à des propositions avec une seule boucle du type :
repete 3 fois
avance, tourne à droite
tourne à droite, tourne à droite
repete 3 fois
avance, tourne à droite
16
Cours
Le cours introduit progressivement les notions de machine, système, information,
variable. Les notions de variable et d’affectation sont difficiles et sont introduites avec
un exemple de traitement de chaîne de caractères pour éviter la confusion avec la
variable en mathématiques, qui désigne usuellement des nombres.
La définition proposée pour un algorithme est très générale et permet d’englober
toutes les descriptions de procédés pour faire ou calculer quelque chose. La préci-
sion souvent indiquée dans les ouvrages de mathématiques qu’un algorithme s’exé-
cute en un nombre fini d’étapes a été volontairement enlevée, car les algorithmes
utilisés pour le contrôle de systèmes embarqués (voir le chapitre 7) ne se terminent
pas. Ce sont pourtant bien des algorithmes !
Les différentes manières de structurer des algorithmes – séquence, boucle, condition-
nelle – sont présentées avec une représentation graphique héritée de la programma-
tion par blocs (Scratch, mBlock…). Les notations sont intuitives et le moins formalisées
possibles car destinées à un lecteur humain. En particulier, il est inutile de noter la fin
des structures (fin si, fin tant que) car c’est explicite avec l’imbrication graphique. Le
cas échéant, les élèves auront le temps de découvrir ultérieurement d’autres conven-
tions de notation plus formelles lors d’enseignements de spécialité.
La programmation en langage Python est présentée via la traduction des algo-
rithmes. Les notions d’expressions et d’instructions sont bien distinguées, ce qui est
fondamental pour les premières expérimentations avec l’interprète Python (voir
l’Aide-mémoire dans le manuel de l’élève p. 176) et pour écrire correctement des
programmes.
Cette présentation du langage Python est limitée aux éléments utiles pour les acti-
vités au programme de SNT de la classe de seconde.
17
Cette solution repose sur l’usage de deux variables pour mémoriser à chaque étape le
minimum (mi) et le maximum (ma) des nombres possibles en fonction des réponses
du programme de jeu. Ce programme s’arrête quand l’autre lui répond que le nombre
proposé a permis de gagner.
18
L’activité s’appuie sur un algorithme dont les élèves ont fait l’expérience, mais qu’ils
n’ont probablement jamais vu formalisé ainsi. Elle permet ainsi d’examiner trois algo-
rithmes en testant s’ils se comportent comme attendu.
Cette activité permet de développer chez l’élève la capacité à évaluer ce que fait un
algorithme qu’on lui présente et qu’il n’a pas écrit. Cette capacité est utile pour mettre
au point un programme.
1. L’algorithme ① demande systématiquement trois fois le code PIN et ne vérifie sa
correction qu’au 3e essai. L’algorithme ② peut demander un nombre quelconque de
fois le code PIN si l’utilisateur entre à chaque fois un code incorrect. L’algorithme ③
demande au plus 3 fois le code PIN et ne le redemande que s’il est incorrect.
2. Pour l’algorithme ①, le code PUK est demandé si le 3e essai du code PIN est
incorrect.
Pour l’algorithme ②, le code PUK est demandé aussitôt que le code PIN est correct.
Pour l’algorithme ③, le code PUK n’est demandé que s’il y a eu 3 codes PIN incorrects.
3. L’algorithme usuel de déverrouillage d’un téléphone portable est l’algorithme ③.
Cette activité est une activité préparatoire aux activités de programmation de systèmes
embarqués. On étudie seulement l’algorithme avec un modèle simplifié de robot
commandé par des instructions de démarrage et d’arrêt de ses moteurs.
1. Si le chemin est rectiligne et si le robot avance bien droit, il suffit de démarrer ses
moteurs au début et les arrêter à la fin du chemin.
demarre moteur droit
demarre moteur gauche
si capteur droit blanc ou capteur gauche blanc
arrete moteur droit
arrete moteur gauche
2. Si le chemin serpente, il faut à chaque moment tester si un des capteurs passe
au blanc, et dans ce cas arrêter le moteur opposé pour faire tourner le robot :
demarre moteur droit
demarre moteur gauche
tant que non (capteur droit blanc et capteur gauche blanc)
si capteur droit blanc
arrete moteur gauche
sinon demarre moteur gauche
si capteur gauche blanc
arrete moteur droit
sinon demarre moteur gauche
arrete moteur droit
arrete moteur gauche
19
20
Analyse et débats
Les enjeux permettent d’éclairer le rapport entre numérique et informatique et de
poser la question du genre. Ces propositions peuvent être mises en œuvre sous des
formes diverses, exposés, débats.
21
Activités de découverte
À part l’activité de découverte autonome qui peut être proposée à faire à la maison
avant la première séance, toutes les activités de découverte proposées dans ce
chapitre sont débranchées.
Le site de l’Internet Society est assez dynamique et propose des actualités variées.
On retrouve cependant facilement, les éléments historiques dans la rubrique
Internet/histoire d’internet ainsi que le nom des fondateurs du site : Robert Kahn
et Vinton Cerf, en 1992.
On peut y relever des citations décrivant son statut et son rôle :
« Internet Society est une organisation mondiale axée sur les causes, gérée par un
conseil d’administration diversifié qui veille à ce que l’Internet reste ouvert, transpa-
rent et défini par vous. »
Le Global internet report est publié tous les un ou deux ans.
À l’heure de publication de ce manuel, le rapport 2019 n’est pas encore paru.
L’objectif de cette première recherche est de montrer le fonctionnement décentra-
lisé d’internet et d’évoquer les valeurs d’ouverture, de neutralité et de coopération,
ainsi que la volonté de sécurisation du réseau.
Cours
On présente le fonctionnement d’internet en suivant l’architecture en couches des
réseaux mais sans les nommer, pour éviter d’introduire des abstractions inutiles à ce
niveau. Cela permet de faire comprendre progressivement comment communiquent
deux machines par des liaisons, puis comment un réseau est interconnecté au niveau
IP, puis comment des informations plus complexes sont transportées au niveau TCP.
De la même manière, on évite la terminologie spécialisée trame/paquet/datagramme/
segment pour parler indifféremment de messages au différents niveaux. On évoque
seulement la notion de paquet pour expliciter la formule « commutation de paquets ».
Cette présentation simplificatrice permet cependant de donner tous les éléments
permettant de distinguer les protocoles IP et TCP, de comprendre comment fonc-
tionne le routage et d’en déduire que la communication avec ces protocoles est fiable
mais sans garantie temporelle.
On peut aussi en déduire que ces protocoles sont indépendants des matériels utilisés
et permettent d’interconnecter des réseaux très hétérogènes, utilisant des techno-
logies variées. Ceci permet ensuite d’aborder les enjeux avec des arguments fondés
sur les modes de fonctionnement réels du réseau.
Activités d’application
Le thème du chapitre se prête à la fois à des activités d’observation du réseau sur
ordinateur et des activités débranchées permettant de réfléchir aux algorithmes de
routage. Les activités de programmation sont reportées dans la partie « Pour aller
plus loin », car dans ce thème la programmation devient rapidement complexe.
L’objectif de cette activité est d’observer que l’obtention d’une adresse IP par une
machine est indispensable pour être connectée à internet et obtenir des informations
d’un serveur. L’intérêt de faire tester cette activité par les élèves avec leurs smart-
25
L’objectif de cette activité à réaliser en salle informatique est d’observer les adresses
IP des ordinateurs puis comparer avec l’adresse annoncée quand un ordinateur local
se connecte à un site distant. Cela permet de mettre en évidence la notion de réseau
local avec des adresses privées, inconnues depuis le réseau internet, et la notion
d’adresse publique.
De nombreux services en ligne proposent de révéler l’adresse IP publique avec
laquelle une machine s’y connecte. C’est une manière de prendre connaissance de
cette adresse, qui est le plus souvent la même pour toutes les machines d’un établis-
sement si elles sont connectées en réseau local privé.
Attention ! La plupart de ces services sont des fournisseurs de solution de réseau
privé virtuel, une technologie qui permet de cacher son adresse IP publique en se
connectant à internet via ce réseau privé.
L’activité de routage débranché peut être mise en place en classe en distribuant aux
élèves un rôle – routeur ou machine – et une adresse associée. Le déroulement de
l’activité permet de mettre en évidence que si chaque routeur fait correctement son
travail, les messages sont acheminés de proche en proche et arrivent à destination,
sans besoin de quelqu’un pour superviser l’ensemble et donner les ordres. On a donc
bien un fonctionnement décentralisé. Cette activité illustre de manière simplifiée le
routage au niveau IP. Elle peut être poursuivie avec l’activité 11 page 41.
1. Chaque élève simulant un routeur doit remplir la table de routage jDoc. 2 pour
prévoir à l’avance dans quelle direction acheminer les messages à destination de
chaque sous-réseau. Le tableau à remplir peut être imprimé en avance et distribué
aux élèves concernés.
2. Le bon fonctionnement du réseau dépend de la bonne coopération de l’ensemble
des acteurs. Dans le déroulement de l’activité, on peut commencer doucement en
envoyant quelques messages, puis tenter d’accélérer le processus. Si un début d’en-
gorgement se produit au niveau d’un routeur, on s’aperçoit que les messages finissent
par arriver... mais au bout d’un certain temps.
3. Cette étape de simulation de panne montre que des messages peuvent être perdus
si un routeur arrête son fonctionnement.
4. Il s’agit ici de reconfigurer le réseau et de prendre conscience qu’après une panne
transitoire, si les tables des routeurs sont mises à jour, les messages peuvent être
acheminés par un autre chemin.
26
Aucune expertise technique n’est attendue des élèves concernant les commandes
proposées. Il s’agit simplement d’activités d’observation permettant de prendre
connaissance des informations disponibles.
1. L’objectif de l’activité est d’observer sur un ordinateur les informations liées à
sa connexion au réseau. Elle complète et prolonge l’activité 6 p. 38. Pour pouvoir la
réaliser, il faut pouvoir ouvrir une fenêtre de commande sur les ordinateurs.
2. La seconde consigne permet aux élèves de lister les interfaces réseau disponibles
sur l’ordinateur. Dans le cas d’un réseau filaire, on doit trouver une connexion de type
Ethernet et pouvoir lire l’adresse IP ainsi que l’adresse MAC.
3. Il s’agit d’envoyer un message de test à un serveur accessible sur internet. Chaque
envoi donne le temps mis pour un aller-retour vers ce serveur et donne une idée de la
rapidité du réseau. Ces temps ne peuvent pas être utilisés pour en déduire la distance
du serveur, car la plus grande partie du temps mesuré correspond à du temps de
traitement par des routeurs et non au temps d’acheminement du signal électroma-
gnétique par un câble.
Cette activité prolonge l’activité précédente et peut permettre d’observer le lien entre
une adresse IP et l’adresse symbolique associée.
Attention ! Selon les configurations des serveurs, les adresses IP annoncées par la
commande ne sont pas toujours accessibles, ni enregistrées dans un serveur
de noms DNS. Dans ce cas, il faut essayer avec un autre serveur.
Il est donc prudent pour cette activité de laisser les élèves chercher des sites variés
et de mettre en commun ensuite les informations qui ont pu être obtenues.
La quatrième consigne peut aussi être bloquée par les politiques de sécurité du navi-
gateur, qui peut empêcher l’accès direct à un site par son adresse IP.
Il convient de présenter cette activité comme une activité d’observation à la recherche
d’informations disponibles, mais ne pas chercher à expliquer les raisons techniques,
si les informations recherchées sont, dans certains cas, inaccessibles.
Cette activité est sujette aux mêmes consignes de prudence que les deux activités
précédentes.
C’est la suite des activités précédentes 8 et 9 avec l’exploration du résultat de deux
commandes supplémentaires, permettant d’observer le routage d’un message sur
internet et d’identifier les intermédiaires par lesquels les messages ont été acheminés.
27
Cette activité est la suite logique de l’activité 7 p. 39. Elle permet d’explorer la trans-
mission de longs messages avec le protocole TCP. Elle donne une description assez
réaliste des algorithmes mis en œuvre avec les protocoles TCP et IP et permet de
conclure qu’il ne peut y avoir aucune garantie temporelle sur l’acheminement des
messages. L’information finit par arriver au bout d’un certain temps quand tous les
morceaux ont été éventuellement réexpédiés, et remis dans le bon ordre.
1. Il faut bien sûr ajouter un numéro d’ordre sur chaque morceau de message, car
on ne peut pas avoir la garantie que tous les morceaux passent par le même chemin
et sont acheminés à la même vitesse.
2. Le test peut, selon l’engorgement du réseau et la rapidité des routeurs, mettre en
évidence des messages dont les morceaux arrivent dans le désordre. Le destinataire
a bien besoin du numéro pour remettre les morceaux dans l’ordre.
3. Si on suppose qu’il peut y avoir des pannes, il faut mettre sur chaque message
l’adresse de l’expéditeur, ce qui permet au destinataire d’envoyer des accusés de
réception.
4. Plusieurs algorithmes sont possibles : si l’expéditeur reçoit les accusés de récep-
tion dans le même ordre que les messages envoyés, il peut continuer à attendre
les suivants ; s’il manque un (ou plusieurs) accusé(s) de réception, il peut choisir de
renvoyer un (ou tous) le(s) message(s) qui n’a (ont) pas encore été acquitté(s).
5. On retrouve bien dans le format technique utilisé les adresses IP de l’expédi-
teur (source) et du destinataire (destination). Le numéro est ici appelé « offset du
fragment ».
Analyse et débats
Les enjeux d’internet peuvent être abordés à partir de la connaissance de son orga-
nisation technique et de son fonctionnement.
29
Cette activité de programmation utilise les protocoles d’internet pour mettre en place
une communication entre deux machines. Les programmes fournis – à condition de bien
reporter le numéro IP réel de la machine utilisée comme serveur – permettent d’illus-
trer comment on peut fournir un service de chat en utilisant les primitives d’internet.
1. Il est important de bien lancer le programme serveur d’abord sur un ordinateur
2. Il faut donner l’adresse IP de cette machine à l’élève qui lancera le programme
client sur une autre machine.
3. On observe la communication du client vers le serveur.
4. Pour réaliser une communication bidirectionnelle, il suffit d’ajouter au client une
réception entre deux envois de messages :
import socket
s = socket.socket()
s.connect(("192.168.0.46", 50007))
message = input("? ")
while message != "Z":
s.send(bytes(message, "utf8"))
reponse = s.recv(1024).decode("utf8")
print(reponse)
message = input("? ")
s.send(b"Z")
s.close()
et d’ajouter au programme du serveur un envoi de message entre deux réceptions :
import socket
s = socket.socket()
s.bind(("", 50007))
s.listen(1)
client, adresse = s.accept()
print("Connecté avec", adresse)
message = client.recv(1024).decode("utf8")
while message != "Z":
print(message)
reponse = input("? ")
client.send(bytes(reponse,"utf8"))
message = client.recv(1024).decode("utf8")
s.close()
client.close()
30
Activités de découverte
Les activités de découverte de ce chapitre nécessitent toutes l’accès à un ordinateur
ou autre appareil connecté à internet.
Wikipédia est un site bien connu des lycéens comme source d’informations pour
construire des exposés ; son fonctionnement interne est en revanche beaucoup moins
connu. Le questionnement de cette activité de découverte autonome est construit
pour inciter les élèves à explorer l’envers du décor.
Wikipédia est un site emblématique du web, car c’est bien le mécanisme de publica-
tion décentralisée du web qui a permis l’émergence de cette encyclopédie.
Les réponses peuvent être trouvées sur le site lui-même.
1. La page d’accueil principale du site en français est :
https://fr.wikipedia.org/wiki/Wikipédia:Accueil_principal
2. Les nombres de contributeurs et de pages publiées évoluent continument.
En 2019, ils ont respectivement dépassé 16 000 (contributeurs) et 2 000 000 (pages).
3. Les principes fondateurs de Wikipédia peuvent être lus à l’adresse :
https://fr.wikipedia.org/wiki/Wikipédia:Principes_fondateurs.
Wikipédia est une encyclopédie publiée sous licence libre, qui recherche la neutra-
lité de point de vue, est un projet collaboratif qui suit des règles de savoir-vivre, et
n’impose aucune autre règle.
4. La page francophone sur le web est à l’adresse :
https://fr.wikipedia.org/wiki/World_Wide_Web.
31
L’objectif de cette activité de découverte est de faire observer aux élèves la nature des
informations enregistrées dans une page web. Il n’y a aucune ambition d’expertise
technique en langage html : il s’agit simplement de constater les correspondances
entre ce qui est enregistré et ce qui est affiché dans le navigateur.
La page donnée à titre d’exemple est une page ancienne qui a deux intérêts : son archi-
tecture est très simple, ce qui permet de rapprocher simplement le html et sa visua-
lisation. C’est une des premières pages citant l’initiative d’accessibilité du web aux
personnes en situation de handicap, pouvant ainsi permettre d’évoquer cette question.
1. Le choix de la page à étudier est laissé à l’appréciation de l’enseignant. Selon les
académies, et l’environnement numérique de travail déployé, une simple page de l’ENT
peut tout à fait convenir. Il convient seulement de vérifier qu’elle ne contient pas trop
d’éléments interactifs et suffisamment de texte pour qu’il soit repérable facilement.
2. Selon le navigateur utilisé, la fonction peut avoir un libellé légè-
rement différent.
3. Les correspondances de texte à établir sont directes pour les textes hors balises.
4. En recherchant les images, on ne trouve que des noms de fichier image, mais pas
le codage de l’image elle-même. On peut parfois trouver un texte alternatif à l’image
– texte pouvant être lu pour les internautes ne percevant pas les images – ce qui
renvoie à la question de l’accessibilité.
5. Les points à remarquer concernent la présence de balises (textes entre < >) qui ne
sont pas visualisées mais interprétées dans le navigateur, et les différences de mise
en page entre le html et sa visualisation.
L’objectif de cette activité est de mettre en évidence une (ou plusieurs) situation(s)
où l’on peut montrer que le navigateur s’est manifestement souvenu d’une naviga-
tion passée.
Selon le paramétrage des postes du lycée, il peut être utile d’adapter cette activité.
En particulier certaines configurations peuvent empêcher la mémorisation de l’his-
torique, l’enregistrement de cookies ou limiter l’accès en consultation à l’historique
ou aux cookies.
1. Si l’enregistrement de l’historique est activé, la navigation est effectivement enre-
gistrée et permet de revenir aux URL précédemment consultées.
2. Effacer l’historique peut permettre d’effacer tout ou partie des traces de navigation.
3. La connexion à un site de type ENT peut nécessiter de mémoriser des informa-
tions localement.
4. Si l’effacement de l’historique inclut les cookies et si le site du lycée dépose sur
les ordinateurs connectés un cookie de connexion, l’effacement peut entraîner une
déconnexion.
5. Le menu permet, s’il est accessible, de visualiser l’ensemble des sites
ayant demandé un enregistrement local d’informations, disponibles pour être renvoyées
lors de connexions futures au même site.
6. On peut conclure sur le nécessaire compromis entre confidentialité – le moins
de traces possibles enregistrées – et nécessité de continuité des communications –
enregistrement des connexions en cours.
Cours
L’enjeu de ce chapitre est de construire sur ce thème une culture générale à la fois
correcte et abordable.
Le cours permet de poser des définitions précises sur les notions et techniques
incontournables – http, URL – de présenter les langages de description du web, html
et css et de donner les principes de fonctionnement des moteurs de recherche et
de calcul de popularité.
On évoque, sans formalisation, la séparation fond/forme. Il est plus important que les
élèves retiennent qu’il s’agit de langages de description des pages et de leur mise en
forme que de retenir un ensemble de balises particulières. La présentation occulte
volontairement les différentes versions des langages (HML4.0, XHTML, HTML5).
33
Activités d’application
Les activités liées au développement de pages web nécessitent l’usage d’ordinateurs.
Les activités de réflexion autour des algorithmes d’indexation et de calcul de popula-
rité sont des activités débranchées ce qui permet, y compris dans ce chapitre, d’équi-
librer les activités avec et sans ordinateur.
Le principe de cette activité est de permettre aux élèves de réaliser leurs premières
pages web par imitation et modification de pages fournies. On conseille d’utiliser
l’environnement le plus élémentaire possible – un simple éditeur de texte suffit –
pour éviter que certains éléments ne soient générés automatiquement à l’insu des
utilisateurs. La seule propriété souhaitable de l’éditeur est de faire une colorisation
syntaxique, ce qui aide considérablement pour réaliser des fichiers html corrects.
1. Après téléchargement du dossier de fichiers compressé, il convient de bien extraire
l’archive dans un dossier de l’utilisateur avant d’ouvrir les fichiers pour édition, sinon
les élèves risqueront de perdre leur travail.
2. L’ouverture dans le navigateur est le plus souvent le choix d’ouverture par défaut.
3. Pour ouvrir le fichier html en édition, il faut en général choisir et sélec-
tionner l’éditeur de texte adapté (Notepad++ par exemple).
4. C’est le rendu final qui permet de tester si la page html a été correctement saisie,
conformément aux vœux de son rédacteur.
La principale difficulté concernant les images est de bien référencer l’image depuis
la page html. Le plus simple est d’utiliser uniquement des adresses relatives et de
déposer toutes les pages html et toutes les images dans le même dossier.
Une erreur courante en cas de dépôt d’une réalisation sur un ENT est de déposer des
documents contenant des liens absolus, n’ayant de signification que sur la machine
où les documents ont été réalisés. L’exemple fourni ne montre volontairement que
cet usage des adresses relatives.
34
35
Cette activité d’observation a pour objectif d’identifier dans une navigation les moments
où un moteur de recherche est utilisé explicitement ou implicitement, puis à engager
une réflexion sur les résultats de recherche selon les moteurs utilisés.
1. Cette première question incite à accéder à une page web connue par sa descrip-
tion à l’aide de mots clés.
2. Le moteur de recherche associé au navigateur est sollicité pour transformer la
liste de mots clés en une URL correcte. Il est intéressant de consulter les menus du
navigateur pour identifier le moteur de recherche par défaut utilisé.
3. La recherche donne évidemment des résultats pouvant être très différents d’un
navigateur à l’autre. De manière moins évidente, on pourra aussi constater des diffé-
rences de résultats pour un même moteur selon les utilisateurs et, en particulier,
selon leurs historiques de recherches passées.
4. Qwant est un moteur de recherche français préservant la vie privée de ses utilisa-
teurs. Startpage est un méta-moteur qui, en fait, s’interpose entre l’internaute, dont il
protège la vie privée, et les moteurs de recherche qu’il interroge sans indiquer pour
le compte de qui.
5. Dans les conditions d’usage des moteurs de recherche, on s’intéressera particu-
lièrement aux données collectées et à l’usage qui peut en être fait.
Le document PDF mis à disposition peut être reproduit et distribué aux élèves pour
servir de support à cette activité débranchée.
L’activité peut être faite individuellement ou par binômes.
Partie 1. Le jeu du PageRank
1. Utiliser un jeton ou une pièce de monnaie pour mémoriser la page actuelle.
2. Les pages A et F n’ont qu’un successeur donc pas de tirage. Les pages B, C et D
ont deux successeurs possibles donc un tirage. Seule la page E a quatre successeurs
possibles, ce qui nécessite deux lancers de pièce pour choisir la page suivante.
3. On peut partager le travail entre un élève qui tire au sort la page suivante et déplace
le jeton et l’autre qui note le nombre de passages par chaque page.
4. La mise en commun de 20 × 50 tirages permet d’obtenir des pourcentages proches
des valeurs théoriques indiquées.
Partie 2. Analyse des résultats
1. Les pourcentages correspondent aux probabilités d’atteindre une page lors d’une
marche aléatoire en suivant les hyperliens entre pages. C’est la page E qui a le pour-
centage le plus fort (40 %). C’est aussi la page qui a le plus d’hyperliens entrant.
2. On peut vérifier que les popularités calculées respectent les équations suivantes :
la popularité d’une page est la somme des popularités que lui donnent ses liens
entrants, à savoir la popularité des pages sources des liens divisés par le nombre
de liens sortants.
Ainsi la popularité de F (15 %) est la somme de la popularité de E (40 %) divisée par
le nombre de liens sortants de E (4 %), et de la popularité de C (10%) divisée par le
nombre de liens sortants de C (2 %).
3. La popularité de E est égale à la somme de celle de A (15 %), de celle de F (15 %),
de celle de B (10 %) divisée par 2, et de celle de D (10 %) divisée par 2, ce qui donne
bien au total 40 %.
Analyse et débats
Les activités sur les enjeux de web peuvent être menées indépendamment des
activités précédentes ou être menées en parallèle des activités 5 à 7 de ce chapitre
si on choisit de demander aux élèves de réaliser des supports d’exposés sous la
forme de pages web.
37
Cette activité est proposée pour différentiation en continuité de l’activité 10. Les calculs
effectués à la main de la précédente activité y sont maintenant simulés sur ordina-
teur. Le programme de simulation écrit en Python est fourni, ce qui évite toute diffi-
culté de programmation, sachant que les objets manipulés (tableaux) dépassent le
cadre de la classe de seconde. On ne les utilise ici que pour consultation, les deux
tableaux utilisés étant fournis. La seule notation à connaitre est la notation indicée
pour accéder à un élément du tableau, par exemple : nom[page], pour accéder dans
le tableau nom à la page d’indice page.
1. Le programme comporte un choix aléatoire (fonction choice) parmi les éléments
du tableau des hyperliens. Le résultat peut donc être différent à chaque exécution.
2. Chaque exécution affiche une trajectoire possible de navigation entre les pages
par une suite de 10 messages de la forme : Page actuelle : E.
3. Le programme de la question 3 nécessite la mise en place d’un compteur nommé
ici nbE.
from random import choice
nom = ["A", "B", "C", "D", "E", "F"]
hyperliens = [[4],[0,4],[0,5],[0,4],[1,2,3,5],[4]]
nbEtapes = 10 # on répète 10 fois
nbVisites = [0,0,0,0,0,0]
page = 0 # le depart est la page A (indice 0)
nbE = 0
for i in range(nbEtapes):
page = choice(hyperliens[page])
if page == 4:
nbE = nbE + 1
print("Page actuelle :" + nom[page])
print("Nombre de passages par la page E", nbE)
4. La question 4 demande d’utiliser le tableau nbVisites pour mémoriser les comp-
tages et ensuite permettre d’analyser des trajectoires plus longues.
from random import choice
nom = ["A", "B", "C", "D", "E", "F"]
hyperliens = [[4],[0,4],[0,5],[0,4],[1,2,3,5],[4]]
nbEtapes = 1000
nbVisites = [0,0,0,0,0,0]
page = 0 # le depart est la page A (indice 0)
for i in range(nbEtapes):
page = choice(hyperliens[page])
nbVisites[page] = nbVisites[page] + 1
print("Page actuelle :" + nom[page])
for i in range(len(nom)):
print("Page", nom[i], ":", nbVisites[i]/nbEtapes*100, "%")
39
40
Activités de découverte
Beaucoup d’activités de ce chapitre sont débranchées.
Pour manipuler les structures de graphe, il est beaucoup plus simple, dans un premier
temps, de les dessiner avant de les programmer.
L’activité d’exploration autonome consiste à visualiser une vidéo (le troisième épisode
de la web-série Do not track) qui sensibilise à ce qui peut être collecté et déduit du
comportement d’un utilisateur sur un réseau social. C’est un premier pas de sensi-
bilisation sur ce qui peut être calculé. L’exploitation en classe peut consister seule-
ment à faire le bilan des informations fournies et introduire les enjeux du chapitre.
41
Le principe de cette activité est de faire émerger les principales caractéristiques des
réseaux sociaux à partir de la comparaison de quelques-uns.
Pour que cette activité fonctionne bien, il est utile de s’appuyer sur la connaissance
des élèves des réseaux qu’ils utilisent régulièrement. On peut aussi s’intéresser aux
réseaux moins connus pour rechercher leurs caractéristiques particulières.
L’activité peut être proposée individuellement, en binôme ou en groupes. Si besoin,
on peut coordonner le travail pour éviter que tous les élèves ne réfléchissent aux
mêmes réseaux.
1. Selon le temps disponible, on peut confier à chaque élève l’étude d’un ou deux
réseaux.
2. Les questions permettent de faire émerger la plupart des caractéristiques.
La notion de relation n’est pas évidente à construire : on peut alors interroger ce qui
lie les utilisateurs et donner des exemples (aimer un contenu, suivre une personne...).
3. La mise en commun des résultats trouvés dépend de la taille des groupes et du
moyen matériel choisi pour partager les analyses.
L’objectif de cette première activité sur les graphes est de commencer à manipuler
des représentations symboliques avec des personnes et des liens entre elles, et de
découvrir que cela peut faire l’objet de traitements automatiques.
La notion d’amis en commun est à la base d’algorithmes de recommandation.
L’idée de cette activité est de montrer que cela peut être calculé automatiquement
de manière plus ou moins efficace.
1. Le premier algorithme examine successivement les cases du tableau à remplir
et, pour chacune, parcourt l’ensemble des huit autres personnes pour tester si elles
sont des amies en commun aux deux personnes de la case étudiée.
2. Le deuxième algorithme ne s’intéresse qu’aux amis de la personne étudiée et
propose de compter tous ses amis communs en le notant dans la case indiquée.
3. Ce sont David et Inès qui ont le plus d’amis en commun. Ils en ont trois : Chloé,
Emma et Jean.
42
Cours
Le cours permet d’abord de préciser la notion de relation entre personnes (ou entités
sociales) et insiste sur le fait que les réseaux sociaux sont étudiés depuis long-
temps, c’est-à-dire bien avant l’arrivée des réseaux sociaux au sens d’applications
informatiques.
La partie sur les réseaux en tant qu’outil de communication est volontairement peu
formalisée et a pour seul objectif de donner des éléments de classification et de
réflexion déjà abordés en activité de découverte.
La modélisation des réseaux sociaux par des graphes est la partie la plus développée.
C’est un point de vue nouveau pour les élèves. C’est cette modélisation qui permet
de comprendre ce qu’un opérateur de réseau social peut calculer comme informa-
tions à partir des utilisateurs et de leurs liens.
La notion de diamètre d’un graphe est définie. Les notions de centre et de rayon, plus
abstraites, sont montrées sur un exemple en activité d’application.
La partie sur la représentation informatique des graphes est présente seulement pour
montrer que c’est possible de faire calculer des graphes à un ordinateur. Ces éléments
ne seront utilisés que dans l’activité complémentaire « Pour aller plus loin » page 89.
Activités d’application
Les activités d’application utilisent la représentation graphique des graphes. Elles
peuvent toutes être effectuées sans ordinateur. Les algorithmes sont en effet beau-
coup plus faciles à comprendre en les déroulant à la main et en suivant la représen-
tation graphique qu’en utilisant la représentation informatique des graphes.
Cette activité se présente comme un défi : répartir chaque groupe en plusieurs sous-
groupes dont les membres ne sont pas liés entre eux.
43
Le premier groupe ne peut pas être décomposé en moins de 4 groupes (noir, blanc,
gris clair, gris foncé).
Le 2e et le 4e peuvent être décomposés chacun en deux sous-groupes (blanc et noir).
Les 3e et 5e groupes peuvent être répartis au mieux en trois sous-groupes (noir,
blanc, gris foncé).
L’objectif de cette activité est de montrer que la représentation graphique peut parfois
être trompeuse. Ce qui compte dans un graphe, ce sont uniquement les liens (arêtes)
entre personnes (sommets).
Les deux graphes proposés jDocs. 1 et 2 sont identiques mais sont dessinés en
plaçant les personnes différemment.
1. et 2. a. Avant définition du concept de centre d’un graphe, il est attendu des élèves
qu’ils considèrent Alice comme centre du premier réseau et Fred comme centre du
second.
b. Après comparaison et avoir constaté que les deux graphes contiennent les mêmes
relations entre personnes, on constate qu’on ne peut définir deux centres différents
d’un même graphe.
3. La personne la plus éloignée d’Alice est Fred (distance 3).
La personne la plus éloignée de Bob est Emma (distance 3).
La personne la plus éloignée de Chloé est David (distance 3).
Ces six personnes ont donc toutes au moins une personne à distance 3.
Seule Zoé a toutes les personnes à une distance de 2 au plus.
Zoé est donc le centre de ce réseau dont le rayon est 2.
Alice Emma
Bob Fred
Le calcul du centre d’un graphe est utilisé pour déterminer dans un groupe social le
ou les personnages centraux.
44
Johnny Depp
Johnny Depp 2
L’expérience des petits mondes dans sa version temporelle oblige à exhiber des
chaines beaucoup plus longues, car ne peuvent être liés que des contemporains.
1. La réponse est un peu théorique car les hypothèses de calcul sont simplificatrices.
Cela permet cependant de poser des bornes sur la longueur minimale d’une chaine
entre deux personnalités ayant presque 2 000 ans d’écart.
Même en supposant un lien d’amitié construit très jeune avec le précédent et un autre
à la fin de sa vie avec le suivant, il faut au minimum 20 personnes entre Cléopâtre et
Elizabeth II, donc au moins 21 liens d’amitié.
45
Cette activité permet d’analyser un graphe orienté. Ce type de graphe est obtenu en
modélisant une relation dissymétrique du type « suivre ». La star est définie comme
la personne que tout le monde suit, mais qui ne suit personne.
1. C’est Zoé la star du réseau.
2. Il suffit de retirer une seule flèche pour qu’il n’y ait plus de star. En effet, si on retire
une des flèches pointant vers la star, elle ne l’est plus par définition.
3. Pour tenter d’avoir une seconde star, il faudrait ajouter le nombre de flèches
manquantes à celle qui en a le plus après la star. On arrive cependant rapidement à
une contradiction.
46
4. a. Une star ne peut pas en suivre une autre car, par définition, une star ne suit
personne.
b. Il ne peut donc y avoir qu’une star, car sinon la deuxième star ne serait pas suivie
par la première et ne serait donc pas une star.
5. L’algorithme examine successivement chaque personne en supposant d’abord que
c’est une star potentielle. Puis, dès que la preuve du contraire est apportée, la variable
indiquant que c’est une star est passée à la valeur false. Si le graphe comporte une
star, elle est donc bien affichée par cet algorithme.
Analyse et débats
Les enjeux des réseaux sociaux sont importants tant du point de vue juridique
qu’économique.
Le calcul des amis d’amis est une fonctionnalité courante des réseaux sociaux permet-
tant de formuler des recommandations de nouveaux amis. Ce calcul n’est pas si
simple, comme cette activité tend à le montrer.
La représentation informatique des graphes par leur tableau d’adjacence est utilisée
(voir cours) et est donnée dans l’exemple proposé.
1. C’est dans le tableau follow que l’on peut trouver les personnes que suit Chloé.
Chloé étant la troisième personne, c’est la troisième ligne qui contient les personnes
suivies : [1, 0, 0, 1, 0, 1, 1].
En clair, en se référant à l’ordre des personnes, les « 1 » correspondent aux personnes
suivies à savoir : Alice, David, Fred et Zoé, ce que l’on peut vérifier sur la représen-
tation graphique j Doc. 3.
2. Pour calculer pour chaque personne le nombre de ses amis, le nombre de personnes
suivies et le nombre de suiveurs, il suffit de définir trois variables pour compter ces
valeurs en parcourant les tableaux friend et follow (voir page suivante).
48
for i in range(7):
nbAmis = 0
nbSuivis = 0
nbSuiveurs = 0
for j in range(7):
if friend[i][j]:
nbAmis = nbAmis + 1
if follow[i][j]:
nbSuivis = nbSuivis + 1
if follow[j][i]:
nbSuiveurs = nbSuiveurs + 1
print("La personne", i, "a", nbAmis, "amis, suit", nbSuivis,
"personnes et est suivie par", nbSuiveurs, "personnes.")
3. Le programme proposé énumère pour chaque personne tous ses amis, et pour
chacun de ces amis chacun de leurs amis. En calculant ainsi, on risque de compter
plusieurs fois les amis d’amis.
Par exemple, en calculant le nombre d’amis de Bob, on comptera deux fois Chloé,
une fois en tant qu’amie de Emma, une fois en tant qu’amie de Fred.
Une méthode correcte pour éviter les doublons consiste à parcourir tous les amis
d’amis potentiels en ne les comptant qu’une fois dès qu’un ami intermédiaire est
trouvé. Pour cela, on utilise une variable booléenne pour se rappeler qu’un ami d’ami
a été trouvé par au moins un chemin, et alors on ne le compte qu’une fois.
for i in range(7):
nbAmisAmis = 0
for k in range(7):
estAmisAmis = False
for j in range(7):
if friend[i][j] and friend[j][k]:
estAmisAmis = True
if estAmisAmis:
nbAmisAmis = nbAmisAmis + 1
print("La personne", i, "a", nbAmisAmis, "amis d’amis")
Remarque : cet algorithme est difficile ; cette dernière question est donc à réserver
aux élèves les plus intéressés.
49
Activités de découverte
Hormis la première activité autonome, toutes les activités de découverte proposées
sont en mode débranché. Le traitement de données nécessite en effet de réfléchir
aux algorithmes avant de se lancer dans la programmation. Cette réflexion peut être
menée à partir d’exemples de traitement de données tirés de la vie quotidienne ou
de travaux scolaires menés dans d’autres disciplines.
La réalisation d’un histogramme est une activité proposée dans plusieurs disciplines
scolaires, en mathématiques mais aussi en sciences de la vie ou en sciences écono-
miques et sociales. Dans tous les cas, il s’agit d’un traitement de données où l’objectif
est de remplacer une grande collection de données par un comptage de ces données
réparties en plusieurs classes, en vue d’en faire une représentation graphique. On
s’intéresse dans cette activité uniquement au remplissage du tableau de comptage.
52
1. Selon la rapidité des élèves, parcourir l’ensemble des 123 données du tableau en
recherchant combien sont comprises entre 18 et 21 peut prendre entre 45 secondes
et une minute. Il faut alors recommencer pour la tranche d’âge suivante, etc.
Pour compter les dix tranches d’âge, on peut donc estimer le temps de travail à
environ 10 minutes.
2. Avec le second algorithme, on parcourt une seule fois les données en notant à
chaque donnée un bâton dans la tranche correspondante. Ce traitement prend au
plus cinq minutes, auquel il faut ajouter au plus une minute pour compter les bâtons
de chaque tranche, ce travail étant facilité si on a pris soin de regrouper les bâtons
par paquets de 5.
3. La comparaison devrait mettre en évidence la plus grande rapidité du 2nd algorithme.
Cela s’explique simplement par le nombre de fois où l’on consulte une donnée pour
la comparer aux bornes des tranches d’âge. Dans le premier algorithme, on effectue
l’opération 123 fois puis on recommence ce traitement 10 fois. Dans le second, on ne
regarde chaque donnée qu’une seule fois. L’opération pour chacune est un peu plus
compliquée, car il faut trouver directement la bonne tranche d’âge et noter un bâton,
mais cette opération n’est répétée que 123 fois.
Cette activité permet de montrer qu’il peut y avoir plusieurs méthodes plus ou moins
rapides pour traiter des données. L’étude des algorithmes, ou « algorithmique » est
d’ailleurs un des sujets importants en informatique, que l’on peut mentionner pour
information, mais qu’il n’est pas question d’aborder en classe de seconde.
Cours
Le cours permet de poser progressivement les notions importantes. La notion de table
en tant que collection de données est utilisée dans d’autres disciplines pour noter des
informations structurées de manière régulière avec des « critères ».
Pour la mise en œuvre informatique avec des fichiers, on privilégie le format csv qui
a l’avantage d’être d’usage courant, d’être le format le plus élémentaire pour repré-
senter des tables et d’être lisible à la fois avec un tableur et par programmation.
Concernant les traitements de données étudiés, on concentre l’étude sur les traite-
ments pouvant être effectués au fur et à mesure de la lecture du fichier, ce qui permet
d’obtenir toujours le même schéma d’algorithme.
Les traitements plus complexes permettant de trier ou de croiser des données sont
reportés dans la partie « Pour aller plus loin ».
Activités d’application
Les activités permettent de passer progressivement d’une méthode de traitement
de données générale avec un tableur à une méthode de traitement spécifique définie
par le programmeur.
Les formules suivantes peuvent être générées par recopie vers le bas, si la formule
initiale a bien été notée de manière relative.
4. La somme peut être calculée avec la fonction Somme en sélectionnant la
plage de données pertinente. Un corrigé de l’activité est disponible dans le fichier
Chap5_Population_Solution.ods proposé en téléchargement.
Cette activité consiste à étudier un tableau de mesures. Elle est volontairement très
proche de l’activité 5. L’objectif est bien de montrer la régularité que l’on peut trouver
dans des traitements de tables élémentaires, y compris dans des domaines d’ap-
plication différents.
1. L’ouverture préalable du fichier doit permettre d’identifier qu’il y a deux symboles de
ponctuation différents qui sont utilisés. La virgule est utilisée pour noter des nombres
décimaux alors que le point-virgule est bien utilisé comme séparateur de champs.
2. L’ouverture du fichier dans un tableur avec séparateur point-virgule permet de
séparer correctement les colonnes de données.
3. L’ajout de la colonne amène à saisir une formule. La valeur de la
résistance (en ohms) est égale au quotient de la tension (en volts) par l’intensité (en
ampères).
4. Lors de l’ajout du graphique, il convient de bien sélectionner toutes les données
en incluant les intitulés de lignes et de colonnes, puis de signaler à l’aide des boites
de dialogues spécifiques que la première ligne et la première colonne contiennent
des intitulés.
Un corrigé de l’activité est disponible dans le fichier Chap5_Mesures_Solution.ods.
Cette activité est une activité mixte à faire à la fois avec un tableur et en program-
mation Python.
L’objectif est de montrer le lien entre un calcul répétitif effectué avec un tableur en
déroulant les calculs répétitifs ligne après ligne, et le même calcul programmé en
Python avec une instruction répétitive.
Il faut noter dans cette activité la différence de retour pour l’élève sur ce qu’il fait
calculer à l’ordinateur.
Dans la version tableur, tous les calculs intermédiaires sont visibles dans les diffé-
rentes cellules. Dans la version programmée, ne sont visibles que les résultats dont
le programmeur a demandé l’affichage.
Les valeurs intermédiaires peuvent être visualisées grâce à l’outil de mise au point
en exécution pas à pas.
Partie 1. Simulation avec un tableur
1. Le tableau de comparaison entre les deux placements peut avoir la forme suivante :
des formules permettent de calculer en 2e colonne les intérêts cumulés =B2*1,005
et en 3e colonne les intérêts fixes =C2+1 .
2. Ce n’est qu’à partir de la 253e période que le placement de type ① devient toujours
plus avantageux. Une analyse trop rapide peut amener des élèves à conclure de
manière erronée que le placement ② serait plus avantageux, ce qui n’est vrai qu’au
début.
Un corrigé de cette partie est disponible dans le fichier Chap5_Credit_Solution.ods.
Partie 2. Exécution en Python
1. En suivant l’indication de calculer aussi longtemps que le placement ① est moins
avantageux, le programme Python suivant permet de calculer directement la solution.
2. L’exécution du programme s’arrête après 253 périodes quand le placement 1
devient supérieur au placement ② en affichant :
Apres 253 mois +1% donne : 353.19424979227233 et +1 donne : 353
Le programme est disponible dans le fichier Chap5_Credit_Solution.py.
m1 = 100
m2 = 100
n = 0
while m1 <= m2:
m1 *= 1.005
m2 += 1
n += 1
print("Apres", n, "mois +1% donne :", m1, "et +1 donne :", m2)
Cette activité montre que le même problème peut être résolu de manière assez diffé-
rente en utilisant des outils informatiques différents. La solution avec le tableur peut
56
Cette activité est une activité d’ouverture vers la science des données pour montrer
comment l’usage d’une bibliothèque adaptée peut simplifier l’écriture des traitements.
Le principal inconvénient de ce genre de bibliothèque est de masquer la complexité
des traitements effectués. D’un point de vue pédagogique, il est aussi plus forma-
teur de reprogrammer un traitement pour en comprendre les différentes étapes.
L’existence de cette activité est justifiée par les perspectives que donnent l’usage de
bibliothèques élaborées. C’est une approche complémentaire de l’approche princi-
pale choisie dans ce chapitre où les traitements sont le plus souvent expliqués de
manière élémentaire.
1. Pour que cette activité soit possible, il est nécessaire que la bibliothèque Panda
soit installée.
2. L’exécution produit un graphique montrant l’évolution annuelle du paramètre de
pollution choisi. Il n’est pas utile de rentrer dans le détail de la présentation des struc-
tures de données sous-jacentes à la bibliothèque. Il suffit d’admettre que la lecture
du csv charge tout le contenu du tableau dans la variable sd. La notation
permet d’accéder directement au contenu de la colonne dont pm10 est l’intitulé.
3. La modification du programme peut se faire simplement par imitation, en rempla-
çant le nom du champ étudié par un autre. Les activités suivantes permettent de
réaliser sur ces mêmes données des traitements plus spécifiques en les program-
mant de manière plus détaillée et élémentaire.
Les activités 10 à 12 de ce chapitre portent sur le même jeu de données. Pour permettre
de les réaliser de manière indépendante, les données intermédiaires sont fournies.
Cette activité est guidée pour permettre à tous les élèves de dépasser facilement
les obstacles techniques liés à la manipulation de fichiers depuis un programme et
au traitement des chaines de caractères à décomposer pour retrouver les valeurs
de chaque champ.
1. Cette question d’observation permet de constater ce que fait l’exécution du
programme dans sa version initiale. Il est utile de faire remarquer que cette exécu-
tion est quasi instantanée alors que le fichier analysé comporte 476 486 lignes.
57
La difficulté de cette activité réside dans le fait de manipuler deux fichiers dans le
même programme : un fichier de données à lire et un extrait du premier fichier
fabriqué par ce programme.
Il convient d’être vigilant pour ne pas mélanger les deux traitements sachant que
les instructions se ressemblent. En particulier, l’instruction d’ouverture d’un fichier
en lecture ne diffère de l’ouverture en écriture que par le caractère « r » (pour read :
lecture) ou « w » (pour write : écriture).
1. Il est proposé de partir d’un programme existant, pour ne pas tout avoir à réécrire.
En effet, le filtrage dans un fichier des informations concernant une commune néces-
site exactement les mêmes traitements pour lire ligne à ligne le fichier d’origine.
2. Seul change la partie du traitement, où l’on remplace le calcul de la somme des
indices par la réécriture dans un nouveau fichier de la ligne lue quand elle concerne
la commune choisie.
58
3. Pour écrire la ligne d’entête dans le nouveau fichier, il suffit d’identifier l’instruc-
tion qui a permis de lire cet entête dans le fichier d’origine.
4. À l’exécution, un nouveau fichier doit apparaître dans le dossier où a été exécuté
le programme et où figurait le fichier de données.
5. L’ouverture du fichier résultat permet de vérifier que son contenu est celui prévu,
à savoir l’ensemble des relevés journaliers uniquement pour la commune choisie. Il
doit donc contenir au maximum 366 lignes.
Le programme Python solution est le suivant et est disponible dans le fichier
Chap5_FiltreSaintDenis_Solution.py.
f1 = open("Chap5_indices_IDF_2017.csv", "r")
f2 = open("indicesSaintDenis.csv", "w")
entete = f1.readline()
f2.write(entete)
ligne = f1.readline()
while ligne != "":
date,ninsee,no2,o3,pm10 = ligne.split(",")
if ninsee == ‘93066’:
f2.write(ligne)
ligne = f1.readline()
f1.close()
f2.close()
Ce programme filtre bien dans le fichier initial contenant tous les relevés quotidiens
d’Île-de-France, uniquement les relevés concernant la commune de Saint-Denis pour
les réécrire dans un nouveau fichier nommé indicesSaintDenis.csv.
Le fichier de données de cette activité peut être soit celui fourni pour la commune de
Saint-Denis soit celui généré lors de l’activité 11 pour une commune au choix des élèves.
L’activité est progressive et permet de compléter le programme au fur et à mesure.
1. Le programme peut être construit en reprenant le programme donné à l’activité 10
à condition de bien modifier le nom du fichier à ouvrir en lecture. Il n’y a plus de condi-
tion à écrire sur le code INSEE, puisque le nouveau fichier de données ne contient
que les relevés d’une commune. Il faut à la place écrire une condition permettant de
tester le dépassement du seuil de pollution élevée aux particules fines.
2. La règle indiquée se traduit par une nouvelle condition portant sur les trois indices
de pollution.
3. Le comptage des jours où la qualité de l’air a été très faible, faible, moyenne, élevée
ou très élevée nécessite l’usage d’autant de variables pour mémoriser ces nombres
au fur et à mesure de la lecture du fichier.
4. L’affichage du résultat sous forme de tableau nécessite de formater précisément
les valeurs avec un nombre de caractères précis, pour que les alignements soient
corrects. Les informations techniques peuvent être données aux élèves pour éviter
toute difficulté technique inutile.
59
Analyse et débats
La découverte de la richesse des données collectées et disponibles et de la puis-
sance des traitements possibles amène inéluctablement à se poser la question de
leur usage. Les débats sur l’usage des traitements massifs de données peuvent
être menées de manière plus éclairée après avoir découvert ce que l’on peut en
programmer.
60
62
CHAPITRE 6
Cartographie et localisation
Introduction
Cette thématique est paradoxalement entrée dans le quotidien des élèves à travers
les applications de cartographie et localisation sur smartphone, mais reste large-
ment ignorée par rapport à ses principes de fonctionnement, que ce soit la trilaté-
ration ou le calcul du plus court chemin. L’ambition des activités de ce chapitre est
donc de faire découvrir « comment ça marche » au plus grand nombre, voire d’ins-
pirer des vocations pour celles et ceux qui souhaiteraient poursuivre par des études
plus spécialisées en géographie et en informatique afin de se diriger vers les métiers
de la géomatique.
Activités de découverte
Toutes les activités de découverte de ce chapitre, hormis la première, sont en mode
débranché. Il est en effet indispensable de s’approprier la cartographie en manipu-
lant des cartes avant de tenter de les programmer.
63
Doc. 3 Carte de randonnée du Cap-Sizun, Finistère (1/50 000) Doc. 4 Carte d’état major des environs de Plogoff, Finistère (1/25 000)
Cours
Dans ce chapitre, le cours se concentre sur les fondamentaux indispensables pour
comprendre le fonctionnement de la cartographie et de la localisation.
La notion d’échelle est un obstacle courant. On insiste donc sur l’interprétation souvent
erronée des termes « petite échelle » et « grande échelle ».
Les notions de carte matricielle ou vectorielle et de couche d’information sont indis-
pensables pour interpréter ce que l’on voit sur une carte numérique selon son échelle
(j activité 5).
On a choisi de donner une explication détaillée, pas à pas de l’algorithme du plus court
chemin, sur un exemple, car cet algorithme est réputé difficile. Il est inutile de vouloir
le formaliser. On le comprend mieux en le testant. La subtilité de cet algorithme réside
65
Activités d’application
Les activités proposées sont de diverses natures : activité débranchée pour un calcul
de plus court chemin, activités avec des systèmes d’information géographique (SIG)
et activités de programmation.
L’objectif de cette activité est d’observer un SIG pour en déduire la nature des infor-
mations enregistrées. Géoportail est le site de cartographie de l’IGN qui propose des
cartographies matricielles de grande qualité.
1. On choisit les fonds correspondant aux cartes papier grand
public.
2. Il y a sept fonds de carte différents. Chaque fonds de carte est utilisé pour plusieurs
échelles consécutives. On distingue facilement à chaque zoom s’il y a changement
de fond de carte ou simplement agrandissement du fond utilisé. On peut donc bien
changer de niveau de zoom sans changer de fonds de carte.
3. Les changements de fonds de carte s’effectuent grâce au menu de gauche
.
4. Pour superposer deux fonds de carte, il faut régler l’opacité de la carte située au
niveau supérieur pour « voir à travers » la carte située au niveau inférieur.
66
Ce réglage est accessible dans les propriétés de la carte en cours dans le bandeau
d’outils de droite.
5. Parmi les données thématiques, la plupart des couches sont vectorielles et peuvent
être superposées à la carte courante.
L’objectif de cette activité est d’observer les critères utilisés pour calculer les itiné-
raires. OpenStreetMap propose plusieurs outils de recherche d’itinéraires adaptés
au mode de déplacement (à pied, en vélo, en voiture).
1. La recherche d’itinéraire tient compte des caractéristiques des voies j Doc. 6
page 116.
2. On ne s’étonne donc pas que l’itinéraire en voiture soit très différent de celui proposé
aux cyclistes ou aux piétons.
3. En déplaçant les curseurs pour rechercher des trajets d’une heure, on peut noter
que pour des routes départementales en voiture, une vitesse moyenne de 60 km/h
est retenue. Pour des trajets pédestres, la vitesse de référence utilisée est de 5 km/h.
Activité 7. À bicyclette…
j Activité débranchée.
j Durée estimée : 30 à 45 minutes.
On peut bien sûr adapter cette activité en la transposant dans la région de son choix
et en proposant des itinéraires plus ou moins longs. Il faut dans ce cas vérifier que
l’on dispose bien des annotations kilométriques le long de toutes les portions de
route à étudier.
Partie 1. L’aller…
1. En empruntant l’itinéraire qui semble le plus direct par Nontron, Saint Pardoux-la-
Rivière et Jumilhac-le-Grand, le kilométrage à parcourir est de 88 km. Rien ne permet
d’affirmer que c’est le plus court. La difficulté est qu’il y a beaucoup de variantes
possibles qui se croisent, ce qui fait beaucoup d’itinéraires à comparer.
2. L’algorithme du plus court chemin (voir manuel élève, page 117) est effectivement
une méthode systématique permettant de tester tous les itinéraires et de trouver le
plus court, à condition de construire le graphe des distances.
C
36
27
N 29
22 34 S
32
M 20 T
16
19 26 21 L
B
67
Cette activité a pour objectif de présenter un format usuel de trace d’itinéraire pouvant
être enregistrée sur un smartphone et de montrer un moyen simple d’en obtenir une
visualisation avec un système d’information géographique.
1. L’observation du début du fichier montre un format répétitif avec des balises
ressemblant à du HTML. C’est en réalité une variante de XML qui est également un
langage de balises.
La balise <trkpt lat="47.7050573" lon="-3.34987"> contient des informations
de latitude et longitude.
La balise <time>2019-01-01T10:25:21Z</time> contient la date et l’heure.
Plus de 3 000 enregistrement de cette forme sont présents dans le fichier qui est
destiné à être lu automatiquement par un programme spécialisé.
2. La fonction de Géoportail permet d’importer et de visualiser directement
la trace. Elle s’affiche comme une couche d’informations supplémentaires super-
posée à la carte.
3. En analysant en détail ce parcours, on peut effectivement en retrouver les difficultés
qui sont dans la partie Est du parcours : un chemin obstrué près du lieu-dit Kerfaut
où le randonneur a dû faire demi-tour, et un ruisseau tout proche qu’il a longé dans
les deux directions avant de trouver le meilleur endroit pour le franchir.
On peut conclure de cette activité que l’enregistrement de traces est très indiscrète
car elle permet très précisément de positionner le porteur du GPS.
Pistes d’activités.
Des activités analogues peuvent être réalisées pour faire du « GPS drawing », activité
à la mode consistant à parcourir en ville un itinéraire représentant un dessin parti-
culier, à afficher ensuite sur un fond de carte.
Analyse et débats
La compréhension de la nature des informations mémorisées en cartographie,
ainsi que des formats de données de localisation pouvant être enregistrées par ou
à l’insu de l’utilisateur, permettent d’aborder les enjeux de la localisation avec des
arguments sérieux.
72
CHAPITRE 7
Informatique embarquée et objets connectés
Introduction
L’objectif de ce chapitre est de faire découvrir aux élèves que les systèmes embar-
qués et les objets connectés reposent sur la même science informatique que les
programmes de calcul ou de traitement d’informations en général. La seule parti-
cularité notable des programmes utilisés est qu’ils ne s’arrêtent pas et qu’ils intera-
gissent avec le monde réel par des dispositifs spécifiques : capteurs et actionneurs.
Un enjeu didactique est de permettre aux élèves de faire la synthèse entre les systèmes
programmables étudiés en technologie et les algorithmes étudiés en mathématiques
au collège. Les enjeux liés à la prolifération massive des objets connectés pourront
alors être abordés en ayant compris leur nature et leurs principes de fonctionnement.
Activités de découverte
Les activités de découverte, à l’exception de la première destinée à être réalisée en
autonomie, sont à effectuer sans ordinateur, en mode débranché, et permettent
d’observer, de penser les systèmes avant de se plonger dans leur programmation.
Cette activité de découverte autonome permet aux élèves de consulter un site anglais
fait par des enseignants anglais à destination de leurs élèves, pour expliquer la mise
en œuvre de la carte micro:bit développée spécifiquement pour l’enseignement en
Grande-Bretagne.
Le niveau de langue utilisé élémentaire le rend accessible, y compris pour des élèves
ayant un niveau faible en anglais. L’humour, anglais bien sûr, utilisé dans la bande
dessinée p. 134 accompagne bien le message pédagogique.
L’objectif de l’activité est de découvrir le traditionnel "Hello World" qui est un élément
de la culture informatique, puis de faire constater que tous les programmes proposés
sont écrits sur le même schéma avec l’instruction : while True.
Cette découverte permettra ensuite de construire l’algorithme fondamental de ce
chapitre.
73
74
Cours
Le cours est construit de manière à apporter les connaissances nécessaires pour
que les élèves puissent acquérir les capacités attendues : identifier un algorithme de
contrôle, écrire des programmes simples d’acquisition et de commande...
Il n’est question que d’information : on évite donc de se préoccuper des systèmes
complexes pluri-techniques et de leurs chaînes d’énergie ou de matière pour se
consacrer exclusivement à la manière dont l’information est traitée dans un système
embarqué ou un objet connecté.
L’architecture d’un système embarqué est d’abord décrite, sans interface homme
machine, avec ses capteurs, ses actionneurs et son système informatique de contrôle.
La programmation d’un système embarqué est présentée avec son algorithme fonda-
mental : le caractère non terminant des algorithmes de contrôle peut constituer un
obstacle pour les élèves. En effet, ils ont pu rencontrer au collège des définitions d’al-
gorithmes insistant sur leur exécution finie. On a pris soin au premier chapitre, dans
la définition d’un algorithme, de ne pas indiquer l’obligation de terminaison qui est
une spécificité des algorithmes utilisés en mathématiques.
Actuellement, avec la prolifération des systèmes embarqués et objets connectés, la
majorité des programmes en service sont non-terminants.
Quelques éléments sont donnés pour comprendre le passage d’un signal du monde
physique au monde numérique avec la quantification et l’échantillonnage. Cela
permet de donner du sens aux caractéristiques de périphériques comme les cartes
son par exemple.
On montre finalement comment les interfaces homme-machine complètent la structure
d’un système embarqué et permettent aux humains de contrôler les objets connectés.
Activités d’application
Les activités sont réparties en deux grandes catégories : les premières, en mode
débranché, permettent d’identifier les algorithmes de contrôle dans des dispositifs
divers : la voiture autonome, la gyroroue ou un robot mobile.
Les activités de programmation sont ensuite proposées pour mise en œuvre directe
avec la carte micro:bit programmée en micro-Python. Le choix de ce dispositif
est fait pour simplifier la mise en place pédagogique et pouvoir se concentrer sur
l’essentiel « Écrire un programme simple d’acquisition et de commande » sans
devoir se préoccuper de considérations liées à l’électronique ou à la mécanique.
La carte BBC micro:bit est le dispositif embarqué le plus simple comportant un
processeur programmable en Python et suffisamment de capteurs et d’actionneurs
déjà présents sur la carte.
76
L’objectif de cette activité est d’identifier quelques algorithmes de contrôle et les prin-
cipaux capteurs et actionneurs d’une voiture autonome.
Vue la complexité du système, on ne cherche pas l’exhaustivité. Il s’agit d’un travail
sur document qu’il s’agit de décoder avec le vocabulaire des systèmes embarqués.
1. Dans le texte sont cités les capteurs suivants :
huit caméras panoramiques, douze capteurs ultrasons, radar avant, sonar.
On peut supposer que la voiture dispose aussi de capteurs de positionnement GPS,
de vitesse, d’accélération et d’une boussole.
2. Les actionneurs ne sont pas cités dans le texte. Sont nécessaires les commandes
du moteur, de la direction, le frein, ainsi que tous les avertisseurs sonores ou lumi-
neux (phares, clignotants, feu de recul...).
3. Les éléments d’interface comportent divers écrans sur lesquels sont visualisés à
la fois la cartographie du lieu et les éléments significatifs reconnus dans l’environ-
nement immédiat de la voiture (autre véhicules, piétons...).
4. Les algorithmes de contrôle cités ne sont pas vraiment détaillés. On peut cepen-
dant identifier quelques fonctions particulières au-delà du « pilotage automatique » :
adaptation de la vitesse au trafic, assistance au stationnement, changement de voie,
entrée et sortie de garage...
Cette activité peut être prolongée avec l’enjeu sur la responsabilité des systèmes
embarqués.
77
Activité 7. La gyroroue
j Activité débranchée.
j Durée estimée : 15 à 30 minutes.
Les dispositifs autostabilisés tels que la gyroroue existent depuis que les cartes à
microcontrôleur sont assez performantes pour corriger la vitesse du moteur suffisam-
ment rapidement pour que la gyroroue se positionne toujours « sous » son conduc-
teur. L’équilibre est dynamique et repose sur un algorithme de contrôle qui adapte
en permanence la vitesse du moteur pour conserver l’équilibre.
L’objectif de cette activité est d’écrire une version élémentaire de cet algorithme de
contrôle.
78
L’objectif de cette activité est d’utiliser l’accéléromètre pour en démontrer les usages
possibles et comprendre ainsi son usage dans un smartphone.
L’activité nécessite un rappel de physique sur g, l’accélération de la pesanteur, pour
comprendre qu’au repos, posé à l’horizontale, le capteur renvoie la valeur 1 000 pour
l’accélération verticale et 0 sur les deux autres axes.
Le premier programme a pour objectif de visualiser les valeurs renvoyées par
l’accéléromètre quand on le penche vers la droite ou vers la gauche.
Le programme est donné dans le fichier corrigé Chap7_Act9_Niveau_Solution_
Question1.py
from microbit import *
while True:
ax = accelerometer.get_x()
display.scroll(str(ax))
sleep(100)
À l’exécution, on peut observer une valeur nulle au départ, qui augmente vers 1 000
quand on penche la carte vers la droite, et qui diminue jusqu’à -1 000 quand on la
penche vers la gauche.
2. La 2e question consiste à réaliser un « niveau à bulle » qui allume une des DEL du
tableau selon l’inclinaison de la carte.
Il y a beaucoup de manières de réaliser ce traitement avec des conditionnelles pour
choisir quelle DEL afficher en fonctions des valeurs d’accélération mesurées.
La solution donnée dans le fichier corrigé Chap7_Act9_Niveau_Solution_Question2.py
utilise des calculs de min et de max pour ramener les valeurs entre – 50 et 50, puis
dans l’intervalle entre 0 et 4 pour calculer l’indice de la DEL à allumer.
from microbit import *
while True:
x = max(0, min(4, 2-accelerometer.get_x()//25))
y = max(0, min(4, 2-accelerometer.get_y()//25))
display.clear()
display.set_pixel(x, y, 9)
sleep(10)
À l’exécution de ce programme, la carte allume une des DEL selon son inclinaison.
80
81
Analyse et débats
L’importance des enjeux des systèmes embarqués et des objets connectés tient à la
fois à leur grand nombre et à la place qu’ils occupent au cœur de nombreux systèmes.
83
CHAPITRE 8
Photographie numérique
Introduction
Ce domaine est caractéristique de ce que l’informatique a révolutionné dans le traite-
ment des informations en les numérisant. Pour comprendre la photographie numé-
rique, il faut d’abord découvrir les principes de codage des couleurs et des images
numériques. La compréhension de la manière dont sont enregistrées les images et
de la facilité de leur manipulation permet d’éclairer les enjeux sociétaux multiples
de la diffusion massive de la photographie numérique.
Activités de découverte
Les activités proposées alternent des activités sur ordinateur avec un logiciel de
retouche d’image et des activités débranchées. Ces premières découvertes sont
nécessaires avant de se consacrer à la manipulation d’images par programme.
85
L’objectif de cette activité d’observation est de donner à voir, pour une image très
simple, la manière dont les informations sont réellement enregistrées sur ordinateur.
Partie 1. Image noir & blanc
Pour que le codage d’une image fabriquée par un logiciel de traitement d’images
soit compréhensible par un lecteur humain, il faut que sa taille soit limitée et que le
format choisi soit compréhensible et donc le moins compressé possible.
86
C’est la raison pour laquelle on a choisi dans cette activité de faire créer une image
de taille 20 × 20 et de la faire enregistrer au format PBM Ascii.
À ces conditions, on peut observer, avec un simple éditeur de texte, le codage de
l’image et identifier les nombres 20 et 20 ainsi que les 400 chiffres 0 ou 1 qui codent
les points de l’image.
Partie 2. Photo noir & blanc
Si on enregistre une photographie couleur avec ce même format PBM Ascii, on ne
conserve que des pixels noirs et blancs car c’est tout ce que ce format permet de
mémoriser.
En l’ouvrant avec un logiciel d’aperçu ou de visualisation, on constate que la photo-
graphie est passée en noir et blanc.
En l’ouvrant avec un éditeur de texte, on peut repérer au début du fichier la largeur
et la hauteur de l’image, puis une suite de 0 et de 1, qui pourrait être très longue s’il
y avait plusieurs millions de pixels dans la photographie utilisée (largeur × hauteur).
L’objectif de l’activité est de faire découvrir le rapport entre la définition d’une image
(sa largeur × sa hauteur) et la taille du fichier.
Le déroulement de l’activité est guidé pour obtenir une série de 5 fichiers de défini-
tion décroissante obtenue en divisant à chaque fois par deux la largeur de l’image.
Même si c’est un peu fastidieux, il faut à chaque fois repartir de la dernière image
exportée pour fabriquer la suivante.
Remarque : on n’utilisera pas le format interne de GIMP car celui-ci permet de
mémoriser les versions successives en cours d’édition, ce qui perturbe l’analyse en
terme de taille de fichier.
Quand on observe ensuite les tailles de fichier, on constate que les tailles des fichiers
sont approximativement divisées par quatre à chaque étape. Le rapport est approxi-
matif car la compression JPG utilisée est plus ou moins efficace selon les photogra-
phies utilisées et leur définition.
Quand on utilise un outil de visualisation d’images à l’écran, on ne voit aucune diffé-
rence entre les premières images jusqu’à ce que la largeur de l’image soit inférieure
à la taille de l’écran. Ensuite, on peut constater une perte de précision due au fait
qu’un pixel de l’image se trouve répliqué sur plusieurs pixels de l’écran entraînant
un effet de « pixellisation ».
La conclusion de l’activité est qu’il est utile de redimensionner les photographies
destinées à un usage à l’écran (web ou diaporama) à une définition juste supérieure
à la résolution de l’écran et que cela permet réduire la taille des fichiers d’un facteur
important (16 fois plus petit si on a divisé par quatre la largeur).
87
Activités d’application
Une première activité sans ordinateur permet de revenir sur les calculs de définition
et de résolution déjà explorés avec l’activité 4.
Les activités suivantes se partagent entre activités « numériques » pour traiter des
images au niveau utilisateur avec des logiciels spécifiques, et activités « informa-
tiques » où il est question de traiter des images par un programme.
L’objectif de cette activité est de conclure le travail engagé avec l’activité 4 en utilisant
maintenant le vocabulaire spécialisé : pixel, définition, résolution.
Une des difficultés est justement d’employer correctement ce vocabulaire, sachant
que les notions de définition et de résolution sont souvent confondues.
Partie 1. Affichage des photographies à l’écran
1. Avec 3 octets par pixel pour une image de définition 4 096 × 3 072, la taille du fichier
non compressé au format PPM est de 37,75 Mo.
2. En divisant chacune de ses dimensions par quatre, on peut obtenir une image de
définition 1 024 × 768 de taille : 2,36 Mo. Le facteur de réduction est de : 16.
Partie 2. Impression des photographies
1. Pour utiliser au mieux une imprimante de résolution 300 ppp, on peut imprimer
la photo à une dimension maximale en pouces de : 4 096 × 3 072 soit 13,6 × 10,24
300 300
pouces, soit 34,6 × 26 cm. C’est donc suffisant pour impression sur une feuille A4
paysage de 29,7 cm × 21 cm.
Attention : la photographie est en format 4/3 donc ne pourra être imprimé au plus
que sur un format 28 × 21 cm.
88
Cette activité a pour objectif d’explorer les métadonnées associées à une photogra-
phie et pourra être poursuivie par l’étude de l’enjeu sur le droit à l’image.
Sans utiliser de logiciel spécifique, en explorant seulement les propriétés du fichier,
on peut sans difficulté obtenir largeur, hauteur, date et heure du cliché, marque et
modèle de l’appareil photo, conditions d’exposition et de prise de vue et localisa-
tion géographique de la prise de vue si ces informations ont bien été enregistrées et
n’ont pas été effacées.
Remarque : avec l’image fournie du chat (Chap8_chat.jpg) d’un des auteurs de ce
manuel, prise dans son jardin, on comprendra pourquoi le lieu de prise de vue a été
effacé des métadonnées : pour des raisons de confidentialité ! Avec des photogra-
phies d’élèves prises avec leur smartphone, beaucoup d’informations peuvent être
disponibles.
L’objectif de cette activité est de mieux comprendre le codage des couleurs par la
manipulation des outils du logiciel GIMP. Il suffit de cliquer sur la couleur actuelle
pour accéder à l’outil de modification de couleur.
Partie 1. Nouvelle image
1. En mode RGB (Rouge / Vert / Bleu) la synthèse des couleurs est additive.
Par exemple, il faut déplacer au maximum les curseurs vert et rouge pour obtenir
du jaune.
2. Avec les trois couleurs au maximum, on obtient le blanc.
Avec les trois couleurs au minimum, on obtient du noir.
Avec les trois couleurs à la même valeur, on obtient toujours du gris variant du noir
au blanc.
3. Avec le codage HSV (qui est une variante de TSL : Teinte Saturation Lumière) utilisé
par GIMP, si on positionne la saturation S et la valeur V à 100 %, on peut faire varier
la teinte avec le curseur H. La teinte varie de 0 à 360° sur le cercle chromatique du
rouge au rouge en passant par toutes les couleurs de l’arc-en-ciel : rouge, orange,
jaune, vert, bleu, indigo, violet.
89
90
f = open("Chap8_smiley.pbm", "r")
g = open("Chap8_negatif.pbm", "w")
entete = f.readline()
g.write(entete)
definition = f.readline()
g.write(definition)
largeur,hauteur = definition.split(" ")
largeur = int(largeur)
hauteur = int(hauteur)
for lig in range(hauteur):
for col in range(largeur):
pix = f.read(1)
if pix == '0':
g.write('1')
else:
g.write('0')
f.read(1)
g.write('\n')
f.close()
g.close()
3. Pour appliquer le traitement à un autre fichier, il suffit de modifier les premières
lignes du programme avec les ouvertures des fichiers :
f = open("Chap8_chatnoir.pbm", "r")
g = open("Chap8_chatblanc.pbm", "w")
L’exécution de ce programme modifié crée un nouveau fichier Chap8_chatblanc.pbm
avec l’image du chat en négatif.
La structure générale du programme est donnée car c’est toujours la même pour
lire un fichier d’un format donné. Il est recommandé de ne pas la modifier, car s’il
manque une partie du traitement ou si on ne lit pas correctement la largeur et la
hauteur, la suite de la lecture va inévitablement provoquer une erreur d’exécution si
on tente de lire un autre caractère alors que le fichier est déjà terminé.
Cette activité utilise PIL, qui est une bibliothèque Python spécialisée dans le trai-
tement d’images. Il convient évidemment de vérifier au préalable que cette biblio-
thèque a bien été installée.
Cette bibliothèque permet de simplifier la lecture d’une image en proposant des fonc-
tions d’accès aux images compatibles avec différents formats, dont le JPG, pour ainsi
traiter des images en couleurs.
Cela ne modifie pas beaucoup l’algorithme général de traitement d’une image qui
contient toujours l’ouverture de l’image, l’obtention de sa largeur et de sa hauteur, puis
91
92
Analyse et débats
Copier à coût quasiment nul et pouvoir modifier une information facilement sont
deux caractéristiques du passage au numérique qui ont fortement impacté la photo-
graphie. C’est une partie des causes des enjeux actuels.
Poser les enjeux nécessite des réflexions sur le long terme à la fois pour les ques-
tions de droit à l’image et pour la question spécifique de l’archivage.
Cette dernière activité de traitement d’image constitue un défi un peu plus difficile
dans la mesure où le traitement nécessite un parcours plus complexe des pixels de
l’image. En effet, pour détecter les contours, pour chaque pixel de l’image à calculer,
il faut parcourir les huit voisins de l’image donnée pour décider si un contour doit
être marqué à ce point-là.
1. La formule de distance proposée entre deux pixels calcule la somme des carrés
des différences de leurs composantes. Il est peu probable qu’un élève fasse remar-
quer que cette distance n’est pas euclidienne, ce qui n’a aucune importance dans
cette application. Il aurait été inutile de tout convertir en flottant pour calculer une
racine carrée !
2. Le programme de l’activité 9 peut être utilisé comme base de parcours de l’image.
Il faut alors lui ajouter une partie calculant, pour chaque pixel, la somme des distances
à ses huit voisins.
Une solution est proposée dans le fichier : Chap8_Act10_Contours_Solution.py.
def dist(r1,g1,b1, r2,g2,b2):
return((r2-r1)**2 + (g2-g1)**2 + (b2-b1)**2)
from PIL import Image
im = Image.open('Chap8_Sauzon.jpg')
largeur = im.size[0]
hauteur = im.size[1]
im2 = Image.new('RGB', (largeur,hauteur))
print(largeur,hauteur)
for lig in range(1, hauteur-1):
for col in range(1, largeur-1):
(r,g,b) = im.getpixel((col,lig))
d = 0
for i in range(-1,2):
for j in range (-1,2):
(rv,gv,bv) = im.getpixel((col+i,lig+j))
d += dist(r,g,b,rv,gv,bv)
if d > 2000:
im2.putpixel((col,lig), (0,0,0))
else:
im2.putpixel((col,lig), (255,255,255))
im2.save('Chap8_SauzonContours.jpg')
94
La double boucle notée en gras permet d’énumérer les 9 pixels voisins en ajoutant
– 1, 0 ou 1 aux indices de ligne et de colonne du pixel à étudier et d’additionner leurs
distances de couleur avec ce pixel.
Au lieu de tester la moyenne des 8 par rapport au seuil de 250, on a simplifié en
comparant directement la somme à 2 000.
Selon le résultat de la comparaison, un pixel noir (0,0,0) ou un pixel blanc (255,255,255)
est noté dans l’image résultat.
3. Ce programme peut bien sûr être utilisé pour traiter des images au choix.
Selon le résultat, il peut être utile de régler la valeur de seuil de détection de contours.
95
Réalisation :
Fabrication : Jean-Philippe Dore