Étude expérimentale de l’objet « trinôme »

TP en seconde sur les trinômes
mardi 4 janvier 2011
par  Alain BUSSER

Voici le sujet du TP (on remarquera que les élèves étaient en situation d’autonomie, le choix de l’outil leur étant plus ou moins laissé, avec 4 suggestions) :

PDF - 26.7 ko
le sujet du TP en pdf

Sans doute influencés par la préférence de leur professeur, les élèves ont presque tous choisi CaRMetal, la seule exception étant un élève doté d’une calculatrice Ti82Stats, et qui a d’ailleurs assez vainement tenté de s’en servir en lieu et place de JavaScript.

Plusieurs élèves ont d’emblée entré ceci :

var a;
var b;
var c;

Réflexe d’algorithmiciens... Puis la situation a évolué en

var a=Input("Entrez a");
var b=Input("Entrez b");
var c=Input("Entrez c");

Après c’est devenu moins facile, en particulier parce que devant un clavier, les élèves n’acceptent d’ouvrir un cahier, fût-ce celui du cours, que si on les y force...

Alors un élève a tenté de regarder comment était fait le fichier du cours. Un autre a tenté un

var a=Input("Entrez a");
var b=Input("Entrez b");
var c=Input("Entrez c");
var x=Input("x");

qui revient à demander à l’utilisateur de calculer l’abscisse du sommet de la parabole et de l’entrer à la main ! C’est très analogue à ces élèves qui, lors de l’épreuve expérimentale du Bac S, remplissent le tableur cellule après cellule grâce à la calculatrice !

Voici quelques copies d’élèves (souvent incomplets, il semble y avoir eu peu de travail à la maison) :

Copie 1

var a=Input("Entrez a");
var b=Input("Entrez b");
var c=Input("Entrez c");
Println(-b/(2*a));

Plusieurs élèves ont d’abord entré -b/2*a au lieu de -b/(2*a) ce qui les a parfois mené jusqu’au bout de l’heure pour comprendre pourquoi « ça ne marche pas » (non conformité avec l’exemple du livre : L’erreur est-elle dans le livre, dans la formule du cours ou dans celle du script ?).

Copie 2

var a=Input("Entrez a");
var b=Input("Entrez b");
var c=Input("Entrez c");
Println(-b/(2*a));
Println(c-b*b/(4*a));

Cette version a été assez répandue ; on constate la laconicité des affichages et le blocage sur les tests.

Copie 3

var a=Input("Entrez a");
var b=Input("Entrez b");
var c=Input("Entrez c");
var x=c-Math.pow(b,2)/(4*a);
Println("la valeur extrême de la fonction x est "+x);

La réponse à la question 3 sans passer par la question 2 témoigne d’une confusion entre x et y. Là encore, pas de tests (certains ont essayé de faire les tests à la main sans passer par le JavaScript).

Copie 4

//function trinômes et paraboles(a,b,c){
   var a=Input(" a ");
   var b=Input(" b ");
   var c=Input(" c ");
   if (a==0) {Println(" la fonction est affine ");
   } else {
      //d=a*(x*x)+b*x+c;
      e=-(b/(2*a));
      f=c-((b*b)/(4*a));
   }
   Println(" la fonction atteint son extremum en un point de coordonnée ("+e);
   Print(";"+f);
   Print(")");
   if(a<0) {Println(" l'extremum est le maximum de la fonction ");
   }
   if (a>0) {Println(" l'extremum est le minimum de la fonction ");
   }
//}

On constate

  1. L’absence du else : Ignorance de cette instruction ou choix délibéré pour éviter le cas a=0 ?
  2. Cet élève est le seul à avoir pensé au cas a=0 qui ne donne pas un trinôme ;
  3. Une ébauche de définition d’un objet trinôme au sens de la programmation objet (lignes devenues des commentaires).

Écrire un objet trinôme est possible, et même très probablement à la portée d’un élève de Seconde :

En JavaScript

