Skip to main content
main-content

Über dieses Buch

Im Zeitalter der Digitalisierung lädt dieses Buch dazu ein, das grundlegende Handwerkszeug der Computer-Programmierung zu erlernen. Motivierend und auch für Neulinge immer verständlich führen die Autoren in die wichtigsten Aspekte der Programmiersprache Java und die Programmierumgebung Processing ein. Leser lernen anhand grafischer Beispiele, wie sich kleine Spiele, Animationen, Fraktale oder Simulationen ohne viel Aufwand herstellen lassen. Alle Beispiele können auf einem Laptop realisiert werden. Einzige Voraussetzung ist, dass sich Processing installieren und ausführen lässt.Ausgehend von einfachen Bausteinen werden im Verlauf des Buchs immer kompliziertere Probleme gelöst und auf diese Weise die wichtigen Konzepte der Programmierung behandelt. Dabei holen die Autoren ihre Leser stets mit den passenden Worten ab: Ihre detaillierten Beschreibungen und Anleitung greifen genau die Fragen auf, die bei der Lektüre und beim Ausführen der Programmierbeispiele auftauchen können. Mit diesem Buch eignen sich Leser nicht nur die Grundfertigkeiten des Programmierens spielend an, sondern erhalten nebenbei auch noch einen tiefgehenden Einblick in die Funktionsweise von Computern.Die Autoren haben Processing als Programmierumgebung gewählt, weil man damit besonders gut veranschaulichen kann, worauf es beim Programmieren ankommt. Außerdem lassen sich mit dem Programm nicht nur Bilder und Animationen, Musik und Sounds erzeugen, Processing erlaubt auch die Interaktion mit dem Computer. Die Grundlagen der Programmierung für absolute Anfänger in einem Buch: von Algorithmen und Arrays bis Turtle-Grafik und Variablen.

Inhaltsverzeichnis

Frontmatter

1. Einführung

Wie schon im Vorwort erwähnt, ist die Grundlage für dieses Buch die Programmiersprache Processing, die von Casey Reas und Ben Fry im Jahr 2001 am Massachusetts Institute of Technology, einer der führenden technischen Hochschulen der Welt, entwickelt wurde.

Oliver Deussen, Thomas Ningelgen

2. Zutaten

Ein Computer macht eigentlich nichts anderes, als zu rechnen und die berechneten Werte abzuspeichern oder gleich weiterzuverwenden. Dazu führt er Algorithmen aus, die entweder vom Benutzer angefordert werden – beispielsweise, wenn dieser mit der Maus ein Programmsymbol anklickt oder auch nur auf dem Bildschirm etwas verschiebt oder die das Betriebssystem (welches selbst ein sehr komplizierter Algorithmus ist) laufend anstößt, um den Rechner am Laufen zu halten.

Oliver Deussen, Thomas Ningelgen

3. Kontrollstrukturen

Da Programme die Tendenz haben, sich schnell in ziemlich lange Texte zu verwandeln, bei denen man selbst irgendwann nicht mehr versteht, was man eigentlich programmiert hat, ist es notwendig, sie zu strukturieren und in viele kleine, oft ineinander verschachtelte Blöcke zu unterteilen. Solche Blöcke können dann von anderen Blöcken aufgerufen werden (wenn sie als Funktionen oder Prozeduren definiert sind), man kann sie vielfach wiederholen und muss sie trotzdem nur einmal programmieren.

Oliver Deussen, Thomas Ningelgen

4. Mengen

Nachdem wir in den letzten beiden Kapiteln Kontrollstrukturen wie Funktionen und Schleifen kennengelernt haben, wollen wir diese Elemente jetzt zu einem ersten vollständigen Beispielprogramm vereinigen, das wir dann erweitern, um Arrays näher kennenzulernen. Das Programm soll eine Farbschlange auf dem Bildschirm erzeugen, die sich zufällig über die Zeichenfläche schlängelt.

Oliver Deussen, Thomas Ningelgen

5. Bilder

Bilder sind in Processing ein zentraler Datentyp, daher bietet die Umgebung auch eine ganze Menge an Hilfsfunktionen zum Laden, Speichern und Bearbeiten von Bildern an. Im Prinzip machen wir dabei nichts anderes, als wir im letzten Kapitel beim Setzen von Pixeln auf der Ausgabefläche des Processing-Fensters getan haben. Nur wird diesmal die set()-Prozedur auf ein Bild angewendet, das zuerst geladen wird und später wieder abgespeichert werden kann.

