Wie können wir die Leistung von Studenten in Kursen für Computerwissenschaften bewerten?


10

Als jemand, der Kurse in Computerwissenschaften unterrichten muss, werde ich mit der uralten Frage konfrontiert: Wie bewerte ich die Fähigkeit der Schüler, ein Fach zu lernen, das von Anwendungen abhängt, die mit "Standard" -Testmethoden schwer zu testen sind ( schriftliche oder mündliche Prüfungen)? Ein Teil des Kurses hängt vom Verständnis der Theorie und der Methoden auf abstrakter Ebene ab. Dafür möchte ich weiterhin einen schriftlichen Test für diese Konzepte verwenden. Das Testen des Verständnisses der praktischen Anwendung dieser Methoden erfordert jedoch einen anderen Ansatz

Angesichts der natürlichen Herausforderungen, die nicht nur mit der Verbreitung verschiedener Plattformen (für MATLAB, Modelica, Mathematica und andere Sprachen) verbunden sind, sondern auch mit der Internetverbindung und der Testsicherheit, würde mich neue oder originelle Methoden zur praktischen Bewertung des Verständnisses der Schüler interessieren numerische Methoden. (Merkmale, die die Testsicherheit fördern, sind besonders wünschenswert.)

EDIT: Ich sollte auch erwähnen, dass die Klasse, die ich unterrichte, ein Einführungskurs ist, so dass die Schüler eine relativ kleine Wissensbasis haben, aus der sie arbeiten können.


1
Ermöglichen Sie ihnen, an einem (Mini?) Projekt ihrer Wahl zu arbeiten und Open Source-Codes wie PLASMA / MAGMA / LAPACK / ScaLAPACK zu bearbeiten / kritisch zu überprüfen? Ich spreche aus der Perspektive eines Studenten.
Untersuchung

Vielen Dank für den Kommentar - er hat mich daran erinnert, dass ich vergessen habe zu erwähnen, dass dies ein Einführungskurs ist, daher sollte ich keine Konzepte wie parallele Programmierung und Leistungsoptimierung einbringen - nur einen Fokus auf die grundlegenden numerischen Methoden und Algorithmen.
Aeismail

Antworten:


5

