L'utilité de l'enseignement d'informatique

Chaque année, plusieurs étudiants se plaignent des enseignements en informatique à l'université Bordeaux 1, en prétendant que certains ne sont pas "utiles". Il est bien évidemment insultant de prétendre en savoir plus que les enseignants responsables de la conception de nos habilitations, mais je vais ignorer ce fait et argumenter que nos enseignements sont conçus précisément pour être utiles.

Pour déterminer si un enseignement est utile, il faut bien évidemment commencer par définir l'"utilité d'un enseignement". Les étudiants qui se plaignent basent leur argumentation sur le fait que certains enseignements n'apparaissent pas sur les annonces d'emplois des entreprises. Implicitement, ces étudiants définissent alors un enseignement comme étant utile si et seulement si ce qui est enseigné figure dans ces annonces.

En fait, je pense que ces étudiants sont un peu plus sophistiqués que ça, et je devine qu'ils raisonnent approximativement de la manière suivante :

En fait, on s'aperçoit que les trois premier points sont totalement faux, et que par conséquent la conclusion est fausse, elle aussi. Je m'explique.

D'abord, il est peut-être pardonnable, mais néanmoins faux, de penser que le but de l'enseignement est de donner une formation permettant aux étudiants de trouver un emploi. Si c'était le cas, aujourd'hui, il serait alors plus judicieux de former nos étudiants dans un domaine avec beaucoup de demandes comme la plomberie. Personne n'est bien évidemment favorable à une telle approche, car après tout, c'est une formation d'informatique. Certes, mais qui est capable de déterminer ce qu'il est pertinent d'enseigner pour former à l'informatique? Nos étudiants? Certainement pas. Les enseignants auteurs de l'habilitation? Oui, beaucoup plus.

En réalité, une formation doit avoir un objectif. En fait, il y en a toujours plusieurs, et ils sont contradictoires. Permettre à nous étudiant de trouver un emploi chez n'importe quel employeur qui mentionne le mot "programmation" dans ses annonces d'emploi n'en est pas un. Voici une liste d'objectifs beaucoup proches de la réalité :

Le dernier point ci-dessus est très important. Il est facile de croire que l'industrie fasse des choix en comparant de manière exhaustive les alternatives et en sélectionnant la meilleure. En réalité de très importantes décisions (comme le langage de programmation ou l'environnement de développement à employer pour un projet) sont prises par des personnes n'ayant pas suffisamment de compétence dans le domaine et plutôt en fonction des effets de mode du moment et du marketing qu'en fonction de qualités objectives.

Bien évidemment, si l'on crois que les méthodes, techniques et outils mentionnés dans les annonces d'emploi sont le résultat d'une mûre réflexion de la part de personnes très compétentes et que ce choix est permanent, il est facile de se demander pourquoi d'autres choses sont enseignés. Si par contre on comprend la réalité entre l'existence et le choix de ces méthodes, techniques et outils, et si l'on réalise que ce sont des décisions temporaires, alors on réalise que ce serait totalement irresponsable de la part de l'université de baser son enseignement sur ces phénomènes assez volatiles.

En résumé donc, l'université ne doit pas enseigner des méthodes, techniques et outils exprimés dans les annonces d'emploi de l'industrie, car ils ont été choisi pour des raisons irrationnelles et/ou historique, mais plutôt des méthodes, techniques et outil dont l'industrie aura besoin dans le futur afin d'améliorer sa productivité, et des principes permettant l'apprentissage et l'invention de nouvelles méthodes, de nouvelles techniques, et de nouveaux outils.