Oliver Deussen, Thomas Ningelgen

6. Prozeduren

In den vergangenen Kapiteln haben wir schon verschiedene Prozeduren verwendet, um beispielsweise geometrische Formen zu zeichnen: rect(), ellipse(), text(), um den Programmzustand zu ändern: noStroke() und fill() oder um Funktionswerte zu erzeugen: sin() und exp(). Nun wollen wir selbst Prozeduren programmieren, die wir dann im Programm benutzen können.

Oliver Deussen, Thomas Ningelgen

7. Interaktion

Richtige Freude machen Computerprogramme meist erst dann, wenn man dem Computer während des Programmablaufs etwas mitteilen kann, wenn man sozusagen mit ihm interagieren kann. Dazu muss das Programm erfahren, wann der Benutzer eine Taste der Tastatur gedrückt hat, oder aber wenn er eine Maustaste gedrückt oder losgelassen hat. Natürlich gibt es noch viele andere Formen der Interaktion, wir wollen uns aber erst einmal auf diese beiden beschränken.

Oliver Deussen, Thomas Ningelgen

8. Input/Output

Vielleicht haben Sie sich im letzten Kapitel gewundert, dass die Interaktion mit dem Computer über Maus und Tastatur möglich waren. Editierfelder, Labels und Buttons etwa, die Sie von anderen Programmiersprachen kennen, fehlen. Dies war eine bewusste Entscheidung der Processing-Entwickler. Sie wollten die Benutzereingabe intuitiv und einfach belassen und auf komplizierte Dialoge, wie wir sie von vielen Programmen kennen, verzichten. Processing-Sketche sollen einfach zu bedienen sein und schöne, ästhetische Dinge zeigen, es war nie angedacht, komplexe Systeme damit zu schreiben. Dennoch können wir mit Processing Dateien anlegen und einlesen und auf vielfältige Weise Ausgaben erzeugen.

Oliver Deussen, Thomas Ningelgen

9. Game of Life

Mit Game of Life bezeichnet man zweidimensionale zelluläre Automaten, die es trotz ihres mathematischen Konzepts zu einem gewissen Bekanntheitsgrad gebracht haben. Hilfreich war dabei sicher auch, dass zu Beginn der 80-er Jahre des letzten Jahrhunderts die ersten Commodore 64-Rechner dazu einluden, derartige „Lebensspiele“ selbst zu programmieren. Aber es macht auch heute noch Spaß, der komplexen Entwicklung des „Pixel-Lebens“ zuzuschauen.

Oliver Deussen, Thomas Ningelgen

10. Fraktale

Lewis Fry Richardson (1881–1953) war ein äußerst begabter Mathematiker (er berechnete die erste numerische Wettervorhersage) und engagierter Pazifist. Im Rahmen der Friedensforschung wollte er eigentlich herausfinden, ob die Länge der Grenze zwischen zwei Staaten einen Einfluss darauf hat, ob die Staaten Krieg miteinander führen. Dabei fiel ihm auf, dass die Grenzlängen in verschiedenen Quellen zum Teil erheblich voneinander abwichen.

Oliver Deussen, Thomas Ningelgen

11. Turtle-Grafik

Bisher haben wir Rechtecke mit linker oberer Ecke auf (400,400), der Breite 150 und der Höhe 100 mit einem einfachen Befehl gezeichnet: (Aufruf: rect(400,400,150,100)). Grundlage dieser Beschreibung ist das kartesische Koordinatensystem, in dem alle Positionen direkt über ihre x- und y-Positionen angegeben werden. Man könnte dasselbe Rechteck aber auch noch auf eine andere Weise beschreiben: über die sogenannte Turtle-Metapher (Turtle deutsch: Schildkröte).

Oliver Deussen, Thomas Ningelgen

12. Objektorientierung

Beim sogenannten „imperativen“ Programmierstil ist ein Programm eine Folge an Anweisungen, Sprüngen und Schleifen, die dem Computer mitteilen, was er tun soll. Um den Überblick zu behalten, gibt es Prozeduren und Funktionen. So haben wir bisher programmiert.

