Grundfach Informatik mit Schwerpunkt OOP in Java
Charakteristikum des Vorschlags
Im Unterricht ist es oft üblich sich auf eine Programmiersprache zu beschränken. Dies hat gewisse Vorteile, da die Schüler und natürlich auch man selbst als Lehrer sich nicht auf unterschiedliche Sprachen einstellen muss. Es ergeben sich allerdings auch Nachteile, da jede Sprache ihre Stärken und Schwächen hat und man manche Aspekte der Informatik gut mit der einen, andere dagegen besser mit einer anderen Programmiersprache vermitteln kann.
Vergleicht man z.B. die Sprachen Java und Python miteinander, so bietet jede gewisse
Vorteile gegenüber der anderen.
Natürlich sind Computersprachen auch Geschmackssache und der eigene Geschmack wird sehr
stark von den bisher benutzten Sprachen abhängen.
Obwohl eine Programmiersprache unabhängig von den benutzten Entwicklungswerkzeugen
gewisse Vor- und Nachteile hat,
wirken sich auch die benutzten Tools stark auf die Eignung einer Sprache für den Unterricht aus.
So wird Java oft vorgeworfen, dass es für den Anfangsunterricht schlecht geeignet sei, da man z.B. direkt
auf Konstrukte wie public static void main(String [] args)
eingehen müsse.
Durch die Wahl geeigneter Tools sind aber z.B. dieser und viele andere Einwände schlicht falsch.
Die folgenden Vorschläge gehen davon aus, dass man sich entscheidet den "Objects first"-Ansatz zu verfolgen und dabei die Programmiersprachen Java und Python unter Verwendung der Entwicklungswerkzeuge BlueJ/Greenfoot bzw. IDLE wählt. Warum dies ein lohnenswerter Ansatz sein kann, stellt die im Video kommentierte Präsentation dar:
Möglicher Ablauf
Es gibt unzählige Möglichkeiten, in welcher Reihenfolge man die Themen des Grundfachs behandeln kann. Vorausgesetzt man möchte den "Objects first"-Ansatz verfolgen und dazu die Materialien von inf-schule.de nutzen, ergeben sich aber auch einige Abhängigkeiten der Themen:
Konkret könnte eine Themenfolge also bspw. nach folgenden Ablaufplänen strukturiert sein:
Beispiel 1
"Sanfter" Einstieg in die Informatik über die Informationsdarstellung im Internet.
Jg. | Inhaltsbereich | Realisierung auf inf-schule | Zeitansatz |
---|---|---|---|
11 | Information und ihre Darstellung | Informationsdarstellung im Internet | 5 Wochen |
Binärdarstellung von Information | 5 Wochen | ||
Objektorientierte Programmierung (beinhaltet auch algorithmische Grundstrukturen) | Aufbau von Klassen | 5 Wochen | |
Objektorientierte Implementierung | 10 Wochen | ||
Beziehungen zwischen Objekten | 10 Wochen | ||
Aufbau und Funktionsweise eines Rechners | Alternativ: Bonsai Modellrechner oder JOHNNY-Modellrechner | 5 Wochen | |
12 | Datenbanksysteme | Alternativ: Datenbank für Geodaten oder Datenbank für ein soziales Netzwerk | 4 Wochen |
Entwurf von Datenbanken | 4 Wochen | ||
Algorithmisches Problemlösen | Imperative Programmierung mit Python. Entweder anhand ausgewählter Fallstudien (eher projektorientiert) oder der Beispiele unter Konzepte imperativer Programmierung (eher kleinere fachsystematisch geordnete Beispiele). | 10 Wochen | |
Algorithmen und ihre Eigenschaften (Algorithmusbegriff, Korrektheit, Effizienz) | 4 Wochen | ||
Grenzen der Berechenbarkeit | Aus Komplexität von Algorithmen und Problemen: Sortieren und Primfaktorzerlegung. Aus dem Bereich Berechenbarkeit den Abschnitt Halteproblem. | 8 Wochen | |
Kommunikation in Rechnernetzen | Rechnernetze | 10 Wochen | |
13 | Kommunikation in Rechnernetzen | Kryptologie | 8 Wochen |
Objektorientierte Programmierung / Softwareentwicklung | Grafische Benutzeroberflächen | 4 Wochen | |
Softwareprojekt | Software-Entwicklung oder Projekt im Bereich Rechnernetze / GUI | 8 Wochen |
Beispiel 2
Der direkte Einstieg mit der OOP in Java bietet den Vorteil, dass Vorerfahrungen aus dem Wahlfach der 9. und 10. Klasse sich weniger stark auswirken. Außerdem kommen die Schüler vor dem Umwahltermin mit der Programmierung, die erfahrungsgemäß mehr Schwierigkeiten bereitet als z.B. die Webseitengestaltung, in Kontakt.
Jg. | Inhaltsbereich | Realisierung auf inf-schule | Zeitansatz |
---|---|---|---|
11 | Objektorientierte Programmierung (beinhaltet auch algorithmische Grundstrukturen) | Aufbau von Klassen | 5 Wochen |
Objektorientierte Implementierung | 10 Wochen | ||
Beziehungen zwischen Objekten | 10 Wochen | ||
Aufbau und Funktionsweise eines Rechners | Alternativ: Bonsai Modellrechner oder JOHNNY-Modellrechner | 5 Wochen | |
Information und ihre Darstellung | Informationsdarstellung im Internet | 5 Wochen | |
Binärdarstellung von Information | 5 Wochen | ||
12 | Datenbanksysteme | Alternativ: Datenbank für Geodaten oder Datenbank für ein soziales Netzwerk | 4 Wochen |
Entwurf von Datenbanken | 4 Wochen | ||
Algorithmisches Problemlösen | Imperative Programmierung mit Python. Entweder anhand ausgewählter Fallstudien (eher projektorientiert) oder der Beispiele unter Konzepte imperativer Programmierung (eher kleinere fachsystematisch geordnete Beispiele). | 10 Wochen | |
Softwareprojekt | Projekt im Bereich "Dynamische Webseiten mit Python und Datenbanken" | 8 Wochen | |
Algorithmen und ihre Eigenschaften | Algorithmen und ihre Eigenschaften (Algorithmusbegriff, Korrektheit, Effizienz) | 4 Wochen | |
Grenzen der Berechenbarkeit | Aus Komplexität von Algorithmen und Problemen: Sortieren und Primfaktorzerlegung. Aus dem Bereich Berechenbarkeit den Abschnitt Halteproblem. | 8 Wochen | |
13 | Objektorientierte Programmierung / Softwareentwicklung | Grafische Benutzeroberflächen | 4 Wochen |
Kommunikation in Rechnernetzen | Rechnernetze mit kleinen Anwendungen zu GUIs | 10 Wochen | |
Kryptologie | 8 Wochen |