"Ich denke, es gibt weltweit einen Markt für vielleicht fünf Computer."

(Thomas Watson, Vorsitzender von IBM, 1943)

Computersysteme und Informationstechnologie durchdringen mehr und mehr unser Alltagsleben: Handys, Smartphones, Notebooks, MP3-Player, Navigationssysteme sind zum Allgemeingut geworden. Die Zahlen des Statistischen Bundesamtes aus 2011 untermauern diese Feststellung:

Im Jahr 2010 besaßen in Deutschland 80 Prozent der privaten Haushalte einen Computer, 77 Prozent einen Internetzugang, 70 Prozent einen Internetzugang mit Breitbandanschluss. 89 Prozent der Internetnutzer senden und empfangen E-Mails, 87 Prozent informieren sich am Computer über Waren und Dienstleistungen, 49 Prozent betreiben Online-Banking. Dabei wird die Bedienung der Geräte im Alltag immer komplexer. Bjarne Stroustrup, der Entwickler der Programmiersprache C++, beschreibt dies folgendermaßen: "Ich habe mir immer gewünscht, dass mein Computer so leicht zu bedienen ist wie mein Telefon; mein Wunsch ging in Erfüllung: mein Telefon kann ich jetzt auch nicht mehr bedienen."

Das Schulfach Informatik befindet sich stärker als andere Fächer im Spannungsfeld dieser allgegenwärtigen Informationstechnologie und ihrer für die meisten weitgehend unbekannten Funktionsweise. Wie geht das Schulfach Informatik damit um? Beschäftigt es sich mit der Bedienung von Navigationssystemen oder den aktuellen Versionen von Betriebsysstemen oder Anwendungssoftware? Oder geht es um die Hardware von Notebooks?

"In der Informatik geht es genau so wenig um Computer, wie in der Astronomie um Teleskope."

Dieses Zitat stammt von Edsger Wybe Dijkstra, dem Entwickler des nach ihm benannten Dijkstra-Algorithmus, dem Verfahren, mit dem heutige Autonavigationssysteme die kürzeste Route zum gewünschten Ziel berechnen. Ein Widerspruch? Die Informatik als Wissenschaft sowie als Schulfach beschäftigt sich nicht vorrangig mit Navigationssystemen, sondern mit der Frage, wie eine Landkarte so im Computer gespeichert werden kann, dass kürzeste Wege von einer Stadt zur anderen berechnet werden können. Die Landkarte ist so etwas wie ein Modell der realen Landschaft. Für Berechnungen am Computer muss dieses Modell weiter abstrahiert werden. Thema des Informatikunterrichts ist hier Modellierung. Außerdem müssen Verfahren, sogenannte Algorithmen, entwickelt werden, die den kürzesten Weg von A nach B finden, und dies so schnell wie möglich. Solche Algorithmen werden in einer Programmiersprache aufgeschrieben, die so formalisiert ist, dass die Anweisungen in Maschinenbefehle übersetzt werden können. Beispiele für Programmiersprachen sind Java, C++, Ruby usw.

Die genannten Programmiersprachen sind objektorientiert, d. h. sie basieren auf einer Sichtweise, in der die Welt aus miteinander interagierenden Objekten besteht. Diese Sichtweise erlernen die Schülerinnen und Schüler im Informatikunterricht der Jahrgangsstufe 10 an praktischen Unterrichtsprojekten. Genau wie ein Architekt zunächst ein Papiermodell seines geplanten Gebäudes baut, erstellt die Softwareentwicklerin vor Beginn der Programmierung ein objektorientiertes Modell der geplanten Software. Sie analysiert dafür die Problemstellung bis ins Detail und entwirft die Software. Erst im Anschluss wird das Programm in einer (objektorientierten) Programmiersprache geschrieben.

