[Veranschaulichung des Public-Key-Verfahrens]

KRYPTOLOGIE

Programmieren im Informatik-Unterricht

[Veranschaulichung des Public-Key-Verfahrens]

Programmieren im Informatik-Unterricht

Warum Programmieren im Informatikunterricht

Als erstes muss erläutert werden, warum Informatik ein wichtiger Teil des Informatikunterrichtes sein soll. Aus Erfahrung wissen wir die Korrektheit der nachstehenden Aussagen. Das bedeutet, dass es zumindest fraglich ist, dass ohne Programmierkenntnisse die angegebenen Ziele erreicht werden können. Allerdings lassen sich diese Aussagen schwer empirisch beweisen.

Die Notwendigkeit des Programmieren ergibt sich demnach aus folgenden Anforderungen:

  • Grundlegendes Verständnis:
    Programmieren hilft Schülern, ein fundamentales Verständnis für informatische Prozesse und die Funktionsweise der informatisierten Welt zu entwickeln. Es geht dabei nicht nur um das Erlernen einer Programmiersprache, sondern um das Begreifen der zugrunde liegenden Konzepte.
  • Primärerfahrung der Informatik:
    Ähnlich wie das elementare Rechnen für die Mathematik ist das Programmieren die Primärerfahrung der Informatik
  • Schlüsselrolle für das Verständnis:
    Das Programmieren hat eine Schlüsselrolle für das Verständnis informatischer Grundbegriffe
Zusammenfassend lässt sich sagen, dass das Programmieren im Informatikunterricht nicht nur technische Fähigkeiten vermittelt, sondern auch wichtige kognitive, problemlösende und kreative Kompetenzen fördert, die für die Zukunft der Schüler in einer informatisierten Welt von grosser Bedeutung sind.

Streibar ist natürlich der Umfang der in der Schule zu unterrichtenden Stunden für die Programmierung. Die Erfahrung zeigt, dass etwa 30% bis 50% des Unterrichts im weitesten Sinne Programmierung ist. Damit ist auch gesagt, dass der Informatikunterricht nicht nur Programmierung ist.

Programmieren als fundamentale Idee

Es ist schnell nachvollziehbar, dass Programmieren eine fundamentale Idee der Informatik ist.
  • Horizontalkriterium:
    Ziel von Informatiksystemen ist die automatische Lösung von Problemen des täglichen Lebens. Gerade die automatische Lösung ist einzigartig für die Informatik und in praktisch allen Gebieten der Informatik notwendig.
  • Vertikalkriterium:
    In den letzten ca. 50 Jahren wurde gezeigt, dass Programmieren auf jedem intellektuellen Niveau aufgezeigt und vermittelt werden kann.
  • Zeitkriterium:
    Natürlich ist auf schulischer Ebene das Ziel einer allgemeinen Problemlösung durch Modelliereun und Programmieren nur teilweise vermittelbar, da Umfang und notwendige Kompetenzen sehr umfangreich sind.
  • Zielkriterium:
    Die zentrale Rolle der Programmierung ist von Anbeginn der Informatik bis heute vorhanden und ist auch in Zukunft notwendig.
  • Sinnkriterium:
    Die durch Programmierung entstandenen Systeme sind ein wesentlicher Teil des Alltags und der Lebenswelt geworden.
Damit erfüllt die Programmierung die Voraussetzungen für eine fundamentale Idee der Informatik und muss zwingend unterrichtet werden.

Didaktische Anforderungen an eine Programmiersprache für die Sek I

Immer wieder muss betont werden, dass die Auswahl einer Sprache für die Schule sich nicht daran orientieren darf, welche Programmiersprache in der Industrie derzeitig oder zukünftig von Bedeutung ist. Schule ist eine allgemeinbildende Institution und führt keine Berufsausbildung z.B. von Programmierern durch. Die Auswahl muss daher ausschliesslich nach didaktischen Kriterien erfolgen

Aus didaktischer Sicht sollte eine Programmiersprache für die Sekundarstufe I folgende Anforderungen erfüllen:

  • Einfachheit und Verständlichkeit:
    Die Sprache sollte für Anfänger leicht erlernbar sein und grundlegende Konzepte der Programmierung klar vermitteln können
  • Fokus auf algorithmisches Denken:
    Die Sprache sollte die Entwicklung algorithmischer Denk- und Arbeitsweisen fördern. Dabei sind die grundlegenden Kontrollstrukturen wie Verzweigungen und Wiederholungen besonders wichtig
  • Visuelle Unterstützung:
    Werkzeuge, die ein Programmieren ohne textuelles Kodieren ermöglichen, sind gut geeignet für untere Altersstufen. Sie erleichtern den Einstieg und machen algorithmische Strukturen anschaulich
  • Flexibilität:
    Es sollte möglich sein, sowohl mit visuellen Elementen als auch direkt auf Codeebene zu arbeiten, um verschiedene Lernzugänge zu ermöglichen
  • Standardformulierungen:
    Die Sprache sollte gängige Formulierungen wie "wenn ..., dann ..." bzw. "if ... then ..." verwenden, um die Verbindung zwischen natürlicher Sprache und Programmcode einfacher herzustellen
  • Alltagsbezug:
    Es muss möglich sein, in der gewählten Programmiersprache bzw. -umgebung Programmieraufgaben zu erstellen, die einen Bezug zur Lebenswelt der Schülerinnen und Schüler haben.

Beurteilung der Sprachen Coffeescript, Python und Ruby

Bei aller Unterschiedlichkeit der drei Sprachen lässt sich sagen, dass sie als Skriptsprachen einfache und verständliche Sprachen sind. In allen drei Sprachen wird der Fokus auf Algorithmik gelegt. Sie können alle allerdings auch aus datenstrukturellen Sichtweisen positiv beurteilt werden. Alle drei Sprachen enthalten heutige Konzepte bis hin zur modularen und objektorientierten Programmierung. Besonders gilt dies für Ruby als konsequent konzipierte objektorientierte Sprache. Die Sprachen lassen sich aber auch alle aus imperativ-prozeduraler und funktionaler Sicht verwenden.

Eine visuelle Unterstützung bietet ausschliesslich die Sprache Coffeescript in der Umgebung Pencilcode. Sprachliche syntaktische Formulierungen sind bei Python etwas ungewöhnlich.

In allen Sprachen ist der Alltagsbezug herstellbar.
Damit lassen sich alle Sprachen zur Programmierung in der Schule und insbesondere in der Sek I verwenden. Ist eine visuelle Unterstützung gewünscht, ist allerdings nur Pencilcode mit Coffeescript zu verwenden. Sie ermöglicht dann auch im Gegensatz beispielsweise zu Scratch, zwischen visueller Darstellung und textbasiertem Code umzuschalten.