TP Python n° 1

jeudi 1er septembre 2011
par  Alain BUSSER

Au collège, si on en croit les derniers sujets du DNB, une assimilation est suggérée entre les notions de « programme de calcul » et de fonction numérique (dans les deux cas, il y a un nombre à l’entrée, et un nombre à la sortie). Une fonction qui peut être utile pour la suite est celle qui arrondit un nombre à deux décimales.

Le problème avec Python est qu’une telle fonction existe déjà, par exemple on peut faire

from math import pi
print(round(pi,2))

Pour permettre aux élèves de choisir quand même Python, il leur a donc été demandé plutôt de créer une fonction tronc2 qui, au lieu de l’arrondi à deux chiffres, donne la troncature :

PDF - 133.1 ko
sujet du TP au format pdf

Du coup, l’interdiction d’utiliser la calculatrice était une erreur, puisque si la calculatrice affiche les arrondis à deux chiffres, elle ne le fait pas pour les troncatures.

Le programme d’algorithmique de Première (« objectifs pour le lycée ») commence par


Instructions élémentaires (affectation, calcul, entrée, sortie)

et donne pour exigibles, entre autres :


- d’écrire un programme calculant et donnant la valeur d’une fonction ;

- ainsi que les instructions d’entrées et sorties nécessaires au traitement.

En plus, l’écriture de l’algorithme comme une fonction (avec une entrée et une sortie) présente l’avantage de faciliter le test de l’algorithme en appliquant (« map ») la fonction à une liste d’antécédents :

list(map(tronc2,[13*n/7 for n in range(5)]))

L’impossibilité de définir algorithmiquement une fonction avec Algobox est, de ce point de vue, une gêne ; cependant, tous les élèves ont eu des difficultés à comprendre que le « résultat » de l’algorithme doit être dépendant de son « entrée », que celle-ci soit imposée au moment du test de l’algorithme (Algobox et la calculatrice), ou par un appel à une fonction définie préalablement (Python et JavaScript). Une solution à ce problème pourraît être l’engagement direct permis par le tableur et son langage « BASIC »...


Des difficultés imprévues sont vite apparues :

Sous Algobox, c’est le test de l’algorithme qui effraye un peu au début, comme en témoignent ces erreurs d’élèves :

Sous Python, c’est la nécessaire rigueur de la syntaxe qui déroute (ici il fallait ajouter une ligne vide pour finir la définition de la fonction, et utiliser « print » en mode interactif) :

Les élèves ont besoin de se familiariser avec l’outil [1] et ont donc d’abord testé ledit outil (ou plusieurs d’entre eux parfois) avec les fonctions identité et constantes (comme on le voit ci-dessus avec l’exemple Python).


Seuls les meilleurs élèves [2] ont pensé à la fonction partie entière, sans toutefois réussir à trouver comment la modifier pour arriver à deux décimales. La difficulté du problème, déjà constatée lors de ce TP de fin d’année, semble se confirmer là aussi.

Moins de la moitié est partie sur une idée spontanée et assez intéressante : Essayer d’élever x à la puissance 2 ou -2 [3].

Vers une évaluation par compétences

Les compétences visées étaient

  1. la capacité à démarrer l’ordinateur et le logiciel (2 points)
  2. l’entrée d’une donnée numérique (2 points)
  3. l’affichage ou la sortie du résultat du calcul (2 points)
  4. la capacité à tester l’algorithme (2 points)
  5. penser à utiliser la troncature entière (4 points)
  6. penser à la multiplication par 100 (4 points)
  7. penser à la division (4 points)

Ce qui donne une note sur 20, dont voici le diagramme en bâtons :

Avec une moyenne de 8,5 ce TP n’est pas vraiment « réussi » mais en écoutant les élèves, on se rend compte que la notion de fonction, bien qu’évaluée au DNB, est très peu maîtrisée en entrant en Seconde [4].

Exercice d’arithmétique :


Sachant qu’il faut 5 secondes de moins pour lire un algorithme Python que pour lire un algorithme écrit dans un autre langage que Python, et qu’un prof est amené à lire en moyenne 5 fois l’algorithme de chaque élève au cours du TP, combien de temps gagne-t-il pour évaluer une classe de 36 élèves au cours du TP ?

