
Autor:
(1) J. Walker Orr, Elektrotechnik und Informatik, George Fox University, Newberg, OR, 97132, USA (jorr@georgefox.edu).
Zusammenfassung und 1. Einleitung
3.1 Problemstruktur und dynamisches Scaffolding
3.2 Informelle Beurteilung und Feedback
Diese Studie untersucht die Anpassung des Problemlösungsstudios an die Informatikausbildung durch Kombination mit Paarprogrammierung. Paarprogrammierung ist eine Softwareentwicklungspraxis in der Industrie, hat jedoch im Unterricht gemischte Ergebnisse erzielt. Neuere Forschungsergebnisse legen nahe, dass Paarprogrammierung vielversprechend und potenziell ein effektives pädagogisches Werkzeug ist. Was jedoch eine gute Unterrichtsgestaltung und -implementierung für Paarprogrammierung im Unterricht ausmacht, ist nicht klar. Wir haben einen Rahmen für die Unterrichtsgestaltung für Paarprogrammierung entwickelt, indem wir das Problemlösungsstudio (PSS) angepasst haben, eine Pädagogik, die ursprünglich aus der Biomedizintechnik stammt. Beim PSS lösen Studententeams offene Probleme mit Echtzeit-Feedback des Dozenten. Insbesondere verwendet PSS Probleme mit anpassbarem Schwierigkeitsgrad, um Studenten aller Niveaus zu engagieren und sie in der Zone der proximalen Entwicklung funktionieren zu lassen. Der Kurs ist in drei Phasen strukturiert: Zunächst beginnt er mit einer Demonstration, gefolgt von einer PSS-Sitzung und abschließend mit einer Nachbesprechung. Wir haben die Kombination aus PSS und Paarprogrammierung in einem CS1-Kurs über drei Jahre untersucht. Umfragen unter den Studenten berichten von einem hohen Maß an Engagement, Lernen und Motivation.
Paarprogrammierung ist eine Methode der extremen Programmierung (XP) (Beck, 2000), die in der Industrie teilweise Anwendung findet (Hannay et al., 2009). Dabei arbeiten zwei Programmierer gemeinsam an einem einzigen Problem und Computer, wobei ein Programmierer die Rolle des „Fahrers“ und der andere die des „Navigators“ übernimmt. Der „Fahrer“ bedient die Tastatur und schreibt den Code direkt, während der „Navigator“ beobachtet und Fragen stellt, den Code und sein Design kritisiert und verfeinert. Der „Navigator“ ist nicht passiv, er hält nach Fehlern und Mängeln Ausschau, denkt über alternative Designs nach und sucht nach zugehöriger Dokumentation und Ressourcen. Obwohl die Wirksamkeit der Paarprogrammierung gemischt ist (Hawlitschek et al., 2022; Hannay et al., 2009), hat sich in einigen Fällen gezeigt, dass sie schneller qualitativ hochwertigeren Code produziert als Soloprogrammierung (Williams et al., 2000). Ziel der Paarprogrammierung ist es, Entwicklern bei der Zusammenarbeit zu helfen, Fehler und Mängel viel schneller zu erkennen, als wenn sie dies allein täten.
Für die Bildung ist Paarprogrammierung interessant, weil sie in das Paradigma der Ausbildung und des verteilten Lernens passt, nämlich in die Idee, dass „Wissen im Allgemeinen sozial konstruiert wird, durch gemeinsame Bemühungen um gemeinsame Ziele oder durch Dialoge und Herausforderungen, die durch unterschiedliche Perspektiven der Personen entstehen“ (Salomon, 1997). Darüber hinaus hat sich gezeigt, dass es die Zufriedenheit der Schüler erhöht, die Frustration der Schüler verringert, die Tendenz der Schüler zum Durchhalten verbessert und den Schülern ein Gefühl der Selbstwirksamkeit vermittelt (Williams und Upchurch, 2001). Das ICAP-Framework beschreibt vier Arten der Beteiligung und des Verhaltens der Schüler und identifiziert den interaktiven Modus als den Modus mit dem höchsten Grad an kognitiver Beteiligung der Schüler. Man geht davon aus, dass interaktive Lernarten tiefes, übertragbares Wissen erzeugen (Chi und Wylie, 2014). Paarprogrammierung passt in die ICAP-Definition des interaktiven Lernens und hat daher das Potenzial, robustes, übertragbares, konzeptuelles Lernen zu erzeugen. Kürzlich haben Hawlitschek et al. (2022) führte eine Literaturrecherche arXiv:2311.01693v1 [cs.CY] am 3. November 2023 durch und eine Metastudie zum Paarprogrammieren in der Bildung kam zu dem Schluss, dass Paarprogrammieren für Schüler, insbesondere Anfänger, wichtig und effektiv ist, es jedoch an einem effektiven Unterrichtsdesign mangelt. Daher hat sich gezeigt, dass Paarprogrammierung als Lehrmethode viel Potenzial hat, aber die Details, wie sie richtig in einem Klassenzimmer umgesetzt werden kann, müssen noch entdeckt werden.
Wir schlagen vor, dass die Lösung für ein effektives Unterrichtsdesign für Paarprogrammierung im Klassenzimmer in der Lernumgebung Problem Solving Studio (PSS) gefunden wurde (Le Doux und Waller, 2016). PSS wurde entwickelt, um Studenten der Biomedizintechnik beizubringen, komplexe Probleme zu lösen, ohne auf das Auswendiglernen von Verfahren und Algorithmen zurückgreifen zu müssen. Die Studenten arbeiten in Zweierteams, um schlecht definierte Probleme in einem öffentlichen Raum zu lösen, sodass die Dozenten ihnen im Laufe der Zeit Feedback in Echtzeit geben können. Ein Hauptmerkmal von PSS ist das dynamische Scaffolding, eine gezielte Anpassung der Schwierigkeit der Probleme, um die Studenten herauszufordern, aber nicht zu entmutigen. Indem der Schwierigkeitsgrad in Echtzeit für jedes Team erhöht oder verringert wird, können so viele Studenten wie möglich in der Zone der proximalen Entwicklung gehalten werden. Ein vorlesungsbasierter Kurs wird es schwer haben, die Vielfalt der Niveaus der Studenten zu berücksichtigen, da allen Studenten der gleiche Vorlesungsinhalt und die gleiche Präsentation vermittelt werden. Es gibt gute Belege dafür, dass PSS das konzeptionelle Verständnis der Studenten verbessert (Le Doux und Waller, 2016).
PSS und Paarprogrammierung passen gut zusammen und die Kombination der beiden entspricht den Zielen und pädagogischen Anforderungen von CS1-Kursen. Aus diesem Grund befasst sich diese Studie speziell mit der Anpassung von PSS in Verbindung mit Paarprogrammierung für die CS1-Pädagogik. Zwei Hauptziele eines CS1-Kurses sind die Vermittlung algorithmischer Problemlösungsfähigkeiten und einer bestimmten Programmiersprache. Eine der Herausforderungen für erfahrene Dozenten besteht darin, dass sowohl Problemlösungs- als auch Sprachkenntnisse so tief verwurzelt sind, dass sie für die Dozenten selbstverständlich sind. Paradoxerweise bedeutet dieses hohe Verständnisniveau, dass Dozenten oft Schwierigkeiten haben, dieses Wissen zu vermitteln, da es als selbstverständlich vorausgesetzt wird (Le Doux und Waller, 2016). Darüber hinaus variieren die Fähigkeiten und der Hintergrund der Studenten in CS1-Kursen erheblich. Die Synthese aus PSS und Paarprogrammierung befasst sich jedoch direkt mit diesen Herausforderungen und Zielen, indem sie den Studenten eine praktische Gelegenheit bietet, Problemlösungs- und Programmiersprachenkenntnisse zu entwickeln. PSS mit der Ergänzung von Paarprogrammierung lehrt algorithmisches Problemlösen in einer kognitiven Lernumgebung (Collins et al., 1987). Die Schüler lernen voneinander und werden auch vom Lehrer oder anderen Lehrassistenten angeleitet. Peer-Learning ist hilfreich, da Schüler mit ähnlichem Leistungsniveau kürzlich Erfahrungen mit ähnlichen Problemen gemacht haben. Das bedeutet, dass sie diese Lösungen oft besser kommunizieren können, da sie sich an die Details und Besonderheiten erinnern, sowohl an das, was sie als Herausforderung empfanden, als auch daran, wie sie diese Hindernisse überwunden haben. Die Fähigkeit der Paarprogrammierung, schnelles Feedback zu geben, hilft den Schülern, die Syntax und Semantik einer Programmiersprache zu lernen. Darüber hinaus fördert es die Zusammenarbeit und Problemlösung zu zweit. Paarprogrammierung hat sich als hilfreich erwiesen, um Programmierern dabei zu helfen, Probleme zu lösen, die sie nicht alleine bewältigen können (Hawlitschek et al., 2022). Die Kombination aus PSS und Paarprogrammierung schafft sowohl eine Ausbildungs- als auch eine Peer-Learning-Umgebung, in der die Schüler sowohl Problemlösungs- als auch Programmiersprachenkenntnisse entwickeln.
Dieses Papier ist