Wykaaa a écrit :
> Bruno Desthuilliers a écrit :
>> Wykaaa a écrit :
>>> Bruno Desthuilliers a écrit :
(snip)
>>>>>> Et rien sur l'approche fonctionnelle ???
>>>>>>
>>>>> Aïe, j'avais pris mes précautions en disant à la fin "J'ai
>>>>> certainement oublié des trucs" mais là, tu frappes où ça fait mal
>>>>> car mes langages favoris sont ceux de la famille ML (Caml, OCaml).
>>>>> Dans le futur : OCamlDuce ?
>>>>> Bien sûr, il faut en parler, c'est, comment dire, incontournable :-)
>>>>
>>>> Et pas vraiment évident à apprendre avec Java...
>>>
>>> C'est difficile de trouver un seul langage qui rassemble tous les
>>> paradigmes de programmation.
>>
>> Tu a au moins common lisp, OCaml et Python qui supportent la plupart
>> des concepts des approches procédurales, objet et fonctionnelle (avec
>> plus ou moins de bonheur - la pf en Python reste assez limitée - mais
>> suffisament pour exposer les concepts...)
>
> Je vois mal apprendre la programmation (premier langage) à l'aide de
> Common Lisp.
Mmm... Scheme, alors ? Je ne sais pas dans quelle mesure Scheme supporte
une approche procédurale, mais il y a au moins un support pour l'OO. Et
IIRC, c'est un langage couramment utilisé pour l'enseignement, non ?
Dans une certaine mesure - et si on compare à ton listing - ça pose la
question de savoir s'il vaut mieux commencer avec un langage de
haut-niveau, ou mettre tout de suite les mains dans le cambouis avec un
langage plus près de la machine (et donc avant tout procédural,
puiqu'aux dernières nouvelles c'est le fonctionnement de nos ordis
actuels...).
> Pour OCaml, faut voir (à une époque et peut-être encore
> maintenant ?) au CNAM, ils utilisaient ADA et Caml.
>
> Pour le coup, peut-être que Python est le mieux.
Tu n'y songe pas, malheureux ! Un langage à typage dynamique, cette
chose à bannir à tous prix ! (enfin, d'après tes propres propos, hein...)
> Tu vois que je ne suis
> pas sectaire :-)
<troll>
Je ne sais pas, mais entre d'autres propos que tu a tenu ici et
celui-ci, soit tu es parfois un peu excessif, soit tu souffres d'un
dédoublement de personnalité !-)
bon, ok, me ---->[]
</troll>
> Surtout avec l'expérience du MIT.
> .
>>
>>>>
>>>> Je ne vois rien non plus concernant les structures de données et
>>>> l'algo. Ca te semble tellement secondaire ?-)
>>>
>>> Bien sur qu'il faut enseigner les structures de données et l'algo
>>> mais je ne définissais pas un cursus entier concernant l'informatique
>>> mais seulement l'apprentissage des langages de programmation.
>>
>> Evidemment - au temps pour moi. Ceci étant, peut-on vraiment
>> totalement découpler l'algo et les structures de données du (des)
>> langage(s) utilisé(s) ? (question ouverte à quelqu'un ayant
>> l'expérience de l'enseignement - non, je ne fais pas que troller...)
>
> C'est la partie délicate de l'apprentissage de la programmation...
> Il faut, certainement une petite dose d'algo en parallèle mais la plus
> minime possible.
Je me posais plutôt la question dans l'autre sens : comment enseigner
l'algo indépendamment de certaines spécificités d'un langage (ou d'une
famille de langages).
<thinking-out-loud>
Le même couple algo/structure de données peut prendre des apparences
*très* différentes selon le langage utilisé - fut-il du pseudocode.
Quand on connait plusieurs langages suffisament différents, on peut voir
le concept (abstrait) derrière le code, mais pour un débutant, il est
probablement plus difficile de faire cette abstraction. Enfin, j'imagine.
</thinking-out-loud>