π
<-

Réforme de la classe de terminale : spécialité Informatique

Re: Réforme de la classe de terminale : spécialité Informati

Unread postby M@yeulC » 08 Jan 2012, 18:28

Eh bien, le python est, si je ne m'abuse, un script destiné à être interprété au sein d'une application, et non pas un langage de programmation à part entière, qui a besoin d'être compilé avant d'être exécuté à part.

En cela, il se rapproche du TI-BASIC.
User avatar
M@yeulC
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Level up: 2.2%
 
Posts: 85
Joined: 27 Mar 2011, 18:55
Gender: Male
Calculator(s):
MyCalcs profile
Class: 4è année d'école d'ingénieur en électronique/informatique

Re: Réforme de la classe de terminale : spécialité Informati

Unread postby noelnadal » 08 Jan 2012, 18:31

Oui. Mais le TI-Basic est considéré comme un langage (officiel en plus). Le Python aussi donc ?
User avatar
noelnadalEcrivain
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 37%
 
Posts: 2264
Images: 0
Joined: 10 Mar 2011, 00:00
Location: France, Melun (77)
Gender: Male
Calculator(s):
MyCalcs profile
Class: INRIA Paris
Twitter: nadalnoel
Facebook: noel.nadal1
GitHub: noelnadal

Re: Réforme de la classe de terminale : spécialité Informati

Unread postby Lionel Debroux » 08 Jan 2012, 19:57

Python est un langage à part entière, qui a son propre interpréteur standalone, et un moyen de précompiler (vers du bytecode) le code Python.
Python est rarement intégré comme interpréteur au sein d'une autre application. Il y a plus léger et plus efficace, comme... Lua :)
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.3%
 
Posts: 6865
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: Réforme de la classe de terminale : spécialité Informati

Unread postby mdr1 » 08 Jan 2012, 20:41

Je remarque que beaucoup de gens trouvent plus pédagogique d'apprendre un langage mieux cadré, avec plus de contraintes.
Eh bien je pense exactement l'inverse, je m'explique à travers une comparaison : si à un enfant on ne cesse d'être derrière lui à lui dire "travaille, joue, mange, dors etc.", eh bien il ne sera pas capable d'être autonome et de le faire par lui-même, de juger par lui-même, de décider. Ainsi, il faut lui laisser de la liberté pour qu'il apprenne par lui-même tout en le guidant.
Pour en revenir avec l'objet primaire, si l'on donne l'habitude à l'élève d'un langage avec trop de contraintes, trop cadré, il sera perdu lorsqu'il tentera d'apprendre un langage comme C/C++ ou Java et lorsqu'il pratiquera de l'algorithmique schématique. À l'inverse, si on le met face à un langage où on peut donner un présentation plus libre au programme, si on lui donne des bons tuyaux, il prendra de bonnes habitudes.
Image ImageImage
User avatar
mdr1Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 44%
 
Posts: 1083
Images: 12
Joined: 28 Mar 2011, 00:00
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Je voyage toujours en première.

Re: Réforme de la classe de terminale : spécialité Informati

Unread postby noelnadal » 08 Jan 2012, 21:06

En fait d'après le programme la principale notion enseignée c'est les fonctions. Les fonctions c'est aprtout pareil sauf les instructions qui sont parfois plus intuitives dans les langages de haut niveau.
User avatar
noelnadalEcrivain
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 37%
 
Posts: 2264
Images: 0
Joined: 10 Mar 2011, 00:00
Location: France, Melun (77)
Gender: Male
Calculator(s):
MyCalcs profile
Class: INRIA Paris
Twitter: nadalnoel
Facebook: noel.nadal1
GitHub: noelnadal

Re: Réforme de la classe de terminale : spécialité Informati

Unread postby Levak » 09 Jan 2012, 04:21

mdr1 wrote:Pour en revenir avec l'objet primaire, si l'on donne l'habitude à l'élève d'un langage avec trop de contraintes, trop cadré, il sera perdu lorsqu'il tentera d'apprendre un langage comme C/C++ ou Java et lorsqu'il pratiquera de l'algorithmique schématique. À l'inverse, si on le met face à un langage où on peut donner un présentation plus libre au programme, si on lui donne des bons tuyaux, il prendra de bonnes habitudes.


Ce que tu oublies, c'est que les "contraintes" sont essentielles à connaître avant de s'embarquer dans les langages de plus haut niveau, non pas pour culture, mais tout simplement parce que ces mêmes langages reposent sur des routines de plus bas niveau. Les oublier ou ne pas les connaître te feras, et ça je l'ai vu pas mal de fois, écrire du code qui, en Java/C#/Python est intelligent, raisonnable etc ... mais qui plus bas est une pure grossièreté.

Un exemple tout bête : mettre des résultats dans des variables pour les réutiliser plus tard.
En bas niveau, notamment lorsque tu utilises des string, tu te rends compte de ce type de problème et tu vas tout faire pour minimiser les calculs/traitement en sauvegardant dans des variables intermédiaires.
En haut niveau, tu vas oublier cet aspect là et tu vas très certainement calculer 50 fois la même chose sans t'en apercevoir (ex: calcul de la longueur d'une chaine de caractères). Donc en plus du coup des machines virtuelles, interprétation ou autres, tu encaisses des calculs inutiles que tu pourrais éviter si, par toi même tu imagines ce qui se passe au niveau de la machine. On ne te demande pas de savoir refaire un processeur, juste de prendre en considération qu'il n'est pas magique =)

Je sais que pédagogiquement, c'est plus facile l'objet, mais il faut, je pense, passer par la case départ avant de pratiquer ces choses. Je pense cela parce qu'autour de moi, un nombre insaisissable de personnes qui n'avaient jamais programmé avant ont 1) mis du temps, trop de temps à comprendre tous les concepts de l'objet 2) buté et produit des codes abominables non optimisé et impossible à maintenir. Ils viennent te voir et te demandent pourquoi ça marche pas, tu as envie de tout effacer et de recommencer à leur place.
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: Réforme de la classe de terminale : spécialité Informati

Unread postby mdr1 » 09 Jan 2012, 15:30

Levak wrote:Ce que tu oublies, c'est que les "contraintes" sont essentielles à connaître avant de s'embarquer dans les langages de plus haut niveau, non pas pour culture, mais tout simplement parce que ces mêmes langages reposent sur des routines de plus bas niveau. Les oublier ou ne pas les connaître te feras, et ça je l'ai vu pas mal de fois, écrire du code qui, en Java/C#/Python est intelligent, raisonnable etc ... mais qui plus bas est une pure grossièreté.

Un exemple tout bête : mettre des résultats dans des variables pour les réutiliser plus tard.
En bas niveau, notamment lorsque tu utilises des string, tu te rends compte de ce type de problème et tu vas tout faire pour minimiser les calculs/traitement en sauvegardant dans des variables intermédiaires.
En haut niveau, tu vas oublier cet aspect là et tu vas très certainement calculer 50 fois la même chose sans t'en apercevoir (ex: calcul de la longueur d'une chaine de caractères). Donc en plus du coup des machines virtuelles, interprétation ou autres, tu encaisses des calculs inutiles que tu pourrais éviter si, par toi même tu imagines ce qui se passe au niveau de la machine. On ne te demande pas de savoir refaire un processeur, juste de prendre en considération qu'il n'est pas magique =)

Ton exemple du calcul de la longueur d'une chaine de caractère est erroné, en tout cas pour le Java, car quand on va demander de recevoir cette valeur, elle sera inscrite à un champ de l'instance, il n'y aura nullement besoin de quelque calcul que ce soit.
Ensuite, ce dont tu parles est l'optimisation, mais pas le pédagogique que je défendais dans ma thèse. Bien évidemment que ça permet de faire plus d'optimisations de programmer en assembleur, mais l'assembleur est très éloigné de l'algorithmique humaine.

Levak wrote:Je sais que pédagogiquement, c'est plus facile l'objet,

Attention, l'objet n'est pas plus facile pour l'apprentissage, mais pour le développement.
Donc pédagogiquement il n'est pas plus simple, mais plus logique.

Levak wrote:mais il faut, je pense, passer par la case départ avant de pratiquer ces choses. Je pense cela parce qu'autour de moi, un nombre insaisissable de personnes qui n'avaient jamais programmé avant ont 1) mis du temps, trop de temps à comprendre tous les concepts de l'objet 2) buté et produit des codes abominables non optimisé et impossible à maintenir. Ils viennent te voir et te demandent pourquoi ça marche pas, tu as envie de tout effacer et de recommencer à leur place.

Ça, ce sera valable tous langages confondus, même en assembleur. Et il sera plus facile de corriger la trajectoire dans des langages plus haut niveau de part l'utilisation de concepts plus faut niveau, contrairement à l'asm où de très nombreuses techniques changeant selon les cas etc. sont présentes.

Personnellement, j'adore programmer en assembleur, mais ce n'est pas du tout un langage ressemblant à "l'algorithmique".
Image ImageImage
User avatar
mdr1Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 44%
 
Posts: 1083
Images: 12
Joined: 28 Mar 2011, 00:00
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Je voyage toujours en première.

Re: Réforme de la classe de terminale : spécialité Informati

Unread postby Levak » 09 Jan 2012, 15:48

mdr1 wrote:Ton exemple du calcul de la longueur d'une chaine de caractère est erroné, en tout cas pour le Java, car quand on va demander de recevoir cette valeur, elle sera inscrite à un champ de l'instance, il n'y aura nullement besoin de quelque calcul que ce soit.

Moui, j'y ai pensé juste après avoir posté mon message :D
Mais ça reste un dé-référencement suivit d'un accès mémoire contre un simple accès mémoire si tu la sauvegardé =)

Ensuite, ce dont tu parles est l'optimisation, mais pas le pédagogique que je défendais dans ma thèse. Bien évidemment que ça permet de faire plus d'optimisations de programmer en assembleur, mais l'assembleur est très éloigné de l'algorithmique humaine.

Je ne descendrais pas jusqu'au niveau de l'assembleur, mais bien à celui du C. Le C est bas niveau par rapport au C#, Java et python. Ca suffit pour voir pas mal de problèmes et avoir conscience que le plancher n'est pas mouillé, chose que beaucoup de nouveaux programmeurs de haut niveau oublient.

Levak wrote:Je sais que pédagogiquement, c'est plus facile l'objet,

Attention, l'objet n'est pas plus facile pour l'apprentissage, mais pour le développement.
Donc pédagogiquement il n'est pas plus simple, mais plus logique.

Ok, j'avais mal lu/compris ta réponse tout à l'heure, on est donc maintenant sur la même longueur d'onde =)

Ça, ce sera valable tous langages confondus, même en assembleur. Et il sera plus facile de corriger la trajectoire dans des langages plus haut niveau de part l'utilisation de concepts plus faut niveau, contrairement à l'asm où de très nombreuses techniques changeant selon les cas etc. sont présentes.

Ce n'est pas valable dans tous langages confondus car si tu programmes de la merde, en bas niveau ça se voit/sent/ressent. En haut niveau, si tu programmes de la merde, le compilo te dit rien, adapte (il n'optimise donc pas les calculs) et tu te retrouves avec un exécutable qui marche, mais prend des plombes à tourner dans des boucles parc que ça utilise des fonctions time-critical.
Personnellement, j'adore programmer en assembleur, mais ce n'est pas du tout un langage ressemblant à "l'algorithmique".

On a, je pense, pas la même vision de l'algorithmique. Etant donné que je n'ai vu ça que dans mon école d'info où la structure algorithmique est elle même basée sur les pointeurs (listes chainées contre listes statiques). Tu as de l'algorithmique au lycée ? (Ou alors tu n'as vu ni l'un ni l'autre ?)
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: Réforme de la classe de terminale : spécialité Informati

Unread postby mdr1 » 09 Jan 2012, 16:35

Levak wrote:Ensuite, ce dont tu parles est l'optimisation, mais pas le pédagogique que je défendais dans ma thèse. Bien évidemment que ça permet de faire plus d'optimisations de programmer en assembleur, mais l'assembleur est très éloigné de l'algorithmique humaine.

Je ne descendrais pas jusqu'au niveau de l'assembleur, mais bien à celui du C. Le C est bas niveau par rapport au C#, Java et python. Ca suffit pour voir pas mal de problèmes et avoir conscience que le plancher n'est pas mouillé, chose que beaucoup de nouveaux programmeurs de haut niveau oublient.[/quote]
Ok mais il n'y a rien de logique en algorithmique avec les pointeurs.

Levak wrote:
Ça, ce sera valable tous langages confondus, même en assembleur. Et il sera plus facile de corriger la trajectoire dans des langages plus haut niveau de part l'utilisation de concepts plus faut niveau, contrairement à l'asm où de très nombreuses techniques changeant selon les cas etc. sont présentes.

Ce n'est pas valable dans tous langages confondus car si tu programmes de la merde, en bas niveau ça se voit/sent/ressent. En haut niveau, si tu programmes de la merde, le compilo te dit rien, adapte (il n'optimise donc pas les calculs) et tu te retrouves avec un exécutable qui marche, mais prend des plombes à tourner dans des boucles parc que ça utilise des fonctions time-critical.

Tu veux parler de la "merde" implicite ?
En haut niveau, le compilateur pourra faire des optimisations, et beaucoup plus qu'en bas niveau car il a une vue d'ensemble.
Et en assembleur, même pas du tout. What you program is what the file compiled is.


Levak wrote:
Personnellement, j'adore programmer en assembleur, mais ce n'est pas du tout un langage ressemblant à "l'algorithmique".

On a, je pense, pas la même vision de l'algorithmique. Etant donné que je n'ai vu ça que dans mon école d'info où la structure algorithmique est elle même basée sur les pointeurs (listes chainées contre listes statiques). Tu as de l'algorithmique au lycée ? (Ou alors tu n'as vu ni l'un ni l'autre ?)

C'est tout pourri ce que j'ai au lycée, et puis ce qu'on fait au lycée y a pas fonctions, graphismes et tout.
Ma vision de l'algorithmique, c'est celle qui est purement logique et sans rapport avec le matériel, et que l'on peut représenter avec des organigrammes.
Image ImageImage
User avatar
mdr1Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 44%
 
Posts: 1083
Images: 12
Joined: 28 Mar 2011, 00:00
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Je voyage toujours en première.

Re: Réforme de la classe de terminale : spécialité Informati

Unread postby Wellen » 09 Jan 2012, 16:49

mdr1 wrote:Ma vision de l'algorithmique, c'est celle qui est purement logique et sans rapport avec le matériel, et que l'on peut représenter avec des organigrammes.

La même, pour moi c'est le programme "en français".
La procrastination, c'est rigolo.
User avatar
WellenPremium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 31.8%
 
Posts: 447
Joined: 17 Dec 2010, 00:00
Location: Compiègne (Picardie)
Gender: Male
Calculator(s):
MyCalcs profile
Class: étudiant UTC

PreviousNext

Return to News Divers

Who is online

Users browsing this forum: ClaudeBot [spider] and 11 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
767 utilisateurs:
>717 invités
>41 membres
>9 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)