Folgendes habe ich als Schüler und Lehrassistent gesehen:

  • Projekte in Programmierung und numerischen Methoden waren gut darin, viele Konzepte zusammenzubringen und mich und andere Studenten zu zwingen, kreativ zu sein. Bei Computerprojekten lohnt es sich jedoch wahrscheinlich, ein wenig Zeit in die Software-Schreinerei zu investierenFähigkeiten, damit die Schüler Code schreiben, der besser organisiert ist. Als ich ein Student war und es nicht besser wusste, hatte ich Spaghetti-Code zum Ausschneiden und Einfügen, der für Grader wahrscheinlich die Hölle war. Vielleicht möchten Sie dieses Schicksal vermeiden, indem Sie ihnen einige gute Praktiken beibringen. Wenn Sie allen ähnlich genug Projekte geben (z. B. alle thermodynamischen Eigenschaften in einer bestimmten Liste für eine Reihe von Verbindungen berechnen, war dies ein einjähriges Projekt in einem Thermodynamikkurs für Studenten, später war es eine einwöchige Hausaufgabe Erwarten Sie im Grunde genommen, dass sie sich praktisch gegenseitig kopieren und den Code des anderen debuggen.
  • Wöchentliche oder zweiwöchentliche Hausaufgaben waren die beste kurzfristige Methode, um neue Methoden und Konzepte zu erlernen. Es ist einfacher, etwas zu programmieren, wenn man eine Woche Zeit dafür hat. Erwarten Sie erneut, dass sie sich mehr oder weniger gegenseitig kopieren und den Code des anderen debuggen.
  • Quiz waren nicht wirklich gut für etwas anderes als ein paar kurze Methoden oder Analysefragen. Sie können keine Quizprogramme programmieren, aber es sollte auch weniger Betrug geben , ich meine, Zusammenarbeit. Sie können die Codierung mit Bleistift und Papier auch in Tests testen, was für grundlegende Konzepte gut, für fortgeschrittene Konzepte jedoch wahrscheinlich unfair ist, oder für alles, was sehr spezielle Befehle erfordert, da die Schüler Zugriff auf die Dokumentation hätten, wenn sie auf einem Computer codieren würden.
  • Die Prüfungen waren mehr oder weniger die gleichen wie die Prüfungen , wenn sie im Unterricht gegeben wurden, aber länger und schwieriger. Ich hatte Klassen, die Prüfungen zum Mitnehmen in Computerarbeit gaben. In diesem Fall können Sie mehr rechnerorientierte Fragen stellen und erwarten, dass sie programmieren, um Probleme zu lösen. Prüfungen zum Mitnehmen haben jedoch die gleichen Probleme wie Hausaufgaben und Projekte vom Typ Bachelor. In diesem Fall ist es wahrscheinlich besser, wenn Sie eine drakonischere Richtlinie für die Zusammenarbeit für Prüfungen zum Mitnehmen festlegen. Ich hatte einige wirklich gute Prüfungen zum Mitnehmen, daher denke ich, dass diese gut funktionieren können, wenn der Ausbilder ausreichend kreativ ist.
  • Computational Labs sind weniger effektiv als die analogen Nasslabors im naturwissenschaftlichen Unterricht, da es mit einem Computer vor Ihnen viel einfacher ist, sie zu vermasseln. Es gab ein paar Leute in meinen Klassen, die immer Zeit in Computerlabors verbracht haben, um Online-Poker zu spielen. Diese Labore sind wahrscheinlich am effektivsten als Demonstrationen oder als beaufsichtigte Lektionen über praktische Fähigkeiten in der Computerwissenschaft, wenn Sie über genügend Lehrassistenten verfügen, um das Labor zu durchstreifen und sicherzustellen, dass die Leute Hilfe erhalten und niemand online herumwirbelt.

5

Ich habe in verschiedenen Kursen zu numerischen und rechnerischen Methoden Vorlesungen gehalten, unterrichtet oder assistiert, vom Grundstudium bis zum Fortgeschrittenen. Hier sind die Elemente, die ich als Ausbilder als hilfreich empfunden habe:

Forschungsprojekte

Für fortgeschrittene Klassen ist ein Forschungsprojekt (das numerische Forschung, normalerweise Softwareentwicklung und eine Zusammenfassung umfasst) eine sehr gute Möglichkeit für Studenten, ihre Forschung mit ihren akademischen Studienleistungen zu verknüpfen. Ich denke, dass ein Projekt in Kursen für Hochschulabsolventen obligatorisch sein sollte, aber für Studenten werden sie besser durch gezieltere Arbeit ersetzt.

Programmieren von Hausaufgaben

Der Kern eines jeden rechnerwissenschaftlichen Kurses sind zugängliche Programmieraufgaben. Für Studenten ohne Programmiererfahrung müssen Sie Ihre Aufgaben mit einigen Einführungssitzungen in die Programmierumgebung und im Idealfall mit einer Art "Hilfesaal" sichern, der entweder von Ihrer Abteilung oder einer Studentenorganisation wie SIAM angeboten wird. Mehrere Frameworks erlauben und Programmiersprachen kann schwierig sein, nahm ich Programme in jeder Sprache geschrieben , sondern unterstützt nur eine Umgebung, in der Regel frei verfügbar in den Universitätscomputerlabore (Betriebssystem, Editor, Shell, Dolmetscher, etc ...)

Quiz

Ich mag kurze 10-15-minütige Tests im Unterricht einmal pro Woche oder jede zweite Woche. Es ist ein gutes wechselseitiges Feedback: Die Schüler sehen, wie sie sich gegen meine Erwartungen und gegeneinander verhalten, und ich sehe, welche Konzepte sie treffen und vermissen. Dieser Bewertungsstil wird in Europa nicht sehr häufig verwendet, und ich finde das schade.

Prüfungen

Die Untersuchungen bestehen aus Bleistift und Papier mit Analyse von Algorithmen, Codefragmenten und mathematischen Techniken. Ich habe weder als Student noch als Ausbilder / Bewerter an einer Computerlaborprüfung teilgenommen. Ich denke, das Nächste, was ich gesehen habe, ist, dass ein Schüler seine Hausaufgaben oder sein Projekt vorführt und Fragen zu Design oder Implementierung beantwortet.

Die Unehrlichkeitsbeschränkung

Sowohl als Student als auch als Ausbilder habe ich genug Unehrlichkeit im akademischen System gesehen, um zu vermeiden, dass mehr als 50% der Note eines Studenten auf Ehre angewiesen sind. Dies bedeutet, dass Bewertungen wie Projekte und Hausaufgaben, bei denen der Zugang zu externen Ressourcen zu akademischer Unehrlichkeit führen kann, nicht zu mehr als 50% der Kursnote beitragen.


Ich denke, der letzte Punkt ist besonders wichtig - ich werde noch eine schriftliche Prüfung in der Klasse haben, um die Punkte abzudecken, die in diesem Format testbar sind. Das werden mindestens zwei Drittel der Note sein, denke ich. Ich werde auch sicherstellen, dass es eine Zusammenfassung gibt, die das Projekt außerhalb des Unterrichts begleitet, so dass die Schüler mindestens einige Zeit mit dem Material verbringen müssen. Ich könnte auch einige Randomisierungen von Eingaben vornehmen und das Problem ändern, um die Versuchung und die Fähigkeit zum Betrügen zu verringern.
Aeismail

@AronAhmadia: Wöchentliche Tests sind an deutschen Universitäten abteilungsübergreifend Standard, trotz ihrer völligen Unabhängigkeit.
Todesatem

@aeismail: Amerikaner haben ein sehr enges (in einigen Fällen fast lächerliches) Verständnis von Plagiaten. Im ersten Jahr können Sie die Studenten möglicherweise von der Zusammenarbeit abhalten, aber in den folgenden Jahren wird die Fachschaft Ihre Aufgaben katalogisiert haben, und es wird zunehmend schwieriger, Probleme zu stellen, die in den letzten Jahren nicht in erheblichem Maße gelöst wurden.
Todesatem

@Deathbreath: (zu Aron) Wöchentliche Quiz sind hier in Aachen kein Standard - zumindest nicht im Maschinenbau. Ich weiß nicht einmal, ob ich sie geben darf. (Nicht, dass ich möchte.)
Aeismail

@Deathbreath: (zu mir) Wenn Schüler frühere Prüfungen verwenden, um die Methodik zu lernen, lasse ich sie gerne verwenden. Ich mache mir mehr Sorgen, dass sie lernen, wie man die Werkzeuge benutzt. Trotzdem ändere ich den Kursinhalt von Jahr zu Jahr, sodass jeder, der in den alten Sachen eine perfekte Punktzahl und in den neuen Sachen ein Gänseei erzielt, wahrscheinlich den Verdacht hat, sich zu stark auf die Fachschaft zu verlassen .
Aeismail

5

Einige der anderen Antworten schlagen individuelle Projekte vor. Ich mache das in meiner Finite-Elemente-Software-Klasse und es macht viel Spaß. Ich glaube, es ist auch sehr lehrreich für Studenten. Gleichzeitig ist es auch sehr zeitintensiv: Das letzte Mal hatte ich 18 Studenten und es war praktisch eine Vollzeitbeschäftigung für das gesamte Semester, diese Projekte zu betreuen. Man muss also eine Klasse haben, die klein genug ist, damit das erfolgreich funktioniert.


Für die Aufzeichnung habe ich meine Erfahrungen dazu in Veröffentlichung Nr. 39 unter math.tamu.edu/~bangerth/publications.html#x-reviewed
Wolfgang Bangerth

2

Meiner ehrlichen Meinung nach besteht der ultimative Test darin, Ihr Wissen auf unbekanntem Gebiet anzuwenden. Ich würde angewandte Projekte vorschlagen, um die Fähigkeit eines Schülers zu testen, effektive Modelle, Diskretisierungs-, Approximations- / Lösungsmethoden, ausnutzbare Parallelität, Fehlerschätzungen und numerische Analysen sowie Visualisierungsmethoden zur Beschreibung eines bestimmten physikalischen Phänomens von rechnerischem Interesse auszuwählen. Ich würde noch weiter gehen und die Schüler bitten, jede Wahl anhand der Problemgröße / erwarteten Genauigkeit zu rechtfertigen. Der Schlüssel ist zu wissen, welche Methoden unter den Bedingungen der untersuchten Phänomene geeignet sind. Die Schüler können sich dafür entscheiden, ein Phänomen ihrer Wahl auszuwählen. Wenn Sie es jedoch noch herausfordernder gestalten möchten, weisen Sie jedem Studenten ein Computerprojekt in einem nicht verwandten Bereich für seine Dissertationsforschung zu.


Meine Studenten sind Studenten im zweiten Studienjahr, daher sind sie weit davon entfernt, ein Gebiet ihrer Dissertationsforschung zu haben. :-) Aber der Gedanke wird definitiv geschätzt.
Aeismail
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.