109
Ensemble des ressources à consulter sur le site académique Planète MATHS (http://www.ac-grenoble.fr/disciplines/maths/) Formation Algorithmique 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1

Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Ensemble des ressources à consulter sur le site académique Planète MATHS

(http://www.ac-grenoble.fr/disciplines/maths/)

Formation Algorithmique 2015-2016

Académie de Grenoble

En collaboration avec le groupe IREM de Grenoble

1

Page 2: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

La formation des professeurs (Mathématiques - Technologie)

2

Mise en forme du diaporama Karine.Bethenod

Page 3: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Planification du présentiel (6h) : •Présentation des programmes •Notions d’algorithmique, illustrations :

algorithmique débranchée petits exemples en Scratch

•Un projet disciplinaire : création d’un jeu de calcul mental. •Présentation d’un projet bi-disciplinaire, maths-technologie

3

Page 4: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Pour revenir au sommaire interactif, il vous suffit de cliquer sur l’icône

4

Ce diaporama est assorti d’autres fichiers dont des petits fichiers Scratch à ouvrir et à compléter. Ces fichiers permettent de tester en direct les concepts introduits. A télécharger sur le site Planète maths de l’académie de Grenoble, ressource 517

Page 5: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Sommaire interactif: •Cadre institutionnel:

Objectifs et modalités dans les programmes au lycée Techno/maths DNB

• Algorithmique : introduction algorithmique débranchée Structures algorithmiques

•Mener une activité pédagogique Conception tenue évaluation

Cliquer directement sur la section souhaitée

5

Page 6: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Enseigner l’algorithmique et la programmation au collège

6

Académie de Grenoble Printemps 2016 Journées de formation au numérique

IA-IPR Maths-Technologie

Diaporama 1

Page 7: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

7

■ Buts généraux ■ Apporter les clés de décryptage d’un monde numérique en évolution constante

■ Pratiquer des langages informatiques

■ Mais ni former des experts en informatique, ni maîtriser les langages informatiques

[L’élève] sait que des langages informatiques sont utilisés pour programmer des outils numériques et réaliser des traitements automatiques de données. Il connaît les principes de base de l’algorithmique et de la conception des programmes informatiques. Il les met en œuvre pour créer des applications simples.

Page 8: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Objectifs

■Objectifs généraux

8

■Acquérir des méthodes de programmation

■Développer des compétences

■Mettre en place certaines modalités d’apprentissage

Page 9: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Objectifs Objectif1 : Acquérir des méthodes de programmation

Des méthodes qui construisent la pensée algorithmique

9

■ la programmation événementielle :

concevoir des séquences d’instructions déclenchées par un événement (appui d’une touche, clic de souris, son reçu par le micro, mais aussi interaction entre les « lutins » ou l’arrière-plan), prévoir de l’interactivité avec l’utilisateur

■ s’initier à la programmation parallèle : déclenchement par le même événement de deux ou plusieurs séquences d’instructions

■ appréhender la temporalité du déroulement d’un programme, avec un rôle particulier de la variable informatique, la possibilité d’échanger des informations entre objets pour scénariser un processus

Page 10: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Objectifs

■ décomposition : analyser un problème complique, le découper en sous-problèmes, en sous-tâches

10

Objectif2 : Développer des compétences spécifiques

■ reconnaissance de schémas : reconnaître des schémas, des configurations, des invariants, des répétitions, mettre en évidence des

interactions

■ généralisation et abstraction : repérer les enchaînements logiques et les traduire en instructions conditionnelles,

traduire les schémas récurrents en boucles, concevoir des méthodes liées à des objets qui traduisent le comportement attendu

■ conception d’algorithmes : écrire des solutions modulaires à un problème donné, réutiliser des algorithmes déjà

programmés

Page 11: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Objectifs

■ une démarche de projet active et collaborative : établissement d’objectifs partagés et répartition des tâches, communication entre élèves contributeurs d'un même projet

11

Objectif3 : Mettre en place des modalités d’apprentissages

■ une démarche de création: réalisation de productions collectives (programmes, applications, animations, etc.), au cours desquelles les élèves développent leur autonomie, leur créativité et leur imagination, mais aussi le sens du travail collaboratif

■ une démarche interdisciplinaire : favoriser la mise en œuvre de diverses activités de création numérique, en particulier dans le cadre des enseignements complémentaires

Page 12: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Modalités- Comment faire ?

■Mettre les élèves en activité

12

■ pas un cours magistral, pas de chapitres Les boucles, puis Les conditionnelles, etc.

■ se fixer des objectifs clairs et explicités au début de chaque séance

■ réserver l’essentiel du temps à une activité autonome des élèves

■ prévoir une courte institutionnalisation des concepts, une récapitulation en fin de chaque séance

■ leur laisser une part importante d’initiative dans le déroulé d’une séquence

Page 13: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

■Mettre en œuvre une pédagogie de projet

13

■ une première séance propose une activité, dont le professeur a déterminé les objectifs de formation, les concepts nouveaux qui devront être installés

■ une deuxième séance permet à chaque élève de développer son programme dans les directions qu’il aura choisies lui-même, grâce éventuellement à un outillage du professeur

■ une troisième séance permet la finalisation des projets, une mise en commun des concepts et techniques utilisés

■ une valorisation de chaque production, sans distinction de niveau d’expertise, peut être envisagée

Modalités- Comment faire ?

Page 14: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

■Mettre en œuvre la différenciation pédagogique

14

■ les nouveaux programmes sont des programmes de cycle

il s’agit d’opérationnaliser l’acquisition par chaque élève des attendus du socle : amener chaque élève à la meilleure maîtrise possible de tous ces attendus, dans un parcours de formation qui prend en compte ses acquis et ses marges de progression

■ la différenciation ne saurait se réduire à de la remédiation…

■ accompagner chaque élève, en permettant aux meilleurs de construire des méthodes expertes, en conduisant les élèves les plus en difficulté à une maîtrise suffisante des attendus pour valider l’acquisition du socle

Modalités- Comment faire ?

■ par exemples : o prévoir des « défis » o analyser les blocs ou les scripts préparés par le professeur o guider l’élève dans la définition de son projet à partir de l’activité commune,

que ce soit pour l’enrichir ou en réduire les objectifs

Page 15: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

L’algorithmique dans les programmes Maths du collège

■Programme du cycle 3 en maths: thème Espace et géométrie

■ Attendu :

■ Attendu :

15

(se) repérer et (se) déplacer dans l'espace en utilisant ou en élaborant des représentations Programmer les déplacements d’un robot ou ceux d’un personnage sur un écran – Travailler […] avec de nouvelles ressources comme les systèmes d’information géographique, des logiciels d’initiation à la programmation...

reconnaître, nommer, décrire, reproduire, représenter, construire quelques solides et figures géométriques Réaliser une figure simple ou une figure composée de figures simples à l’aide d’un logiciel

Page 16: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Apprentissages au cycle 3 ■Situations d’apprentissage en maths

16

■Objectifs d’apprentissage

s’initier, préparer le cycle 4 (on peut par exemple commencer à utiliser Scratch en 6e)

renforcer l’acquisition du repérage dans le plan

utiliser un nouvel outil de production de figures

■ travail débranché,

■ ou travail en ligne (par ex. code.org)

■ ou sur tablette (avec ScratchJr)

■ ou sur ordinateur (avec GeoTortue ou Scratch)

■ ou avec de petits robots

Page 17: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

L’algorithmique dans les programmes Maths du collège

■Programme du cycle 4 : thème Algorithmique et programmation

■ Attendu :

17

o écrire, mettre au point et exécuter un programme simple

o Décomposer un problème en sous-problèmes afin de structurer un programme ; reconnaître des

schémas

o Écrire, mettre au point (tester, corriger) et exécuter un programme en réponse à un problème donné

o Écrire un programme dans lequel des actions sont déclenchées par des événements extérieurs.

o Programmer des scripts se déroulant en parallèle

Page 18: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Apprentissages au cycle 4 ■Situations d’apprentissage en maths

18

■Objectifs d’apprentissage

on introduit des méthodes modernes de programmation (décrites ci-

dessus)

on favorise l’apprentissage dans des contextes ludiques, non liés à la

discipline (pour les maths)

on développe la pensée algorithmique et des compétences décrites plus

haut pour l’ensemble des apprentissages, et en particulier celui des

mathématiques

■ travail sur ordinateur

Page 19: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

19

Page 20: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

L’algorithmique au lycée

■L’algorithmique et la programmation au lycée en mathématiques

20

■ L’algorithmique n’apparait pas comme une partie du programme, au même titre que l’analyse, la géométrie et les probabilités et statistiques

Les capacités attendues dans le domaine de l’algorithmique d’une part et du raisonnement d’autre part, sont transversales et doivent être développées à l’intérieur de chacune des trois parties.

(Programme de seconde, BO du 23 juillet 2009)

■ L’algorithmique est vue comme une sous-partie des mathématiques La démarche algorithmique est, depuis les origines, une composante essentielle de l’activité mathématique[…] L’algorithmique a une place naturelle dans tous les champs des mathématiques et les problèmes posés doivent être en relation avec les autres parties du programme.

(Programme de seconde, BO du 23 juillet 2009)

■ Les objectifs de l’enseignement sont identiques en seconde générale et technologique et dans le cycle terminal

■ L’introduction d’un enseignement de l’algorithmique et de la programmation au collège pose la question d’une évolution de ce programme

Page 21: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Algorithmique : comparaison

■Situations d’apprentissage en mathématiques

21

■Objectifs d’apprentissage

travail sur ordinateur, avec Scratch o travail sur papier

o utilisation de la calculatrice

o pratique de divers logiciels : souvent algobox, plus

rarement xcas, python ou scilab

– cycle 4 lycée

o contextes ludiques, non liés aux

mathématiques

oEffets secondaires positifs du développement de

la pensée algorithmique pour l’ensemble des

apprentissages, y compris celui des

mathématiques.

o contextes d’apprentissage liés à des notions du

programme de mathématiques

oPermet d’éclairer certaines notions

mathématiques, et de travailler la logique.

oIl s’agit de familiariser les élèves avec les grands

principes d’organisation d’un algorithme

o(extrait du programme de seconde)

Page 22: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

L’algorithmique ne fait pas seulement partie du programme

de Maths au collège …

22

Page 23: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

■En sciences et technologie, au cycle 3 :

23

L’algorithmique dans les programmes sciences et technologie du collège

■ Les élèves découvrent l’algorithme en utilisant des logiciels d’applications visuelles et

ludiques.

■ En CM1 CM2 […] L’usage des outils numériques est recommandé pour favoriser la

communication et la représentation des objets techniques.[…]

■ En sixième […] Les élèves sont progressivement mis en activité au sein d’une structure

informatique en réseau sollicitant le stockage des données partagées.

■ Question : ne s’agit-il pas plutôt ici d’utilisation des outils numériques ?

Page 24: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Comparaison maths et technologie

■En maths et technologie, au cycle 4, une proximité apparente

24

■ À première vue, une grande proximité, explicitement énoncée

« En outre, un enseignement d’informatique, est dispensé à la fois dans le cadre

des mathématiques et de la technologie ».

■ On retrouve un vocabulaire commun

o Notions d’algorithme et de programme

o Notion de variable informatique

o Déclenchement d’une action par un évènement, séquences d’instructions, boucles,

instructions conditionnelles

Page 25: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Comparaison maths et technologie

■Mais qui cache des philosophies différentes

25

■ En technologie, la programmation est envisagée dans le cadre d’objets

techniques, qu’il s’agit de comprendre, de modifier et de concevoir

■ L’algorithmique et la programmation sont envisagées dans le cadre plus général

de l’étude des systèmes informatiques

■ Il n’y a pas de langage fixé, mais au cas par cas, des instructions à entrer pour un

logiciel de CAO, pour programmer un robot…

Analyser le comportement attendu d’un système réel

commander un système réel et vérifier le comportement

attendu

Systèmes embarqués

Forme et transmission du signal

Capteur, actionneur, interface

Page 26: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Commentaires :

Autrement dit tout peut être introduit depuis la cinquième, la progressivité se joue sur la complexité des problèmes et des algorithmes abordés.

27

Page 27: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

28

Page 28: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

L’algorithmique au DNB dès 2017

29

Page 29: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

L’algorithmique au DNB

Information disponible sur Eduscol • Le deuxième jour : une nouvelle épreuve écrite

de 3 heures portant sur les programmes de mathématiques (2 heures) et de sciences expérimentales et de technologie (1 heure)

– Un thème en fil rouge – Des questions identifiées pour chaque discipline – Un exercice de programmation informatique, en lien

avec les nouveaux programmes de mathématiques et de technologie

30

Page 30: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

31

Un exemple de sujet de brevet : http://eduscol.education.fr/cid98239/dnb-2017.html#lien3

L’algorithmique au DNB dès 2017

Page 31: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Algorithmique au collège programmes septembre 2016

D’après le groupe algorithmique de l’IREM de Grenoble

Diaporama 2

32

Page 32: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

33

Page 33: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Commentaires

34

Page 34: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

35

Les premiers algorithmes… Al-Khwarizmi Ix ème siècle

Page 35: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

A quoi sert un algorithme ?

36

Page 36: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Algorithme déconnecté Une petite vidéo d’introduction : au primaire https://www.youtube.com/watch?v=RM9ME6Nb7bc

37

Page 37: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Algorithme déconnecté

Le crêpier psychorigide

38

Page 39: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Algorithme déconnecté

1er temps

1- En manipulant, trouvez la solution, testez

la plusieurs fois.

C’est à vous

40

Page 40: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Algorithme déconnecté

2ème temps

C’est à vous

41

Page 41: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Algorithme déconnecté

3ème temps

C’est à vous

42

Page 42: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Algorithme déconnecté

3ème temps

C’est à vous

43

Page 43: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Algorithme déconnecté

4ème temps

C’est à vous

44

Page 44: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Algorithme déconnecté

En français

amener la plus grande crêpe en haut de la pile en

retournant l’ensemble (avec celles dessus)

est ce que la face orange est dessous ?

oui retourner toute la pile

non retourner la crêpe sur elle même

retourner la totalité de la pile

recommencer en ignorant les crêpes rangées

En français…

Amener la plus grande crêpe en haut de la pile en retournant l’ensemble

Retourner la totalité de la pile

Recommencer en ignorant les crêpes rangées

45

Page 45: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Algorithme déconnecté

Avec un peu plus de rigueur…

Tant que toutes les crêpes ne sont pas rangées

sélectionner la plus grande crêpe non rangées en partant du bas

Retourner l’ensemble sur lui même

Retourner la totalité de la pile moins celles déjà rangées

Fin de tant que

46

Page 46: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Algorithme déconnecté Un autre exemple : cargo bot (jeu de Rui Viana ; adaptation B.Wack)

http://www-verimag.imag.fr/~wack/CargoBot/

Seul matériel nécessaire : étiquettes plastifiées et

gobelets plastiques !

Solution ? 47

Page 47: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Qu’est –ce qu’un algorithme ?

48

Pas de définition formelle, ou plutôt des dizaines de définitions distinctes

Mais toutes équivalentes entre elles (permettent de calculer les mêmes choses)

Toutes ces définitions sont basées sur des modèles simples, reposant sur quelques structures de base

Page 48: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Commentaires :

• On dit souvent qu'un algorithme est comme une recette de cuisine, qu'il s'agit de décomposer une procédure en étapes élémentaires, mais qu'est-ce qu'une étape élémentaire ?

• Fonctionnement différent de celui qu'on a habituellement en mathématiques, où justement on travaille sur des objets parfaitement définis

• Le plus important, c'est que toutes ces définitions correspondent à l'idée « intuitive » de ce qu'est une procédure automatisable

49

Page 49: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

50

• Pour écrire n'importe quel programme, il « suffit » de connaître très peu d’instructions !

Page 50: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

51

• Seulement quatre instructions…

Séquence

Variable

Condition

Boucle

Page 51: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Structures algorithmiques

52

Séquence

Boucle

Condition

Événement

Variable

Boucle conditionnelle

Ici on distingue boucle simple et boucle conditionnelle pour introduire progressivement les notions

L'utilisation d'événements est plutôt propre à certains langages de programmation, dont Scratch en particulier

L'ordre proposé ici pour faire découvrir ces notions n'est qu'indicatif et on peut en imaginer d'autres à condition d'adapter les activités d'introduction

Page 52: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Séquence d'instructions

53

Un algorithme consiste à décomposer un procédé en actions élémentaires ou instructions.

Une instruction modifie l'état de la machine

Modèle centré sur ce que la machine doit faire (mais il en existe d'autres)

Notion d’ordre dans les instructions

Page 53: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Commentaires :

• Intérêt de Scratch ici : il propose beaucoup d'instructions élémentaires qui permettent déjà d'écrire des programmes intéressants simplement en les enchaînant

• Il peut sembler trivial d'écrire un tel programme, mais pour des élèves débutants, n'oublier aucune instruction, tenir compte de l'ordre des instructions, etc. demande déjà un apprentissage.

• Il faut ajouter à cela la prise en main de Scratch lui-même

54

Page 54: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Activité de découverte

55

Donner une tâche simple mais dont la solution doit être décrite et suivie rigoureusement …

Un parcours dans un labyrinthe !

En profiter pour laisser jouer les élèves avec Scratch : cliquer sur les blocs pour les exécuter avant de faire construire un programme

Fichier Scratch n°1

Page 55: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Difficultés pour les élèves

56

Écrire le programme VS l'exécuter

(différence entre une machine programmée et une machine commandée)

Rien ne doit être implicite dans un algorithme

Où se situe l'erreur dans une suite d'instructions incorrectes ?

Page 56: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Commentaires :

Être clair sur l'objectif de l'activité précédente : ce qu'on veut à la fin c'est un programme complet qui résout le labyrinthe sans intervention. Imaginer par exemple qu'on écrit le programme d'un robot qui sera envoyé sur Mars, où le délai de réponse est trop long pour télécommander en direct

• Pour deboguer : Cependant, mettre au point pas à pas le chemin à

suivre plutôt que d'écrire d'un seul coup le programme complet permet de tester ce qu'on écrit au fur et à mesure (et donc de corriger les erreurs)

57

Page 57: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Spécificités de Scratch

58

Les blocs aimantés assurent l'enchaînement des instructions

Pour attraper plusieurs instructions : saisir celle du haut

Pour construire un fond à la bonne échelle (« avancer de 1 » = 1 pixel) : créer une image 480x360

Il y a une bibliothèque d’arrière plans. On peut aussi créer des arrières plan et les

sauvegarder pour les réutiliser après

Page 58: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Spécificités de Scratch

59

Mais un lutin peut disposer de plusieurs scripts : l'exécution séquentielle n'est pas la norme

Deux modes de déplacement (absolu ou relatif) des lutins

Attention : une instruction ne s'exécute pas en temps constant.

Page 59: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Commentaires :

• Juste mentionner que plusieurs scripts peuvent s'exécuter en parallèle, on en reparlera à propos des événements

• Pour les déplacements, pour un lutin donné il vaut mieux choisir d'utiliser :

• - avancer / tourner • OU • - aller à / glisser à / donner la valeur … à x/y • Mais pas de mélange des deux

• Il est difficile en général de prévoir le temps que va mettre un script à s'exécuter car Scratch rajoute des temporisations artificielles pour laisser le temps de voir le lutin se déplacer (voir fichier Tracer_un_cercle.sb2 ou plus loin avec les boucles)

60

Fichier Scratch n°2

Page 60: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Structures algorithmiques

61

Séquence

Boucle

Condition

Événement

Variable

Boucle conditionnelle

Dans la plupart des langages de programmation les boucles sont un peu complexes à introduire (car il faut des variables), mais en Scratch cela reste faisable assez tôt car il existe des boucles simplifiées

Page 61: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Répétition d'instructions Boucles

62

Intérêt majeur d'un algorithme : laisser la machine effectuer les tâches répétitives

Une boucle amène d'une situation initiale à une solution par transformations successives

Ce qui sert à la fois pour construire la boucle et pour démontrer qu'elle réalise bien la tâche attendue

Page 62: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Commentaires :

• Donner sens à la boucle : si c’est pour remplacer seulement deux instructions = pas d’intéret !!! Il faut faire sentir le côté penible et l’apport de la boucle…

• Notion d'invariant (on n'est pas obligé d'utiliser le mot) : une propriété logique vérifiée à chaque tour de boucle, pour les données déjà traitées

• Particulièrement important lorsqu’on va utiliser des blocs dans des boucles pour tracer !

• En début de programme, cette propriété doit être trivialement vraie ; une fois sorti de la boucle elle assure que le résultat est celui attendu

• Même si ce n'est pas formalisé, on a forcément cette propriété en tête pour savoir quoi écrire dans sa boucle

63

Page 63: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Activité de découverte

64

Tracé de figure (géométrique)

• La tâche à réaliser doit pouvoir se généraliser

Peut aussi être prévu en prolongement d'une activité sur la séquence

• Ressources sur http://geotortue.free.fr/

Page 64: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Commentaires :

• Pas de fichier particulier à fournir pour l'activité On peut aussi partir du labyrinthe en escalier

• Exemples de généralisations : - tracer un carré, un hexagone, un polygone à n côtés - tracer 4, 10, n carrés côte à côte

• On voit qu'un algorithme ne résout pas seulement un problème

mais une classe de problèmes

• Attention, Scratch ne laisse pas les lutins sortir de la scène, donc un programme correct peut donner un résultat déformé si la figure déborde

• Rapidement, pour faire des tests confortablement, on peut faire écrire un petit script pour réinitialiser la scène (effacer tout, remettre le lutin au centre...)

65

Fichier Scratch n°3

Page 65: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Difficultés pour les élèves

66

Produire un état en fin de boucle suffisamment similaire à celui en début de boucle

Acquérir le réflexe de factoriser du code

Déterminer un nombre de répétitions à l'aide d'une variable

Page 66: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Commentaires :

• Réflexe à acquérir : dès qu'on doit écrire deux fois la même chose, on doit pouvoir s'y prendre autrement (et surtout pas utiliser de copier-coller !)

• Retour sur la notion d'invariant sur cet exemple : en fin de boucle il ne suffit pas d'amener le chat au prochain coude à droite, il faut aussi le replacer dans la bonne direction

• Dans un premier temps on fixe à la main le nombre de répétitions, mais toujours dans une optique de généralisation, on finira par le déterminer avec une variable

67

Page 67: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Spécificités de Scratch

68

Bloc de répétition aimanté à l'intérieur et à l'extérieur

Le nombre de répétitions peut aussi être une variable ou le résultat d'une opération

Mais pas de compteur de boucle explicite

Variante possible: répéter indéfiniment

On peut insérer des instructions dans ce bloc mais aussi insérer ce bloc autour d'un programme existant

Page 68: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Commentaires :

• On en profite pour commencer à parler de la « syntaxe » de Scratch : • - blocs aimantés = instructions • - blocs ronds = expressions, valeurs • Et on en verra d'autres par la suite

• Dans la plupart des langages de programmation, une boucle est dotée

d'un compteur, c'est-à-dire une variable qui vaut 1 à la première itération, puis 2 à la seconde, etc. et qu'on peut utiliser dans le corps de la boucle. En Scratch non, c'est donc plus léger mais si on en a besoin il faut la recréer soi-même

• Le fichier boucles_singleframe.sb2 montre les différentes vitesses d'exécution qu'on obtient avec ou sans boucles, avec boucles imbriquées

69

Fichier Scratch n°4

Page 69: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Structures algorithmiques

70

Séquence

Boucle

Condition

Événement

Variable

Boucle conditionnelle

Page 70: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Instruction conditionnelle

71

Permet à un algorithme de « prendre des décisions »

Attention aux cas limites qui pourraient être couverts deux fois

Exhaustivité (chaque cas doit être couvert)

Homogénéité des résultats selon les cas

Page 71: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Commentaires :

• Ne pas oublier qu'un algorithme ne fait que ce qu'on lui a demandé, mais une telle instruction permet d'adapter son comportement à différentes situations

• Mais si on n'a pas traité un cas particulier, on risque de se trouver dans un état imprévu ; à l'inverse il faut être vigilant avec des cas qui déclencheraient plusieurs conditions

• Il n'y a pas de notion d'invariant, mais là encore il faut qu'à la sortie d'une condition on se trouve dans un état comparable quelle que soit le cas de la condition qui a été traité

72

Page 72: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Activité de découverte

73

Simulation d'un lancer de fléchette, d'une pièce de monnaie, d'un dé…

Le lutin peut aussi réagir à :

une réponse de l'utilisateur

la valeur d'un score ou d'un chronomètre

sa position

...

Page 73: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Commentaires :

• Fichier cible.sb2 fourni pour l'activité

• Montrer le bloc si/alors et sa variante si/alors/sinon ainsi que le tirage aléatoire (dans les opérateurs)

• Pour la suite on peut fournir des costumes de dés et de pièces. Même si les stagiaires n'arrivent pas jusque là par manque de temps, on peut montrer le résultat, et en profiter pour mentionner qu'un lutin peut être sauvegardé et réutilisé dans un autre projet

74

Fichier Scratch n°5

Page 74: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Difficultés pour les élèves

75

Condition parfois complexe à exprimer

Confusions possibles entre les opérateurs « et » et « ou »

Ces deux scripts sont –ils équivalents ?

NON

Page 75: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Commentaires :

• Lien avec l'initiation à la logique du cours de mathématiques

• Attention au langage courant où on utilise facilement « et » pour une union de deux ensembles, qui correspond plutôt à un « ou » logique

• Pour cet exemple, on veut montrer que dans le cas de droite les deux blocs peuvent s'exécuter (si le premier modifie la condition).

• Voir le fichier si_sinon.sb2

• On peut aussi expliciter ce qui se passe à l'aide d'un algorigramme pour ceux qui maîtrisent cet outil

76

Fichier Scratch n°6

Page 76: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Spécificités de Scratch

77

Condition booléenne = bloc pointu

Peut porter sur des capteurs :

autre élément touché

bouton ou clavier pressé

voire de véritables capteurs (robots...)

souvent remplacée par un événement

Encore un élément de syntaxe, on voit qu'il existe des opérateurs booléens (et, ou, non)

Page 77: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Structures algorithmiques

78

Séquence

Boucle

Condition

Événement

Variable

Boucle conditionnelle

Comme dit plus haut : - ce n'est pas un ingrédient

indispensable pour écrire des algorithmes

- mais ici il permet d'écrire rapidement et facilement des scripts interactifs

- il aide également à écrire des programmes composés de plusieurs scripts « parallèles »

Page 78: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Programmation par événement

79

Algorithme classique :

Traitement Données Résultat

Traitement Événement Réaction Traitement Événement Réaction

Traitement Événement Réaction

Mais pour réagir aux différentes sollicitations de son environnement, on est plutôt sur :

Page 79: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Commentaires :

• Algo classique montré = algo linéaire

• Un algorithme est d'une nature similaire à une fonction en mathématiques : il reçoit un certain nombre de données, et produit un résultat dépendant de ces données (la différence avec une fonction est qu'on s'intéresse à comment ce résultat est obtenu)

• Mais pour un programme interactif il peut se passer plusieurs choses en même temps, et les actions de l'utilisateur peuvent interrompre le déroulement « normal ». Avec un objet physique comme un robot, c'est encore plus net : l'interaction avec l'environnement est permanente et demande de réajuster son comportement à tout moment.

• La séquence linéaire d'instructions n'est donc plus le modèle à préférer.

80

Fichier Scratch n°7

Page 81: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Commentaires :

• Voir fichiers concurrence.sb2 et concurrence_singleframe.sb2

• Remontrer éventuellement Tracer_un_cercle.sb2

• Ce qu'il faut en retenir : • - si deux scripts s'exécutant en parallèle, leur ordre

d'exécution peut dépendre de leur nom, de l'ordre de leur création, de la façon dont a placé les scripts dans la fenêtre graphique (!), etc.

• - il faut donc considérer que cet ordre est quelconque et imprévisible, ils peuvent même s'entrelacer

• - si on tient à fixer un ordre d'exécution, il faut le forcer « à la main » par le biais de variables ou de messages (mais cela demande déjà une certaine expertise)

82

Fichier Scratch n°8

Fichier Scratch n°2

Page 82: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Spécificités de Scratch

83

Bloc « chapeau » : débute un script

Où l'on retrouve la conditionnelle : quelle différence

entre ces deux scripts ?

Explicitation de la « boucle événementielle »

Script de droite plus réactif

Seule façon de réagir à une collision : une condition sur une variable…

Page 83: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Commentaires :

• Dernière forme de bloc en Scratch, qui débute forcément un script

• Le bloc de gauche réagit au premier appui de la touche, puis après un délai commence à répéter.

• Le bloc de droite régit en permanence et sans délai, de plus il autorise l'appui simultané sur plusieurs touches

• Cf deplacement_fluide.sb2 pour illustrer les différences, on peut en profiter pour voir d'autres modes de déplacement

• Les blocs chapeau ne sont pas très génériques : il n'existe pas de « quand <condition> ». Dans certaines situations on est donc obligé de créer une telle boucle explicite (mais ce n'est pas plus mal, car cela fait prendre conscience que les événements ne sont pas magiques et cachent eux aussi une boucle infinie)

84

Fichier Scratch n°9

Page 84: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Messages

85

Un message est un événement : défini par le programmeur

déclenché par un script

Plus confortable et naturel pour la synchronisation des lutins que de passer par une variable partagée

Hors programme mais il n'y a pas de raison de s'en priver lorsqu'on en a besoin Si on utilise des messages multiples, comme avec les événements, il ne faut rien

supposer sur l'ordre dans lequel des messages peuvent être émis, reçus, se croiser...

Page 85: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Structures algorithmiques

86

Séquence

Boucle

Condition

Événement

Variable

Boucle conditionnelle

Souvent considérée comme la notion de base en programmation impérative, où l'instruction de base est « Donner la valeur … à la variable ... »

Mais c'est une notion difficile car assez nouvelle, différente de la notion de variable des maths, et qui utilise pourtant parfois des notations similaires

En Scratch, comme il existe beaucoup d'autres instructions élémentaires (déplacer un lutin, modifier son aspect, etc.) on peut attendre de bien maîtriser le reste avant d'introduire les variables

Page 86: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Variables

87

Rappel : une instruction modifie l'état de la machine

elles permettent de construire le résultat

Ensemble des lutins présents

Leurs positions, leurs costumes

+ un certain nombre de valeurs mémorisées dans des variables

Une machine sans mémoire modifiable (ou à mémoire bornée) ne pourrait pas exécuter « tous » les algorithmes

Page 87: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Commentaires :

• Notion d'état importante : il est incorrect de dire qu'un programme « fait quelque chose », il vaut mieux dire qu'il « fait quelque chose à l'état de la machine »

• En général état = mémoire mais pas seulement numérique

• Un vrai langage de programmation doit pouvoir compter, mettre une valeur de côté pour y revenir plus tard, dupliquer une valeur, etc. ce qui ne serait pas possible sans variables

• Attention : ce n’est pas le même sens que les variables mathématiques !

88

Page 88: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Activité de découverte

89

Améliorer un jeu existant :

ajouter un système de score et de chronomètre à un jeu

STOP pour « lâcher » le

chat

Autre possibilité : lutin avec inertie grâce à une variable vitesse

Fichier Scratch n°10

Page 89: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Commentaires :

•Partir de chat_souris.sb2 (pour arriver à quelque chose comme score_chrono.sb2)

•On peut aussi montrer deplacement_inertie.sb2 qui n'est pas réalisable sans une variable vitesse.

90

Page 90: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Difficultés pour les élèves

91

Variable en informatique ≠ variable en mathématiques var

42

Notion nouvelle : évolution d'une variable dans le temps

Exécution pas à pas : pas prévu dans Scratch 2 mais simulable avec des points d'arrêt

Matérialiser les variables : boîte pourvue

d'un nom et contenant une valeur

Page 91: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Commentaires :

• Quelques conseils : • - toujours nommer explicitement ses variables

(facilite le débogage ET aide à faire la différence avec le x des maths)

• - montrer sur des exemples qu'une même variable change de valeur au cours d'une exécution (cf fichiers affiche_variable.sb2 ou pasApas.sb2) mais que sa valeur à un instant donné est bien définie

• (le délai d'attente dans ce dernier fichier s'explique par le fait qu'un clic de souris n'est jamais vraiment instantané. Si on veut vraiment détecter « le » clic, il faut une variable en plus comme dans front_click.sb2)

92

Fichier Scratch n°11

Page 92: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Spécificités de Scratch

93

Variables : privées à un lutin ou partagées

Attention aux problèmes de parallélisme avec les variables

partagées

4 « types » possibles :

nombre

texte

booléen (true ou false) mais peu utilisable

liste (hétérogène)

Chacune peut être cachée ou affichée à volonté

Page 93: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Commentaires :

• Encourager à « privatiser » les variables tant que possible (code plus clair, facilité de réutilisation des lutins)

• Ne pas hésiter à afficher des variables pour tester un programme

• La notion de type est ici très souple, il existe des langages de programmation où elle est plus contraignante (ce qui permet d'éviter des erreurs)

• Cf des scripts comme ceux de concurrence.sb2 : deux scripts parallèles modifiant une même variable s'exécuteront dans un ordre imprévisible.

94

Fichier Scratch n°8

Page 94: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Structures algorithmiques

95

Séquence

Boucle

Condition

Événement

Variable

Boucle conditionnelle

On pourrait se restreindre à cette seule boucle pour tous les programmes, mais on utilise les boucles simples par commodité et on vient à la boucle conditionnelle seulement lorsqu'on en a besoin

Page 95: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Boucle conditionnelle

96

Généralisation de la boucle simple

À privilégier lorsqu'on ne sait pas à l'avance combien d'itérations seront nécessaires

Mais pour un script interactif une boucle infinie est parfois souhaitable

Problème potentiel : boucle infinie (c'est ce qui fait qu'un algorithme ne peut pas « tout » calculer !)

Une boucle risque de « tourner en rond » si le corps de la boucle ne modifie pas la

condition à chaque itération (et même dans des cas plus difficiles à détecter, en règle générale c'est impossible à prouver automatiquement).

Page 96: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Activité de découverte

97

Marche aléatoire

Prolongements : durée de la marche, max atteint...

Cette boucle se finit-elle à coup sûr ?

On fournit le seul fond rocher.png Le fichier marche_aleatoire.sb2

est le résultat souhaité.

Fichier Scratch n°12

Page 97: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Difficultés pour les élèves

98

Écrire une condition booléenne

(éventuellement composée)

Condition d'arrêt ou de continuation ?

Pourquoi deux boucles et laquelle choisir ?

Comme pour la répétition simple : Produire un état en fin de boucle suffisamment similaire à celui en début de boucle

Page 98: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Commentaires :

• On réserve donc l'apprentissage de cette boucle pour quand les élèves maîtrisent déjà l'écriture de si/alors/sinon.

• Selon les situations, il peut être plus facile d'écrire la condition pour relancer la boucle ou la condition pour l'arrêter ; un usage adéquat du « non » booléen peut rendre un programme plus clair

• Le critère de choix est assez simple (sait-on à l'avance le nombre de répétitions à faire ?) mais par exemple lorsque ce nombre de répétitions est une variable, la notion de « à l'avance » peut être mal comprise

• On retrouve enfin la notion d'invariant : une boucle doit déjà préparer la prochaine itération pour que celle-ci se passe dans les bonnes conditions

99

Page 99: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Spécificités de Scratch

100

Bloc de répétition aimanté à l'intérieur et à l'extérieur

Différence avec les autres langages :

ici « jusqu'à » = condition d'arrêt

alors qu’ailleurs…

« tant que » = condition de continuation

La différence d'écriture de cette condition ne devrait pas poser de problème au début de l'apprentissage, mais il faut s'attendre à des incompréhensions lorsque les élèves devront passer à un autre langage (au lycée par exemple)

Page 100: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Mener une activité pédagogique d’algorithmique

•Phase1 : conception

•Phase2 : tenue

•Phase3 :évaluation

Diaporama 3

Production du groupe IREM de Grenoble

101

Page 101: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Phase1 : conception

102

Page 102: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Phase2 : tenue

103

Page 103: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Phase2 : tenue

104

Page 104: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Phase2 : tenue

105

Page 105: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Phase2 : tenue

106

Page 106: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Phase3 : évaluation

107

Page 107: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Phase3 :évaluation

108

Page 108: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Phase3 :évaluation

109

Page 109: Formation Algorithmique 2015-2016 Académie de Grenoble · 2015-2016 Académie de Grenoble En collaboration avec le groupe IREM de Grenoble 1 . La formation des professeurs ... P

Capacités Phase3 :évaluation

110