Direkt zum Inhalt

Die San José State University unterstützt Studenten dabei, sich selbst das Programmieren beizubringen

Da die Informatikabteilung der SJSU nur eine begrenzte VM-Kapazität hatte, mussten die Ressourcen erweitert werden, um den Informatikstudenten unbegrenztes Programmieren zu ermöglichen.

Studenten, die in den Informatik-Einführungskursen das Programmieren lernen, haben häufig Schwierigkeiten damit, grundlegende Konzepte anzuwenden. Cay Horstmann, Informatikprofessor an der SJSU, wollte ihnen dabei helfen, das Programmieren zu üben. Da jedes Jahr dieselben Programmieraufgaben verwendet wurden, konnten die Studenten die Lösungen einfach online nachsehen. Professor Horstmann brauchte also eine Möglichkeit, neue Übungen anzubieten, bei denen die Antworten nicht im Internet zu finden waren.

"Wenn die Studenten am Sonntagabend an ihren Projekten arbeiten, kann es gut sein, dass über 20 virtuelle Maschinen ausgeführt werden. Verändert sich die Arbeitslast, werden automatisch Maschinen zu- oder abgeschaltet."

Cay Horstmann, Informatikprofessor, San José State University

Praktische Übungen für alle Studenten

Es wird immer wichtiger, ein System zu entwickeln, mit dem Studenten sich das Programmieren selbst beibringen können. Mehr und mehr Studenten aus anderen Bereichen, wie Biologie und Jura, interessieren sich fürs Programmieren, weil es ihnen hilft, Dinge zu recherchieren und produktiver zu arbeiten. Programmieren ist nicht mehr nur etwas für angehende Entwickler.

"Informatikabteilungen müssen sich auf die verstärkte Nachfrage vorbereiten", so Horstmann. "Studenten aller Fachrichtungen belegen Informatikkurse, um in ihrem eigenen Feld effektiver arbeiten zu können. Und da es zu wenige Dozenten gibt, sollten die Hochschüler die Möglichkeit haben, sich diese Fertigkeiten selbst beizubringen."

Cay erfuhr über die Interessengruppe Special Interest Group on Computer Science Education (SIGCSE) vom Bildungszuschuss für Google Cloud. Er bewarb sich für den Forschungszuschuss und erhielt ein Google Cloud-Guthaben, das er für alle Google Cloud-Produkte einsetzen durfte. Er entwickelte damit das Autograder-ToolCodeCheck , über das Schülern und Studenten Hunderte von praktischen Übungen zum Thema Coding zur Verfügung stehen.

CodeCheck ist ein webbasiertes Programm, mit dem Studenten das Programmieren in verschiedenen Programmiersprachen üben. Professoren können die Programmieraufgaben anpassen, sodass die Studenten ihre eigene Lösung entwickeln müssen, anstatt sie online zu finden. Da die Server der Informatikabteilung bereits voll ausgelastet waren, nutzte Cay zum Entwicklung von CodeCheck die Google Compute Engine: virtuelle Maschinen mit unbegrenzter Rechenleistung. Für Überwachung, Protokollierung und Diagnosen wählte er Stackdriver und für Cloud SQL entschied er sich aufgrund der Skalierbarkeit und Praktikabilität.

"Wenn die Studenten am Sonntagabend an ihren Projekten arbeiten, kann es gut sein, dass über 20 virtuelle Maschinen ausgeführt werden. Verändert sich die Arbeitslast, werden automatisch Maschinen zu- oder abgeschaltet", so Horstmann.

Jetzt können die Informatikprofessoren an der SJSU Cloud-Computing-Tools nutzen, um das Programmieren zu unterrichten, und müssen sich dabei keine Sorgen um die Auslastung der Universitätsserver machen. So haben viel mehr Hochschüler die Möglichkeit, Programmieren zu lernen, auch diejenigen, die nicht Informatik im Hauptfach studieren. Die Studenten lernen, wie man ein Remote-System verwaltet, für Arbeitslasten skaliert oder wie Logging und die automatische Implementierung funktionieren.

Studenten zum Selbstlernen ermutigen

Mit CodeCheck erhalten Studenten in Echtzeit Feedback zu ihren Programmieraufgaben, sodass sie sofort wissen, ob ihre Lösung richtig ist. CodeCheck verrät den Teilnehmern aber nicht, wo der Fehler liegt, das müssen sie selbst herausfinden. In der Vergangenheit bekamen die Studenten erst Wochen nach Abgabe einer Arbeit das Feedback dazu. In der Zwischenzeit hatten sie ihren Lösungsweg oft schon vergessen.

Umfrageergebnisse zeigen, dass Studenten es hilfreich finden, wenn sie online üben können. Hier sieht es niemand, wenn sie auch mal einen Fehler machen, und sie stehen nicht unter Druck, eine Aufgabe innerhalb einer bestimmten Zeit zu lösen.

