Forschungsbericht 2020 - Max-Planck-Institut für Softwaresysteme, Standort Saarbrücken

Maschinengestützter Unterricht zum Lösen offener Aufgaben

Autoren
Singla, Adish
Abteilungen
Max-Planck-Institut für Softwaresysteme, Standort Saarbrücken, Saarbrücken
Zusammenfassung
Programmierfähigkeiten zu vermitteln, spielt im modernen MINT-Unterricht eine zunehmend wichtige Rolle. Am MPI für Softwaresysteme entwickeln wir auf künstliche Intelligenz (KI) gestützte Tutoriumsysteme, die die Schülerinnen und Schüler ihren individuellen Fähigkeiten entsprechend dabei virtuell unterstützen.

Eine grundlegende gesellschaftliche Herausforderung besteht darin, für eine kosteneffektive und inklusive Bildung zu sorgen, die rechnergestütztes Denken und Problemlösungsfähigkeiten von Schülerinnen und Schülern fördert. Der aktuelle Lehrplan bis zum Abitur legt zunehmend Wert auf das Lösen offener Aufgaben (also Aufgaben ohne vorgefertigte Lösungen) – eine grundlegende Fähigkeit für den Erfolg  in Fächern wie Mathematik, Informatik, Naturwissenschaften und Technik (die sogenannten MINT-Fächer).

Gerade das Programmieren kann hier wichtige Grundlagen liefern. Dazu ist eine individuelle Betreuung der Schülerinnen und Schüler notwendig, allerdings sind oft nicht ausreichend Lehrkräfte oder Tutoren verfügbar. Hier können durch künstliche Intelligenz unterstützte Tutoriumsysteme eine vielversprechende Alternative bieten und den Unterricht in den MINT-Fächern mit einem virtuellen Angebot  ergänzen. Die derzeit verfügbaren Techniken für den Online-Unterricht sind jedoch begrenzt: Sie wurden zwar mit dem Ziel entwickelt, Kurse in großem Umfang anzubieten, nicht aber, um die Problemlösungsfähigkeiten der Schülerinnen und Schüler zu fördern.

In den letzten Jahren haben wir in unserer Forschungsgruppe „Machine Teaching“ am MPI-SWS  Techniken der nächsten Generation für den MINT-Unterricht entwickelt, die den Schwerpunkt auf auf Fragen basierendes Problemlösen in offenen Bereichen wie Programmieren, den Beweis eines mathematischen Theorems oder das Lösen schwieriger Rätsel legen ([1], [2], [3], [4], [5]). Um die Schülerinnen und Schüler auf diesen Gebieten  effizient zu unterstützen, entwickeln wir neuartige, computergestützte Lernmodelle und Techniken für den maschinengestützten Unterricht.

Dazu entwerfen wir zunächst Rechenmodelle, mit denen sich der Lernprozess der Schülerinnen und Schüler individuell einzuschätzen lässt. Zudem entwickeln wir entscheidungstheoretische Modelle, mit denen sich quantifizieren lässt, von welcher Art der Unterstützung die Schülerinnen und Schüler am besten profitieren können. Basierend auf diesen Ergebnissen nutzen wir künstliche Intelligenz (KI), um personalisierte Lehrpläne zu erstellen, die den individuellen Lernprozess der Schülerinnen und Schüler berücksichtigen. Diese Programme können den Schülerinnen und Schülern anhand der von ihnen bereits gelösten Aufgaben neue zuweisen oder sogar neue Aufgaben individuell zusammenstellen. Zudem sind unsere KI-Programme in der Lage, den Schülerinnen und Schülern ganz pragmatisch Hinweise zu geben, wenn sie bei der Lösung einer bestimmten Aufgabe nicht weiterkommen.

Blockbasiertes Programmieren

In unserer Arbeit  setzen wir speziell auf  sogenannte blockbasierte visuelle Programmierumgebungen [1]. Bei dieser Programmiertechnik nutzen die Schülerinnen und Schüler vorgefertigte Einheiten, die bestimmten übergeordneten Programmierkommandos entsprechen und visuell dargestellt sind. Auf diese Weise können sie die Logik des Programmierens erlernen, ohne eine Programmiersprache zu beherrschen und den Texte eines Programmcodes schreiben zu müssen. Solche visuellen Programmierumgebungen werden zunehmend dafür eingesetzt, Programmieranfängern  Informatikkonzepte vorzustellen. Angeführt durch den Erfolg von  Projekten wie Scratch, Initiativen wie Hour of Code von Code.org (HOC) und Online-Plattformen wie CodeHS.com, ist das blockbasierte Programmieren zu einem integralen Bestandteil des Informatikunterrichts für Einsteiger geworden. Allein dank der HOC-Initiative konnten bisher über 50 Millionen Schülerinnen und Schüler weltweit insgesamt über eine Milliarde Stunden an blockbasierten Programmiertätigkeiten durchführen.

