John Horton Conway – Game of Life – Mustergenerator

Am 11. April 2020 ist der britische Mathematiker John Horton Conway an den Folgen einer COVID-19-Erkrankung gestorben.

Bekannt wurde er besonders durch sein „Game of Life“, einer einfachen Lebenssimulation, basierend auf einem zweidimensionalen zellulären Automaten.

Die originale Regel besagt, das auf einem leeren Feld eine neue Zelle geboren wird, wenn sie genau drei Nachbarzellen hat. Eine lebende Zelle überlebt, wenn sie zwei oder drei Nachbarn hat (23/3).

Game of Life – sonic 1993

Ich hatte während meines Studiums auch ein „Game of Life“ programmiert. Die Aufgabe war eine Praxis-Arbeit für das Fach „Allgemeine Informatik“ bei Prof. Manfred Peschel.

Die Anwendung habe ich in Turbo-Pascal programmiert. Die grafische Benutzeroberfläche wie Menü, Dialoge, Maus- und Tastatursteuerung sind eine komplette Eigenentwicklung, teilweise aus Performance-Gründen als Inline-Assembler implementiert.

Game of Life – Datei und Optionen

Man kann Zellkulturen mit den Regeln oder nur die Lebens- und Sterbekurven speichern und laden. Als Optionen kann man die Spielfeldgröße (max 100×100) einstellen, das Verhalten an den Spielfeldrändern (offen oder gschlossen), die Belegung eines neuen Spielfeldes in Prozent und den Halt nach einer Anzahl von Generationen.

Game of Life – Leben und Sterben

Die Lebens- und Sterberegeln sind frei konfigurierbar und zwar nicht nur mit Ja oder Nein, sondern mit Wahrscheinlichkeiten zwischen 0 und 100 Prozent.

Die Conway-Regel besagt, daß auf einem leeren Feld mit genau drei Nachbarzellen immer eine neue Zelle geboren wird, also 100%ig. Zudem bleiben Zellen nur am Leben, wenn sie zwei oder drei Nachbarn haben, mit weniger als zwei oder mehr als drei Nachbarn sterben sie mit 100% Wahrscheinlichkeit.

Bei meinen Lebens- und Streberegeln kann man aber auch z.B. sagen, wenn ein leeres Feld gar keine Nachbarn hat, enstehen mit 5% Wahrscheinlichkeit neue Zellen. Zudem sterben Zellen mit einer Nachbarzelle nur mit 5% Wahrscheinlichkeit, haben also durchaus eine recht hohe Überlebensrate, bei Zelle mit 4 Nachbarzellen beträgt die Überlebens-Chance sogar 50%.

Was dabei rauskommt, habe ich mal in einem Video festgehalten:

John Horton Conway - Game of Life - Unscharfe Regeln
Game of Life - Unscharfe Regeln

Eine interessante Regelmodifikation ist die sogenannte Kopierwelt (1357/1357), die hier unten Video zu sehen ist.
Es entstehen immer wieder neue und interessante Muster, die als Vorlagen für Tischdecken oder Teppiche dienen könnten. :-)

John Horton Conway - Game of Life - Mustergenerator
Game of Life - Mustergenerator

(Jihm Hirtim Cimvey – Gena if Lufa)

Keine Kommentare »

Programmiersprachen für Kinder – 50 Jahre „Kids Coding“

Programmierung und Programmiersprachen

Als Informatiker habe ich natürlich auch mit Programmierung und Programmiersprachen zu tun, sie sind ein Handwerkszeug in meinem Beruf.

Angefangen mit dem Programmieren hatte ich mit BASIC auf einem Heimcomputer, später kam dann Assembler für verschiedene Maschinen (Z80, ESER, x86), C/C++ und Pascal dazu. Im Studium gab es dann noch eine Einführung in Prolog und COBOL. Seit einigen Jahren zähle ich auch noch JAVA, JavaScript und PHP zu meinen Programmiersprachen.

Seit 50 Jahren gibt es aber auch Programmiersprachen für Kinder.

Logo ist eine erziehungsorientierte funktionale Programmiersprache, die 1967 von Daniel G. Bobrow, Wally Feurzeig, Seymour Papert und Cynthia Solomon entworfen wurde. Die leicht zu erlernende Interpretersprache hatte in den 1980er Jahren, zur Zeit der Heimcomputer, ihre größte Verbreitung.

Für die damalige Zeit hatte Logo eine sehr hohe Leistungsfähigkeit dank der dynamischen Listen aus Lisp, frei definierbarer und rekursiv aufrufbarer Funktionen und einiger anderer Elemente. Trotzdem konnte die Programmiersprache sich nicht gegenüber anderen „Anfängerprogrammiersprachen“ wie z. B. BASIC durchsetzen, was auch daran lag, dass sie kindgerecht entwickelt und daher von vielen unterschätzt wurde.