function trinome(a,b,c){
        this.expression=a+"x²+("+b+")x+("+c+")";
        this.coeffx2=a;
        this.coeffx=b;
        this.coeffconstant=c;
        this.sommetx=-b/(2*a);
        this.sommety=c-b*b/(4*a);
        if(a>0){this.extremum="minimum";
        } else {
                this.extremum="maximum";
        }
        this.reponse=function(){
                if (this.coeffx2==0){
                        Println(this.expression+" n'est pas un trinôme,");
                        Println("c'est une fonction ");
                        if (this.coeffx==0){
                                Println("constante!");
                        } else {
                                Println("affine!");
                        }
                } else {
                        Println("Trinôme "+this.expression+" :");
                        Println("Le "+this.extremum+" est atteint en "+this.sommetx+" et vaut "+this.sommety+".");
                }
        }
}
f=new trinome(-2,12,-16);
f.reponse();

En Python

class Trinome:
    def __init__(self,a,b,c):
        self.a=a
        self.b=b
        self.c=c
       
        self.sx=-b/(2*a)
        self.sy=c-b**2/(4*a)
       
        if(a>0):
            self.extr='minimum'
        else:
            self.extr='maximum'
    def affichage(self):
        print(str(self.a)+u'x\u00b2+('+str(self.b)+')x+('+str(self.c)+')')
    def verdict(self):
        print('Pour le trinome')
        self.affichage()
        print('le '+self.extr+' est atteint en '+str(self.sx))
        print('et vaut '+str(self.sy))
       
t=Trinome(-2,12,-16)
t.verdict()

Très concis...

En Ruby

class Trinome
    def initialize(a,b,c)
        #crée 3 variables et les affecte
        @a, @b, @c = a, b, c
    end
    def abscisse
        -@b/(2*@a)
    end
    def ordonnee
        @c-@b**2/(4*@a)
    end
    def extremum
        if @a>0 then
            'minimum'
        else
            'maximum'
        end
    end
   
    def to_s
        @a.to_s+'x²+('+@b.to_s+')x+('+@c.to_s+')'
    end
    def verdict()
        puts('Pour le trinôme')
        puts(self.to_s)
        puts('le '+self.extremum+' est atteint en '+self.abscisse.to_s)
        puts('et vaut '+self.ordonnee.to_s)
    end
end
t=Trinome.new(-2,12,-16)
t.verdict()

Bien entendu, cette copie qui est la seule complète, a eu la note de 20 ; en plus l’élève a fini avant la fin de l’heure.

Une fois de plus, obliger les élèves à réinvestir dans une situation active (de programmation) plutôt que dans des exercices répétitifs (mais nécessaires : Il y aura aussi quelques séances Wims là-dessus) est très rentable, le cours pouvant servir à aider les élèves à réussir le TP, ce qui a au moins l’avantage d’aider les élèves à le regarder, ce cours, ce qui en milieu d’année scolaire, est loin d’être automatique !


Commentaires

Annonces

Prochains rendez-vous de l’IREM

Séminaire EDIM-IREM

- Mercredi 13 septembre 2017, 14h-18h, PTU, Saint-Denis, salle S23.6
- Mercredi 4 octobre 2017, 14h-18h, PTU, Saint-Denis, salle S23.6
- Mercredi 11 octobre 2017, 14h-18h, campus du Tampon
- Mercredi 22 novembre 2017, 14h-18h, campus du Tampon
- Mercredi 7 février 2018, PTU, Saint-Denis, salle S23.6
- Mercredi 7 mars 2018, 14h-18h, campus du Tampon
- Mercredi 4 avril 2018, PTU, Saint-Denis, salle S23.6
- Mercredi 2 mai, 14h-18h, campus du Tampon
- Mardi 5 juin 2018, PTU, Saint-Denis, salle S23.6
- Mercredi 6 juin, 14h-18h, campus du Tampon

Fête de la science

Du 13 au 18 novembre 2017.
Thème : « La recherche à l’heure du numérique »

Semaine des mathématiques

Du 26 au 31 mars 2018.
Thème : « Mathématiques et mouvement »


Brèves

Décès de Roger Mohr

mardi 27 juin

On sait bien que Nicolas Bourbaki n’était pas le nom d’une personne mais le pseudonyme d’un groupe. L’équivalent en informatique théorique est Claude Livercy, auteur de la théorie des programmes. Roger Mohr était un des membres de Claude Livercy.

À 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

lundi 25 septembre 2017

Publication

766 Articles
Aucun album photo
133 Brèves
11 Sites Web
132 Auteurs

Visites

490 aujourd'hui
1251 hier
2102985 depuis le début
37 visiteurs actuellement connectés