Eine der wichtigsten pädagogischen Herausforderungen besteht darin, neue Übungsaufgaben zu entwerfen, die einem gewünschten Schwierigkeitsgrad entsprechen und spezifische Programmierkonzepte trainieren. Die Programmieraufgaben werden in der Regel von Fachlehrkräften von Hand redaktionell betreut, und das verfügbare Aufgabenspektrum ist begrenzt. So sieht beispielsweise Classic Maze der HOC-Initiative eine Abfolge von 20 Aufgaben vor: Millionen von Schülerinnen und Schülern haben sich an diesen Aufgaben versucht. Doch wenn es ihnen nicht gelingt, eine Aufgabe zu lösen und Unterstützung zu erhalten, können sie ähnliche Aufgaben nicht üben und ihre Fähigkeiten nicht weiter ausbauen.

Am MPI für Softwaresysteme haben wir uns dieser pädagogischen Herausforderung angenommen und eine Methodik entwickelt, um neue Übungsaufgaben für Schülerinnen und Schüler zu generieren, die einem gewünschten Schwierigkeitsgrad entsprechen und ganz bestimmte Programmierkonzepte trainieren. Dabei variieren wir unter anderem auch die visuelle Anmutung von Aufgaben mit gleichen Konzepten, um die Schülerinnen und Schüler beschäftigt zu halten.

Diese neuen Programmieraufgaben zusammenzustellen, ist nicht trivial: Zum einen lassen sich automatisch sehr viele Aufgaben konzipieren, doch nur einige davon besitzen auch sinnvolle Lösungen. Daher sind template-basierte Techniken, die den Input (Eingabe) direkt verändern, um neue Aufgaben zu generieren, ineffektiv. Zum anderen ist die Vielfalt an möglichen Aufgaben und ihrer Lösungen unbegrenzt. So sind sämtliche Techniken, die sich auf eine erschöpfende Aufzählung stützen, nicht zielführend.

Um diese Probleme zu lösen, haben wir einen neuartigen Algorithmus für die Aufgabensynthese entwickelt. Darin kombinieren wir Techniken aus Softwaretests und Machine Learning. Der vorgeschlagene Algorithmus zur Aufgabensynthese kann 1.000 neue ähnliche Aufgaben für Inputaufgaben generieren, die der Hour of Code: Classic Maze-Herausforderung von Code.org und dem Kurs Intro to Programming with Karel [Einführung in das Programmieren mit Karel] von CodeHS.com entnommen sind. Die Effizienz des Synthese-Algorithmus haben wir in einer umfangreichen Benutzerstudie evaluiert. Derzeit entwickeln wir dazu eigens eine Online-Anwendung, die öffentlich zugänglich sein soll.

Literaturhinweise

1.
Ahmed, U. Z.; Christakis, M.; Efremov, A.; Fernandez, N.; Ghosh, A.; Roychoudhury, A.; Singla, A.
Synthesizing Tasks for Block-based Programming.
In: Proceedings of the 34th Conference on Neural Information Processing Systems (NeurIPS’20), 2020.
2.
Efremov, A.; Ghosh, A.; Singla, A.
Zero-shot Learning of Hint Policy via Reinforcement Learning and Program Synthesis.
In: Proceedings of the 13th International Conference on Educational Data Mining (EDM’20), 2020.
3.
Tschiatschek S.; Ghosh A.; Haug L.; Devidze R.; Singla A.
Learner-aware Teaching: Inverse Reinforcement Learning with Preferences and Constraints.
In: Proceedings of the 33rd Conference on Neural Information Processing Systems (NeurIPS’19), 2019.
4.
Kamalaruban, P.; Devidze, R.; Cevher, V.; Singla, A.
Interactive Teaching Algorithms for Inverse Reinforcement Learning.
In: Proceedings of the 28th International Joint Conference on Artificial Intelligence (IJCAI’19), 2019.

DOI: 10.24963/ijcai.2019/374

5.
Haug, L.; Tschiatschek, S.; Singla, A.
Teaching Inverse Reinforcement Learners via Features and Demonstrations.
In: Proceedings of the 32nd Conference on Neural Information Processing Systems (NeurIPS’18), 2018.
Go to Editor View