Die bekannteste Besonderheit von Logo ist Turtle-Grafik, bei der sich eine oder mehrere virtuelle Schildkröten über den Bildschirm bewegen lassen, die bei Bedarf eine farbige Linie hinter sich herziehen. Auf diese Art kann dann eine Zeichnung erstellt werden. (aus Wikipedia)

Programmiersprachen für Kinder – 50 Jahre „Kids Coding“

Heute gibt es ein interaktives Google-Doodle, bei dem man selber einen Hasen „programmieren“ muß, damit er die leckeren Möhren einsammelt und auffuttert.

Es stehen die drei einfachen Programm-Befehle Gehen/Schritt (grün), Drehen – 90° nach rechts oder links (blau) und Schleifen (orange) zur Verfügung.

Programmiersprachen für Kinder (Google-Doodle)

Es gibt sechs Aufgaben zu Lösen. Bei Aufgabe 3 (oben im Screenshot) kommen bereits alle Elemente zum Einsatz. Die Lösungen der ersten drei Aufgaben sind trivial und dienen eher dazu, sich mit der Funktionsweise vertraut zu machen.

Die anderen drei Aufgaben sind schon etwas komplexer. Dazu muß man auch wissen, das Schleifen verschachtelt werden können. Das war mir Anfangs nicht so klar. Aber wenn man weiß, wie es geht, sind die kürzesten Lösungen gar nicht so schwer. :-)

Und natürlich habe ich meine Programmierversuche wieder in einem Doodle-Video festgehalten:

Viel Spaß!

7 Kommentare »

Was verbindet Ada Lovelace und Blaise Pascal?

Mathematiker(in)

Die britische Mathematikerin Ada Lovelace und der französische Mathematiker und Physiker Blaise Pascal sind beide bekannte Wissenschaftler und Personen der Zeitgeschichte. Aber sie haben eine weitere Gemeinsamkeit. Beide sind Namensgeber für Programmiersprachen.

Bei Ada Lovelace ist es der Vorname, welchem die Programmiersprache Ada ihren Namen verdankt. Die Programmiersprache Pascal hingegen trägt den Nachnamen des großen Franzosen.

Als Informatiker habe ich natürlich auch mit Programmierung und Programmiersprachen zu tun, sie sind ein Handwerkszeug in meinem Beruf.

Angefangen mit dem Programmieren hatte ich mit BASIC auf einem Heimcomputer, später kam dann Assembler für verschiedene Maschinen (Z80, ESER, x86), C/C++ und Pascal dazu. Im Studium gab es dann noch eine Einführung in Prolog und COBOL. Seit einigen Jahren zähle ich auch noch JAVA, JavaScript und PHP zu meinen Programmiersprachen. Ada stand allerdings nie auf meinem „Speisezettel“ und so kann ich auch nichts weiter zu Ada sagen.

Google Doodle für Ada Lovelace

Wieso bin ich nun ausgerechnet heute auf meine Programmiersprachen gekommen? Auf der Google-Startseite gibt es heute ein Doodle für Ada Lovelace. So sehen die Doodles in einigen Ländern aus:

Ich verwende für die Doodle-Screenshots meist die mobile Version. Zum einen finde ich meine Bilder in der Bildersuche schneller wieder, zum anderen führt ein Finger-Klick auf das Doodle nicht direkt zu den Suchergebnissen, sondern zu einer vergrößerten Darstellung des Doodle-Bildes und dem im Eingabefeld eingetragenen Suchtext. Außerdem nehme ich auch ab und zu mal die Google-Seiten aus anderen Ländern. Da kann ich dann zwar den Suchtext meist nicht lesen, aber es sieht interessant aus. :-)

Ada Lovelaces bei google.de (.at, .ch)

Ada Lovelaces - Google Doodle

Eigentlich heißt die Frau Ada Lovelace, bei den deutschsprachigen Google-Startseiten (de,at,ch) wird jedoch auf Ada Lovelaces verlinkt. Woher das kommt, ist klar. Der englische Beschreibungtext zum Doodle lautet:

„Ada Lovelace’s 197th Birthday“

Das 197th Birthday fällt weg und beim Namen nehmen wir einfach den Apostroph weg, dann wird es schon passen. So ähnlich wird das wohl bei der Eindeutschung gelaufen sein.

Es ist nicht die erste Panne bei der Doodle-Lokalisierung. Langsam könnte man den Eindruck gewinnen, es steckt Absicht dahinter. ;-)

Nachtrag: Seit ca. 11 Uhr verlinkt das Doodle auch in DACH korrekt auf Ada Lovelace ohne e am Ende.

Ada Lovelace bei google.ru

Doodle for Google - Rußland

Fehlanzeige mit Ada Lovelace bei google.ru. In Rußland ist heute das Doodle vom Gewinner des „Doodle for Google“-Wettbewerbs zu sehen. Sieht schön russisch aus mit Samowar, Matrjoschka, Bär mit Honigtopf auf Birkenrinde, finde ich.

Da geht heute allerdings Ада Лавлейс an Rußland vorbei. Schade, denn Google hätte vielleicht nicht unbedingt einen Tag mit einem weltweiten Doodle für das Gewinner-Doodle nehmen müssen.

Ada Lovelace bei google.co.il

Ada Lovelace - Google Doodle (Israel)

Aus aktuellem Anlaß habe ich diesmal das Doodle aus Israel dazu genommen. Hier ist es nun genau so, wie oben schon erwähnt. Ich kann zwar die hebräische Schrift nicht lesen, aber es sieht irgendwie interessant und exotisch aus, finde ich. :-)

Was zeigt das Ada Lovelace Doodle?

Ada Lovelaces - Google Doodle

Ganz links ist Ada Lovelace zu sehen, die wohl gerade ein sehr langes Programm schreibt. Das lange Programm-Listing verschlingt sich zum Google-Schriftzug.

Mich erinnert diese lange Papierrolle eher an Lochstreifen, die lange Zeit ein wichtiges Speichermedium für Computer und andere Geräte waren.
Zum Anfang meines Studiums wurde das „Betriebssystem“ für einige unsere U880/Z80-Laborrechner noch vom Lochstreifen eingelesen. Erst dann konnte man mit der Anwendungsprogrammierung direkt am Gerät beginnen.

Rechts neben Ada Lovelace sind Bilder aus der Geschichte der Rechentechnik zu sehen. Los geht es links mit einer Hollerithmaschine, einem mit Lochkarten funktionierenden Speicher und Auswertesystem. Rechts daneben ist eine Schalt-/Anzeigetafel des Röhrenrechners ENIAC abgebildet. Es folgt ein Heimcomputer mit Fernseher und ganz rechts ein Notebook und ein Pad-Computer.

Da ich diesmal kein eigenes Video erstellt habe, zeige ich hier die wie ich finde, sehr gelungene Animation von Martin Mißfeldt:

Das schreiben die anderen Doodle-Blogger:

Weitere Artikel mit Bezug zu diesem:
3 Kommentare »

Alan Turing zum 100. Geburtstag

Alan TuringMorgen doodelt es mal wieder
Ich liege ja im Soll, die letzten vier Artikel hatten nichts mit einem Google-Doodle zu tun, also darf ich wieder. :-)

Theoretisch und Theopraktisch

Außerdem kann ich als studierter Informatiker nicht einfach Alan Turing übergehen, mit dem ich schon in meiner ersten Vorlesung zur theoretischen Informatik konfrontiert wurde.

Der britischer Logiker, Mathematiker und Kryptoanalytiker Alan Turing gilt heute als einer der einflussreichsten Theoretiker der frühen Computerentwicklung und Informatik. Turing schuf einen großen Teil der theoretischen Grundlagen für die moderne Informations- und Computertechnologie. (Quelle: Wikipedia)

Auch Google kann nicht umhin, Alan Turing zu seinem 100. Geburtstag ein Doodle zu widmen. Hier die mobile Version:

Alan Turing Google-Doodle

Das richtige Doodle (morgen ab 0 Uhr) ist eine interaktive Turing-Maschine und gleichzeitig ein Rätsel für den Nutzer. Man muß die vorgegebenen Binärfolgen mit der Turingmaschine erzeugen. Jede Lösung steht für einen Buchstaben des Google-Logos und färbt diesen ein. Am Ende werden alle Lösungen noch einmal abgespielt.

Ich habe das hier mal als kurzes Video zusammengefaßt:

Probieren geht über studieren

Ich muß zugeben, daß ich die Lösungen teilweise durch probieren gefunden habe. Mein Informatik-Studium ist nun doch schon ein paar Jahre her und viele Dinge habe ich auch wieder vergessen. Das liegt auch daran, daß ich mich bei der Entwicklung von Datenbank-Applikationen nicht mit Aspekten der theoretischen Informatik beschäftigen muß.

Gut, wer jetzt die 5 Minuten bis zum Ende des Videos durchgehalten hat, dürfte auch die Endlosturingmaschine gesehen haben, die ich bisher in noch keinem Video der anderen Doodle-Blogger entdeckt habe.

Apropos Doodle-Blogger, wie immer gibt es hier die Übersicht der „Konkurrenz“ :->

Eine Alan Turing Top-100 gibt es auch ab morgen 0:30 Uhr. :-)

Weitere Google-Doodle:

8 Kommentare »