︎ 

edulogo

UNTERRICHT


>SGM, 2026
creative coding - Java 
>SGM | Sonnja Genia Riedl


„Sage es mir, und ich vergesse es;
zeige es mir, und ich werde mich erinnern;
laß es mich tun, und ich behalte es.“ 
- Konfuzius -


Python & Jwinf/Blockly

Codierung
Binäres Zählen
learningcontent.cisco.com/games/binary/index.html

Zeichne ein 8x8-Feld als Schwarz-Weiss-Bild (deiner Wahl), und codiere es 
anschließend zeilenweise als Binärfolge, dann als Dezimalfolge.
Dekodiert wechselseitig eure Bilder. Kommt wieder dasselbe Bild heraus?



Java Programmierung 
(OOP - Objektorientiert)
vgl. auch Inf09 Wdh hier auf learnj

Variablen/Datentypen
Wiederholungen (geschachtelt, mit for...)
Bedingungen (if... else)
Bedingte Anweisungen
Klassen mit Attributen (Objektkarte, Klassenkarte)
Objekte erzeugen und verändern
Konstruktor(en) (mit Übergabe von Parametern)
Methoden
Vererbung
Überschreiben von Methoden


[Inf10]
Arrays
Objektbeziehungen
Polymorphismus


Bsp. in Java
via learnj.de [M. Pabst]

Leeres Fenster
︎ Datentypen
int Ganzzahl | 32 Bit, z.B. 12; -8
boolean Wahrheitswert | 1 Bit, true, false bzw. 1, 0
string Zeichenkette | Bit je nach Länge, z.B. “HalloWelt:3*a+5?”
float Gleitkommazahl | 32 Bit, z.B. 3,14
double Gleitkommazahl | 64 Bit
char Einzelzeichen | 16 Bit, z.B. ‚a‘; ‚z‘
long Ganzzahl | 64 Bit
short Ganzzahl | 16 Bit

︎Exkurs: de.wikipedia.org/wiki/Datentyp

︎ Variablen und Datentypen
Eine Variable ist ein benannter Speicherplatz.
Jede Variable hat einen eindeutigen Namen (den ‘Bezeichner’) und einen Datentyp.
Der Datentyp legt fest, welche Werte die Variable speichern kann.

Rechnen mit Variablen


Rätsel
︎ Welche Zahl wird am Programmende ausgegeben?
int zahl = 14;
int n = 8;
n = zahl + n;
zahl += 3;
zahl *= 2;
n += zahl;
println(n);


︎ Welche Zahlen werden am Programmende ausgegeben? Notiere die Variablen-Belegung in jeder Zeile als //Kommentartext.
int zahl = 12; ____// Die Variable zahl hat die Belegung 12
int n = 6; _______// Die Variable n hat die Belegung 6 
n = zahl + n; _____// Die Variable n hat jetzt die Belegung 18 
zahl = zahl + 3; ___// Die Variable zahl hat jetzt die Belegung 15 
zahl = zahl * 2; ___// Die Variable zahl hat jetzt die Belegung 30 
n = n + zahl; _____// Die Variable n hat jetzt die Belegung 48 
println(n); _______// Ausgabe: 48 
println(zahl); ____// Ausgabe: 30


for-Wiederholung (geschachtelt) | Einmaleinstabelle
     
    
Einmaleinstabelle und Verbesserung (optisch/Ausgabe) mit if ... else - Bedingungen    

︎
for(int e = 1; e <= 10; e++){
    for(int i = 1; i <= 10; i++){
        print(e * i + " ");
    }
    println();
}

bzw.

for(int e = 1; e <= 10; e++){
    for(int i = 1; i <= 10; i++){
        print(e * i + " ");
        if(e * i < 10){
            print(" ");
    }
}
println();
}

bzw.

  


Bedingungen in Java | Strandbad Eintritt
z.B. Strandbad Seehausen
unter 7 Jahren: kostenlos
7-17 Jahre: 2€
18-60 Jahre: 3€
über 60 Jahre: 2,50€


