- kioupsPBTHabitué du forum
Ici, nos IPR nous ont poussés à faire du Python en seconde et interdits d'en faire ensuite... Pour l'année prochaine, a priori, Python en 1ère... A priori...
- BRNiveau 9
J'imagine que si un sujet de Bac propose un bout de code Python à interpréter ou à compléter, tu seras bien aise d'expliquer que seuls les programmes ont une valeur réglementaire. Par exemple, Scratch n'est pas cité dans le programme de mathématiques du cycle 4, donc il n'y a certainement pas de programme Scratch dans les sujets de brevet.crozier a écrit:Les propos du "on" n'ont pas de valeur réglementaire.Badiste75 a écrit:On a clairement dit ...
Comme le rappelle le site du ministère ( source : http://eduscol.education.fr/cid45766/mathematiques-pour-le-college-et-le-lycee.html#lien5 ), seuls les programmes ont une valeur réglementaire :
Les programmes sont, en conséquence, la seule référence réglementaire adressée aux professeurs. Les ressources et documents proposés aux enseignants garantissent ce principe, il revient à chaque enseignant de s'approprier les programmes dont il a la charge, d'organiser le travail de ses élèves et de choisir les méthodes qui lui semblent les plus adaptées en fonction des objectifs à atteindre.
- MathadorEmpereur
BR a écrit:J'imagine que si un sujet de Bac propose un bout de code Python à interpréter ou à compléter, tu seras bien aise d'expliquer que seuls les programmes ont une valeur réglementaire. Par exemple, Scratch n'est pas cité dans le programme de mathématiques du cycle 4, donc il n'y a certainement pas de programme Scratch dans les sujets de brevet.
Pour Scratch c'est un peu différent: le programme demande un langage de programmation par blocs, et ils se ressemblent beaucoup… chez moi un collègue de techno utilise code.org.
Par contre au lycée il y a, en dehors de Python, une notation usuelle pour les algorithmes (celle qui vient d'être amendée pour utiliser ← pour l'affectation), donc je ne vois pas vraiment de raison qu'il y ait des bouts de Python dans les sujets de bac.
_________________
"There are three kinds of lies: lies, damned lies, and statistics." (cité par Mark Twain)
« Vulnerasti cor meum, soror mea, sponsa; vulnerasti cor meum in uno oculorum tuorum, et in uno crine colli tui.
Quam pulchrae sunt mammae tuae, soror mea sponsa! pulchriora sunt ubera tua vino, et odor unguentorum tuorum super omnia aromata. » (Canticum Canticorum 4:9-10)
- Badiste75Habitué du forum
Je pense que si. On trouve déjà des exercices de ce type dans les manuels et c’est ce qu’ont dit certains IPR, donc je rejoins l’avis de BR.
- Call_BB5ANiveau 5
J'imagine déjà les vagues de protestation au bac de 2020 si un sujet devait sortir avec un programme en Python à compléter ou modifier alors que ça n'est justement pas dans les programmes du cycle terminal (les aménagements pour la classe de première n'étant pas tombés, ce sont les programmes de 2010 qui s'appliquent).BR a écrit:J'imagine que si un sujet de Bac propose un bout de code Python à interpréter ou à compléter, tu seras bien aise d'expliquer que seuls les programmes ont une valeur réglementaire.
Le report des aménagements à la première ont été tués dans l'oeuf avec la réforme du BAC. Je pense que si programmation en Python il y a ce ne sera officiel qu'au BAC de 2021, et pas avant.
- ProtonExpert
Le report des aménagements à la première ont été tués dans l'oeuf avec la réforme du BAC. Je pense que si programmation en Python il y a ce ne sera officiel qu'au BAC de 2021, et pas avant.
Tout à fait. Attendons les nouveaux programmes. Pourquoi vouloir être plus royaliste que le roi ? Il y aura une nouvelle spécialité informatique à ce moment-là et des heures dédiées dans la nouvelle seconde de ce que j'ai compris ...
- BRNiveau 9
Compte tenu des directives officielles actuelles, pour les promotions à venir qui ne sont pas touchées par la réforme, nous aurons certainement des bouts d'algorithme sans queue ni tête à la :Call_BB5A a écrit:J'imagine déjà les vagues de protestation au bac de 2020 si un sujet devait sortir avec un programme en Python à compléter ou modifier alors que ça n'est justement pas dans les programmes du cycle terminal (les aménagements pour la classe de première n'étant pas tombés, ce sont les programmes de 2010 qui s'appliquent).BR a écrit:J'imagine que si un sujet de Bac propose un bout de code Python à interpréter ou à compléter, tu seras bien aise d'expliquer que seuls les programmes ont une valeur réglementaire.
- Code:
x<-1
pour n allant de 1 à 15
x<-(x+2/x)/2
fin pour
qui est une régression surprenante par rapport à ce qui se pratiquait précédemment. Dans tous les cas, tu as raison, il n'y aura sans doute pas de Python au Bac avant la réforme.
Que se passera-t-il après la réforme ?
Deux possibilités :
- soit on supprime toute la partie algorithmique du cours de Mathématiques, l'algorithmique étant rendue superflue par la création d'un cours spécifique de science numérique,
- soit on continue à faire de l'algorithmique en cours de Mathématiques et on décide que Python est le langage à utiliser dans ce cadre.
Je miserais bien une pièce sur la possibilité 1, qui permettrait de se recentrer sur les fondamentaux, ce qui correspond à la lecture que je fais du rapport Torossian (ce merveilleux rapport qui proposait de passer à 7 à 8 heures de maths en Première, 8 à 9 heures en Terminale d'après les vœux formulés page 34 du rapport). Cependant il est probable que c'est la possibilité 2 qui sera choisie. Les aménagements du programme de seconde ont en effet introduit l'usage de langages interprétés, concis, largement répandus, et pouvant fonctionner dans une diversité d’environnements.
- Spoiler:
- c'est à dire Python, Algobox étant exclu car ni interprété, ni concis, ni largement répandu et ne pouvant pas fonctionner dans une diversité d'environnement
- Spoiler:
- En fait, Algobox correspond parfaitement à la description donnée dans les programmes (sauf éventuellement pour la concision), mais certains IG ont fait comprendre de façon subtile qu'il est hors de question de l'utiliser
Cette introduction étant d'ores et déjà une réussite incontestable grâce aux efforts considérables de formation déployés en académie, il convient de la confirmer officiellement.
- MathadorEmpereur
BR a écrit:Compte tenu des directives officielles actuelles, pour les promotions à venir qui ne sont pas touchées par la réforme, nous aurons certainement des bouts d'algorithme sans queue ni tête à la :
qui est une régression surprenante par rapport à ce qui se pratiquait précédemment. Dans tous les cas, tu as raison, il n'y aura sans doute pas de Python au Bac avant la réforme.
- Code:
x<-1
pour n allant de 1 à 15
x<-(x+2/x)/2
fin pour
En quoi est-ce une régression ? Il me semble qu'au contraire la suppression de la gangue permet de se concentrer sur l'essentiel, c'est-à-dire les calculs que l'on fait (ici, les 15 étapes de l'algorithme de Babylone).
BR a écrit:
Que se passera-t-il après la réforme ?
Deux possibilités :
- soit on supprime toute la partie algorithmique du cours de Mathématiques, l'algorithmique étant rendue superflue par la création d'un cours spécifique de science numérique,
- soit on continue à faire de l'algorithmique en cours de Mathématiques et on décide que Python est le langage à utiliser dans ce cadre.
Je miserais bien une pièce sur la possibilité 1, qui permettrait de se recentrer sur les fondamentaux, ce qui correspond à la lecture que je fais du rapport Torossian (ce merveilleux rapport qui proposait de passer à 7 à 8 heures de maths en Première, 8 à 9 heures en Terminale d'après les vœux formulés page 34 du rapport). Cependant il est probable que c'est la possibilité 2 qui sera choisie. Les aménagements du programme de seconde ont en effet introduit l'usage de langages interprétés, concis, largement répandus, et pouvant fonctionner dans une diversité d’environnements.
- Spoiler:
c'est à dire Python, Algobox étant exclu car ni interprété, ni concis, ni largement répandu et ne pouvant pas fonctionner dans une diversité d'environnement
- Spoiler:
En fait, Algobox correspond parfaitement à la description donnée dans les programmes (sauf éventuellement pour la concision), mais certains IG ont fait comprendre de façon subtile qu'il est hors de question de l'utiliser
Cette introduction étant d'ores et déjà une réussite incontestable grâce aux efforts considérables de formation déployés en académie, il convient de la confirmer officiellement.
Je donnerais davantage de crédit à l'option 1: en effet, les programmes actuels ont été écrits dans un contexte d'absence d'heures spécifiques d'informatique (à part ICN, qui est cependant apparu après la première version et qui est un EE). Or la réforme des grilles horaires me semble s'insérer dans le deuxième objectif sous-jacent de la réforme, après l'économie globale d'heures: la rentabilisation des heures de L1300; et il me semble justement que l'étalement du programme actuel de 2nde de 4h vers 5,5h s'inscrit parfaitement dans cet objectif, car l'horaire d'informatique sera attribuable aux collègues de STI, qui, contrairement à ceux de techno, me semblent être en nombre suffisant. Pour cette dernière raison, je ne vois pas l'intérêt de calquer le système du cycle 4 où l'informatique est partagée entre les maths et la techno.
On pourrait même émettre l'hypothèse que la politique du langage de programmation usuel était justement préparatoire aux heures d'informatique séparées, cadre dans lequel il est attendu que l'on utilise un langage usuel chez les informaticiens.
_________________
"There are three kinds of lies: lies, damned lies, and statistics." (cité par Mark Twain)
« Vulnerasti cor meum, soror mea, sponsa; vulnerasti cor meum in uno oculorum tuorum, et in uno crine colli tui.
Quam pulchrae sunt mammae tuae, soror mea sponsa! pulchriora sunt ubera tua vino, et odor unguentorum tuorum super omnia aromata. » (Canticum Canticorum 4:9-10)
- BRNiveau 9
Mathador a écrit:BR a écrit:Compte tenu des directives officielles actuelles, pour les promotions à venir qui ne sont pas touchées par la réforme, nous aurons certainement des bouts d'algorithme sans queue ni tête à la :
qui est une régression surprenante par rapport à ce qui se pratiquait précédemment. Dans tous les cas, tu as raison, il n'y aura sans doute pas de Python au Bac avant la réforme.
- Code:
x<-1
pour n allant de 1 à 15
x<-(x+2/x)/2
fin pour
En quoi est-ce une régression ? Il me semble qu'au contraire la suppression de la gangue permet de se concentrer sur l'essentiel, c'est-à-dire les calculs que l'on fait (ici, les 15 étapes de l'algorithme de Babylone).
L'ancienne convention incitait les élèves à expliciter clairement leur raisonnement, en distinguant plusieurs phases : déclaration et typage des variables, initialisation des variables, traitement, sortie.
On disposait ainsi d'une structure claire et explicite. Il reste juste un infâme gribouillage sans grande cohérence. Libérer toute contrainte de rigueur dans la présentation n'est à mon avis pas un service à rendre à nos élèves.
- BRNiveau 9
Mathador a écrit:On pourrait émettre l'hypothèse que la politique du langage de programmation usuel était justement préparatoire aux heures d'informatique séparées, cadre dans lequel il est attendu que l'on utilise un langage usuel chez les informaticiens.
Tu me semble bien naïf. Je ne crois pas qu'il y ait de logique entre les aménagements proposés pour la rentrée 2017 et la réforme du Bac. Lorsque les aménagements ont été introduits, il s'agissait de mettre en cohérence l'enseignement d'algorithmique au collège avec celui du Lycée. La commission Mathiot n'existait pas (c'est au mois de novembre 2017 que J.M. Blanquer a lancé la commission...) et personne n'imaginait que l'on allait dynamiter les séries du Lycée.
Mathador a écrit:La réforme des grilles horaires me semble s'insérer dans le deuxième objectif sous-jacent de la réforme, après l'économie globale d'heures: la rentabilisation des heures de L1300; et il me semble justement que l'étalement du programme actuel de 2nde de 4h vers 5,5h s'inscrit parfaitement dans cet objectif, car l'horaire d'informatique sera attribuable aux collègues de STI, qui, contrairement à ceux de techno, me semblent être en nombre suffisant. Pour cette dernière raison, je ne vois pas l'intérêt de calquer le système du cycle 4 où l'informatique est partagée entre les maths et la techno.
Personne ne sait aujourd'hui ce qui va sortir des travaux du conseil supérieur des Programmes. Il est un peu présomptueux de croire que le cours de Sciences Numérique sera une annexe du cours de Mathématiques. Il me semble au contraire très peu probable que le programme du cours de Sciences Numérique corresponde à l'actuelle partie algorithmique du programme de Mathématiques. Le CSP n'a aucune raison de confier l'écriture de ce programme aux IG de Maths. Il est plus que probable qu'il sera rédigé par l'équipe chargée du programme de la spécialité informatique, qui sera sans doute constituée d'informaticiens universitaires. Je doute que l'algorithmique des matheux leur paraisse d'un quelconque intérêt.
- e1654dNiveau 7
Je ne crois pas qu'il y ait libération de toute contrainte de rigueur : comme avant, les élèves doivent se plier au formalisme imposé par l'énoncé. Simplement, ce n'est plus le même formalisme. Initialiser systématiquement les variables en début de programme comme on le faisait faire est une mauvaise pratique : comme dans une preuve mathématique, on introduit les variables au moment où on s'en sert (personne ne commence une preuve en écrivant toutes les variables et notations qui vont intervenir). Je pense que c'est un héritage de Pascal, qui imposait la déclaration initiale pour une raison technique (économiser une passe à la compilation) au détriment de la clarté.
Hors la complexité, les math qui sont susceptibles d'intéresser le programme de la future spé info sont plutôt des math discrètes (graphes) ainsi que la logique.
Hors la complexité, les math qui sont susceptibles d'intéresser le programme de la future spé info sont plutôt des math discrètes (graphes) ainsi que la logique.
- MathadorEmpereur
L'émergence d'une matière informatique séparée n'est pas un projet nouveau, et je place la création des matières ISN et ICN dans ce cadre.
Au collège, cela a été fait différemment car il est (presque) uniforme et il était inenvisageable de créer une matière informatique séparée dont il aurait sans doute été impossible de pourvoir les heures sur tout le territoire, étant donné qu'à la fois les maths et la techno sont déficitaires.
En ce qui concerne les programmes, je serais surpris si Laurent Chéno, qui s'est déjà occupé de mettre en place l'ISN, n'avait pas un rôle important dans l'élaboration des programmes d'informatique.
Au collège, cela a été fait différemment car il est (presque) uniforme et il était inenvisageable de créer une matière informatique séparée dont il aurait sans doute été impossible de pourvoir les heures sur tout le territoire, étant donné qu'à la fois les maths et la techno sont déficitaires.
En ce qui concerne les programmes, je serais surpris si Laurent Chéno, qui s'est déjà occupé de mettre en place l'ISN, n'avait pas un rôle important dans l'élaboration des programmes d'informatique.
_________________
"There are three kinds of lies: lies, damned lies, and statistics." (cité par Mark Twain)
« Vulnerasti cor meum, soror mea, sponsa; vulnerasti cor meum in uno oculorum tuorum, et in uno crine colli tui.
Quam pulchrae sunt mammae tuae, soror mea sponsa! pulchriora sunt ubera tua vino, et odor unguentorum tuorum super omnia aromata. » (Canticum Canticorum 4:9-10)
- Call_BB5ANiveau 5
Il y a aussi la position intermédiaire : on conserve l'algorithmique en math, et on laisse la partie programmation aux sciences numériques.BR a écrit:Deux possibilités :
- soit on supprime toute la partie algorithmique du cours de Mathématiques, l'algorithmique étant rendue superflue par la création d'un cours spécifique de science numérique,
- soit on continue à faire de l'algorithmique en cours de Mathématiques et on décide que Python est le langage à utiliser dans ce cadre.
Quand on voit ce qu'est l'ISN en terminale S on doit s'inquiéter de son évolution et généralisation :Mathador a écrit:En ce qui concerne les programmes, je serais surpris si Laurent Chéno, qui s'est déjà occupé de mettre en place l'ISN, n'avait pas un rôle important dans l'élaboration des programmes d'informatique.
* Le travail personnel s'il y en a ne doit pas déborder sur le temps consacré aux autres cours : à croire qu'il est proscrit de travailler !
* La pédagogie de projets faits que les cours sont réduits à un tiers de l'année : 12 séances de deux heures à tout casser pour faire le programme officiel (programmation, html-css, réseaux, législation, robotique, algorithmique et graphes, les données...), tout le reste du temps de cours est passé en mini-projet et projet final pour le bac.
* l'option ISN n'est pas un pré-requis à une poursuite d'étude dans l'informatique, elle est ignorée des filières post-bac.
- crozierNiveau 2
Ce que propose les Conseil Supérieur des programmes (source : http://cache.media.education.gouv.fr/file/CSP/99/9/CSP-note-analyses-propositions-lycee-mai-2018_942999.pdf ):
Spécialité Numérique et sciences informatiques
Enseignement commun Sciences numériques et technologie au niveau de la seconde
Spécialité Numérique et sciences informatiques
L’enseignement de spécialité « Numérique et sciences informatiques » devra à la fois porter une
ambition scientifique élevée et appréhender l’histoire des notions, l’évolution des outils et les enjeux
des recherches. Aussi devra-t-il combiner les approches scientifiques, technologiques, culturelles,
sociétales et éthiques qu’engage le développement du numérique et de l’informatique dans notre
civilisation.
Il pourra exploiter et développer les entrées proposées actuellement par l’enseignement
d’informatique et sciences du numérique (ISN) :
la représentation de l’information,
l’algorithmique,
les langages et la programmation (qui pourraient intégrer l’étude de l’histoire des langages de
programmation, avec le passage d’un modèle abstrait à un modèle comme forme d’expressivité,
intégrant une personnalisation),
les architectures matérielles,
ainsi que les questions portant sur le traitement et l’exploitation des informations (big data, ...),
sur l’intelligence artificielle, sur l’interface homme – machine, sur les métiers du numérique, sur
les possibilités offertes par le numérique pour répondre aux exigences environnementales, ...
Cet enseignement pourra également s’inspirer du programme d’informatique et création numérique
(ICN).
Les concepts fondamentaux devront être explicités (algorithme, code, langage, système
d’exploitation, ...) et concrétisés via des expérimentations. Pour que les élèves utilisent le numérique
en pleine conscience de ses enjeux, ils doivent en effet comprendre les possibilités offertes par la
programmation.
Cet enseignement sera assuré :
par des professeurs de mathématiques ayant choisi l’option « Informatique » à leur concours de
recrutement ;
par des professeurs de technologie expérimentés.
Enseignement commun Sciences numériques et technologie au niveau de la seconde
Cet enseignement visera à construire une culture scolaire sur les notions et les possibilités
fondamentales du numérique : il en étudiera donc les principaux concepts (algorithme, code,
langage, système d’exploitation, ...). Les élèves s’exerceront au code et, en codant, ils vérifieront leur
maîtrise des connaissances et des démarches attendues :
l’écriture du code requiert une démarche scientifique de recherche, de test, de validation, et
suppose le respect de certaines règles, relevant par exemple de la sécurité ;
l’écriture du code constitue aussi une vérification de la compréhension et une modalité de
démonstration ; en codant, l’élève vérifie donc qu’il a bien compris une théorie.
Pour autant, il ne s’agira pas d’enseigner seulement des aspects techniques mais aussi l’histoire et
l’épistémologie générale du numérique : la présentation de la genèse des concepts aide à les
comprendre.
Cet enseignement, assuré par des professeurs de mathématiques ayant choisi l’option
« Informatique » à leur concours de recrutement et par des professeurs de technologie
expérimentés, devra être articulé avec :
les programmes des enseignements scientifiques de seconde,
les programmes du cycle terminal, l’enseignement scientifique (enseignement commun) et les
enseignements scientifiques de spécialité, notamment mathématiques, sciences de l’ingénieur et
numérique et sciences informatiques.
- ProtonExpert
Donc, cela confirme l'idée que cette heure de "sciences numériques" en seconde sera bien consacrée à la partie programmation du BO de maths et en structurant davantage l'enseignement.
L'an prochain, on continue comme cette année ? Pas encore de "sciences numériques" non ?
L'an prochain, on continue comme cette année ? Pas encore de "sciences numériques" non ?
- JulienP1985Niveau 4
Pour ma part, je suis à peu près convaincu, vu les récents textes du CSP qui ont été mis en ligne la semaine dernière, que l'algorithmique/programmation ne sera plus du tout présent à partir de la première en cours de Mathématiques. En seconde, ils resteront.
Les membres du CSP d'aujourd'hui ne sont plus du tout les mêmes que ceux qui ont "pondu" les aménagements aux programmes de Seconde.
Vu le PDF qui a été montré en partie plus haut, et vu ce qu'il est dit sur la partie Mathématiques, il y a fort à parier que les futurs programmes de Première et de Terminale en Mathématiques comporteront moins de domaines variés qu'avant, mais que, par contre, les domaines abordés seront approfondis.
Par ailleurs, c'est bien la première fois que je lis dans un texte officiel depuis le début des années 2000 que le calcul doit faire partie des futurs priorités du lycée.
D'autre part, comme montré plus haut dans le topic, les futurs programmes de sciences informatiques devront aborder les algorithmes (mais pas que ça on est bien d'accord...) Même si l'algorithmique sera bien plus approfondie en cours d'informatique qu'en cours de mathématiques, je ne vois pas l'interêt de faire "doublon" avec ceux qui prendront les spé mathématiques et informatiques (et il y a fort à parier que ceux qui prendront la spé informatique seront nombreux à prendre la spé mathématiques...).
Il se peut également que je me trompe, et que la partie algorithmique, si il y en a, des futurs programmes de première et terminale soit amputée de beaucoup de choses et qu'au final, il ne reste plus grand chose...
Au fait, est ce que quelqu'un sait si, en décembre 2018, de nouveaux programmes de Seconde seront dévoilés en Mathématiques ? Car pour moi les nouveaux programmes ne concerneront que la Première et Terminale, mais ce n'est pas très clair...
Les membres du CSP d'aujourd'hui ne sont plus du tout les mêmes que ceux qui ont "pondu" les aménagements aux programmes de Seconde.
Vu le PDF qui a été montré en partie plus haut, et vu ce qu'il est dit sur la partie Mathématiques, il y a fort à parier que les futurs programmes de Première et de Terminale en Mathématiques comporteront moins de domaines variés qu'avant, mais que, par contre, les domaines abordés seront approfondis.
Par ailleurs, c'est bien la première fois que je lis dans un texte officiel depuis le début des années 2000 que le calcul doit faire partie des futurs priorités du lycée.
D'autre part, comme montré plus haut dans le topic, les futurs programmes de sciences informatiques devront aborder les algorithmes (mais pas que ça on est bien d'accord...) Même si l'algorithmique sera bien plus approfondie en cours d'informatique qu'en cours de mathématiques, je ne vois pas l'interêt de faire "doublon" avec ceux qui prendront les spé mathématiques et informatiques (et il y a fort à parier que ceux qui prendront la spé informatique seront nombreux à prendre la spé mathématiques...).
Il se peut également que je me trompe, et que la partie algorithmique, si il y en a, des futurs programmes de première et terminale soit amputée de beaucoup de choses et qu'au final, il ne reste plus grand chose...
Au fait, est ce que quelqu'un sait si, en décembre 2018, de nouveaux programmes de Seconde seront dévoilés en Mathématiques ? Car pour moi les nouveaux programmes ne concerneront que la Première et Terminale, mais ce n'est pas très clair...
- InvitéInvité
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, ...) ?
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, ...) ?
- BalthazaardVénérable
e1654d a écrit:Je ne crois pas qu'il y ait libération de toute contrainte de rigueur : comme avant, les élèves doivent se plier au formalisme imposé par l'énoncé. Simplement, ce n'est plus le même formalisme. Initialiser systématiquement les variables en début de programme comme on le faisait faire est une mauvaise pratique : comme dans une preuve mathématique, on introduit les variables au moment où on s'en sert (personne ne commence une preuve en écrivant toutes les variables et notations qui vont intervenir). Je pense que c'est un héritage de Pascal, qui imposait la déclaration initiale pour une raison technique (économiser une passe à la compilation) au détriment de la clarté.
Hors la complexité, les math qui sont susceptibles d'intéresser le programme de la future spé info sont plutôt des math discrètes (graphes) ainsi que la logique.
Java est à jeter aussi alors? Il a le même taux d'utilisation que Python et pratiquement tout les oppose.
- ben2510Expert spécialisé
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
* 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
_________________
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
- e1654dNiveau 7
Je ne comprends pas. Il me semble qu'en Java on peut définir une variable au milieu d'une méthode, enfin quand ça devient pertinent ; on n'est pas contraint de le faire au début.
Java me parait critiquable comme langage d'apprentissage initial en raison du côté "messe en latin" de sa verbosité (sauf si on choisit d'exposer la programmation objet dès le début mais je ne vois pas bien à quoi ça peut ressembler), mais c'est un autre sujet.
Java me parait critiquable comme langage d'apprentissage initial en raison du côté "messe en latin" de sa verbosité (sauf si on choisit d'exposer la programmation objet dès le début mais je ne vois pas bien à quoi ça peut ressembler), mais c'est un autre sujet.
- BalthazaardVénérable
e1654d a écrit:Je ne comprends pas. Il me semble qu'en Java on peut définir une variable au milieu d'une méthode, enfin quand ça devient pertinent, et qu'on n'est pas contraint de le faire au début.
Java me parait critiquable comme langage d'apprentissage initial en raison du côté "messe en latin" de sa verbosité (sauf si on choisit d'exposer la programmation objet dès le début mais je ne vois pas bien à quoi ça peut ressembler), mais c'est un autre sujet.
Vous n'êtes en effet pas obligé de le faire au début, mais si vous comparez du code où les déclarations se font au fur et à mesure et celui ou les déclarations se font au début, vous comprenez pour quoi dans quasiment tous les exemples que l'on peut trouver c'est le second cas qui domine.
- e1654dNiveau 7
Et bien non, je ne vois pas. Il est vrai cependant que la quantité de code Java que j'ai lue est extrêmement réduite, mais je n'ai pas trouvé de recommandation, même légère, de déclarer les variables d'une méthode au début d'icelle dans les manuels de style de Twitter ni de Google.
- ProtonExpert
En première on peut laisser tomber cette histoire de programmation et ne faire que les algo classiques ? Surtout avec les ES où c'est peine perdue ...
- BalthazaardVénérable
e1654d a écrit:Et bien non, je ne vois pas. Il est vrai cependant que la quantité de code Java que j'ai lue est extrêmement réduite, mais je n'ai pas trouvé de recommandation, même légère, de déclarer les variables d'une méthode au début d'icelle dans les manuels de style de Twitter ni de Google.
Justement! il n'y a aucune injonction, contrairement à ce que nous subissons et qu'on veut nous faire croire...c'est l'usage et la clarté qui prime. A tout exemple un extrait du noyau linux en C (avec les références linux-3.16.57.tar.xz init/do_mounts_md.c) pour voir ce que font les pros
static int __init md_setup(char *str)
{
int minor, level, factor, fault, partitioned = 0;
char *pername = "";
char *str1;
int ent;
if (*str == 'd') {
partitioned = 1;
str++;
}
if (get_option(&str, &minor) != 2) { /* MD Number */
printk(KERN_WARNING "md: Too few arguments supplied to md=.\n");
return 0;
}
str1 = str;
for (ent=0 ; ent< md_setup_ents ; ent++)
if (md_setup_args[ent].minor == minor &&
md_setup_args[ent].partitioned == partitioned) {
printk(KERN_WARNING "md: md=%s%d, Specified more than once. "
"Replacing previous definition.\n", partitioned?"
****** à suivre
Maintenant les gens qui écrivent le noyau de linux ont peut-être de mauvaises habitudes
Moi je lis des lignes d'initialisation et de déclaration au début de la procédure alors qu'elles auraient pu être dans le corps , l'auteur a sans doute jugé cela plus clair
Et c'est tout linux qui est écrit ainsi
- e1654dNiveau 7
Alors déjà, on ne va pas comparer le code écrit dans le kernel linux avec les pratiques à utiliser quand on enseigne à des débutants.
Ensuite, c'est pas du Java, c'est du C.
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.
Les versions modernes des normes C permettent la déclaration de variables partout. Il est vrai que contrairement à Python, C a un historique long et que sur un projet existant on peut préférer conserver une cohérence dans l'organisation, et que les programmeurs ont des habitudes, mais pour l'avenir la déclaration systématique au début n'est pas pertinente (ce n'est pas pour rien d'ailleurs qu'on a rendu possible dans le langage des définitions ailleurs et qu'on a fait l'effort d'écrire des compilateurs qui savent le gérer…).
Ensuite, c'est pas du Java, c'est du C.
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.
Les versions modernes des normes C permettent la déclaration de variables partout. Il est vrai que contrairement à Python, C a un historique long et que sur un projet existant on peut préférer conserver une cohérence dans l'organisation, et que les programmeurs ont des habitudes, mais pour l'avenir la déclaration systématique au début n'est pas pertinente (ce n'est pas pour rien d'ailleurs qu'on a rendu possible dans le langage des définitions ailleurs et qu'on a fait l'effort d'écrire des compilateurs qui savent le gérer…).
- VinZTDoyen
Plus je vous lis, plus je me dis qu'il est vital que je n'enseigne pas la future spécialité informatique …
_________________
« Il ne faut pas croire tout ce qu'on voit sur Internet » Victor Hugo.
« Le con ne perd jamais son temps. Il perd celui des autres. » Frédéric Dard
« Ne jamais faire le jour même ce que tu peux faire faire le lendemain par quelqu'un d'autre » Pierre Dac
« Je n'ai jamais lâché prise !» Claude François
« Un économiste est un expert qui saura demain pourquoi ce qu'il avait prédit hier ne s'est pas produit aujourd'hui. » Laurence J. Peter
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum