Sicherlich kennen Sie den Begriff Algorithmus aus den Medien. Was aber bedeutet der Begriff Algorithmus?
Ein Algorithmus ist ein (Computer-)Verfahren zur Lösung von Problemkategorien (oder auch Problemklassen; „Klasse“ diesmal aber nicht im Sinne der Objektorientierung verstanden). Das Verfahren muss durch die Anwendung wohldefinierter Einzelschritte in endlicher Zeit ein Ergebnis liefern. Damit ein Computer einen Algorithmus ausführen kann muss dieser in einer Programmiersprache (= algorithmische Sprachen) formuliert werden.
Der Begriff “Algorithmus” geht zurück auf den orientalischen Universalgelehrten al-Chwarizmi, der im 9. Jhd. in Bagdad lebte und im “Haus der Weisheit” arbeite und dabei u.a. Berechnungsverfahren entwickelte (z.B. für die Berechnung der Höhe fälliger Steuern).
Erst der Algorithmus, dann das Programm
Bevor ein Programm (egal in welcher Programmiersprache) zur Lösung eines Problems geschrieben werden kann, benötigt man eine Lösungsidee! Wie der Name schon sagt, ist die Lösungsidee eine Idee über die Vorgehensweise zu Herstellung der Lösung. In aller Regel muss diese erste Idee mehrfach überdacht und dabei präzisiert werden, bis die Lösungsidee “ausgegoren” und damit mehr als eine “Idee” ist. Wenn wir mit der Idee soweit sind, dann liegt (unter Umständen) der Algorithmus – die präzise Handlungsanweisung – vor.
Wenn diese “Handlungsanweisung” für einen Computer geschrieben wird, z.B. in der Programmiersprache Java, dann liegt uns ein Programm zu Lösung des Problems vor, für das wir ursprünglich mit der “Lösungsidee” gestartet sind.
So geht’s los: das Problem “knacken”
Streng genommen kommt vor dem “Problem knacken” noch ein Schritt: das Problem muss verstanden werden! Schon hier hilft die Kommunikation mit dem Problemsteller und mit anderen engagierten Beteiligten, die bei der Problemlösung mitmachen möchten.
Wenn also das Problem richtig verstanden ist und der Algorithmus soweit “steht”, dass er mit einer Programmiersprache formuliert werden kann, kommt für uns Java ins Spiel: wie können die algorithmischen wohldefinierten Einzelschritte mit Java notiert werden, damit wir die Lösung erhalten, wenn das Programm 1. geschrieben, 2. übersetzt und 3. ausgeführt ist?
Dann beginnt der Spaß, im GAME of CODES
Das Programm müssen wir selbst schreiben – dafür gibt es heute noch kein zufriedenstellendes Werkzeug, das für uns das Programmschreiben übernimmt! Wann das soweit sein wird, kann ich nicht sagen. Schon meine Professoren hatten seinerzeit an der TU München in der Fakultät Informatik die Hoffnung, dass dies eines Tages soweit sein wird. Wir werden das wohl noch eine Weile selbst übernehmen müssen.
Wir schreiben unsere zum Programm kristallisierten Algorithmen mit Eclipse. Eclipse unterstütz uns dabei, um syntaktisch/grammatikalisch korrekte Programme zu notieren. Haben wir unser Programm geschrieben, dann kann Eclipse für uns das Übersetzen und Ausführen übernehmen (Eclipse fasst die beiden Schritte zusammen).
Im nächsten Blogpost skizzieren wir die elementaren Kontrollstrukturen, mit deren Hilfe wir die wohldefinierten Einzelschritte des Algorithmus mit der Programmiersparche Java formulieren werden. Dies wohldefinieren Einzelschritte werden dann mit den Daten und Datentypen arbeiten, die wir im Blogpost “Basisdatentypen – etwas Theorie muss sein” kennengelernt haben.
2 Gedanken zu „GAME of CODES: aus Algorithmus wird Code“