︎ a) Schreibe hierfür ein Programm in Java (mit Bedingungen)
b) Wie musst du dein Programm anpassen, wenn es Saisonkarten (40 € einmalig) gibt?
 

int alter = Input.readInt("Bitte geben Sie Ihr Alter in Jahren ein:");
if(alter < 7) {
println("Der Eintritt für Dich ist kostenlos!");
}
else if(alter < 18) {
println("Für das Alter 7-17 Jahre: Eintritt: 2,00 €");
}
else if(alter <= 60) {
println("Für das Alter 18-60 Jahre: Eintritt: 3,00 €");
}
else {
println("Ab dem Alter 60 Jahre: Eintritt: 2,50 €");
}


︎Objekte instanziieren (Konstruktor)
Methoden
aufrufen

Koordinatensystem

    

Objektreferenzen
und Objekte
    


Simulation
von rund durch eckig
    

Zweierpotenzen
als Bildschirmausgabe
   

Zweierpotenzen berechnen
   


︎Bedingungen (if... else...)
PIN-Eingabe

PIN-Eingabe mit 3 Versuchen


Strandbad Eintritt
Strandbad Seehausen
z.B.
unter 7 Jahren: kostenlos
7-17 Jahre: 2€
18-60 Jahre: 3€
über 60 Jahre: 2,50€
Wie muss das Programm angepasst werden, wenn abgefragt werden soll, ob jemand eine Saisonkarte hat?




Modulo 
Teilbarkeit prüfen mit dem Rest
 ︎ Ist die Zahl durch 17 teilbar?

︎ Ist die Zahl durch i teilbar? 
   



Vererbung
Wenn die Programmiersprache bisher nur Objekte für die Klassen Rechteck, Kreis und Polygon (Vieleck) zur Verfügung stellt:
Für das Zeichnen einer Raute oder eines Sterns wird die vorhandene Klasse Polygon erweitert.
Stern ist Unterklasse von Polygon.
Stern > Polygon > FilledShape > Shape > Actor
vgl.
learnj.de/10/doku.php?id=wiederholung:vererbung




︎Eigene Klassen
Fliegende Rechecke



︎Codierung
Dezimal - Binär - Hexadezimal
  
Codierung - Farben | RGB in Hex
mit vorhandenen Klassen (Klasse Kreis)
    

Farben - Opacity/ Alpha-value
    
 

Methoden
setCursor
    

MouseOver-Effekt | Vererbung
mit (eigenen) Klassen
   
getWidth() und getHeight() der Klasse World
    

Einmaleinstabelle
    

Verbesserung der Einmaleinstabelle (optisch/Ausgabe)
︎ Wie kann diese Tabelle weiter so verbessert werden, dass überall die richtigen Stellen (’Einer’, ‘Zehner’) übereinander stehen?
    

Bsp. vgl. hier auf learnj.de

Einmaleinstabelle final verbessert (optisch verschoben, mit if ... else):
   


Einmaleinstabelle mit Quadratzahlen in rot
    



Ornament
Geschachtelte for-Schleife (Zählschleife) mit dynamischem diagonalen Muster          
    
Farbverlauf
    

︎Array
    
Fibonacci-Folge
    

bzw.

Würfel
︎ mit eigenen Klassen und Konstruktoren
a) Klasse zum Speichern der Seitenzahl

b) Methode zum Würfeln

c) Datenkapselung


Würfel, der einen n-seitigen Würfel simuliert
   

Absolute und relative Häufigkeiten beim Würfeln 
(mit Array)
 n-mal würfeln (durch ‘Input’ als User-Eingabe). Die Maschine soll dabei mitzählen, wie oft jede der Zahlen 1 bis 6 vorgekommen ist. Am Ende soll sie die absoluten und relativen Häufigkeiten der sechs Zahlen ausgeben.
Was sind absolute und relative Häufigkeiten? Angenommen, wir würfeln 50-mal. Dabei erhältst Du 7-mal die Augenzahl 6. Dann nennen wir 7 die absolute Häufigkeit des Ereignisses „6 gewürfelt“ und 7/50 (also 14%) die relative Häufigkeit dieses Ereignisses.
Strategie mit Array: Wir speichern die Anzahl der Einsen, Zweien, Dreien, … Sechsen in einem int-Feld mit 6 Werten.

