- Du collège au lycée - De Scratch à Python
Algorithmique et
programmation
La maîtrise des langages informatiques
n’est pas la finalité de l’enseignement, mais leur pratique est le moyen d’acquérir
d’autres démarches d’investigation, d’autres modes de résolution de problèmes, de
simulation ou de modélisation.
Extrait doc. ressource
Objectifs généraux :
Acquérir des méthodes de programmation
Développer des compétences
Mettre en place certaines modalités d’apprentissage Source IGEN
Programmation »
=> Programme et document ressource
J5 - Algorithmique & programmation 1 - Du Collège au Lycée
Au collège : un thème à part entière
dans le programme de mathématiques
…
Programme du cycle 3 : thème « Espace et géométrie » Attendu : (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...
Attendu : reconnaître, nommer, décrire, reproduire, représenter, construire des figures et solides usuels
Réaliser une figure simple ou une figure composée de figures simples à l’aide d’un logiciel
Programme du cycle 4 : thème « Algorithmique et programmation »
Attendu : écrire, mettre au point et exécuter un programme simple
Décomposer un problème en sous-problèmes afin de structurer un programme ; reconnaître des schémas
Écrire, mettre au point (tester, corriger) et exécuter un programme en réponse à un problème donné Écrire un programme dans lequel des actions sont déclenchées par des événements extérieurs.
Programmer des scripts se déroulant en parallèle
Le programme du cycle 4
….et de technologie
Une vision différente et complémentaire en mathématiques et en technologie :
►Mathématiques → déplacement dans un repère,
►Technologie →commander un objet, utilisation d’un capteur
Au collège :
(Programmes de mathématiques)
Repères de progressivité :
En 5ème, les élèves s'initient à la programmation événementielle. Progressivement, ils développent de nouvelles compétences, en programmant des actions en parallèle, en utilisant la notion de
variable informatique, en découvrant les boucles et les instructions conditionnelles qui
complètent les structures de contrôle liées aux évènements.
Cet enseignement a pour objectif de développer chez les élèves les compétences suivantes :
décomposition : analyser un problème compliqué, le découper en sous- problèmes, en sous-tâches ;
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, programmer des
instructions déclenchées par des événements, concevoir des algorithmes se déroulant en parallèle.
Au collège
(Document ressources mathématiques)
Décomposition d’un PROBLEME en SOUS PROBLEMES
J5 - Algorithmique & programmation
Au collège
(Document ressources mathématiques)
Des méthodes qui construisent la pensée algorithmique
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
Au lycée
(Aménagement du programme de mathématiques de seconde)
Une partie dédiée à l’algorithmique et la programmation dont la rédaction a été remaniée :
« Au cycle 4, en mathématiques et en technologie, les élèves ont appris à écrire, mettre au point et exécuter un programme simple. Ce qui est proposé dans ce programme est une consolidation des acquis du cycle 4 autour de deux idées essentielles :
la notion de fonction d’une part, et
la programmation comme production d’un texte dans un langage informatique d’autre part ».
Au lycée
(Aménagement du programme de mathématiques de seconde)
CONTENUS CAPACITÉS ATTENDUES COMMENTAIRES
Variables et instructions élémentaires
Boucle et itérateur, instruction conditionnelle
Notion de fonction
• choisir ou déterminer le type d’une variable (entier, flottant ou chaîne de caractères) ;
• concevoir et écrire des affectations à des variables ;
• écrire une formule permettant un calcul combinant des variables.
• programmer une instruction conditionnelle ;
• programmer une boucle bornée ;
• programmer une boucle non bornée.
• programmer des fonctions simples, ayant un petit nombre d’arguments.
On commence par consolider les notions de variables, de boucles et d’instructions conditionnelles
introduites au cycle 4 en complétant la programmation par blocs par
l’utilisation d’un langage de programmation textuel.
On formalise les notions de boucle bornée (for) et de boucle non bornée
(while) et on introduit la notion nouvelle de fonction dans un langage de programmation.
Il est intéressant de confronter les fonctions dans un langage de programmation avec les fonctions d’un tableur.
Au lycée
(Document ressources mathématiques)
A la différence du programme de mathématiques du cycle 4 du collège, il s’agit d’adosser explicitement les activités de la partie algorithmique et programmation aux mathématiques au travers des trois autres parties (fonctions, géométrie, statistiques et probabilités)
Au lycée
(Document ressources mathématiques)
Cet enseignement a un double objectif :
faire travailler des notions mathématiques du programme dans un contexte différent,
poursuivre chez les élèves le développement des compétences suivantes, déjà travaillées au cycle 4 :
décomposer un problème ;
reconnaître des schémas ;
généraliser et abstraire ;
concevoir des algorithmes et les traduire dans un langage de programmation.
Au lycée
(document ressources mathématiques)
Les modalités de l’apprentissage correspondant
peuvent être variées : travail individuel ou en groupe, en salle informatique ou en salle banale, au tableau ou sur papier, sur tablette ou sur ordinateur.
Il s’agit de consolider les acquis du cycle 4 autour de deux idées essentielles : la notion universelle de fonction d’une part et la programmation comme production d’un texte dans un langage informatique d'autre part.
Le professeur gardera à l’esprit que l’enseignement de la partie algorithmique et programmation n’a pas pour
objectif de former des experts dans tel ou tel langage de programmation ou dans la connaissance détaillée de telle ou telle bibliothèque de programme
Année scolaire 2018
(Une année transitoire en Nouvelle-Calédonie)
Les élèves de seconde n’ont pas suivi le nouveau
programme en troisième et beaucoup n’ont jamais utilisé le logiciel Scratch
Il est nécessaire de prévoir progressivement la transition
« Scratch-Python » car les élèves apporteront une pratique de l’algorithmique et de ce logiciel de plus en plus
importante pendant au moins les trois prochaines années
A partir de l’année prochaine (2019)
les élèves auront donc :
pratiqué l’algorithmique et la programmation
utilisé des instructions conditionnelles et des boucles
pratiqué fréquemment la démarche essai/erreur
utilisé peu ou pas de formalisme algorithmique
Texte DNB 2017 :
« Le sujet de cette première épreuve comporte obligatoirement au moins un exercice d'algorithmique ou de programmation sur l'ensemble des exercices. »
De fait les sujets de DNB 2017 ont inclus un exercice dont le support est Scratch
Il faut donc tenir compte de cette dimension dans la formation des élèves de seconde,
Au DNB
Utilisation d’un Bloc
Au DNB
Les questions flash
Les outils : au collège, Scratch au lycée, Python (EduPython)
Le choix d’un langage textuel, comme Python, au lieu d’un langage par blocs, comme Scratch, permet aux élèves de se confronter à la précision et la rigidité d’une syntaxe proche de celle des
expressions mathématiques, avec l’avantage de pouvoir bénéficier du contrôle apporté par l’analyseur syntaxique.
D.R. Lycée Le logiciel Scratch offre un environnement d’édition et
d’exécution des programmes. Il s’agit d’un logiciel gratuit et disponible sur toutes les plates-formes usuelles, choisi pour sa simplicité, sa fiabilité et sa robustesse dans la mise en œuvre. Il permet de travailler tous les concepts figurant au programme, en particulier la programmation
événementielle et la gestion de scripts s’exécutant en parallèle. L’annexe de ce document explique comment l’installer.
D.R. Collège
Les outils : au lycée, EduPython
En seconde :
La démarche algorithmique va être plus prégnante et s’accompagnera de l’apprentissage d’un nouveau langage : Python
Les élèves devront être accompagnés pour passer de la mise au point des algorithmes par essais/erreurs à leur conceptualisation (un raisonnement, une démarche algorithmique, un écrit en langage informatique)
Lien vers la présentation
Les outils : au lycée,
Calculatrices
De scratch à Python
De scratch à Python
Python Pseudo
code
𝑆←0 𝑈←900
Pour 𝑁 allant de 1 à 12 𝑆←⋯
𝑈←0,75 𝑈+12 Fin Pour
# Renvoie la moyenne de la série L
def moyenne(L) : somme = 0 for x in L :
somme = somme + x return (somme//len(L))
De scratch à Python :
from lycee import * import turtle
def figure():
turtle.hideturtle() turtle.clear() turtle.up()
turtle.setheading(0) turtle.goto(0,100) longueur = 40 for i in range(12):
triangle(longueur) turtle.right(8)
longueur = longueur + 20 def triangle(cote):
turtle.down() for i in range(3):
turtle.forward(cote) turtle.left(120) turtle.up()
De scratch à Python :
PluriAlgo : langage Blocs et Python
SofusPy reprend plusieurs caractéristiques fondamentales de Sofus
Sa nouveauté est l’ajout d’un traducteur vers Python, ainsi que d’un interpréteur Python (Skulpt), ce qui permet de faciliter
l’apprentissage de Python pour des élèves formés à la programmation par blocs au collège.
import math def f(t):
return math.sqrt(1 - t ** 2) dx = 0.0025
x = 0 I = 0
while not x >= 1:
I = I + f(x) * dx x = x + dx
print(I * 4)
SofusPy,
langage Blocs et Python
Pour écrire en Python un programme résolvant une
équation du second degré, on peut commencer par écrire un squelette de programme par blocs
En cliquant sur le bouton Editeur (dans l’onglet « Blockly / Editeur 2 »), la traduction Python apparaît alors dans l’éditeur interne de SofusPy :
La spirale
Les Ateliers
Atelier 1 :
Prise en main de Scratch (ce que les élèves de collège savent faire avec Scratch)
Atelier 2 :
de Scratch à Python
Atelier 3 :
Activités Python
De scratch à Python
Au travers des ateliers, mener une réflexion sur :
La progressivité des apprentissages
La trace écrite
Les ressources
L’évaluation
Bibliographie sur Python
Python – Les bases de l’algorithmique et de la programmation - Vincent Maille – Ed. Ellipses
Tous les algorithmes du collège au lycée - Algobox / Python – Thomas Petit – Ed. Ellipses
Algorithmique & programmation par la pratique – José Ouin - Ed. Ellipses
Python – Du grand débutant à la programmation objet - Cours et exercices corrigées – Nicolas
Bourgeois – Ed. Ellipses
Toute l’informatique en CPGE scientifiques – Ed Ellipses
et
vous souhaitons de bonnes pratiques en algorithmique sous PYTHON