Grundlagen der Informatik – Historische Grundlagen

Letzte Woche veröffentlichte ich den ersten Beitrag zur Einführung in Python, mit einem so großen Resonanz hätte ich aber nicht gerechnet. Ich habe eine durchweg sehr positive Rückmeldung bekommen, dafür schonmal vielen Dank. Darüber hinaus erreichte mich aber eine sehr konstruktive Kritik vom Herrn Jan Ginhold über Twitter. Er war der Meinung, dass das von mir festgelegte Niveau für einen durchschnittlichen Juristen, der in der Juristerei zwar genial sein mag, von Technik, vor allem von den Grundlagen aber möglicherweise nicht so eine umfassende Ahnung hat, zu hoch wäre. Dies war der Anlass etwas Recherche zu betreiben und Kommilitonen auf meinen Blog und die Beiträge anzusprechen, nach der allgemeinen Verständlichkeit zu fragen. Im Zuge dessen fand ich heraus, dass nach meiner Einschätzung oft grundlegende Informationen und Kenntnisse nicht oder nicht ausreichend vorhanden sind, um komplexe Themen, wie Python bzw. das Programmieren generell ist, ansatzweise verstehen zu können.

Daher werde ich die Unterrichtseinheiten erstmal auf Eis legen und mein Fokus auf die Grundlagen des Programmierens und somit auf die Grundlagen der Informatik legen. Hierbei möchte ich vom absoluten Basis anfangen. Wie im ersten Semester in der BGB AT Vorlesung bei der Willenserklärung angefangen wird, so beginnen wir auch ganz an den Grundlagen der Informatik, nämlich bei den Historischen Grundlagen speziell von Algorithmen.

Historische Grundlagen

Das Wort Informatik setzt sich aus den Begriffen “Information” und “Automatik” zusammen und ist seit 1950 registriert. Erst jedoch ab 1960 gab es die ersten Studienrichtungen, die die entsprechende Bezeichnung trugen.  Obwohl in angelsächsischen Länder der Begriff “computer Sciences” verwendet wird, geht es “in der Informatik […] genauso wenig um Computer, wie in der Astronomie um Teleskope“(Edsger W. Dijkstra). Vielmehr umfasst Informatik allgemein die automatisierte Informationsverarbeitung der Natur, Technik und Gesellschaft.

Als Vorfahren aller mechanischen Geräte, die Rechenaufgaben zu übernehmen gewidmet sind, wird heute das Gerät Abakus aus der antiken China und Japan genannt, die nicht nur die Grundrechenarten beherrschte sondern auch das Ziehen von Quadrat- und Kubikwurzeln in der Lage waren. Darüber hinaus konnten auch Zahlen dargestellt werden.

http://russophil.de/Chiabacus.jpg

Die heutigen Computer arbeiten jedoch auf Basis von Algorithmen. Das Wort lässt sich auf den persischen Mathematiker Ibn Musa Al-Chwarizmi aus dem 9. Jahrhundert zurückführen. Bei einem Algorithmus handelt es sich um eine “Verarbeitungsvorschrift, die von einem mechanisch oder elektronisch arbeitenden Gerät bzw. auch von einem Menschen durchgeführt werden kann”. Hierbei muss die sprachliche Darstellung des Algorithmus so präzise sein, dass die Abfolge der Verarbeitungsschritte daraus eindeutig ableitbar ist, so dass bei Wahlmöglichkeiten genau festgelegt werden muss, wie die Auswahl einer Möglichkeit erfolgen soll.

Aus dem Grund diskutieren wir auch heute in der Juristerei darüber, wie sich autonomen Fahrzeuge in Gefahrensituationen entscheiden müssen, nachzulesen hier.

Bereits Vorschriften der Grundrechenarten, zum Beispiel die Klammerregelung, aber auch Kochrezepte oder Spielregeln könnten einen Algorithmus darstellen, sofern sie exakt formuliert sind und vom Ausführenden nicht anders interpretiert werden können. Dies ist in der Praxis nicht der Fall, da bereits bei Rezepten oft die Backzeit als Intervall festgelegt wird, wenn je nach Ofen  der Teig zwischen 20-25 Minuten gebacken werden muss. Letztendlich legt ein Algorithmus fest, wie Eingabedaten schrittweise in Ausgabedaten umgewandelt werden sollen. Die Zutaten werden vorgegeben, die Backanleitung(der Algorithmus) gibt uns den Ablauf vor, und wenn der Algorithmus exakt und genau geschrieben wurde, entsteht am Ende ein wunderbar riechender leckerer Kuchen. Oder ein autonom fahrendes Auto, das möglicherweise keine Unfälle baut indem es Unschuldige überfährt.

Ein etwas komplizierteres aber allgemein bekanntes Beispiel als erster Algorithmus stellt der von Euklid in ca 300 v. Chr. gefundene “Euklid´sche Algorithmus zur Bestimmung des größten gemeinsamen Teilers( ggT) zweier natürlicher Zahlen a und b dar und sieht wie folgt aus:

Eingabe: zwei ganze positive Zahlen a und b
Ausgabe: ggT von a und b
Algorithmus: Wiederhole folgende Schritte
r := Rest der ganzzahligen Division von a:b
a := b
b := r
bis r = 0 ist
Gib a aus, da sich nun in a der ggT befindet

Das Zeichen := bedeutet hierbei “ergibt sich aus” oder “weise zu”.

und weil ich diesen Algorithmus selber am Anfang auch nicht so wirklich verstanden habe, entdeckte ich beim Nachrecherchieren folgende wunderbar dargestellte Erklärung vom Prof. Dr. Christian Spannagel,  der Pädagogischen Hochschule Heidelberg:

 

Quelle:

Herold, Lutz, Wolhrab; Grundlagen der Informatik, 2. Auflage

 

MerkenMerken

MerkenMerken

MerkenMerken

MerkenMerken

MerkenMerken

MerkenMerkenMerkenMerkenMerkenMerkenMerkenMerkenMerkenMerken

MerkenMerken

MerkenMerken

MerkenMerken

MerkenMerkenMerkenMerkenMerkenMerken

MerkenMerken

MerkenMerken

MerkenMerkenMerkenMerkenMerkenMerken

MerkenMerken

MerkenMerken

MerkenMerken

MerkenMerken

MerkenMerken

MerkenMerken

Teile diesen Beitrag

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.