Oliver Deussen, Thomas Ningelgen

13. Physikalische Simulation

Der Wunsch des Menschen, etwas für ihn Neues nicht einfach nur nach dem Prinzip von Versuch und Irrtum durchzuführen, dürfte viele Jahre alt sein. Aber erst seit es Computer gibt, ist man in der Lage, auch das Verhalten komplexer Systeme so gut zu simulieren, dass man sich in vielen Fällen reales Ausprobieren ersparen kann. Das klappt allerdings nur, wenn ein Algorithmus gefunden werden kann, der den jeweiligen Vorgang zuverlässig beschreibt. In diesem Kapitel werden wir uns mit bestimmten physikalischen Ereignissen des Alltags beschäftigen, weil sie das Prinzip einer Simulation gut illustrieren.

Oliver Deussen, Thomas Ningelgen

14. Räumliche Formen

Nach dem Ausflug in die Simulation zurück zur Computergrafik. Bevor wir uns im weiteren Verlauf des Kapitels den dreidimensionalen Formen zuwenden und verschiedene Körper durch den Raum bewegen, wollen wir noch einige weitere zweidimensionale Objekte einführen, mit denen sich interessante Sketche machen lassen. Gut bekannt sollten Ihnen inzwischen Objekte wie rect, ellipse und quad sein. Im nächsten Sketch namens kandinsky geht es aber um eine allgemeinere Klasse von Objekten: Polygone.

Oliver Deussen, Thomas Ningelgen

15. Nebenläufige Programmierung

Wie viele Kerne (Cores) hat der Prozessor des Computers, an dem Sie gerade arbeiten? Ohne die genaue Antwort zu kennen, können wir davon ausgehen, dass es mehrere sind. In diesem Kapitel wollen wir erklären, was ein Kern ist und welche Vorteile es bringt, mehrere davon zu haben. Wenn Ihnen das schon alles längst bekannt ist, überlesen Sie doch einfach die nächsten Abschnitte.

Oliver Deussen, Thomas Ningelgen

16. Bildverarbeitung

In den Kapiteln 5 (Bilder) und 6 (Prozeduren) haben Sie schon an einfachen Beispielen gelernt, wie man mit Hilfe von Processing Bilder aus dem Internet oder von der eigenen Digitalkamera bearbeiten kann. In diesem Kapitel wollen wir das Thema noch einmal aufgreifen und einige weitere, etwas komplexere Bildverarbeitungsoperationen durchführen. Dazu werden wir auch die Fouriertransformation aus dem letzten Kapitel heranziehen und verwenden.

Oliver Deussen, Thomas Ningelgen

17. Bibliotheken

Bisher sind wir in allen Kapiteln des Buches mit der Grundfunktionalität von Processing ausgekommen und haben uns einfach das programmiert, was wir zum Lösen der Aufgaben benötigten. Es gibt aber ein ganzes Universum von vorgefertigten Bibliotheken für Java (nur teilweise verwendbar) und Processing, die man aus dem Internet herunterladen kann.

Oliver Deussen, Thomas Ningelgen

Backmatter

Weitere Informationen

Premium Partner

Neuer Inhalt

BranchenIndex Online

Die B2B-Firmensuche für Industrie und Wirtschaft: Kostenfrei in Firmenprofilen nach Lieferanten, Herstellern, Dienstleistern und Händlern recherchieren.

Whitepaper

- ANZEIGE -

Product Lifecycle Management im Konzernumfeld – Herausforderungen, Lösungsansätze und Handlungsempfehlungen

Für produzierende Unternehmen hat sich Product Lifecycle Management in den letzten Jahrzehnten in wachsendem Maße zu einem strategisch wichtigen Ansatz entwickelt. Forciert durch steigende Effektivitäts- und Effizienzanforderungen stellen viele Unternehmen ihre Product Lifecycle Management-Prozesse und -Informationssysteme auf den Prüfstand. Der vorliegende Beitrag beschreibt entlang eines etablierten Analyseframeworks Herausforderungen und Lösungsansätze im Product Lifecycle Management im Konzernumfeld.
Jetzt gratis downloaden!

Bildnachweise