Es ist offensichtlich, dass die herkömmliche Informatik-Lehre nur
(noch) mäßig erfolgreich ist:
- Viele Studierende sind nur sehr mäßig motiviert,
- nehmen meist nur geringe Teile des Stoffes (oder der Lernziele) einer Veranstaltung wirklich mit
- und selbst vieles von dem, was die Dozenten als essenziell betrachten, ist am Ende oft nicht erkennbar gelernt oder sogar erkennbar nicht gelernt.
Leider weiß niemand dafür eine einfache Lösung.
Aber es gibt eine ganze Reihe plausibler und interessanter
Ideen,
was man anders und vielleicht besser macheben könnte.
Diese Seite dient dazu, hauptsächlich
Quellenverweise für solche Ideen zu
sammeln (z.B. Beschreibungen, Argumente, Kurspläne und -materialien,
Evidenz der Wirksamkeit) und soll die Ideen selbst nur in wenigen Worten skizzieren.
Grundlagen
Allgemeines
Quellen:
Computational Thinking
…ist die Fähigkeit, routinemäßig und mühelos zentrale Konzepte der Informatik im
eigenen Denken und Problemlösen im Alltag(!) einzusetzen. Zum Beispiel:
Reduktion, Einbettung, Transformation, Simulation,
Rekursion, Parallelität, Dualität von Daten und Programm, Datentypen und Typprüfung,
Aliasing, Indirektion, Prozeduraufruf,
Korrektheit, Effizienz, Einfachheit, Eleganz,
Repräsentation, Modellierung, Invarianten,
Modularisierung, vorausschauendes Laden, Caching,
Trennung von Belangen, Verklemmung, Schnittstelle, Vertrag,
Planen, Lernen, Ungewissheit, Suche, Suche, Suche,
Strategie, Gegenbeispiel, Tradeoff, Nichtdeterminismus usw. usf.
Jeannette Wing stellt es in eine Reihe mit Lesen, Schreiben und Rechnen als eine Basisfähigkeit,
die jedes Schulkind lernen sollte.
Gelungen sei das "when trees are drawn upside down" (ist aber nicht ernst gemeint).
Quellen:
- Jeannette Wing: Computational Thinking, CACM März 2006 (diesen mitreißenden Artikel sollte jede/r Informatiker/in kennen)
Problemlösungsfertigkeiten
Schlagworte: problem-solving skills, puzzle-based learning
Idee: Grundlegende Fertigkeiten explizit trainieren anstatt sich darauf
zu verlassen, dass sie beim Erwerb anderen Informatikstoffes schon
irgendwann implizit mit "aufgeschnappt" werden.
Es geht um Gewohnheiten und Fertigkeiten wie
- genaues Verstehen des Problems
- Hinterfragen von Begrifflichkeiten
- elementare Logik, Arithmetik und Wahrscheinlichkeitsrechnung
- Verstehen und Bilden von Abstraktionen, Modellieren
- Verständnis für und Aushalten von Mehrdeutigkeit
- Erkennen oder Auswählen von Zielfunktionen
kurz: Kritisches Denken.
Quellen:
Programmierausbildung
Hier geht es z.B. um Paradigmen, Sprachen, Werkzeuge und Aufgaben
sowie darum, wie man gute Gewohnheiten antrainiert (Dokumentation, Entwurf,
Kodierstil, Test usw.).
Algorithmen, Korrektheit, Effizienz
Hier geht es z.B.
um exakte versus heuristische Algorithmen,
um symbolische ("formale") Verifikation versus Test,
um asymptotische versus reale Effizienz,
etc.
Quellen:
Übersetzerbau
Hier geht es
um den Aufbau einer 15-wöchigen Lehrveranstaltung zum Thema Übersetzerbau, in der Theorie und Praxis motivierend vereint wird.
Quellen:
Projektstudium
Hier geht es z.B. darum,
welche Projektformate es gibt,
wie und von wem sie durchgeführt werden können,
wo und wie man Aufgaben findet/definiert,
wie man das Kosten/Nutzen-Verhältnis der Betreuung optimiert
und wie man Projekte gut ins Studium einbettet.
…
Softwaretechnik-Ausbildung
…
Kommentare