Angeleitetes Programmieren
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Pascal</language> == Wie lernt man Programmieren? == Das Programmierenlernen ist eine sehr schwierige Angelegenheit. Selbst Informatikstudierende haben mitunter erhebliche Problem beim Erlernen des konstruktiven Umgangs mit einer entsprechenden Programmiersprache (PS). Die Informatik-Didaktik hat eine Reihe von Konzepten entwickelt, wie man Anfänger in der Programmierausbildung unterstüzten kann: # Mikrowelten (Hamster, Turtle, Karel the Robot, ...) # Angepasste Entwicklungsumgebungen (BlueJ, ...) # ... Sehr gute Resultate werden mit einem neueren Ansatz erzielt, den wir angeleitetes Programmieren nennen wollen: Dem Lernenden werden bestimmte anfangs meist sehr kurzschrittige Forderung auferlegt, die er bei der Erarbeitung der Programme beachten muss. Solche Konstruktionsanleitungen kann man sich als Entwurfsmuster vorstellen. Werden sie nicht nur als Papiernotiz vorgetragen, sondern in die PS eingebaut und als Verträge technisch überprüfbar formuliert, können sie den Programmierer zu guten Programmen führen. Dies ist insbesondere für Studierende der Informatik, die später komplexte Software ingeniermäßig entwickeln, sehr wichtig. Eine sanftere Form angeleiteten Programmierens sind interativer Arbeitsblätter, wie wir sie im ProgrammingWiki zusammen mit weiteren Vorzügen verwendet werden. Solche Arbeitsblätter sind multimediale Dokumente mit eingebauten editierbaren Codeabschnitten. Für Programmieranfänger ist gerade diese Mischung aus belehrendem oder anleitendem Text und ausführbarem Code von besonderem Wert, da die entwickelten Ideen unmittelbar exploriert werden können. Auf dem Weg zu guten Programmen lässt man dem Programmieranfänger natürlich nicht alle Freiheiten, sondern formuliert Zwischenziele, die für das Gesamtergebnis von Bedeutung sind. Die Erfüllung dieser Zwischenziele führt im Allg. zu Programmbausteinen, die sich später im Gesamtprogramm wiederfinden. Es ist naheliegend, dass von derartigen Bausteinen möglichst keine Nebenwirkungen (Seiteneffekte) ausgehen. Von daher empfiehlt sich eine bevorzugte Verwendung von Funktionen bzw. Prozeduren. Diese Module separat, d.h. im noch nicht ins Gesamtprogramm eingebauten Zustand testen zu können, ist eine wichtige Forderung, die im Sinne des test driven development im Bereich des Software engineering etabliert ist. Für die Testinteraktion stehen im Programming Wiki Ausführung-Bereiche (Boxes) zur Verfügung. Wir verwenden sie wie Diagnosestecker, um am "Puls der Prozedur" nach einem Fehler zu lauschen. Zur Beurteilung der Systemreaktion ist es notwendig, volle Klarheit darüber zu besitzen, welches das gültige Programmstück ist. Das aktuelle Programm ist die Folge der Inhalte aller Codeabschnitte in Dokumentreichenfolge (von oben nach unten) bis einschließlich dem Inhalt der Ausführen-Box. Die dieser Position im Dokument folgenden Abschnitte bleiben unbeachtet. Setzt nun der Lesen nach zufriedenstellender Erprobung des aktuellen Programms das Studium des Dokuments fort, erreicht er ggf. weitere "Diagnosestecker", die er einsetzen und inhaltlich individuell anpassen kann. Der Inhalt anderer Ausführen-Bereichen - gleichgültig an welcher Dokumentposition spielt dabei keine Rolle.