Je suis en L1 et dans l'année on a fait qu'un seul et unique projet d'info, au sein duquel une partie du travail était prémaché certes, et ce à la toute fin. Le reste des évals ont été des devoirs de prog sur papier en Ocaml
Je suis assez dubitatif quant à cette méthodologie d'enseignement. Chez les anglo-saxons ils ne font quasiment que des projets et ce dès leur arrivée à la fac. J'ai du mal à saisir l'intérêt de la démarche française :
- c'est fastidieux car la moindre erreur de logique dans notre code nous oblige à tout raturer
-c'est très éloigné des cas réels, car dans le milieu du travail, on utilise le papier que pour poser ses idées, pas pour programmer
- évidemment impossible de compiler le code pour voir ses erreurs de types par exemple
- le code est soumis à l'interprétation des correcteurs, qui peuvent ne pas le comprendre, et sont beaucoup moins fiables qu'une machine vous en conviendrez
Vous allez sûrement me dire que c'est pour pousser l'élève à réfléchir avant de faire quoi que ce soit, sauf que scoop : les devoirs ne durent que 1h30, on ne peut pas se permettre de rêvasser
Le projet d'info lui a été beaucoup plus formateur !!!! Il m'a initié à l'utilisation de git pour le travail collaboratif, à la manipulation de bash par la même occasion, il m'a poussé à chercher sur stackoverflow des solutions à mes problèmes, a lire la documentation des outils qui nous ont été donnés... C'est très amusant, didactique, et beaucoup plus proche du vrai métier !!!
Sur ce forum il y'a de nombreux enseignants, je suis donc très curieux de savoir quel est votre avis sur la question, car en tant qu'élève, je ne réalise peut-être pas l'utilité de la démarche
Salut,
Selon moi il y a deux aspects à la démarche : l'un est pédagogique, l'autre est matériel.
D'abord, le côté pédagogique, qui est le plus interessant. Quand tu écris du code, tu dois savoir l'exécuter dans ta tête. Pour cela, il faut te construire un modèle mental de l'exécution du programme. Demander à l'ordinateur d'exécuter le programme à ta place, ça n'entraîne pas cette compétence. C'est ça qui est visé par les exos de code sur papier.
Pour faire une analogie, en primaire beaucoup d'élèves demandent "mais pourquoi on apprend à poser des multiplications alors qu'il y a des calculatrices ?". Et effectivement, plus personne ne pose des multiplications à la main dans la vie. Mais comment tu peux développer une intuition de qu'est-ce que ça représente une multiplication ?, si tu ne fais jamais l'effort d'en calculer par toi même ?
Je pense que c'est la même chose qui se passe avec la programmation. Effectivement, personne n'écrit du code sur papier. Mais tous les programmeurs, quand ils écrivent du code ou qu'ils relisent le code de quelqu'un d'autre, ils l'exécutent dans leur tête. C'est ça qu'on travaille quand on fait faire du code sur papier aux étudiants. Le but est pas de chasser le point virgule manquant, c'est de savoir comment un programme s'exécute.
C'est d'ailleurs un autre avantage du code sur papier. Si tu fais un exam machine de 1h30, tu forcément avoir des etudiants qui galèrent pendant 1h parce qu'il leur manque une accolade fermante, ou parce qu'ils ont tapé i au lieu de j dans la condition de leur boucle for. Du coup, ils se tapent une mauvaise note pour une raison à la con. Certes c'est une compétence à acquérir, savoir debugguer, mais sur 200 étudiants t'auras forcément des cas comme ça. Avec un exam papier, les typos ou oublis, ça n'empêche pas de continuer la suite de l'exercice. Et le correcteur peut ignorer sans soucis les détails du genre tant que la structure du programme est là.
Bon, ensuite, je parlais de raisons matérielles. Bah ouais, 200 étudiants qui passent un exam machine, il faut 200 ordinateurs. Il faut s'assurer qu'ils n'aient pas de connexion internet, et il qu'ils ne puissent pas communiquer en réseau. Ça se fait, mais ça demande des moyens considérables.
Alors y'a aussi les projets à faire à la maison, mais entre les copilot / ChatGPT ou juste le bon vieux "je récupère le code du copain en changeant le nom des variables", la note n'a souvent plus aucun sens. Si le projet est noté, il y aura la tentation de tricher ; s'il ne l'est pas, les étudiants ne vont pas le faire.
T'as raison que le cœur de l'informatique ça reste le code sur machine, et je pense qu'en plus du projet que tu as fait cette année, il y avait aussi de nombreux TPs. Apprendre à utiliser git, stackoverflow, lire la doc, utiliser les outils de debuggage, c'est des trucs que tu dois faire par toi même. Prends l'initiative de faire des projets par toi même. Tu peux même demander conseil à un enseignant !
Une dernière remarque, ton message se focalise sur les évaluations. L'important dans tes études c'est les cours, les TPs, les projets. Les exams sont juste là pour te mettre une note mais ce n'est pas la finalité.
Chez les anglo-saxons ils ne font quasiment que des projets et ce dès leur arrivée à la fac.
C'est pas vraiment le cas de ce que j'ai vu au royaume uni, en Allemagne non plus. Peut être aux USA. C'est la question de est-ce qu'on voit l'informatique comme une discipline scientifique, ou comme un ensemble de compétences métier. Tu as l'air de beaucoup te focaliser sur le second point, alors que la fac française est très axée sur le premier.
À mon avis, tu auras tout le temps dans ton futur boulot pour apprendre des compétences techniques. Je trouve ça bien d'avoir l'occasion de voir l'informatique de façon plus globale qu'à travers le prisme des nouvelles technos à la mode. L'informatique ce n'est pas que la programmation, il y a plein d'autres domaines dont tu n'as pas encore idée ! Dans cinq ans les technologies auront évolué, le métier de programmeur aussi. Le but de la fac est pas de te former sur ton futur métier mais de te donner une vision d'ensemble de ce qui s'est fait dans les 80 dernières années et de vers où on se dirige.
Ca a plein d'interet divers et varie. VDD en a dit plein, mais il y en a d'autre.
1/ L'informatique c'est pas que de la programmation. Bien que 80% des etudiants "ils veulent juste coder putain", en vrai l'ecriture du code est relativement triviale une fois passe les deux premieres annees. Du fait, accentuer un peu un aspect plus fondamental et algorithmique c'est n'est pas forcement une mauvaise chose. On voit ca aussi en entretien d'embauche ou pas mal de probleme sont fait au tableau pour separer le grain de l'ivraie.
2/ Si tu sais ecrire le code sur le papier, alors tu sais aussi l'ecrire sur l'ordinateur. L'inverse est plus complique. On voit enormenent de cas d'etudiants qui craquent les problemes par essai/erreur surtout au debut de leurs etudes. Ils finissent par avoir un code qui marche sur un problme simple, mais ils ne savent pas pourquoi. Et cette approche ne passe pas a l'echelle sur des problemes plus complique.
3/ C'est aussi une mesure anti-triche. La facon ou j'y pense est qu'il faut que l'evaluation des etudiants addresse le probleme de l'etudiant millionaire. Si l'etudiant peut obtenir sont diplome en ne venant jamais en cours, en apprenant jamais rien, mais en payant un mec pour faire tout les projets, alors ton diplome a un probleme d'evaluation. Il y a un besoin d'avoir une evaluation dans un environment controle. Et ca ne laisse pas des masses de choix en pratique. Ca en laisse en gros trois. a) tu ecris le code sur papier. b) tu fais l'examen a l'oral. c) tu fourni un environment de programmation que l'etudiant ne peut pas controle. La solution a) est la seule qui passe a l'echelle snas ajoute de ressource.
En relisant le message, je me rend compte que je n'ai pas repondu a deux point en particulier.
Chez les anglo-saxons ils ne font quasiment que des projets et ce dès leur arrivée à la fac.
heu... non! Dans la plupart des facs americaines, dans les cours d'informatique tu es a moitie-moitie. De mes collegues qui enseignent au UK, ca a l'air en gros pareil.
Vous allez sûrement me dire que c'est pour pousser l'élève à réfléchir avant de faire quoi que ce soit, sauf que scoop : les devoirs ne durent que 1h30, on ne peut pas se permettre de rêvasser
Si tu es a court de temps et que tu n'as pas assez de points pour passer le cours; c'est que tu n'as pas assez etudier a l'avance. En general les exams sont calibrer pour etre faisable en 60% du temps impartis.
C'est typique d'entendre en informatique, "je sais le faire, mais il me faudrait plus de temps". (C'est legerement strawman parceque c'est pas vraiment ca que tu as dis.) Ces gens la ont tendance a oublie que tous ce que tu fais dans la vie est toujours a temps fini. Si j'embauche un mec pour me poser des fenetres et que c'est de deux jours, mais que lui il en met 4, et bah je l'embauche pas. De la meme facon, a temps infini (ou juste plutot grand), je peux construire une maison. Mais personne ne m'embauchera parcequ'il va me falloir beaucoup de temps pour le faire.
Quand je construit un exam, je les calibres en difficulte et en temps. Ca ressemble a "quelqu'un de raisonnable en sortant de ce cours, qui a fait ses devoirs, et qui a etudier comme il faut, devrait pouvoir faire ca en gros en 50 minutes. Je vais leur en donner 75."
Je vois pas l’interêt non plus de coder sur papier (dans le sens "écrire des lignes de code") pour l’apprentissage. Ça prend énormément de temps en exam d’écrire tout ça, en général moi ça finissait soit avec des bouts de code rajoutés à l’arrache dans la marge entre deux lignes ou alors je faisais d’abord au brouillon et je recopiais ensuite, du coup le début était propre mais ça devenait de plus en plus mal écrit parce que je devais accélérer pour avoir le temps de tout recopier (et j’avais un tiers temps en plus).
Après si c’est pour écrire du pseudo code là oui pourquoi pas le faire sur papier pour l’exécuter dans sa tête etc mais même pour faire ça autant sortir notepad.
Perso je me souviens pas avoir eu à coder sur papier pour des exos ou des devoirs maison, c’était que pour les examens finaux qu’il fallait le faire. Je pense que c’est juste une limitation logistique et non pas volontaire pour l’apprentissage, car oui les examens ne sont pas faits pour que l’élève apprenne des choses, c’est fait pour l’évaluer (bon ok il m’est arrivé une ou deux fois de comprendre un truc que j’avais pas compris en plein examen mais c’est pas le but à la base).
Après je dis pas que le papier est pas intéressant, ça m’arrive souvent de sortir du papier pour faire des schémas ou écrire un algo en pseudo code, mais pas pour écrire un vrai programme
Tu serais pas à la Fac de Sciences de Reims toi ?
Sinon, c’est partout pareil, et la seule raison que je vois, c est la flemme des profs de retravailler leurs cours…
je ne vois pas non plus l'interet du code sur papier (j'ai enseigné la programmation). Par contre, j'avais remis au gout du jour la feuille de papier, pour poser la logique, gribouiller des schemas, etc ... pour aider a reflechir. C'est un peu passer de mode, et j'avais souri quand un elevé c'était mis a me faire son schema peniblement sous paint ....
En même temps en L1 tu fais juste de la prog procedural sous terminal. Donc c'est des parcours de tableau avec des boucles donc la feuille de papier ça suffit.