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

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

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

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

PROGRAMMIEREN LERNEN

IN EINER STUNDE...

... ist

un-

möglich

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

PROGRAMMIEREN IST WIE LEGO BAUEN:

• es gibt Bauteile

• die man kombinieren muss

• so dass ein funktionierendes Modell heraus kommt

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

EIN INFCOM – ERLEBNIS:

Ziele für heute:

• praktischer Einblick ins Programmieren (inkl. Arbeitsweise)• einige grundlegende Konzepte & Begriffe• Inhalte Informatik als obligatorisches Fach

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

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);

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

DER POOLAnleitung, Erklärungen, Beispiele:

Einzelne Befehle, Details, Beispiele:

Aufgaben (Lösungen als Notizen):

https://processing.org/reference/

http://www.creativecoding.org/

DIE SCHWIMMFLÜGELI

Auf den folgenden Folien,

Für Superschnelle: Weitere Aufgabenstellung, Links und meine eigenen Processing-Materialien finden sich auf dem Wiki

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

AUFGABE 1 ASchreibe ein Programm, das eine japanische Flagge zeichnet

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

AUFGABE 1 BSchreibe ein Programm, das eine Schweizer Flagge zeichnet

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

AUFGABE 2 Schreibe ein Programm, das fortwährend die aktuellen Maus-Koordinaten in einem Textfeld anzeigt

Hinweis: Abwechselndund mit jeweils eigener Farbe (fill()) ein grosses Rechteck zeichnen und den Text schreiben

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

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

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

AUFGABE 3 BVerbessere 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 bisherigenLinien löschen

6. Selbst Erweiterungen ausdenken

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

AUFGABE X: EIN KLEINES SPIEL1. 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

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

EIN PAAR KONZEPTEUND EINE ERKLÄRUNG, WIESO KÜNFTIG AN DER KANTI PROGRAMMIEREN GELERNEN WIRD

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

KONZEPTE

PROGRAMMIEREN

• Variablen

• Operatoren

• Verzweigungen

• Schleifen

• Methoden

• Ereignisse

• Klassen

INFORMATIK ALLGEMEIN(ER)

• Daten vs. Information

• EVA (Eingabe Verarbeitung Ausgabe)

• Algorithmen

• Schichtenmodelle

• Iteration/Rekursion

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

VARIABLEN SIND WIE KISTEN

int meineZahl = 7;

7

NameTyp Wert

=meinZah

l

FormAnschrif

tInhalt

zuweise

n

einpacken

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

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

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

ALLE PRIMITIVE TYPENGanzzahlen

• byte: Eine sehr kleine Zahl (-127 bis +128)

• short: Eine kleine Zahl (-32768 bis +32767)

• int: Eine grosse Zahl (-2,147,483,648 bis +2,147,483,647)

• long: Eine enorm grosse Zahl (+/- 264)

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)

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

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

ConditionTrue

False

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

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

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

MethodenkopfName der Methode

Typ des Rückgabewerts

Typ und Name

der Übergabewerte

Anfangdes Codeblocks

Endedes Codeblocks

Methoden-körper

METHODEN

MethodenaufrufName der Methode

Übergabe-

Wert

drawShip( 100 );

void drawShip (int size) { // Code

// Code // …

}

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

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:

MethodenaufrufnoStroke( );

MethodenaufrufstrokeWeight( 5 );

Methodenaufrufint r = random(0,3);

Methodendefinitionvoid noStroke( ){}

Methodendefinitionvoid strokeWeight(int size){}

Methodendefinitionint random (int min, int max){}

void = leer, nichts

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

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 zusum addiert und speichert das Ergebnis in der Methodenvariable totalsum gibt den Wert von total zurück (return), der Wert passt zum Typ intin 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; }

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

PROGRAMMIEREN LERNEN...... dauert länger als eine Stunde

Lerngebiet: Algorithmen und Programmieren

Grobinhalte Fachliche 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

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

WARUM PROGRAMMIEREN LERNEN?

1. Die praktische Antwort

2. Die gesellschaftliche Sichtweise

3. Die SOL-Schiene

4. Die kognitive Argumentation

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

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...

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

PI BERECHNENfloat inCount = 0;

float count = 0;

void draw(){

count++;

float x = random(1);

float y = random(1);

if (sqrt(x*x+y*y)<01) {

inCount++;

}

float pi = inCount/count*4;

}