par Ben314 » 11 Déc 2016, 17:12
Perso, je suis pas très chaud non plus.
J'ai fait il y a peu des T.P. (de stat. entre autre) avec Python et l'un des reproche que je ferais (entre autres), c'est qu'a mon sens il y a beaucoup trop d'instructions pour "bien débuter" en algorithmique/programmation.
Quoi que tu donne à faire au étudiants, il est quasi sûr que c'est déjà implémenté et les "forts" du groupes (qui vont regarder la doc de Python) résolvent le problème en deux lignes sans boucles ni tests en utilisant des instructions "puissantes". De plus au niveau algorithmique "théorique", c'est pas clair du tout de faire comprendre la notion de complexité lorsque tu as un langage qui, par exemple, contient directement une instruction pour chercher un élément dans une liste ou pour trier un tableau : ça conduit (y compris les très bon) à proposer des solutions très courtes en terme de nombre d'instructions, mais catastrophiques en terme de complexité (par exemple retrirer 100 fois d'affilé le même tableau...)
Pour revenir sur le sujet, très clairement (et a mon avis tout ce qu'il y a de plus volontairement), AlgoBox c'est l'opposé complet (*). Et comme toujours, je pense que les "extrêmes", c'est jamais bon donc je suis pas plus pour AlgoBox que pour Python.
A mon avis, une "bonne solution", ça serait un compromis : éventuellement Python, mais en précisément clairement les "règle du jeu", c'est à dire en n'utilisant (au départ) que les instruction "basiques" et pas les "méta instructions".
Mais s'il y avait autre chose, je trouve que ça serait pas plus mal : déjà de dire aux élèves/étudiants qu'on interdit d'utiliser des tonnes d'instructions, ça fait très con. Ensuite, le coup des indentations pour définir les blocs, je trouve ça très bofbof, et le fait qu'on ait pas à déclarer les variables, idem. Enfin, le fait qu'on ne puisse que très difficilement différentier les appels par valeurs de ceux par adresse (i.e. que notion de pointeurs soit peu claire dans ce langage) me semble quand même un très très gros handicap pour ceux qui désireront "aller plus loin" dans la programmation.
Là où on voit que je suis vraiment un vieux c.. c'est que pour moi, LE langage que je trouve bien pour débuter, c'est le PASCAL : pas des tonnes d'instruction ; sans utiliser de pointeurs, on peut aller "relativement loin" (contrairement au C par exemple), mais il sont tout de même présents dès le départ via le protocole de transmission aux sous procédures par valeur ou par adresse. De plus, une fois le B-A-BA acquis, il y a suffisamment d'instruction Pascal pour manipuler très correctement des structures complexes utilisant les pointeurs : arbres binaires ou autres (contrairement au BASIC "de base" par exemple).
(*) Avec en plus la volonté de "parler Français" (et à rallonge) sur laquelle j'ai exactement la même opinion que zygo.
Qui n'entend qu'un son n'entend qu'une sonnerie. Signé : Sonfucius