Sinuskurve mit Transparenz
    

Grafik - Animation
Flying Rectangle
mit Vererbung (neue Unterklasse erbt von der bestehenden Oberklasse)
und mit Zufallswerten (random)
    

vgl. auch (Schritt-für-Schritt-Erläuterung)
https://www.learnj.de/10/doku.php?id=wiederholung:flyingrectangle:start


Feuerwerk
mit Vererbung und Audio
    


Kryptographie
Symmetrische Verschlüsselung
︎ Cäsar-Verschlüsselung
vgl. cryptool.org/de/cto/caesar/ 


Vigenère-Verschlüsselung
vgl. Vigenere-Quadrat (2 Alphabete)
︎ Vergleiche diesen Java-Code mit dem der Cäsar-Verschlüsselung. 
Welchen Datentyp hat hier die Variable schluessel?
Welche zwei Zeilen sind in der for-Wiederholung dazugekommen?
(vgl. die Variablen schlüsselbuchstabe und verschiebung)


︎Exkurs:
Processing - Klassenbibliothek für Grafik vgl.
processing.org 
p5js.org/examples
p5js.org/reference/
openprocessing.org
creativeapplications.net/tools/framework/processing
bzw.
learnj.de/doku.php?id=api:documentation:processing:start | Zustandsorientiertes Zeichnen von grafischen Objekten



Kryptographie
Client-Server | Kommunikation
︎︎︎Hashfunktion learnj.de/11/doku.php?id=hash:start
︎︎︎emn178.github.io/online-tools/sha256.html | SHA256
︎︎︎Digitale Signatur
︎︎︎SSL-Handshake learnj.de/11/doku.php?id=signatur:ssl:start
︎︎︎Häufigkeitsanalyse und Schlüsselraum
     informatik.mygymer.ch/base/crypto/teaching/1-ancient/1-2-Kryptologie-Grundlagen.pdf
bzw. informatik.mygymer.ch/base/?page=crypto/index


Rechnernetze | Internet
︎︎︎IP-Adressen (IPv4, IPv6), Domain-Namen, URL | Grundwissen
Topologie
︎︎︎www | 1989 Sir Tim Berners Lee, CERN
Protokolle | HTTP
︎︎︎HTTP (request - response) | Developer-tools des Browsers nutzen
︎︎︎Schichtenmodell learnj.de/11/doku.php?id=kommunikation:schichtenmodell:start
    (Protokollstapel HTTP/TCP/IP/Ethernet und Datenpakete)
︎︎︎ vgl. TCP/IP Schichtenmodell: https://informatik.mygymer.ch/base/?page=network2/9-tcp/
︎︎︎Adressierung (URL/PORT/IP-Adresse/MAC-Adresse)
LAN, Router (Vermittlungsrechner) und Gateway, Switch und Broadcast, IP und Subnetz
DHCP-Server, Mailserver (POP3, SMTP), Webserver, Firewall, Ping/Pong, Port
Domain Name Server (DNS), Gateway, Netzmaske, IP-Adresse, MAC-Adresse
192.168.0.10 
Echo request (ping)
Echo reply (pong)
Netzwerke  und ︎︎︎Routing.



Maschinelles Lernen/KI
Arten (verstärkend, überwacht, unüberwacht/Mustererkennung)
︎︎︎Verstärkendes Lernen vgl. TUM/Tilman Michaeli  ︎ youtube.com | Äffchenspiel
︎︎︎Überwachtes Lernen, gelabelte Daten
vgl. ︎︎︎excavating.ai | The Politics of Images in Machine Learning Training Sets
vgl. ︎︎︎elisagiardinapapa.org | Leaking Subjects and Bounding Boxes: On Training AI, 2022
︎︎︎Künstliches Neuron (Perzeptron), Punktmengen
︎︎︎learnj.de/1213/doku.php?id=ki:neuron
NN: Eingabeschicht, Zwischenschicht, Ausgabeschicht

