Pourquoi la spécialisation en informatique est-elle si difficile ? Le taux d’abandon en CS dans mon école est très élevé ; seuls 15 % des étudiants de première année qui déclarent une majeure en CS obtiennent leur diplôme. La matière ou la logique est-elle difficile à saisir, ou les étudiants paresseux sont-ils éliminés ?


Je parle en tant que professeur d'informatique (CS), qui a participé à nos efforts de rétention, c'est une situation de "mort par mille coups". Il n'y a pas une raison, mais plusieurs, dont chacune rase quelques pour cent de nos majors.

  • Frustration avec la programmation. La programmation implique beaucoup d'essais et d'erreurs avec des retours négatifs. Il faut des semaines de pratique pour commencer à voir des progrès utiles en pratique. Les étudiants trouvent naturellement cela décourageant et veulent abandonner. Comme l'acquisition de compétences techniques a été supprimée de la plupart des programmes K12 (atelier de menuiserie, instruments de musique, économie domestique, etc.), de nombreux élèves n'ont pas de mécanismes d'adaptation.
  • Juger un livre par sa couverture. La programmation n'est qu'une petite partie de la CS, mais elle vient en premier dans le programme d'études. Beaucoup d'étudiants en déduisent à tort qu'un diplôme de BS CS ne sera que de la programmation, et s'ils n'aiment pas la programmation, ils risquent d'abandonner avant d'arriver aux parties qu'ils apprécient.
  • Math. La CS nécessite généralement des calculs, des mathématiques discrètes et des statistiques. Tous les facteurs qui font que les étudiants ont des difficultés en mathématiques, s'appliquent également à la CS.
  • Culture et menace du stéréotype. Les médias dépeignent injustement la CS comme étant pleine d'intellos socialement maladroits, exclusivement masculins et blancs ou asiatiques de l'Est. Les étudiants qui ne se considèrent pas comme correspondant à ces stéréotypes ont tendance à interpréter les échecs comme la confirmation qu'ils ne sont pas à leur place, et à se retirer, même si tous leurs pairs connaissent aussi ces échecs.
  • La disponibilité des classes. La demande de cours de CS a augmenté rapidement. Il est difficile d'embaucher des instructeurs qualifiés, surtout dans une économie forte, car le développement de logiciels paie tellement plus. Par conséquent, les étudiants trouvent des classes surinscrites et peuvent avoir à attendre des semestres pour des cours.
  • Temps pour obtenir un diplôme. Les programmes CS ont de nombreux cours obligatoires dans des hiérarchies de prérequis strictes qui prennent beaucoup de temps à compléter. Nous voyons des étudiants de deuxième/troisième année qui ont dû reprendre quelques cours, prévoient qu'il leur reste 3-4 ans à faire, réalisent qu'ils ne peuvent pas se permettre de rester à l'université aussi longtemps, et changent pour une majeure qui peut être terminée plus rapidement.
  • Le manque de motivation intrinsèque. Il est largement connu que les ingénieurs logiciels sont bien payés, donc certains étudiants sont en CS juste pour l'argent, ou parce que leurs parents les ont poussés à le faire. Cette motivation extrinsèque n'est souvent pas suffisante pour tenir le coup. Ils ont tendance à essayer de s'en sortir avec un minimum d'efforts, ce qui n'est pas une recette pour le succès.
  • Réflexion abstraite et résolution de problèmes. Enfin, le sujet fait appel à un assez grand nombre de ces capacités peu communes. Elles peuvent être apprises ; si un étudiant peu préparé dans ces domaines s'engage vraiment dans les opportunités d'apprentissage, fait la lecture et tous les devoirs, étudie, visite les heures de bureau, etc. il peut développer suffisamment pour réussir dans la majeure. Certains des moments dont je suis le plus fier sont ceux où je vois ce genre d'étudiants s'épanouir. Mais cela demande beaucoup de temps et d'énergie que de nombreux étudiants ne sont pas en mesure de donner.