Le fait que la moitié des élèves ait choisi Python, n’est donc peut-être pas totalement étranger à la possibilité de remplir la grille d’évaluation par compétences au cours du TP, et donc que les élèves aient leur note dès la fin de celui-ci...


[1ce qui est compréhensible, mais pas habituel pour un utilisateur de CaRMetal dont la prise en mains est plus immédiate ; mais même dans ce cas, les élèves préfèrent utiliser le clavier plutôt que la souris...

[2catégorie apparemment très féminisée, pour la troisième année consécutive

[3et quelques-uns ont pensé à la multiplication par 100 ce qui est déjà un grand pas vers la solution !

[4cela est également vrai pour les redoublants...


Commentaires

samedi 10 septembre 2011 à 19h10

Une fonction sans boucles ne serait plus une fonction ??

Ce qu’il y a de certains :

- ce sont vos aprioris systématiques contre algobox (pourquoi vous ne montrez pas les erreurs des élèves faites avec d’autres logiciels comme carmetal qui est pourtant 10 fois plus dur d’accès aux élèves ?)
- c’est que 80% des activités que vous proposez sont complètement hors-programme (le tout habillé d’un baratin très approximatif sur divers langages de programmation pour faire savant)

Pour rappel, les seules exigences en algorithmique pour tout le cursus au lycée :

Les élèves, dans le cadre d’une résolution de problèmes, doivent être capables :
- d’écrire une formule permettant un calcul ;
- d’écrire un programme calculant et donnant la valeur d’une fonction ;
- de programmer un calcul itératif, le nombre d’itérations étant donné ;
- de programmer une instruction conditionnelle, un calcul itératif, avec une fin de boucle
conditionnelle.


Affectation, entrée, sortie, boucle (avec arrêt conditionnel ou non) : c’est tout ce qu’il y a au programme !
Il n’a jamais été question dans le programme d’aborder les notions de programmation fonctionnelle ou de programmation par objets comme vous l’avez déjà fait.

Logo de Alain BUSSER
jeudi 8 septembre 2011 à 22h24 - par  Alain BUSSER

Effectivement, on peut définir deux fonctions avec Algobox ; toutefois

  1. La fonction F1 ne peut se définir qu’en une ligne, et sans boucles, et ressemble donc plus à une expression qu’à un algorithme ;
  2. La fonction F2 ne peut être définie que par un seul test, toujours sans boucle (sauf celle qui est cachée dans la récursivité) ; là encore peut-on vraiment parler d’algorithme ?

Par exemple, définir une fonction par l’algorithme de Heron ou celui de Newton ou encore des algorithmes de calcul de cosinus ne semble pas possible avec les fonctions F1 et F2 d’Algobox, ainsi que les fonctions définies par sommes de séries...

On peut certes implémenter ces algorithmes dans Algobox mais les utiliser comme des fonctions, en calculant les images de listes de nombres ou en les représentant graphiquement c’est autre chose...

mercredi 7 septembre 2011 à 20h01

L’impossibilité de définir algorithmiquement une fonction avec Algobox
Ceci est inexact : AlgoBox permet de définir deux fonctions (F1 en fonction de x, F2 pouvant être récursive et dépendre de plusieurs paramètres)

Annonces

Prochains rendez-vous de l’IREM

Séminaire EDIM-IREM

- Mercredi 8 mars 2017, 14h-18h, PTU, Saint-Denis, salle S23.6
- Mercredi 12 avril 2017, 14h-18h, campus du Tampon
- Mercredi 3 mai 2017, 14h-18h, PTU, Saint-Denis, salle S23.6
- Mardi 13 juin 2017, 14h-18h, campus du Tampon
- Mercredi 14 juin 2017, 14h-18h, PTU, Saint-Denis, salle S23.6

Semaine des mathématiques

Du 23 mars au 4 avril 2017 dans l’académie de la Réunion.


Brèves

À travers les labyrinthes : algorithmes et fourmis

dimanche 1er septembre 2013

Quand les chercheurs mettent au point des modèles d’optimisation et de recherche de plus court chemin qui s’inspirent du comportement de masse de colonies de fourmis...
À écouter : Sur les Épaules de Darwin, émission diffusée sur France Inter samedi 31 août 2013.

Rencontres Mondiales du Logiciel Libre à St-Joseph

mardi 20 août 2013

Les RMLLd se dérouleront pour la 2e fois à Saint-Joseph du 22 au 25 août.
C’est une opportunité pour les élèves qui suivent la spécialité ISN et les passionnés d’informatique.

Voici pour le samedi et le dimanche quelques interventions choisies :
- http://2013.d.rmll.info/Raspberry-votre-ordinateur-au-format-carte-de-credit?lang=fr
- http://2013.d.rmll.info/Materiel-libre-et-DIY?lang=fr
- http://2013.d.rmll.info/Arduino-de-l-electronique-libre?lang=fr

Noter aussi les conférences Art et Culture du dimanche, ainsi qu’une conférence plus engagée.

Le programme complet se trouve ici. Une radio sera ouverte pour l’occasion.
Des plaquettes à distribuer se trouvent ici.

Hyper-vidéos pour l’algorithmique au lycée

dimanche 19 août 2012

Olivier Roizès, à la demande de l’ADIREM, a réalisé une collection d’hyper-vidéos de présentation de logiciels et environnements de programmation. Ces hyper-vidéos, c’est-à-dire des vidéos contenant des éléments clicables, devraient être utiles aux enseignants désireux de se familiariser avec Python, CaRMetal, R, Rurple, Scilab ou Xcas.

Ouverture du SILO

mardi 1er novembre 2011

Le SILO (Science Informatique au Lycée : Oui !) est un espace collaboratif documentaire de partage et de formation collégiale, à destination des professeurs appelés à enseigner l’informatique au lycée.

Une initiative du CNDP, de l’INRIA et de Pasc@line, à laquelle se sont associés SPECIF, fuscia, EPI et ePrep.

Sur le Web : Site du SILO

Introduction à la science informatique

lundi 12 septembre 2011

Le CRDP de Paris publie le premier ouvrage destiné aux professeurs chargés d’enseigner la nouvelle spécialité « Informatique et sciences du numérique » en Terminale S à la rentrée 2012. Cet ouvrage a été coordonné par Gilles Dowek, directeur de recherche à l’INRIA.

Sur la création de la spécialité ISN, on pourra également consulter l’interview donnée au Café pédagogique par l’inspecteur général Robert Cabanne.

Sur le Web : CRDP de Paris

Deux publications sur l’algorithmique

samedi 17 octobre 2009

L’IREM d’Aix-Marseille publie une brochure de 73 pages, téléchargeable librement, intitulée Algorithmes et logique au lycée. Ces notions sont illustrées et déclinées sur des exercices du programme de spécialité mathématique en série L, mais sont adaptables aux programmes à venir.

Le hors série thématique n° 37 du magazine Tangente, disponible actuellement en kiosque, s’intitule « Les algorithmes. Au cœur du raisonnement structuré ». Extrait de l’éditorial : « La rédaction de Tangente a conçu la quasi-totalité de ce hors série thématique pour qu’il puisse être lu par des élèves de Seconde ».

Une carte mentale pour l’algorithmique

jeudi 10 septembre 2009

Sur son site, Jean-Jacques Dhénin a publié une carte mentale géante qui renvoie vers plus de 30 documents en ligne sur l’algorithmique. Tout ce qu’il faut — et même davantage — pour faire face au nouveau programme de Seconde !

Un catalogue libre d’algorithmes pour le lycée

dimanche 30 août 2009

Guillaume Connan, de l’IREM de Nantes, publie un catalogue libre de 119 pages d’algorithmes pour le lycée. Sur son site très riche, on trouvera d’autres documents en rapport avec l’algorithmique, notamment sur l’utilisation des langages fonctionnels au lycée et sur la comparaison programmation fonctionnelle/programmation impérative.

L’algorithmique à l’IREM de Lille

vendredi 26 juin 2009

Le groupe AMECMI de l’IREM de Lille vient de mettre en ligne des ressources importantes au service des professeurs de Seconde :

- Algorithmique et programmation (Emmanuel Ostenne)
- Bibliographie amoureuse de l’algorithmique (Alain Juhel)

Statistiques

Dernière mise à jour

samedi 18 mars 2017

Publication

735 Articles
Aucun album photo
128 Brèves
11 Sites Web
126 Auteurs

Visites

956 aujourd'hui
1169 hier
1961488 depuis le début
21 visiteurs actuellement connectés