Willkommen bei diesem Einführungskurs in das Programmieren mit Processing, einer Variante der Programmiersprache Java, von Michael Kipp, Professor an der Technischen Hochschule Augsburg. Ein bedeutet, dass Videos enthalten sind. Informationen für Lehrende finden Sie unten. Für alle Übungsaufgaben in den Kapiteln 1-10 sind fünf Schwierigkeitsgrade (Level 1 bis 5) angegeben. Das Level steht immer neben dem Aufgabentitel, die Erklärung zu den Levels sieht man per Maus-Rollover.
Grundlagen der Programmierung
-
1 Erste Schritte
- 1.1 Zeichnen mit Anweisungen
- 1.2 Kontur, Füllung, Farben
- 1.3 Processing-Umgebung
-
2 Interaktion & Variablen
- 2.1 Interaktion
- 2.2 Zufall, Text, Farben II
- 2.3 Variablen: Basics
- 2.4 Variablen: Verarbeitung
- 2.5 Lokale Variablen und Skopus
- 2.6 Operatoren
- 2.7 Systemvariablen
-
3 If-Anweisung
- 3.1 Einfache If-Anweisung
- 3.2 Else-If
- 3.3 Boolesche Ausdrücke
- 3.4 Boolesche Variablen
- 3.5 Tasten unterscheiden
- 3.6 Kollisionserkennung
-
4 Objekte
- 4.1 Was ist ein Vektor?
- 4.2 Vektor als Beispiel-Objekt
- 4.3 Strings
- 4.4 Bilder
- 4.5 Bibliotheken: Audio [optional]
-
5 Schleifen
- 5.1 While-Schleife
- 5.2 For-Schleife
- 5.3 For-Schleifen im aktiven Modus
- 5.4 Verschachtelte Schleifen
-
6 Arrays
- 6.1 Einführung in Arrays
- 6.2 Arrays mit Schleifen
- 6.3 Eigenschaften in Arrays speichern
- 6.4 Objekte in Arrays speichern
- 6.5 Flexible Arrays
- 6.6 Zweidimensionale Arrays
-
7 Funktionen
- 7.1 Was ist eine Funktion?
- 7.2 Parameter
- 7.3 Rückgabewert
- 7.4 Funktionen und Arrays
- 7.5 Überladen und Signatur
- 7.6 Skopus von Variablen
-
E1 Algorithmen
- E1.1 Was ist ein Algorithmus?
- E2.2 Probleme lösen
- E3.3 Rekursion
-
8 Klassen
- 8.1 Klassen und Objekte
- 8.2 Methoden
- 8.3 Konstruktoren
- 8.4 Interaktion zwischen Objekten
- 8.5 Array von Objekten
- 8.6 Objekte und Zeiger
- 8.7 Umgang mit Klassen
-
9 Dateien und Text
- 9.1 String und char
- 9.2 Dateien erzeugen und einlesen
- 9.3 Daten und Objekte (CSV)
- 9.4 Dateiformat JSON
- 9.5 Dateiformat XML [optional]
-
P1 Pacman-Projekt
- P1.1 Planung
- P1.2 Meilenstein 1
- P1.3 Meilenstein 2
- P1.4 Meilenstein 3
-
10 Transformationen
- 10.1 Einführung: Was ist eine Translation?
- 10.2 Translation, Rotation, Skalierung
- 10.3 Objekt-Raum und Welt
- 10.4 Transformationen als Matrizen
- 10.5 Matrix speichern/wiederherstellen
- 10.6 Artikulierte Strukturen
-
11 3D-Grafik
- 11.1 3D-Formen
- 11.2 Kamera
- 11.3 Transformationen
- 11.4 Komplexe Formen
-
P2 Projekt: First-Person-Projekt
- P2.5 Vektoren und die Klasse PVector
- P2.6 Planung
- P2.7 Darstellung eines Bodens (Klasse Grid)
- P2.8 Steuerung 1: vorwärts/rückwärts/links/rechts (Klasse UserInput)
- P2.9 Steuerung 2: Drehung
- P2.10 Steuerung 3: Gleichzeitigen Tastendruck verarbeiten
-
12 Zustände und Listen
- 12.1 Zustandsmaschinen
- 12.2 Listen im Eigenbau
- 12.3 ArrayList und Generics
-
13 Vererbung
- 13.1 MyTunes: Eine Musik- und Filmverwaltung
- 13.2 Klassenhierarchie und Vererbung (2 Videos)
- 13.3 Vererbung allgemein
- 13.4 Weiteres Beispiel
-
14 Polymorphie
- 14.1 Punktnotation
- 14.2 Konstruktoren, this und this()
- 14.3 Klassenhierarchie, Typen und Casting
- 14.4 Methoden überschreiben
- 14.5 Abstrakte Klassen und Methoden
-
P3 Asteroids-Projekt
- P3.1 Klassen und Zustände
- P3.2 Game Over: Kollision mit Asteroiden
- P3.3 Die Gewinnbedingung
- P3.4 Speichern und Laden: Serialisierung von Objekten
- P3.5 Der Feind: Künstliche Intelligenz mit Zuständen
- 19.6 Asteroiden zerlegen
-
E2 Processing in JavaScript
- E2.1 Warum JavaScript?
- E2.2 Unterschiede in JavaScript
- E2.3 Erstes Programm
- E2.4 Anwendungsbeispiele
Informationen für Lehrende
Wenn Sie Dozent:in oder Lehrer:in sind, können Sie gern das Material für Ihre Lehre nutzen. Eine kurze Nachricht an mich wäre nett. Das Skript wird bereits an mehreren Hochschulen und Schulen eingesetzt.
Das Online-Skript wird in der Praxis an der TH Augsburg für die folgende Lehrveranstaltung genutzt: Grundlagen der Programmierung ist eine 4-stündige Vorlesung (2 x 2 Std.) mit einem 2-stündigen Praktikum (Übung). Die Veranstaltung läuft ein Semester und deckt Kapitel 1 bis 10 im Skript ab. Die Vorlesung wird von 60-80 Studierenden besucht, das Praktikum wird in Gruppen von je 15-20 Personen durchgeführt. Die Vorlesung besteht aus Frontalunterricht, Vorprogrammieren und Quizfragen (Peer Instruction). Im Praktikum wird eine Teilmenge der im jeweiligen Kapitel angegebenen Übungsaufgaben unter Betreuung durch den Dozenten und studentischer Tutor_innen bearbeitet.