Pas convaincu. Pour moi, il s’agit, dans ce que vous dites, plutôt de distinguer l’enseignement pratique, c’est-à-dire un ou des langages ainsi que leur paradigme, de la théorie, plus abstraite.
J’ai appris la théorie sur support papier et stylo et il n’y a pas besoin de programmation à ce stade là. C’est la méthode prépa. et je reconnais que c’est assez particulier. À la limite, pour des TPs, n’importe quel langage aurait pu convenir, vu que la difficulté ici n’est pas dans l’implémentation.
Et pour la pratique, sans aller jusqu’à apprendre l’assembleur, le passage obligé est bien de savoir comment on représente les données : par exemple savoir ce qu’est la représentation binaire des nombres, entiers et flottants. Même là, ça se fait surtout sur papier (parce qu’en fait c’est du domaine théorique).
Ensuite seulement j’ai attaqué la programmation et l’apprentissage d’un langage dans ma formation. Et à ce titre là, un langage bas-niveau me parait plus simple à apprendre. Là où chez Python, ces histoires de variables qui sont modifiées ou pas en fonction de leur type implicite, j’ai bien peur que cela sonne comme du voudou à l’oreille de la plupart des débutants. Les pointeurs, tout ça, c’est complexe, mais au moins ça a une certaine logique et le professeur peut l’expliquer. Si vous ne passez pas par cette explication, cela sera une leçon totalement arbitraire : les élèves devront apprendre par cœur les types qui sont passés par valeur, et ceux qui le sont par référence (et j’avoue m’embrouiller moi-même).
...
Oh et puis zut ! De tout façon, j’ai trouvé l’argument imparable contre l’enseignement de Python (3) aujourd’hui en codant. La division des entiers qui n’est pas la division euclidienne, contrairement à tous les usages en informatique. Na ! :p
[^] # Re: Logiciels libres et enseignement de l'informatique
Posté par Pierre Roc . En réponse à la dépêche Des Inspecteurs Généraux de l'Éducation Nationale en table ronde chez Microsoft. Évalué à 2.
Pas convaincu. Pour moi, il s’agit, dans ce que vous dites, plutôt de distinguer l’enseignement pratique, c’est-à-dire un ou des langages ainsi que leur paradigme, de la théorie, plus abstraite.
J’ai appris la théorie sur support papier et stylo et il n’y a pas besoin de programmation à ce stade là. C’est la méthode prépa. et je reconnais que c’est assez particulier. À la limite, pour des TPs, n’importe quel langage aurait pu convenir, vu que la difficulté ici n’est pas dans l’implémentation.
Et pour la pratique, sans aller jusqu’à apprendre l’assembleur, le passage obligé est bien de savoir comment on représente les données : par exemple savoir ce qu’est la représentation binaire des nombres, entiers et flottants. Même là, ça se fait surtout sur papier (parce qu’en fait c’est du domaine théorique).
Ensuite seulement j’ai attaqué la programmation et l’apprentissage d’un langage dans ma formation. Et à ce titre là, un langage bas-niveau me parait plus simple à apprendre. Là où chez Python, ces histoires de variables qui sont modifiées ou pas en fonction de leur type implicite, j’ai bien peur que cela sonne comme du voudou à l’oreille de la plupart des débutants. Les pointeurs, tout ça, c’est complexe, mais au moins ça a une certaine logique et le professeur peut l’expliquer. Si vous ne passez pas par cette explication, cela sera une leçon totalement arbitraire : les élèves devront apprendre par cœur les types qui sont passés par valeur, et ceux qui le sont par référence (et j’avoue m’embrouiller moi-même).
...
Oh et puis zut ! De tout façon, j’ai trouvé l’argument imparable contre l’enseignement de Python (3) aujourd’hui en codant. La division des entiers qui n’est pas la division euclidienne, contrairement à tous les usages en informatique. Na ! :p