mcodutti / Logique1-Syllabus

Syllabus pour le cours de 1ère à l'ESI (www.heb.be/esi)
3 stars 3 forks source link

Ne pas devoir déclarer les variables #59

Open npettiaux opened 11 years ago

npettiaux commented 11 years ago

Devoir déclarer les variables est pénibles. Je sais que dans certains langages c'est nécessaire (ex: java, C, fortran ...) mais pas tous (ex: bash, matlab, python ...).

C'est pénible de devoir déclarer une variable. Lorsque l'on écrit un algorithem, on l'utilise. Et puis il faut ne pas oublier de la déclarer. Ce n'est pas naturel, et rends l'écriture dans un cahier papier compliquée.

Pour le type de la variable, pas de souci : c'est celui de l'affectation. Cela fonctionne bien dans beaucoup de langages fortement mais dynamiquement typé.

cathleruste commented 11 years ago

Certes. Il leur sera donc plus facile de passer à un langage non typé ou équivalent.

npettiaux commented 11 years ago

pas non typé. Typé dynamiquement plutôt que statiquement. Ce n'est pas la même chose

cathleruste commented 11 years ago

C'est bien ce que j'entendais par "équivalent" ;)

mcodutti commented 11 years ago

Mais dans des langages comme Python, on peut changer d'avis. Une variable commence en entier et termine en chaine. Pour ma part, je suis un fervent partisan des déclarations car elles amènent un effort de réflexion : de quoi ai-je besoin ? qu'est-ce que je vais y mettre ?

De plus, le type ne peut pas toujours être déduit du code Ex: "lire x" ne me dit rien sur le type de x.

Le 30 septembre 2013 11:40, cathleruste notifications@github.com a écrit :

C'est bien ce que j'entendais par "équivalent" ;)

— Reply to this email directly or view it on GitHubhttps://github.com/mcodutti/Logique1-Syllabus/issues/59#issuecomment-25348106 .

npettiaux commented 11 years ago

Oui , c'est possible en théorie, mais pas fait (ou peu) en pratique.

Quel est le problème d'autoriser de changer d'avis (surtout si on ne le fait pas ou pas souvent) ? Ce n'est pas parce que l'on ne doit pas déclarer (= pas obligé) qu'il ne faut pas réfléchir. Pour moi, il n'y a pas de lien entre pas de réflexion et pas de déclaration.

D'autre part, des nombreuses expériences dans le monde, montrent que les gens (y compris étudiants) apprennent plus facilement à programmer avec des langages où la déclaration n'est pas nécessaire (matlab ou python) qu'avec des langages statiquement typés (ex c++ ou java). C'est la raison pour laquelle python est maintenant le premier langage appris en BA1 informatique, sciences et polytech à ULB, UCL, Ecole centrale de Paris, Ecole normale supérieure à Paris, Stanford, MIT, Berkeley ...

lbeeckmans commented 11 years ago

C'est possible d'arrêter de détricoter sans cesse le cours? La déclaration se justifie pleinement dans un contexte d'apprentissage et pédagogique. Ce n'est pas parce que telle ou telle chose est autorisée dans un langage qu'il faut l'importer au cours de logique, qui doit garder son caractère strict et rigoureux.

mcodutti commented 11 years ago

Le monde change et l informatique aussi, Laurent. Aujourd'hui, il y a clairement 2 courants de pensées en informatique et il est normal que le débat se fasse. Simplement, je continue, moi, à préférer la déclaration (avec des nuances) Le 30 sept. 2013 12:48, "lbeeckmans" notifications@github.com a écrit :

C'est possible d'arrêter de détricoter sans cesse le cours? La déclaration se justifie pleinement dans un contexte d'apprentissage et pédagogique. Ce n'est pas parce que telle ou telle chose est autorisée dans un langage qu'il faut l'importer au cours de logique, qui doit garder son caractère strict et rigoureux.

— Reply to this email directly or view it on GitHubhttps://github.com/mcodutti/Logique1-Syllabus/issues/59#issuecomment-25351472 .

lbeeckmans commented 11 years ago

Bien sûr que l'informatique change et qu'il y a des tas de variantes possibles et d'autres syntaxes acceptables, mais là on se trouve dans un domaine de discussion plus loin en aval du processus d'apprentissage. N'oubliez pas que chaque année qui passe, vous avez de nouveaux acquis, de nouvelles expériences qui enrichissent votre vision. Par contre les étudiants de 1ères sont eux toujours sur la case départ, et pour bien démarrer il faut un cadre rigide et bien posé. Je suis partisan de garder les phrases du style "on peut aussi faire comme ça" pour plus tard... ce n'est que quand un étudiant a fait ses preuves qu'il peut procéder à des remises en questions de façon efficace...

Ce qui me gêne aussi, c'est la réapparition de cette discussion dès le début d'année, alors qu'à la réunion de juin on était - me semble t'il - tous d'accord de se conformer à la syntaxe fixée dans le syllabus. J'espère que rien de cette remise en question de la déclaration des variables n'est dit au niveau du cours oral.

npettiaux commented 11 years ago

Pas de souci. Je me conforme 100 % au syllabus. Mais je n'avais pas tout bien lu, ce que je fais maintenant. Et je vais patcher/ poster des issues au fur et à mesure. Je ne suis pas partisan de la rigidité par contre. Je suis d'accord avec toi pour fournir un cadre clair et bien posé aux étudiants. Mais aussi, je crois, pour nous remettre en question. À ULB, en polytech, après 10 ans d'enseignement de la programmation en BA1 avec C++, ils sont passés à python. Ce fut l'occasion de longues discussions animées, aussi sur les sujets qui nous occupent et intéressent. Idem dans pas mal d'autres facultés. NON je ne remets pas en question la déclaration des variables au cours oral. Je le fais, je dis aux étudiants «gardez bien de la place pour rajouter les déclarations après avoir constaté que vous avez besoin de telle ou telle variable» (et je le fais aussi au tableau). Mais je dis aussi «on pourrait se passer des déclarations (si on en avait décidé ainsi ce qui n'est pas le cas) et je n'aime pas devoir déclarer.» Pour moi, cela n'apporte rien, fait des ratures possibles dans le cahier (et en tout cas des surcharges), prend du temps inutilement ... Mais nous avons décidé, alors je déclare et fais déclarer. Par contre, hier, j'ai aussi dit. «Tiens la fonction concat() pourrait prendre un nombre indéterminé de paramètres» (comme dans LibreOffice Calc ou Microsoft Excel, où les paramètres sont séparés par ; et où on en met autant que l'on veut (pour concat). Cela ouvre la discussion sur une forme intéressante de focntions.