Werkzeuge der Modellierung sind vor allem Diagramme in der Modellierungssprache UML, von denen einige im Unterricht thematisiert werden. Anschließend programmieren wir die entworfene Software in der Programmiersprache Java, einer Sprache, die sich als Standard durchgesetzt hat. Java ist für das Zentralabitur vorgeschrieben, wird auch an den meisten Universitäten verwendet und bietet einige praktische Vorteile: Java ist ein kostenloses Open-Source-Programm, das jeder für zuhause herunterladen kann, und läuft auf jeder Plattform: Windows, Mac, Linux, mobilen Geräten. Es wird von der weltweiten Community weiterentwickelt und bietet Klassenbibliotheken an, die komplexe Aufgabenstellungen wie z. B. die Programmierung von grafischen Benutzerschnittstellen, die Netzwerkprogrammierung, die Kommunikation mit SQL-Datenbanken stark vereinfachen. Es gibt fast keine Problemstellung, die sich mit Java nicht bearbeiten lässt. Die Fähigkeit objektorientierter Sprachen zur Vererbung von Klassen bildet ebenfalls einen wichtigen Aspekt des Unterrichts. Vererbung erlaubt die einfache Erweiterung vorhandener (d. h. getesteter) Klassen um zusätzliche Eigenschaften und Fähigkeiten.

Schwerpunkt des Unterrichts bleibt aber der Softwareentwicklungsprozess. Java wird nur exemplarisch betrachtet, die im Unterricht erlernten Konzepte lassen sich später problemlos auf andere – insbesondere objektorientierte – Programmiersprachen übertragen.

Einen weiteren Ansatz zur Modellierung von Daten bildet das Aufstellen von Tabellen, in die strukturgleiche Datensätze eingetragen werden. Dieses sogenannte relationale Datenmodell ist die Grundlage für relationale Datenbanken, die heutzutage einen Standard für die Speicherung von Daten darstellen. Modellierung und Entwurf solcher Datenbanken sowie die Anfragessprache SQL zur Kommunikation mit solchen Datenbanken bilden das Thema einer Unterrichtsreihe in der Jahrgangsstufe 11. Dabei wird ein konkretes Unterrichtsprojekt modelliert, entworfen und anhand des weitverbreiteten, kostenlos verfügbaren Datenbanksystems MySQL praktisch umgesetzt. Auch Datenbankanfragen aus Java-Programmen werden erprobt.

In der Jahrgangsstufe 12 wird die Programmierung von Netzwerkanwendungen Thema sein: Neben technischen Grundlagen wie den Protokollen TCP/IP und HTTP, Hardwarekomponenten und Netzwerktopologien geht es hier um die praktische Programmierung von Clients und Servern in Java sowie um den Entwurf und die Nutzung von Netzwerkprotokollen. Am Ende der Jahrgangsstufe 12 steht ein Softwareprojekt, das in Teamarbeit erstellt wird. Praktische Beispiele sind ein Chatserver mit Clients sowie ein datenbankbasierter Webkalender als 3-Schichten-Anwendung.

Die Unterrichtsmodule im Überblick

Jahrgangsstufe 10:

• Informatische Grundlagen

• Einführung in das objektorientierte Paradigma – vom Realitätsausschnitt zum objektorientierten Modell

• Vom Modell zum Programm – Implementierung objektorientierter Modelle in Java

• Vom Problem zum Programm – über Analyse und Entwurf zur Implementierung in Java

• Kontrollstrukturen als Bausteine von Algorithmen

Jahrgangsstufe 11:

• Bessere Struktur durch Vererbung

• Abstrakte Datentypen 1: Lineare Datenstrukturen

• Abstrakte Datentypen 2: Baumstrukturen

• Datenhaltung in relationalen Datenbanken

Jahrgangsstufe 12:

• Modellieren und Implementieren kontextbezogener Problemstellungen als Netzwerkanwendungen

• Softwareprojekt

Alle Themen werden an praktischen Anwendungskontexten erarbeitet und mithilfe der didaktischen Entwicklungsumgebung BlueJ exemplarisch in Java implementiert. Über die angegebenen Module hinaus können je nach Interessenlage der Schülerinnen und Schüler weitere Themen behandelt werden. Durch die projektartige Arbeit im Fach Informatik vertiefen die Kursteilnehmer über die fachlichen Inhalte hinaus ihre Kompetenzen in der Zusammenarbeit im Team.

Siegel01

Siegel02

Siegel03

Siegel04