Laut Horstmann können Studenten mit CodeCheck außerdem effektiver lernen und ihre Testergebnisse verbessern. In einem Java-Kurs im Nebenfach mit zwei Gruppen schnitt die Gruppe, bei der CodeCheck zum Einsatz kam, um 50 % besser ab. In einem Kurs zu Programmiersprachen schnitt der Teil mit CodeCheck bei Fragen zur Programmiersprache Scheme 20 % besser ab als die Kontrollgruppe. Bei einer Frage, die in den Übungsmaterialien nicht behandelt wurde, erzielten beide Gruppen dieselbe Punktzahl. In einem C++ Kurs für Studienwechsler, bei dem alle Studenten Übungsaufgaben lösen mussten, war die Anzahl der Lösungsversuche pro Problem am Ende des Kurses um ein Drittel niedriger als am Anfang. Außerdem verkürzte sich die durchschnittliche Bearbeitungsdauer für die Übungen um die Hälfte.

Programmierunterricht für alle

Immer mehr Hochschüler sind native Cloudnutzer. Deshalb müssen die Unterrichtstools weiterentwickelt werden, damit sie die Anforderungen von Studenten der Informatik und anderer Fachrichtungen erfüllen. Der Übergang von grundlegenden, bildbasierten Problemen zum Erstellen von Schleifen beispielsweise ist ein riesiger konzeptioneller Sprung, denn die Schleife muss für jede Eingabe funktionieren. Erst wenn die Studenten ein Muster gelernt haben, verstehen Sie, wie sie das Konzept auf den Code anwenden können.

Mit dem Autograder können Studenten mit 5 Codezeilen klein anfangen. Wenn für eine Aufgabe 200 Codezeilen geschrieben werden sollen, klingen 5 Zeilen zwar nach viel zu wenig. Ziel ist es aber, dass die Studenten in kleinen Abschnitten lernen und das Gelernte nach und nach auf immer komplexere Übungen anwenden.

"Programmieren ist eine Kompetenz des 21. Jahrhunderts für Geschäftsleute, Wissenschaftler, Anwälte, Journalisten – praktisch für jeden, der mit Daten arbeitet", erklärt Horstmann. "Wenn wir schon bei den Hauptfachstudenten mit dem traditionellen Modell "Vorlesung–Computerraum–Hausarbeit" eine hohe Durchfallquote haben, wird das bei Studenten mit Informatik im Nebenfach erst recht nicht funktionieren. Deshalb verfolge ich den bewährten Ansatz "Lernen durch Wiederholung".

"Programmieren ist eine Kompetenz des 21. Jahrhunderts für Geschäftsleute, Wissenschaftler, Anwälte, Journalisten – praktisch für jeden, der mit Daten arbeitet."

Cay Horstmann, Informatikprofessor, San José State University

Autograder mit nahtlosem Back-End

Stackdriver bietet leistungsstarke Monitoring- und Diagnosefunktionen, mit denen Cay in der Lage ist, Probleme zu beheben und sicherzustellen, dass Autograder ordnungsgemäß verwendet wird. Wenn ein Student beispielsweise versucht, ein Programm auszuführen, das andere Programme löscht oder die Maschine herunterfährt, werden solche Befehle blockiert. In der Vergangenheit verbrachte Cay manchmal Stunden damit, Programme zu debuggen und die Ursache von Problemen zu finden.

Mit CodeCheck soll es in erster Linie den Studenten leichter gemacht werden, Programmieren zu üben. Wer den Autograder nutzen möchte, muss sich weder registrieren noch anmelden. Professoren können CodeCheck einfach in ihre Lernplattform integrieren. Die Hochschüler arbeiten direkt in der Lernplattform und der Autograder gibt ihre Punktzahl aus. Mit Cloud SQL wird festgehalten, wie lange an einer Übung gearbeitet wurde. Diese Informationen werden automatisch gesichert. Die Studenten können dank der Integration auch einfach auf "Record my score" (Meine Punktzahl erfassen) klicken, um eine Aufgabe abzugeben. Das ist praktisch für Professoren und Studenten.

"Programmieren entwickelt sich immer mehr zu einer Kompetenz für die Zukunft, und das nicht nur für Entwickler. Deshalb müssen Informatikabteilungen den Studenten die Möglichkeit geben, in ihrem eigenen Tempo zu lernen", sagt Horstmann. "Mit CodeCheck können sie sich selbst auf die Probe stellen und auch außerhalb des Unterrichts weiterlernen."

Hier können Sie sich anmelden, um regelmäßig Neuigkeiten, Statistiken, Infomaterial und weitere Informationen zu erhalten.