Inhalt der Lehr- und Lernprozesse: Grundlagen der Programmentwicklung mit Java und Greenfoot Thema der Lehr- und Lernprozesse: Wie weit können sich Wombats vermehren? Thema der Lehr- und Lernprozesse Wie weit können sich Wombats vermehren? In der Unterrichtseinheit soll das Greenfoot-Szenario Wombats zu eine Räuber und Beute Beziehung erweitert werden. Wombats fressen Pflanzen, die natürlichen Feinde sind Dingos. Hat eine Spezies nicht genügend Nahrung, so stirbt sie. Räuber und Beute Beziehungen sind Inhalt im Biologieunterricht der Oberstufe. Der fachlich-inhaltliche Schwerpunkt SACHANALYSE − Grundlagen der Programmierung (Variablen, Verzweigung, Schleifen, Zuweisung, Methoden, ...) − OOP (Klassen, Objekte, Vererbung, Modellierung, …) − Grundlagen von Greenfoot Die Standards des Rahmenlehrplans Der Berliner Rahmenlehrplan sieht den Inhalt „Grundlagen der imperativen Programmierung“ vor. Hier soll Algorithmik im kleinen entwickelt werden und Dokumentationsunterstützende Techniken verwendet werden. Zu letzterem gehören Klassendiagramme, Struktogramme oder Sequenzdiagramme. Optional kann das Konzept der Objektorientierten Programmierung behandelt werden. Die von der Lehrkraft angestrebte, längerfristige Kompetenzentwicklung möglicher Unterrichtsverlauf Stunde Konkreter Inhalt Bemerkung 1 Einführungsstunde Greenfoot kennen lernen / Java Befehle erarbeiten (und den jeweiligen Scratch- Pendant) - Advance Organizer vorstellen - Erwartungen an Lernende - Vorstellen der Lernform 2 Greenfoot kennen lernen / Java-Befehle / Konzepte / Dokumentieren Beraten der Lernenden 3 Java-Befehle / Konzepte / Dokumentieren Beraten der Lernenden / Plenumsphase 4 Java-Befehle / Konzepte / Dokumentieren Beraten der Lernenden 5 Java-Befehle / Konzepte / Dokumentieren Beraten der Lernenden / Plenumsphase 6 Java-Befehle / Konzepte / Dokumentieren Beraten der Lernenden 7 Java-Befehle / Konzepte / Algorithmen / Dokumentieren Beraten der Lernenden 8 Java-Befehle / Konzepte / Algorithmen / Dokumentieren Beraten der Lernenden / Plenumsphase 9 Algorithmen / Dokumentieren Beraten der Lernenden / Plenumsphase 10 Algorithmen / Dokumentieren Beraten der Lernenden 11 Algorithmen / Dokumentieren Auswertung Prozessbezogene Kompetenzentwicklung der Lerngruppe: − − − Informatiksysteme verstehen (erläutern Eigenschaften von Algorithmen an einfachen Beispielen) Problemlösen (setzen Algorithmen in Programme um) Kommunizieren (dokumentieren ihre Arbeitsergebnisse) Die Begründung der Lehr- und Lernstruktur Während der gesamten Unterrichtseinheit sollen die Lernenden selbstständig lernen. Da die SuS im späteren Leben viel Neues Lernen müssen und sie da in der Regel keinen Lehrer haben, sollen sie schon in der Schule auf diese Situation vorbereitet werden. Dies ist ein langfristig angelegter Prozess, zu dem mit dieser Unterrichtseinheit beigetragen werden soll. Die SuS erhalten einen Auftrag, zu dessen Erfüllung sie sich selbst Wissen aneignen müssen. Hierzu gehören die Bedienung von Greenfoot und einige grundlegende Konzepte der Programmiersprache Java. Zudem sollen die SuS Kompetenzen im Bereich Informatiksysteme verstehen weiterentwickeln. Konkret wird ein Algorithmus zur Simulation von Räuber-Beute-Beziehungen entwickelt und implementiert. Da die SuS selbstständig arbeiten können, können sie auch ihren eigenen Lernweg steuern. Zur Orientierung erhalten die SuS einen Advance Organzier und Lernhilfen. Zu den Lernhilfen gehören Arbeitsblätter und Java-Funktionen. Die Arbeitsblätter unterstützen die Aneignung von Wissen und helfen bei der Strukturierung des Vorgehens. Die bereitgestellten Java-Funktionen haben die Aufgabe der didaktischen Reduktion, da die Lerngruppe bisher keine Erfahrung beim der Programmentwicklung mit Java besitzt. Die SuS können sich nun auf das Kombinieren der gegebenen Hilfsfunktionen mit den Kontrollstrukturen von Java konzentrieren. All die Feinheiten, die bei Java zu beachten sind, werden erst im nächsten Lernjahr thematisiert. Als Sozialform habe ich die Partnerarbeit gewählt. Die SuS können sich gegenseitig unterstützen und müssen miteinander kommunizieren und kooperieren. Da sich die SuS einen Partner auswählen können (und sollen), der jeweils auf einem ähnlichen Niveau (Tempo, kognitive Fähigkeiten) liegt, können die Teams ihr eigenes Lerntempo bestimmen und ihren eigenen Lernweg beschreiten. Die Aktivität der SuS ist bei Partnerarbeit im Vergleich zu Plenumsphasen hoch. Eine passives Konsumieren des Unterrichts ist so nicht möglich. Die Teams sollen auch lernen, sich realistische (Teil-)Ziele zu setzen. Ist ein gesetztes Ziel zu hoch, steigt die Frustration. Bei zu niedrigen Zielen, leidet die Motivation, da sich das Erreichen des Ziels nicht besonders lohnt. [7] Alle Gedanken und Vorhaben sollen zur Selbstkontrolle / Selbstreflektion in einem Lerntagebuch festgehalten werden. Da das Erreichen des selbständigen Arbeitens langwierig ist, sind bei Bedarf Plenumsphasen geplant. Diese haben den Zweck, dass Fragen von den SuS gestellt und beantwortet werden. Eine andere Funktion der Plenumsphasen ist die Sicherung von Erkenntnissen / Ergebnissen, sowie die Vertiefung und Veranschaulichung von Konzepten. Quellen [1] Duden Informatik SI, SII [2] Michael Kölling – Einführung in Java mit Greenfoot [3] Rahmenlehrplan Informatik Sek. I und Sek. II, Senatsverwaltung BWF, Berlin 2006 [4] Fachbrief Informatik Nr. 4 Herausgeber: Abteilung Schule - VI Ltr. - , veröffentlicht am: 25.09.2009, DokumentNr: 3754 [5] http://www.greenfoot-center.de/ [6] http://www.stangl-taller.at/ARBEITSBLAETTER/LERNTECHNIK/Lerntagebuch.shtml [7] Gerhard Roth – Bildung braucht Persönlichkeit Anhang Arbeitsmaterialien − Advanced Organizer − Lerntagebuch (onf) − Lernschritt Greenfoot kennen lernen − Lernschritt Die ersten Java-Befehle − Lernschritt Konzepte von Programmiersprachen − Lernschritt Algorithmen − Lernschritt Dokumentation − Hilfestellungen: verwendbare Java-Funktionen Wahlpflicht Informatik Grundlagen der Programmentwicklung mit Java und Greenfoot Datum: Advance Organizer Wie weit können sich Wombats vermehren? Dokumentation Greenfoot Java Grundlagen von Java Zuweisung, Verzweigung, Schleifen Konzepte Variable, Methode, Klasse, Objekt Simulation Umfang der Einheit: 11 Unterrichtsstunden Erste Unterrichtsstunde der Einheit: Donnerstag, 07. April 2011 Letzte Unterrichtsstunde der Einheit: Montag, 16. Mai 2011 Sozialform: Partnerarbeit VIEL SPAß Wahlpflicht Informatik Grundlagen der Programmentwicklung mit Java und Greenfoot Datum: Ihr habe jetzt einen Überblick, was Euch bis Mitte Mai erwartet. Um euren Fortschritt zu dokumentieren, sollt ihr ein Lerntagebuch verwenden. Das Führen von Lerntagebüchern ist eine bewährte Methode, die eigene Lernpraxis zu dokumentieren, zu erkunden, zu überprüfen und möglicherweise zu verändern. Hilfreich bei der Dokumentation sind folgende Fragen: − Was habe ich Neues gelernt, was ist mir aufgefallen? − in Bezug auf die Inhalte fachlicher und übergreifender Art (meine inhaltliche Kompetenz) − in Bezug auf mich als Person (meine personale und soziale Kompetenz) − Woran werde ich inhaltlich noch weiterarbeiten: wann? Wo? Wie? − Was möchte ich in den nächsten Tagen einmal anwenden? − Was will ich noch nachholen, was noch klären? Zudem sollt ihr Programmierfehler im Tagebuch festhalten: − Was für ein Fehler trat auf? − Warum trat der Fehler auf? − Wie habe ich den Fehler korrigiert? Es gibt zwei Möglichkeiten, wo ihr das Lerntagebuch führen könnt, entscheidet selbst: − analog in Papierform − digital in in einem Wiki / Moodle-Kurs Wahlpflicht Informatik Grundlagen der Programmentwicklung mit Java und Greenfoot Lernschritt: Greenfoot kennen lernen Aufträge: Ladet Euch erst einmal das GKS-Wombats-Szenario herunter: http://ralfanske.de/wpf/Java-Einfuehrung-mit-Greenfoot/gks-wombats.zip Startet nun Greenfoot und öffnet das entsprechende Szenario. Zur Hilfe könnt Ihr euch die Einführung anschauen (7. bis 13.): http://www.greenfoot.org/doc/tutorial/German/Wombat_Tutorial_de_v1.0.html#TOC4154 Setze mehrere Wombats auf das Feld. Was passiert beim drücken von „Run“? Füge zudem Blätter und Steine hinzu. Was stellst Du fest? Was bewirken die Buttons? Act: ________________________________________________ Run: ________________________________________________ Reset: ________________________________________________ Compile: ________________________________________________ Datum: Wahlpflicht Informatik Grundlagen der Programmentwicklung mit Java und Greenfoot Lernschritt: Die ersten Java-Befehle Schaue Dir in der Klasse Wombat den Quellcode an. (Doppelklick auf Wombat im Klassenfenster). Suche nun Java-Befehle, die den folgenden Scratch-Befehlen entsprechen könnten. Schreibe die Java-Befehle daneben. Datum: Wahlpflicht Informatik Struktogramm Grundlagen der Programmentwicklung mit Java und Greenfoot Scratch-Anweisung Datum: Java-Anweisung if (zahl<3){ // Anweisungen } if (zahl<3){ // Anweisungen } else { // Anweisungen } for (int i = 1; i<= 10; i++) { // Anweisungen } while (zahl < 3){ // Anweisungen } Zahl = 10; void bewegen(){ } Wahlpflicht Informatik Grundlagen der Programmentwicklung mit Java und Greenfoot Datum: Lernschritt: Konzepte von Programmiersprachen am Beispiel von Java Mache Dich mit den folgenden Konzepten vertraut: Variablen Eine Variable ist ein bestimmter Speicherplatz für beispielsweise eine Zahl. Jede hat eine Variable einen Typ und einen Namen. Beispiel: int zahl = 3; // Variable vom Datentyp Integer mit dem Wert 3 String verabschiedung = „Auf Wiedersehen“; Datentyp byte b; short i; int i; long i; float x; double x; boolean b; char c; String s; Beispiel b=123; i=-1234; i=-1234; i=-1234L; x=-123.45F; x=-123.45; x=1.0E-23; b=true; b=false; c='A'; s="Abc"; s=null; Methoden Wird eine Folge von Anweisungen mehrfach benötigt, so muss man diese nicht jedes mal aufschreiben, sondern erstellt daraus eine Methode. Wird jetzt die Methode aufgerufen, so springt der Computer beim Ausführen in die erste Programmzeile der Methode und arbeitet dort weiter. Ist die Methode abgearbeitet, so springt der Computer wieder in das ursprünglich angeführte Programm. Beispiel für eine Methode: void bewegen() { // Anweisungen für das // Bewegen des Wombats // dabei: Beachten der Ränder und anderer Hindernisse } Wahlpflicht Informatik Grundlagen der Programmentwicklung mit Java und Greenfoot Datum: Lernschritt: Konzepte von Programmiersprachen am Beispiel von Java Mache Dich mit den folgenden Konzepten vertraut: Klasse (Objektorientierte Programmierung) Eine Klasse ist eine Art Bauplan. Er enthält Programmcode. Im Wombats-Szenario gibt es die Klassen WombatWolrd, Wombat und Leaf. Eine Klasse hat immer das folgende Gerüst: public class Wombat { //Quellcode der Klasse //Hier werden Klassenvariablen und Methoden entworfen. } Objekte (Objektorientierte Programmierung) Ein Objekt ist die konkrete Ausprägung einer Klasse. Wenn also eine Klasse ein Bauplan (z.B. für ein Haus) ist, dann ist ein Objekt ein Haus. Es können von einer Klasse beliebig viele Objekte erstellt werden. Diese haben alle die gleichen Grundeigenschaften und Verhaltensweisen (Methoden), jedoch können die Eigenschaften verschiedene Ausprägungen haben. Beispiel Wombat zeigt in eine Richtung und hat eine gewisse Anzahl von Blättern gegessen. Wombat A zeigt beispielsweise Richtung Norden und hat 3 Blätter gegessen, Wombat B zeigt in Richtung Westen und hat 7 Blätter gegessen. Objekte werden in der Welt angezeigt (linke Seite), Klassen im Klassenfenster (rechte Spalte) Wahlpflicht Informatik Grundlagen der Programmentwicklung mit Java und Greenfoot Lernschritt: Algorithmen Überlegt Euch, was Ihr alles zum Lösen des Problems benötigt: − Voraussetzungen − Dingos, Wombats, Blätter, ... − Bedingungen − z.B. Dingos / Wombats können verhungern .. − Ziele − Simulation der Nahrungskette − auch reduziert möglich (Weglassen der Dingos oder der Blätter ist möglich) − ... Tipps: Macht Euch vorher einen Plan, wie ihr vorgehen wollt und schreibt diesen auf! Verwendet erst einmal Funktionen und implementiert später dessen Inhalt, z.B. public void vermehren() { // Implementierung später... } Diese Technik der Programmentwicklung nennt man übrigens Top-Down-Entwurf. Datum: Wahlpflicht Informatik Grundlagen der Programmentwicklung mit Java und Greenfoot Lernschritt: Dokumentation Dokumentiert Euer Programm: Techniken zur Dokumentation: Festhalten des Algorithmus' als Text oder in Stichpunkten Struktogramme Beispiel: Kommentare in Java // Zeilenkommentar mit Slash Slash /* Blockkommentar mit Slash Stern über mehrere Zeilen – Beenden des Kommentars mit Stern Slash */ Datum: Java-Funktionen Folgende Funktionen können in Eure Simulation benutzt werden. Dazu einfach den Quellcode in Euer Projekt kopieren und modifizieren. Blatt vermehren (auf eine zufällige Position): private Random randomizer = new Random(); World myWorld = getWorld(); int x = myWorld.getHeight(); int y = myWorld.getWidth(); Blatt b = new Blatt(); myWorld.addObject(b,Greenfoot.getRandomNumber(x), Greenfoot.getRandomNumber(y)); Wombat oder Dingo sterben lassen(keine Befehle dahinter ausführen!): public void sterben() { getWorld().removeObject(this); } Wombat vermehren: public void vermehren() { Wombat w = new Wombat(); getWorld().addObject(w, getX(), getY()); } Dingo vermehren: public void vermehren() { Dingo d = new Dingo(); getWorld().addObject(d, getX(), getY()); } Wombat essen: public void issWombat() { Actor wombat = getOneObjectAtOffset(0, 0, Wombat.class); if(wombat != null) { getWorld().removeObject(wombat); } } Musterimplementierung (hier nur die act-Methoden): Klasse Blatt: public void act() { // beschränkt auf maximal 100 Blätter insgesamt // zufällig auf das ganze Feld verteilt wachsen(); alter++; } Klasse Dingo: public void act() { if ((alter > MAX_ALTER)||(hunger>MAX_HUNGER)) { tot=true; } if(!tot) { if(wombatGefunden()) { issWombat(); hunger=0; } else { hunger++; dreheDichZufaellig(); if(kannGehen()) { bewegen(); } } vermehren(); alter++; } else { getWorld().removeObject(this); } } //sterben Klasse Wombat: public void act() { if ((alter > MAX_ALTER)||(hunger>MAX_HUNGER)) { tot=true; } if(!tot) { if(blattGefunden()) { issBlatt(); hunger=0; } else { hunger++; dreheDichZufaellig(); if(kannGehen()) { bewegen(); } } vermehren(); alter++; } else { getWorld().removeObject(this); //sterben } } Bildschirmfoto der Simulation