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.
Réponses:
Voici ce que j'ai vu en tant qu'étudiant et assistant d'enseignement:
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.la source
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.
la source
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.
la source
À 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.
la source