Partagez
Voir le sujet précédentAller en basVoir le sujet suivant
VinZT
Expert spécialisé

Re: (maths) Formation aux aménagements du programme de seconde : algo/programmation

par VinZT le Mar 11 Sep 2018 - 0:09

Plus je vous lis, plus je me dis qu'il est vital que je n'enseigne pas la future spécialité informatique …
avatar
Mathador
Niveau 10

Re: (maths) Formation aux aménagements du programme de seconde : algo/programmation

par Mathador le Mar 11 Sep 2018 - 2:10
@e1654d a écrit:Et justement, dans les vieilles versions de C (jusqu'au début des années 1990 je crois mais qui sont restées les références pendant longtemps après), on ne pouvait pas déclarer une variable n'importe où, pour la même raison qu'en Pascal : les compilos ne savaient pas faire. Il est probable que cet extrait de code, même s'il est plus récent, a été écrit en voulant respecter la norme C de 1989, ou tout simplement que l'habitude ancienne a été conservée.

Plus précisément, le C89 impose de faire les déclarations au début des blocs. Ce n'est donc pas forcément au début de la fonction, comme le montre l'exemple suivant:
Code:
int main ()
{
        int a = 5;
        a += 1;
        {
                int b = 8;
                a += b;
        }
        return a;
}
Code:
$ gcc -Wall -std=c89 -pedantic test.c
$ ./a.out
$ echo $?
14
Si l'on enlève les accolades intérieures, le compilateur sort un avertissement comme quoi le code est interdit par le standard C89.
Les compilos étaient donc capable de mélanger déclarations et instructions, c'est simplement que l'on peut réduire le nombre de passes pour compiler si l'on met les déclarations en premier: le compilateur peut alors lire les déclarations, et en déduire la disposition de l'enregistrement d'activation du bloc avant de compiler le reste. Cela permet d'écrire la version compilée de la fonction de façon séquentielle: dès le début de la compilation de la partie instructions, le décrément à apporter au pointeur de pile est connu, et chaque variable locale est directement traduisible en un décalage connu par rapport au frame pointer.
Pour ce qui est du noyau Linux, c'est effectivement une politique des développeurs.

_________________
« Que dites-vous ?… C’est inutile ?… Je le sais !
Mais on ne se bat pas dans l’espoir du succès !
Non ! non, c’est bien plus beau lorsque c’est inutile ! » (Cyrano de Bergerac)
« Un mathématicien est une machine à transformer le café en théorème. » (Alfréd Rényi)
« C'est l'équation, l'ax+b qui fait tilt » (Mylène Farmer)
avatar
Not a Panda
Niveau 8

Re: (maths) Formation aux aménagements du programme de seconde : algo/programmation

par Not a Panda le Mar 11 Sep 2018 - 7:49
@AmyR a écrit:Bonjour,
quelle progression allez-vous adopter cette année pour la partie algo/programmation ?
J'aimerais pouvoir illustrer certaines partie du cours avec de la programmation mais du coup j'ai la tentation de faire toutes les bases d'un coup ce qui fait qu'au final je ne sais pas par où commencer :/.
Faites-vous écrire du cours ? (définition  d'algorithmes, de variables, ...) ?

Surement pas !

J'en fais le minimum possible : affectation, test if, quelques exemples simples sur la calculatrice et basta. Je ne suis pas professeur d'informatique.
e1654d
Niveau 6

Re: (maths) Formation aux aménagements du programme de seconde : algo/programmation

par e1654d le Mar 11 Sep 2018 - 7:52
Tout à fait, c'était au début de la portée où existe la variable : dans l'exemple, la variable b n'existe pas en dehors de la paire d'accolades qui l'entoure (on ne pourrait pas faire return b à la place de return a).

Les compilos étaient donc capable de mélanger déclarations et instructions,
Maintenant oui ; dans les années 1980 je n'en suis pas certain, en tout cas de façon concrète. Aujourd'hui le non-respect de cette règle de C89 n'est qu'un avertissement parce qu'on n'est pas en train d'utiliser un compilateur de l'époque.

Pour en revenir à Python et peut-être clore cette discussion, il ne faut pas oublier que, contrairement à C, il est impossible de simplement déclarer une variable (dire son nom et son type) : on est obligé de la définir (lui donner une première valeur). Ce qui à mon sens renforce l'intérêt de n'introduire les variables que quand elles deviennent utiles : dans le cas contraire on est obligé de les (pré)définir avec une valeur qui n'a pas forcément de sens au moment où on le fait.
Badiste75
Niveau 10

Re: (maths) Formation aux aménagements du programme de seconde : algo/programmation

par Badiste75 le Mar 11 Sep 2018 - 9:11
Je ne fais pas écrire de cours mais leur donne des polys qu’on lit et commente en classe. Je leur dis que ce n’est pas à connaître par cœur, mais qu’il faut comprendre les grandes lignes.
AmyR
Niveau 6

Re: (maths) Formation aux aménagements du programme de seconde : algo/programmation

par AmyR le Mar 11 Sep 2018 - 15:14
@ben2510 a écrit:En seconde ?
* d'abord des algos de calcul, du genre DNB, et leur traduction sur calculatrice avec des variables pour stocker les étapes de calcul (en mode interactif) et enfin sous forme de programme (sur calcu, et sur pythontutor) : o travaille la notion de variable, l'affectation, et en maths image/antécédents, résolutions d'équations avec une forme canonique
* en octobre, code.org/hoc en demi-groupes : notion de boucle, d'alternative
* quand les formules pour déterminer une équation de droite m=dy/dx et p=y-mx sont sues, je les fait "programmer sur calcu avec autorisation de s'en servir en DS (bon évidemment quand il y a des mélanges de racines, de décimaux et de fractions dans les coordonnées des deux points, ça ne sert à rien)
* en novembre, des exos python et tortue (après avoir fait la géo ana en octobre), du genre chat orange ; l'aspect mathématique est essentiellement du calcul d'angles, et ça débouche sur Al-Kashi et la loi des sinus
* fin novembre, de l'arithmétique : décomposition en produits de facteurs premiers, algo d'Euclide : notion de liste (Python et sur TI), boucle indéfinie (while, quoi), critère d'arrêt, preuve de terminaison, preuve de correction ; mathématiquement, je retravaille les règles de calcul sur les puissances (genre DEFP de 325 ? puis DEFP de 325^100 ?)
* dichotomie (sur tableur d'abord, avec des =SI(), puis pythontutor et TI),
* en février, on a programmé en Processing un escargot de Pythagore
* en mars pendant les probas je fais simuler une loi géométrique et une loi binomiale
* sur tableur je fais en avril mai un travail sur variation absolue constante/variation relative constante (suite arithmétique vs suite géométrique, quoi), qui débouche sur un algo de seuil "temps de doublement" qui prend un taux et renvoie le nombre (entier) d'augmentations successives nécessaires pour doubler une grandeur
* en mai, je travaille à nouveau la simulation pour illustrer la notion d'IF, en Python avec des listes et une visualisation en diagrammes en barres (on simule 1000 fois 100 tirages, p.ex ; sur calcu c'est long...)


* l'année dernière on a eu le temps en fin d'année de programmer une courbe du chien
* par contre on n'a pas eu le temps de calculer la longueur d'un arc de parabole en utilisant une subdivision ; on l'a juste fait sur tableur

Une dernière remarque : je ne fais pas du tout de géo ana genre formule des milieux/de la distance/ d'appartenance à un cercle, pour éviter les problèmes liés à la représentation des réels


Merci pour cette réponse très complète !

@Not a Panda a écrit:
@AmyR a écrit:Bonjour,
quelle progression allez-vous adopter cette année pour la partie algo/programmation ?
J'aimerais pouvoir illustrer certaines partie du cours avec de la programmation mais du coup j'ai la tentation de faire toutes les bases d'un coup ce qui fait qu'au final je ne sais pas par où commencer :/.
Faites-vous écrire du cours ? (définition  d'algorithmes, de variables, ...) ?

Surement pas !

J'en fais le minimum possible : affectation, test if, quelques exemples simples sur la calculatrice et basta. Je ne suis pas professeur d'informatique.

@Badiste75 a écrit:Je ne fais pas écrire de cours mais leur donne des polys qu’on lit et commente en classe. Je leur dis que ce n’est pas à connaître par cœur, mais qu’il faut comprendre les grandes lignes.

Merci. Je vais surement distribuer un poly "aide mémoire en python". En fait, j'aimerais pouvoir me servir de python pour illustrer des choses en classes comme on le fait avec geogebra.
avatar
ben2510
Érudit

Re: (maths) Formation aux aménagements du programme de seconde : algo/programmation

par ben2510 le Mar 11 Sep 2018 - 19:26
En première et terminale, je donne souvent une liste de programmes (plutôt que d'algos) à entrer dans la calculatrice, même si le modèle examen remet un peu en cause ce fonctionnement.
En première et terminale également, le meilleur moyen pédagogique que j'ai trouvé est de balancer un exo au début de chaqee séance pendant trois semaines, voir par exemple les PJ.

https://framadrop.org/r/3UQpzrXqYD#6GlUCPNZlEoDbOdamHbC0UQKTF+Ym3vuutCFVLHhGVs=

https://framadrop.org/r/2jSCKGy0Iy#5NNVMydC3Rybwp7hOE8Nb20RNJpJKQUGcfurvlZawvo=

Pas de cours non plus, mais je fais noter quelques constructions utiles, en ce qui concerne Python.

_________________
On fait la science avec des faits, comme on fait une maison avec des pierres : mais une accumulation de faits n'est pas plus une science qu'un tas de pierres n'est une maison. Henri Poincaré  La notion d'équation différentielle est le pivot de la conception scientifique du monde. Vladimir Arnold
Contenu sponsorisé

Re: (maths) Formation aux aménagements du programme de seconde : algo/programmation

par Contenu sponsorisé
Voir le sujet précédentRevenir en hautVoir le sujet suivant
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum