accès aux groupes de discussion, consultation et publication d'articles, recherche de "newsgroups"...
membres, identifiez-vous
é-mail Mot de passe
nouveau ? mot de passe oublié ?
Chargement... Chargement en cours...

Groupes français belges canadiens suisses internationaux Nétiquette
Échangez opinions et commentaires dans les forums de discussion.

Re: Langage d'enseignement (Was: Python)

 [  Nouvelle Discussion Nouvelle discussion  |  Répondre au groupe Répondre au groupe  |  fr.comp.lang.general ] 

Retour : Accueil du site fr comp lang general   charte stats de ce groupe


  Sujet:   Re: Langage d'enseignement (Was: Python)  
 De: Marc.Bo...@enseeiht.yahoo.fr.invalid (Marc Boyer)
 Groupes: fr.comp.lang.general
 Organisation: CICT
 Date: 09. Apr 2008, 08:50:18
 References: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
On 2008-04-07, bruno desthuilliers <bruno.desthuilliers@gmail.com> wrote:
> On 7 avr, 10:10, Marc Boyer <Marc.Bo...@enseeiht.yahoo.fr.invalid>
> wrote:
>> On 2008-04-04, Bruno Desthuilliers wrote:
>>
>> > Marc Boyer a écrit :
>
> (à propos de raisons premières du typage statique - optimisation ou
> correction)
>> >>   Ca dépend du point de vue...
>> >>   Je pense que le typage "à la C" (int/float/char*) vient d'un
>> >> mappin efficace sur le processeur, contrairement à Lisp, où
>> >> l'interpréteur doit dynamiquement regarder ce qu'il manipule.
>>
>> >>   Mais ensuite, les ajouts de typage, à la Ada, C++, veulent
>> >> eux fiabiliser en évitant d'ajouter des pommes et des poires
>> >> (à moins de déclarer explicitement l'opérateur de compote).
>>
>> > C'était déjà le cas en Pascal, non ?
>>
>>   C'était semble-t-il l'intention. Mais on pouvait tout
>> à fait ajouter des pommes et des oranges.
>>
>> http://www.cs.virginia.edu/~evans/cs655-S00/readings/bwk-on-pascal.html
>>      type
>>              apple = integer;
>>              orange = integer;
>>
>> then any arbitrary arithmetic expression involving apples and oranges is
>> perfectly legal.
>
> Tiens, il me semblait me souvenir que justement Pascal différait du C
> sur ce point en faisant des typedef de vraies définitions de type et
> non de simples alias ? 

  Ben, visiblement non.
  Ceci dit, de quels Pascal parlons nous ? Celui dont parle Kernigan
doit être un très ancien. Est-ce qu'il a évolué depuis...

> IIRC aussi, en Pascal, un tableau de 10 entiers
> n'est pas du même type qu'un tableau de 11 entiers... 

  Ca oui. Et dans la pratique, c'est extrèmement pénible.

> Mais bon, ça dépend peut-être aussi des implémentations.

  Ben, il existe une norme ISO, mais si personne ne la
respecte, ça ne fixe pas grand chose. Ceci dit, j'arrête de 
parler de Pascal. Le but s'était juste de dire que le typage
statique avait un but de correction et pas uniquement
d'optimisation.

>> >>   Quant aux débutants... Ils confondent (je prends la syntaxe C)
>> >> 0, 0.0, "0", '0' et '\0'. Alors, si tu ne leur impose pas
>> >> de dire quel est le type de valeur qu'ils manipulent (lors de
>> >> la déclaration de variable), ben, c'est la panique.
>>
>> > Heu... J'ai commencé à bricoler mes premiers bouts de code en 1990 avec
>> > HyperCard / HyperTalk (typage dynamique, et pas spécialement fort). Sans
>> > internet, et sans personne pour me mentorer. Et j'ai très vite appris à
>> > faire la différence entre une chaine et un nombre (ne serait-ce qu'en
>> > voyant le résultat des calculs...).
>>
>>   La question du "très vite" est toute relative, dépendante de la
>> personne, et de sa motivation.
>
> "très vite" = une après-midi à m'arracher les cheveux, sachant que
> j'avais commencé la lecture du manuel hypertalk au début de la même
> semaine et n'avait à ce moment *strictement aucune* connaissance /
> expérience / whatever en programmation (et très peu d'expérience de
> l'informatique tout court).

  Et ben... En tant qu'enseignent, j'écrit un support de cours, je
le présente, je dis des choses à l'oral, au tableau et devant la
machine, et après, certaines choses ont été "oubliées", et je
retrouve des choses genre:
  char* mes;
  fgets(mes, 4, stdin);
et quand je demande à l'étudiant "mais 'mess', il pointe sur quelle
variable ?", il me répond "ben, 'mess[0]'"...

> Quant à ma motivation, je dois être un peu cabochard, mais on peut la
> résumer à : "c'est quand même pas cette putain de calculette géante
> qui va avoir le dernier mot avec moi, putain de bordel de merdre !"

  Très forte motivation donc.

>> > Bon, le langage suivant (si on omet un peu d'assembleur 68k) était un
>> > basic objet à typage statique déclaratif, et je reconnais que dans un
>> > premier temps, j'ai de moi-même considéré ça comme une aide et un
>> > progrès par rapport à HyperTalk - peut-être simplement parce que ça
>> > m'obligeait à structurer un peu plus ma réflexion vu que dans la
>> > pratique je n'avais en fait guère de pb de typage, ayant déjà appris à
>> > être attentif à ces aspects.
>>
>>   Ce qui va dans ce sens.
>
> Oui et non. On croise sur (f)cl.py pas mal de débutants complets, et
> il ne semble pas que le typage dynamique les empêche de comprendre la
> différence entre une chaine, un entier, un pseudo-réel, une liste ou
> un dictionnaire (pour ne citer que les types 'de base' les plus
> utilisés).

  Faudrait que je m'y abonne peut-être.

>>   Dans le cadre d'une formation, on peut le contraindre à passer
>> par la partie pénible jusqu'au moment où l'investissement paye.
>
> La contrainte est-elle à ce point nécessaire ?
>
> Nos graphistes viennent de passer de Windows à MacOS X. Et malgré les
> qualités du clickodrome en question, ils sont en train, petit à petit,
> de se mettre aux lignes de commande. Non par contrainte, mais d'une
> part parce qu'ils nous voient utiliser l'outil, et voient donc en quoi
> il peut être dans certains cas plus puissant qu'un clickodrome, et
> d'autre part parce que cela leur permet aussi d'être autonomes sur les
> serveurs linux quand ils ont besoin d'y accéder.

   Il faudrait faire de la psychologie pour comprendre pourquoi
ça marche "par l'exemple" et pas chez nous.
  Après 7 mois sur machine, il n'utilisent toujours pas la
completion automatique du shell....


>> > réaliser dès les premiers jours avoir des petits programmes
>> > *fonctionnels* est certainement pour beaucoup dans ma "vocation". Et une
>> > fois motivé, je n'ai pas eu de problème majeur à passer à des technos
>> > bien plus contraignantes.
>>
>>   Et oui... Si les étudiants choisissaient un cursus conforme à
>> leurs envies, l'enseignement supérieur serait plus simple.
>
> Je ne sais pas dans quelle mesure "envie" est le terme qui convient.
> Je pense que c'est, plus généralement, lié au fait d'avoir réellement
> *choisi* le cursus - quant aux raisons du choix, c'est autre chose.
> Mais bon, ce qui est sûr, c'est que quelqu'un qui ne sait même pas
> pourquoi il est là ne fait pas forcément le meilleur apprenant. Dans
> cette perspective, la question n'est pas tant de savoir s'il vaut
> mieux enseigner la programmation avec tel ou tel système de typage,
> mais si ça vaut le coup d'enseigner quoi que ce soit à quelqu'un qui
> fondamentalement s'en contrefiche.

  Vaste programme.

>> >>> Ceci étant, on parle de typage statique et dynamique en faisant comme si
>> >>> la notion même de "type" était la même dans les deux cas, ce que n'est
>> >>> peut-être pas vraiment le cas. Du point du vue du typage statique, dans
>> >>> des langages comme Python ou Ruby, il n'existe en fait qu'un seul type,
>> >>> le type 'objet' - pas de types "primitifs", "scalaires" etc...
>>
>> >>   Heuh... Faut quand même pas confondre les concepts et leur
>> >> implantation. Je suis 0 en python, mais je lis sur Wikipédia:
>> >>   points = 3.2 # points est du type float
>> >>   print "Tu as " + points + " points !" # Génère une erreur de typage
>>
>> >>  Que la notion de type (flottant, chaine) soit englobée dans un attribut
>> >> dynamique en python, ok, mais la notion reste là, non ?
>>
>> > La notion de "type" est là, oui, je ne dis pas le contraire. Mais
>> > pointe-t-elle sur le même concept ?
>>
>>   Ben, une variable transporte une donnée,
>
> Pas dans des langages comme Python ou Ruby etc, où une "variable" ne
> "transporte" rien, puisque c'est juste un nom permettant d'accéder à
> un objet dont le cycle de vie est indépendant du périmètre de
> visibilité du nom en question.

  Pardon, "désigne" une donnée.
  C'est de la manipulation par référence et non par valeur.
 

[SNIP, longue explication sur référence vs valeur]
> Là n'était pas le propos. J'essaie juste d'illustrer, malgré mes
> lacunes en théorie informatique, en quoi il me semble que même s'il
> existe dans les deux systèmes une notion de type, je ne suis pas sûr
> qu'il s'agisse vraiment du même concept. Mais bon, étant incapable
> d'exprimer ça plus clairement, je vais m'en tenir là pour le
> moment :-/

  C'est très claire: c'était une erreur de ma part.
  Mon propos reste le même: une variable sert à manipuler (par valeur
ou par reference) une "donnée" d'un certain type (j'exclu de la
discution le sous-typage).
  Il est important pour les débutants de comprendre ce qu'est
un type, et, quand il réfléchissent à un algo, de devoir 
expliciter le type des variables manipulées.

Marc Boyer
-- 
Si tu peux supporter d'entendre tes paroles
Travesties par des gueux pour exciter des sots
                           IF -- Rudyard Kipling (Trad. André Maurois)


DateSujet  Auteur
31.03.
* Re: Python
Thierry B.
31.03.
+* Re: Python
Wykaaa
31.03.
|+* Re: Python
Laurent Pointal
01.04.
||+* Langage d'enseigneme
Marc Boyer
01.04.
|||+- Re: Langage d'enseigneme
Laurent Pointal
01.04.
|||`* Re: Langage d'enseigneme
Wykaaa
01.04.
||| +* Re: Langage d'enseigneme
Bruno Desthuilliers
01.04.
||| |`* Re: Langage d'enseigneme
Wykaaa
02.04.
||| | `* Re: Langage d'enseigneme
Bruno Desthuilliers
02.04.
||| |  `* Re: Langage d'enseigneme
Wykaaa
02.04.
||| |   +* Re: Langage d'enseigneme
Bruno Desthuilliers
02.04.
||| |   |`* Re: Langage d'enseigneme
Wykaaa
02.04.
||| |   | +* Re: Langage d'enseigneme
Bruno Desthuilliers
02.04.
||| |   | |`* Re: Langage d'enseigneme
Wykaaa
02.04.
||| |   | | `* Re: Langage d'enseigneme
bruno desthuilliers
03.04.
||| |   | |  `* Re: Langage d'enseigneme
Wykaaa
04.04.
||| |   | |   `* Re: Langage d'enseigneme
Bruno Desthuilliers
04.04.
||| |   | |    +* Re: Langage d'enseigneme
Thierry B.
04.04.
||| |   | |    |`* Re: Langage d'enseigneme
Bruno Desthuilliers
06.04.
||| |   | |    | `- Re: Langage d'enseigneme
Thierry B.
04.04.
||| |   | |    +* Re: Langage d'enseigneme
Marc Boyer
04.04.
||| |   | |    |+* Re: Langage d'enseigneme
Bruno Desthuilliers
07.04.
||| |   | |    ||`* Re: Langage d'enseigneme
Marc Boyer
07.04.
||| |   | |    || `* Re: Langage d'enseigneme
bruno desthuilliers
07.04.
||| |   | |    ||  +* Re: Langage d'enseigneme
Wykaaa
07.04.
||| |   | |    ||  |`* Re: Langage d'enseigneme
bruno desthuilliers
08.04.
||| |   | |    ||  | `* Re: Langage d'enseigneme
Wykaaa
08.04.
||| |   | |    ||  |  `* Re: Langage d'enseigneme
bruno desthuilliers
09.04.
||| |   | |    ||  |   +* Re: Langage d'enseigneme
Wykaaa
08.04.
||| |   | |    ||  |   |`- Re: Langage d'enseigneme
bruno desthuilliers
09.04.
||| |   | |    ||  |   `- Re: Langage d'enseigneme
Wykaaa
09.04.
||| |   | |    ||  `-   Re: Langage d'enseigneme
Marc Boyer
04.04.
||| |   | |    |`- Re: Enseignement de l'al
Wykaaa
04.04.
||| |   | |    `* Re: Langage d'enseigneme
Wykaaa
10.04.
||| |   | |     `* Re: Langage d'enseigneme
Matthieu Villeneuve
10.04.
||| |   | |      `* Re: Langage d'enseigneme
Wykaaa
10.04.
||| |   | |       +* Re: Langage d'enseigneme
Bruno Desthuilliers
10.04.
||| |   | |       |`- Re: Langage d'enseigneme
Wykaaa
10.04.
||| |   | |       `* Re: Langage d'enseigneme
Matthieu Villeneuve
10.04.
||| |   | |        `* Re: Langage d'enseigneme
Wykaaa
10.04.
||| |   | |         `* Re: Langage d'enseigneme
Bruno Desthuilliers
10.04.
||| |   | |          `* Re: Langage d'enseigneme
Wykaaa
11.04.
||| |   | |           `- Re: Langage d'enseigneme
Bruno Desthuilliers
03.04.
||| |   | `* Re: Langage d'enseigneme
Thierry B.
03.04.
||| |   |  `- Re: Langage d'enseigneme
Wykaaa
02.04.
||| |   `* Re: Langage d'enseigneme
Jean-Marc Bourguet
02.04.
||| |    `- Re: Langage d'enseigneme
Wykaaa
01.04.
||| `* Re: Langage d'enseigneme
Laurent Pointal
01.04.
|||  +* Re: Langage d'enseigneme
Wykaaa
02.04.
|||  |+- Re: Langage d'enseigneme
Laurent Pointal
02.04.
|||  |+- Re: Langage d'enseigneme
Laurent Pointal
02.04.
|||  |`- Re: Langage d'enseigneme
bruno desthuilliers
03.04.
|||  +- Re: Langage d'enseigneme
Thierry B.
04.04.
|||  `* Re: Langage d'enseigneme
Marc Boyer
04.04.
|||   +* Re: Langage d'enseigneme
Bruno Desthuilliers
07.04.
|||   |`- Re: Langage d'enseigneme
Marc Boyer
06.04.
|||   `* Re: Langage d'enseigneme
Thierry B.
07.04.
|||    `- Re: Langage d'enseigneme
Marc Boyer
01.04.
||`- Re: Python
Thierry B.
01.04.
|+* Re: Python
Thierry B.
01.04.
||`* Re: Python
Wykaaa
01.04.
|| `* Re: Python
Thierry B.
01.04.
||  `- Re: Python
Wykaaa
01.04.
|`* Re: Python
Bruno Desthuilliers
01.04.
| `* Re: Python
Wykaaa
01.04.
|  `- Re: Python
Bruno Desthuilliers
01.04.
+- Re: Python
Wykaaa
01.04.
+* Re: Python
Thierry B.
01.04.
|`* Re: Python
Marc Boyer
01.04.
| +- Re: Python
Jean-Marc Bourguet
01.04.
| `- Re: Python
Thierry B.
01.04.
`* Re: Python
Marc Boyer
01.04.
 `* Re: Python
Thierry B.
01.04.
  `* Re: Python
Marc Boyer
01.04.
   `- Re: Python
Wykaaa
Groups Explorer contact votre avis comment ça marche? rechercher un groupe suggérer un groupe abuse accueil du site   Imprimer cette page   Envoyer cette page à un(e) ami(e)