Comment évaluer les performances des étudiants dans les cours de science informatique?


10

En tant que personne qui doit enseigner des cours de science informatique, je suis confronté à une question séculaire: comment puis-je évaluer la capacité des étudiants à apprendre un sujet qui dépend d'applications qui sont difficiles à tester avec des méthodes de test "standard" ( examens écrits ou oraux)? Une partie du cours dépend de la compréhension de la théorie et des méthodes à un niveau abstrait, et pour cela, je voudrais continuer à utiliser un test écrit pour ces concepts. Cependant, tester la compréhension de l'utilisation pratique de ces méthodes nécessite une approche différente

Étant donné les défis naturels associés non seulement à la prolifération de différentes plates-formes (pour MATLAB, Modelica, Mathematica et d'autres langues), mais aussi à la connectivité Internet et à la sécurité des tests, je serais intéressé par des méthodes nouvelles ou originales pour évaluer pratiquement la compréhension des étudiants de méthodes numériques. (Les fonctionnalités favorisant la sécurité des tests sont particulièrement souhaitables.)

EDIT: Je dois également mentionner que la classe que j'enseigne est un cours d'introduction, de sorte que les étudiants ont une base de connaissances relativement petite pour travailler.


1
Leur permettre de travailler sur un (mini?) Projet de leur choix, éditer / revoir de manière critique les codes open source comme PLASMA / MAGMA / LAPACK / ScaLAPACK? Je parle du point de vue d'un étudiant.
Enquête du

Merci pour le commentaire - cela m'a rappelé que j'avais oublié de mentionner qu'il s'agit d'un cours d'introduction, donc je ne suis pas censé apporter des concepts comme la programmation parallèle et l'optimisation des performances - juste un accent sur les méthodes et algorithmes numériques de base.
aeismail

Réponses:


5

Voici ce que j'ai vu en tant qu'étudiant et assistant d'enseignement:

  • Les projets de programmation et de méthodes numériques étaient bons en termes de rapprochement de nombreux concepts et de force pour moi et les autres étudiants à être créatifs. Cependant, avec les projets informatiques, cela vaut probablement la peine de consacrer un peu de temps à la menuiserie logiciellecompétences afin que les élèves écrivent un code plus organisé. Quand j'étais étudiant de premier cycle et que je ne savais pas mieux, j'avais du code de spaghetti à couper et coller qui était probablement l'enfer sur les classeurs. Vous voudrez peut-être éviter ce sort en leur enseignant quelques bonnes pratiques. De plus, si vous donnez à tout le monde suffisamment de projets similaires (par exemple, calculer toutes les propriétés thermodynamiques dans une liste donnée pour un ensemble de composés était un projet à long terme dans une classe de thermodynamique de premier cycle; plus tard, c'était une tâche de devoirs d'une semaine en thermodynamique diplômée), attendez-vous à ce qu'ils se copient pratiquement et se déboguent le code.
  • Les devoirs , hebdomadaires ou bihebdomadaires, étaient la meilleure méthode à court terme pour apprendre de nouvelles méthodes et de nouveaux concepts. Il est plus facile de programmer quelque chose, compte tenu d'une semaine pour le faire. Encore une fois, attendez-vous à ce qu'ils se copient plus ou moins et déboguent le code de l'autre.
  • Les questionnaires n'étaient pas vraiment bons pour autre chose que quelques méthodes courtes ou des questions d'analyse. Vous ne pouvez pas faire de programmation sur des quiz, mais il devrait aussi y avoir moins de tricherie , je veux dire, de collaboration. Vous pouvez également tester le codage au crayon et papier dans les quiz, ce qui est bon pour les concepts de base, mais probablement injuste pour les concepts avancés, ou tout ce qui nécessite des commandes très spécialisées, car les étudiants auraient accès à la documentation s'ils codaient sur un ordinateur.
  • Les examens étaient plus ou moins les mêmes que les questionnaires, s'ils étaient donnés en classe, mais plus longs et plus difficiles. J'ai eu des cours donnant des examens à emporter dans le travail de calcul, auquel cas vous pouvez poser des questions plus informatiques et vous attendre à ce qu'ils programment pour résoudre des problèmes. Cependant, les examens à emporter ont le même genre de problèmes que les devoirs et les projets de premier cycle, auquel cas, il est probablement préférable que vous établissiez une politique de collaboration plus draconienne pour les examens à emporter. J'ai passé de très bons examens à emporter, donc je pense que ceux-ci peuvent bien fonctionner si l'instructeur est suffisamment créatif.
  • Les laboratoires de calcul sont moins efficaces que les laboratoires humides analogues dans les cours de sciences, car avec un ordinateur devant vous, il est beaucoup plus facile de se gâter. Il y avait quelques gars dans mes cours qui passaient toujours du temps dans des laboratoires informatiques à jouer au poker en ligne. Ces laboratoires sont probablement plus efficaces en tant que démonstrations ou en tant que leçons supervisées sur les compétences pratiques en science informatique si vous avez suffisamment d'assistants pédagogiques pour parcourir le laboratoire et vous assurer que les gens obtiennent de l'aide et que personne ne se débrouille en ligne.

5

J'ai donné des cours, enseigné ou aidé dans une variété de cours liés aux méthodes numériques et informatiques, du premier cycle universitaire au deuxième cycle avancé. Voici les éléments que j'ai trouvés utiles en tant qu'instructeur:

Projets de recherche

Pour les classes avancées, un projet de recherche (intégrant la recherche numérique, généralement du développement de logiciels et une rédaction) est un très bon moyen pour les étudiants de lier leur recherche à leur cursus académique. Je pense qu'un projet devrait être obligatoire dans les cours de deuxième cycle, mais pour les étudiants de premier cycle, il vaut mieux les remplacer par des travaux plus dirigés.

Programmation des devoirs

Le cœur de toute classe de science informatique est les affectations de programmation accessibles. Pour les étudiants sans expérience en programmation, vous devrez sauvegarder vos travaux avec des sessions d'introduction à l'environnement de programmation et, idéalement, une sorte de "help room" offerte soit par votre département soit par une organisation étudiante comme SIAM. Autoriser plusieurs frameworks et langages de programmation peut être difficile, j'ai accepté des programmes écrits dans n'importe quel langage mais ne supportais qu'un seul environnement, généralement librement disponible dans les laboratoires informatiques de l'Université (système d'exploitation, éditeur, shell, interprète, etc ...)

Quiz

J'aime vraiment les petits quiz en classe de 10 à 15 minutes une fois par semaine ou toutes les deux semaines. C'est une bonne rétroaction bidirectionnelle: les élèves voient comment ils vont contre mes attentes et les uns contre les autres, et je vois quels concepts ils frappent et manquent. Ce style d'évaluation n'est pas très utilisé en Europe, et je pense que c'est dommage.

Examens

Les examens sont au crayon et au papier, avec une analyse des algorithmes, des fragments de code et des techniques mathématiques. Je n'ai jamais participé à un examen de laboratoire informatique, que ce soit en tant qu'étudiant ou instructeur / évaluateur. Je pense que la chose la plus proche que j'ai vue est d'exiger d'un étudiant qu'il démontre ses devoirs ou son projet et qu'il réponde aux questions sur la conception ou la mise en œuvre.

La contrainte de la malhonnêteté

À la fois en tant qu'étudiant et en tant qu'instructeur, j'ai vu suffisamment de malhonnêteté dans le système académique pour éviter de compter sur l'honneur pour plus de 50% de la note d'un étudiant. Cela signifie que les évaluations telles que les projets et les devoirs, où l'accès à des ressources externes pourrait conduire à la malhonnêteté académique, ne contribuent pas à plus de 50% de la note du cours.


Je pense que le dernier point est particulièrement important - j'aurai toujours un examen écrit en classe pour couvrir les points qui peuvent être testés dans ce format. Ce sera au moins les deux tiers de la note, je pense. Je veillerai également à ce qu'il y ait un article qui accompagne le projet hors classe, de sorte que les élèves doivent passer au moins un certain temps à s'engager avec le matériel. Je pourrais aussi faire une randomisation des entrées et changer le problème pour réduire la tentation et la capacité de tricher.
aeismail

@AronAhmadia: les questionnaires hebdomadaires sont standard dans les universités allemandes dans tous les départements malgré leur indépendance totale.
Deathbreath

@aeismail: les Américains ont une compréhension très étroite (à la limite du ridicule dans certains cas) du plagiat. La première année, vous pourrez peut-être empêcher les étudiants de collaborer, mais les années suivantes, la Fachschaft aura catalogué vos travaux et il deviendra progressivement plus difficile de poser des problèmes qui n'ont pas été résolus de manière substantielle au cours des années précédentes.
Deathbreath

@Deathbreath: (à Aron) Les quiz hebdomadaires ne sont pas standard ici à Aix-la-Chapelle - du moins pas en génie mécanique. Je ne sais même pas si j'ai le droit de les donner. (Pas que je le veuille.)
aeismail

@Deathbreath: (pour moi) Si les étudiants utilisent les examens passés pour apprendre la méthodologie, je suis heureux de les laisser les utiliser. Je suis plus préoccupé par le fait qu'ils apprennent à utiliser les outils. Cela dit, je modifie le contenu du cours d'année en année, donc toute personne qui obtient un score parfait dans les vieux trucs et un œuf d'oie dans les nouveaux trucs est probablement quelque peu suspecte de trop s'appuyer sur la Fachschaft .
aeismail

5

Certaines des autres réponses suggèrent des projets individualisés. Je fais ça dans ma classe de logiciel d'éléments finis et c'est très amusant; Je pense que c'est aussi très instructif pour les étudiants. En même temps, c'est aussi une tâche extrêmement longue: la dernière fois, j'avais 18 étudiants et c'était pratiquement un travail à temps plein pour tout le semestre de superviser ces projets. Il faut donc avoir une classe suffisamment petite pour que cela fonctionne avec succès.


Pour mémoire, j'ai écrit mes expériences à ce sujet dans la publication # 39 à math.tamu.edu/~bangerth/publications.html#x-reviewed
Wolfgang Bangerth

2

À mon avis honnête, je pense que le test ultime est d'appliquer vos connaissances en territoire inconnu. Je proposerais des projets appliqués conçus pour tester la capacité d'un étudiant à sélectionner des modèles efficaces, la discrétisation, les méthodes d'approximation / résolution, le parallélisme exploitable, les estimations d'erreur et l'analyse numérique, ainsi que des méthodes de visualisation pour décrire un phénomène physique particulier d'intérêt informatique. J'irais plus loin en demandant aux élèves de justifier chaque choix en fonction de la taille du problème / de la précision attendue. L'essentiel est de savoir quelles méthodes sont appropriées sous les contraintes des phénomènes étudiés. Les étudiants peuvent choisir de sélectionner un phénomène de leur choix. Mais si vous voulez le rendre encore plus difficile, attribuez à chaque étudiant un projet informatique dans un domaine non lié à leur recherche de thèse.


Mes étudiants sont des étudiants de deuxième année, ils sont donc loin d'avoir un domaine de leur recherche de thèse. :-) Mais la pensée est certainement appréciée.
aeismail
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.