Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

PROGRAMMIEREN LERNEN IN EINER STUNDE...... ist un- möglich.

Ähnliche Präsentationen


Präsentation zum Thema: "PROGRAMMIEREN LERNEN IN EINER STUNDE...... ist un- möglich."—  Präsentation transkript:

1 PROGRAMMIEREN LERNEN IN EINER STUNDE ist un- möglich

2 EIN INFCOM – ERLEBNIS:  Ziele für heute: praktischer Einblick ins Programmieren (inkl. Arbeitsweise) einige grundlegende Konzepte & Begriffe Inhalte Informatik als obligatorisches Fach

3 PROGRAMMIEREN IST WIE LEGO BAUEN: es gibt Bauteile die man kombinieren muss so dass ein funktionierendes Modell heraus kommt und: man kann einfach mal anfangen mit basteln, kaputt geht nichts, ob‘s funktioniert sieht man dann schon

4 IDE (INTEGRATED DEVELOPMENT ENVIRONMENT)... hilft beim Programmieren Programm starten Programm schreiben Programm-Dateien organisieren Konsolenausgabe & Fehlermedlungen println(“hallo welt"); text(“hallo welt",10,50); rect(10,0,50,50); ellipse(50,50,50); ellipse(50,50,80,50); size(400,400); strokeWeight(8); stroke(0,0,255); line(0,50,400,300);

5 DER POOL Anleitung, Erklärungen, Beispiele: Einzelne Befehle, Details, Beispiele: Aufgaben (Lösungen als Notizen): https://processing.org/reference/ DIE SCHWIMMFLÜGELI Auf den folgenden Folien, Diese Folien und weitere Materialien für die Schnellen finden sich hier:

6 AUFGABE 1 A Schreibe ein Programm, das eine japanische Flagge zeichnet

7 AUFGABE 1 B Schreibe ein Programm, das eine Schweizer Flagge zeichnet

8 AUFGABE 2 Schreibe ein Programm, das fortwährend die aktuellen Maus-Koordinaten in einem Textfeld anzeigt Hinweis: Abwechselnd und mit jeweils eigener Farbe (fill()) ein grosses Rechteck zeichnen und den Text schreiben

9 AUFGABE 3 A Schreibe ein Programm, das fortwährend Linien zeichnet zwischen der Mitte der Leinwand und der Position der Maus

10 AUFGABE 3 B Verbessere das Programm aus 3a: 1.Hintergrund weiss 2.Linien 3 Pixel breit 3. Ältere Linien verblassen (teiltransparentes Rechteck über alles zeichnen) 4. Linienfarbe zufällig wählen (s. Kap. 5 oder Referenz) 5.Bei Mausklick alle bisherigen Linien löschen 6.Selbst Erweiterungen ausdenken

11 AUFGABE X: EIN KLEINES SPIEL 1. Ein bunter Kreis soll sich in jeder Runde ( =Aufruf von draw() ) um 5 Pixel nach rechts bewegen 2.Wenn der Ball am rechten Rand ankommt, soll er sich um 5px nach links bewegen 3.Auch am linken Rand soll er dann wieder umkehren 4.Erweiterung: Bewegungsrichtung zufällig wählen, an allen Rändern abprallen 5.Wenn man auf den Kreis klickt, bekommt man einen Punkt (Anzeigen per Textfeld) 6.Wenn man 3 Punkte gesammelt hat, wird der Kreis ein wenig schneller – Punkte wieder auf 0 7.Weitere Erweiterungen selbst ausdenken

12 EIN PAAR KONZEPTE UND DIE FRAGE, WARUM KÜNFTIG AN DER KANTI PROGRAMMIEREN GELERNEN WIRD

13 KONZEPTE PROGRAMMIEREN Variablen Operatoren Verzweigungen Schleifen Methoden Ereignisse Klassen INFORMATIK ALLGEMEIN(ER) Daten vs. Information EVA (Eingabe Verarbeitung Ausgabe) Algorithmen Schichtenmodelle Iteration/Rekursion

14 VARIABLEN SIND WIE KISTEN int meineZahl = 7; 7 Nam e Typ Wert = FormAnschriftInhalt zuweisen einpacke n

15 BEISPIELE UND FACHBEGRIFFE int zahl1; //deklarieren zahl1 = 7; //initialisieren print("zahl1 ist: " + zahl1); //ausgeben zahl1 = zahl1/2; //berechnen und zuweisen print("zahl1 ist jetzt: " + zahl1); //wieder ausgeben float zahl2 = 10.7; //deklarieren & initialisieren print("summe: " + (zahl1 + zahl2)); //ausgeben

16 ALLE PRIMITIVE TYPEN Ganzzahlen byte: Eine sehr kleine Zahl (-127 bis +128) short: Eine kleine Zahl ( bis ) int: Eine grosse Zahl (-2,147,483,648 bis +2,147,483,647) long: Eine enorm grosse Zahl (+/ ) Fliesskommazahlen float: Eine grosse Zahl mit viele Nachkommastellen double: Doppelt so gross oder präzise, selten nötig Andere Typen boolean: Wahrheitswert, also true oder false char: Ein Zeichen ‘a’ (in einfachen Anführungszeichen)

17 VERZWEIGUNGEN: IF if (Bedingung){ // Code wenn WAHR } Die Bedingung ist meist eine logische Rechnung Nur wenn dabei true herauskommt… … wird der Code in den geschweiften Klammern ausgeführt Beispiel: if (mouseX < width/2){ fill(255, 0, 0); } Action Condition True False

18 SCHLEIFEN: WHILE Genau wie ein if, nur dass das Ganze so lange wiederholt wird, bis die Bedingung false ergibt int x = 2; while (x < 10){ print(“la”); x++; } Wie oft wird “la” ausgegeben? Action(s) Condition True False

19 Methodenkopf Name der Methode Typ des Rückgabewerts Typ und Name der Übergabewerte Anfang des Codeblocks Ende des Codeblocks Methoden -körper METHODEN Methodenaufruf Name der Methode Übergabe- Wert drawShip( 100 ); void drawShip (int size) { // Code // … }

20 RÜCKGABEWERTE manche Methoden kann man aufrufen, ohne Werte übergeben zu müssen: manche Methoden muss man Werte übergeben, damit sie funktionieren: manche Methoden geben sogar Werte zurück: Methodenaufruf noStroke( ); Methodenaufruf strokeWeight( 5 ); Methodenaufruf int r = random(0,3); Methodendefinition void noStroke( ){} Methodendefinition void strokeWeight(int size){} Methodendefinition int random (int min, int max){} void = leer, nichts

21 BEISPIEL: METHODE MIT RÜCKGABEWERT in draw wird sum aufgerufen, drei Werte werden übergeben sum empfängt drei Werte vom erwarteten Typ und weist sie a, b und c zu sum addiert und speichert das Ergebnis in der Methodenvariable total sum gibt den Wert von total zurück ( return ), der Wert passt zum Typ int in draw wird der zurückgegebene Wert answer zugewiesen void draw() { int answer; answer = sum( 17, 42, 52); println(answer); noLoop(); } int sum(int a, int b, int c) { int total = a + b + c; return total; }

22 PROGRAMMIEREN LERNEN dauert länger als eine Stunde Lerngebiet: Algorithmen und Programmieren GrobinhalteFachliche Kompetenzen Die Schülerinnen und Schüler können Grundlagen des Programmierens  die wesentlichen Strukturelemente einer Programmiersprache einsetzen.  syntaktische und semantische Fehler in einem Programm erkennen und korrigieren.  modular programmieren.  Algorithmen in einer höheren Programmiersprache implementieren. Lehrplan obligatorisches Fach Informatik  Vieles davon haben wir heute schon angeschnitten

23 WARUM PROGRAMMIEREN LERNEN? 1.Die praktische Antwort Nützlich (?) für Studium und Beruf, entmystifiziert Anwendungsprogramme 2.Die gesellschaftliche Sichtweise Ermöglicht fundierte Meinungsbildung zu Digitalthemen (NSA, Vorratsdatenspeicherung, Netzfreiheit,...) 3.Das SOL-Argument Fördert eigenständige Arbeitsweise, Präzision im Ausdruck, Frustrationstoleranz, Selbstorganisation,... 4.Die kognitive Argumentation Fördert strukturierte Problemlösung, präzises Denken, Wechsel der Abstraktionsebene

24 DER LEHRPLAN SAGT DAZU: Im obligatorischen Fach Informatik kommt dem Programmieren in einer höheren Programmiersprache ein zentraler Stellenwert zu. Indem die Schülerinnen und Schüler den Computer als programmierbaren Automaten kennen lernen, erlangen sie praktische Fähigkeiten im Umgang mit algorithmischer Problemlösung und Projektorganisation und erfahren Modellierung und Simulation als dritte wissenschaftliche Methode neben Theorie und Experiment. Dadurch fördert der Informatikunterricht universelle Kompetenzen wie systematische Problemlösungsstrategien, strukturiertes Denken und präzises Arbeiten, lässt aber auch Raum für Kreativität und eröffnet neue Gestaltungsmöglichkeiten. Diese praktischen Erfahrungen bilden zudem die Basis für vertiefte Einblicke in die technischen Hintergründe der modernen Informationsgesellschaft...

25 PI BERECHNEN float inCount = 0; float count = 0; void draw() { count++; float x = random(1); float y = random(1); if (sqrt(x*x+y*y)<=1) { inCount++; } float pi = inCount/count*4; } inCount ++ sqrt(x 2 +y 2 )<=1 True False count = 0; inCount = 0; pi = inCount/count*4; mal True count++; x = rand(); y = rand(); pi ausgeben


Herunterladen ppt "PROGRAMMIEREN LERNEN IN EINER STUNDE...... ist un- möglich."

Ähnliche Präsentationen


Google-Anzeigen