Après encore une autre question de devoirs sur SO. Il semble que la grande majorité des étudiants n'aient aucune idée de ce qu'est un débogueur ni de la façon de l'utiliser. Je pense que savoir comment utiliser un débogueur est presque aussi important que les autres fondamentaux de la programmation.
- La question est de savoir si le débogage ne devrait pas être enseigné et comment utiliser les outils de débogage modernes parallèlement aux principes de base de la programmation? Sinon pourquoi pas.
education
language-agnostic
debugging
rediffusion
la source
la source
Réponses:
Ce n'est pas tellement le cas que l'utilisation de débogueurs doit être enseignée, mais les techniques plus générales de débogage . Cela comprendrait bien sûr comment utiliser un débogueur, mais également diverses autres techniques importantes, par exemple
Comme avantage supplémentaire, de nombreuses techniques peuvent également être appliquées à la résolution de problèmes dans des domaines autres que la programmation.
Il y a un assez bon livre sur tout ce sujet, qui devrait probablement être une lecture obligatoire pour tous les étudiants de premier cycle et tous ceux qui apprennent les bases de la programmation: le débogage par David J Agans .
la source
Les cours d'informatique tertiaire sont conçus pour enseigner aux étudiants les principes de base de la programmation , comme vous l'avez mentionné - ces concepts sont enseignés aux étudiants dans l'espoir qu'ils appréhendent les concepts nécessaires et l'appliquent à un plus large éventail de langages de programmation et d'ensembles de problèmes.
Les outils de débogage, d'autre part, sont un sous-ensemble dans la zone d' implémentation - chaque outil est différent pour chaque langue (même si les concepts sont les mêmes). Nous étions exposés à des outils de débogage, mais nous ne les avons jamais vraiment traités en profondeur. Si nous passions plus d'une semaine sur des outils de débogage, je regarderais en arrière - avec du recul - et considérerais cela comme une perte de temps. Je préfère en savoir plus sur la notation BigO ou le polymorphisme. Cependant, si la puissance d'un outil de débogage n'a pas été (avec succès) transmise aux étudiants, ce serait alors une nécessité absente.
la source
Dans la plupart des cours de programmation d'introduction, l'état du programme est suffisamment simple pour que vous puissiez éliminer tous les bogues avec quelques instructions d'impression. Il peut également être nécessaire de forcer les élèves à faire les choses à la main afin qu'ils aient une idée de comment et où dans le code certains types de bogues se produisent. Si vous ne savez pas où chercher, un débogueur va être assez inutile.
la source
grep
fait le travail. Pas de progression, pas de points d'arrêt conditionnels - juste grep.Ce n'est pas si important. Je n'en utilise presque jamais et je n'en ai jamais utilisé. La meilleure façon de déboguer du code est:
Et pour beaucoup de logiciels modernes et multithreads, les débogueurs ont pour effet de masquer les bogues plutôt que de les découvrir. Et ils ne devraient certainement pas être "enseignés" au niveau du diplôme, pas plus que l'on n'enseignerait à utiliser un traitement de texte.
la source
Le débogage doit être enseigné parce que les étudiants sont des humains et que les humains font toutes sortes d'erreurs, dont certaines nécessitent l'acquisition de données expérimentales (informations de débogage) avant toute illumination concernant une erreur donnée.
Le débogage n'est pas enseigné en raison de la prémisse (peut-être héritée du département de mathématiques) que les programmes devraient être corrects par conception, peut-être même de manière prouvable. Et donc les étudiants ne devraient pas «expérimenter» correctement la programmation. Cependant, cela ignore le processus de fabrication dans le monde réel d'humains imparfaits qui lancent des logiciels selon des spécifications changeantes sous des pressions de calendrier, etc.
la source
Cette question m'est étrangère. À mon université, l'utilisation du débogueur (JDB et le débogueur Eclipse) a été enseignée dès la première séquence informatique de première année. L'utilisation de débogueurs et d'autres outils de test a été enseignée à nouveau dans le cours sur les tests de logiciels.
Personnellement, je trouve incroyablement difficile de croire que toute bonne école qui tente de préparer les gens à entrer sur le marché du travail n'enseigne pas les techniques de débogage et de test appropriées. Ils ne peuvent évidemment pas en couvrir tous les aspects, mais ils peuvent au moins enseigner les bases en classe.
la source
Découvrez-le par vous-même
Je n'avais pas besoin et je ne voulais pas qu'un professeur ou un TA prenne le temps de m'enseigner quelque chose que je pourrais facilement comprendre par moi-même. Ils sont là pour m'enseigner les concepts difficiles et guider l'apprentissage. Ils ne sont pas et ne devraient pas être là pour que vous n'ayez pas à RTFM.
Apprenez à apprendre
L'université devrait viser à apprendre à apprendre, pas seulement à tenir la main sur chaque sujet que vous ne connaissez pas. Si vous avez constamment la main dans ce processus, vous échouerez misérablement dans le monde réel.
Montée, dans les deux sens, à travers la neige
Quand je suis allé à l'école, ils n'ont pas pris la peine de vous enseigner la langue non plus. On s'attendait à ce que vous le récupériez à votre rythme. Ils vous donneraient le projet et les installations. Il vous appartenait de rechercher les informations dont vous aviez besoin pour terminer la mise en œuvre et soumettre un programme de travail. Assez similaire au monde réel, sauf avec les heures de bureau.
la source