︎︎︎ 3blue1brown ︎ youtube-Kanal (Playlist von Grant Sanderson)
bzw. ︎︎︎Sammlung von 3blue1brown auf learnj.de
Neuronales Netz (Bsp: MNIST-Datensatz)
Kostenfunktion, Gradientenverfahren 
Backpropagation, Forwardpropagation
CNN
GAN
Bias, Deepfakes
︎Exkurs zu LLM, Fourier Transformation

K-Means-Algorithmus | Unüberwachtes ML
Clusterzentren | Datenpunkte im n-dimensionalen Raum
︎︎︎Bildkomprimierung durch Farbreduktion
︎︎︎k-Means Clustering on image Data using the MNIST-Dataset | medium-Artikel

Chancen und Risiken von KI
Artificial general intelligence (AGI) / existential risk from artificial intelligence
︎︎︎ en.wikipedia.org/wiki/Artificial_general_intelligence
︎︎︎ en.wikipedia.org/wiki/Existential_risk_from_artificial_intelligence



 
︎Datenstrukturen
Array
Liste, mit den speziellen Formen Schlange und Stapel
Baum
Graph


︎Rekursion 
rekursive Methodenaufrufe

Fakultät
0!=1
n!=1⋅2⋅3⋅…⋅(n−1)⋅n für n∈N∖{0},
z.B. 4!=1⋅2⋅3⋅4⋅=24

Fibonacci-Folge
Die Fibonacci-Folge (n. Leonardo Fibonacci, 1202) beschreibt Wachstumsvorgänge in der Natur.
Die Fibonacci-Zahlen können mit Hilfe des Pascalschen Dreiecks beschrieben werden.

Bsp.: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,

int vorletzte = 1;
int letzte = 0;
int zähler = 1;
while(zähler <= 10){
     int neue = letzte + vorletzte;
     print(neue + ", ");
vorletzte = letzte;
letzte = neue;
zähler++;
}

︎Exkurs:
Vergleich rekursive und iterative Programmierung (Fibonacci)
Anwendungsfall von Rekursion: Backtracking (Prinzip der Tiefensuche mit Lösungsbaum)

Fraktale
Diese Muster weisen einen hohen Grad an Selbstähnlichkeit auf.
vgl.
︎︎︎de.wikipedia.org/wiki/Fraktal
︎︎︎de.wikipedia.org/wiki/Kategorie:Fraktale_Geometrie
Fraktale in der Natur: Farn, Romanesco “Bäume, Blutgefäße, Flusssysteme und Küstenlinien” “sind fraktale Strukturen ohne strenge, aber mit statistischer Selbstähnlichkeit” (de.wikipedia.org/wiki/Fraktal)

Kochkurve
   

Fraktaler Baum
   


Sierpinski-Dreieck
Sierpinski-Teppich

︎Exkurs:
Raumfüllende Kurve
z.B. Sierpinski-Kurve, Hilbert-Kurve, Peano-Kurve, Gosper-Kurve
vgl. de.wikipedia.org/wiki/Raumf%C3%BCllende_Kurve


︎ Grundwissen Informatik
wichematik.education/app/topologien.html | Rechnernetze Topologien
https://wichematik.education/app/k%C3%BCnstliches-neuron.html | KI Perzeptron interaktiv
https://wichematik.education/app/knn.html | KI KNN Simulation T-Shirtgröße


Timer
wichematik.education/app/timer.html | Timer


random | Bibliothek Math
Zufallszahl aus dem Intervall [0; 100[
bzw. aus [0;32[ ...



threejs.org | 3D 
experiments.p5aholic.me | Web Graphic Experiments by Keita Yamada
experiments.p5aholic.me/day/025/


bzw. Kunst vgl. sgmu.de/unterricht/kunst-musik-und-sport/kunst
︎︎︎

 FILED: ARTS, CULTURE, ARTIFICIAL INTELLIGENCE, LIT.