Wunderbar. Hat sich irgendjemand zwischendurch eine Frage überlegt?
Ich möchte Sie auffordern, tatsächlich zu üben. Treffen Sie sich mit Kommilitonen in
Lerngruppen, stellen Sie sich gegenseitig Programmieraufgaben, lösen Sie diese
Programmieraufgaben selber. Dies hier ist eine Sache. Gerade beim Programmieren,
da kommt immer mehr Neues dazu und da ist es relativ leicht abgehängt zu werden. Und das
einzige, was dagegen hilft, ist es tatsächlich zu tun. Ich hatte das schon hinter mir,
deswegen fällt mir das leicht. Am Anfang habe ich auch geübt. Okay, gut. So, nachdem wir so ein
bisschen gesehen haben, was das wohl ist Programmieren, möchte ich ein paar ganz allgemeine Dinge über
Programmieren sagen, die ganz gut sind zu wissen. Das erste ist eine ganz tiefe Beobachtung,
die nämlich sagt, dass Computer universelle Werkzeuge sind. Das sind Werkzeuge, deren
Fähigkeiten und deren Verhalten nicht etwa fest verdrahtet ist, fest eingebaut ist, sondern was
veränderlich ist, was durch Programme veränderlicher ist. Also im Gegensatz zu so etwas wie ein Spaten.
Ein Spaten ist durch seine Form, durch seine Materialität oder so etwas, ist letztlich festgelegt,
was man damit machen kann. Vor allen Dingen Löcher buddeln. Natürlich kann man auch irgendwie Leute
damit erschlagen oder so was, aber eigentlich ist er so, am besten ist er zum Löcher buddeln.
Und wir können nicht dem Spaten sagen, so und jetzt bitte sei mal ein Mikroskop.
Wenn ein Computer, der kann alleine gar nichts, aber man kann ihm je nachdem, was man ihm für ein
Programm ausfüllen, das sehr, sehr unterschiedliche Aufgaben geben und sehr, sehr verschiedene
Verhalten beibringen. Also das ist, wir nennen das ein universales Tool. Man kann nämlich den
Computer zu allem bringen, was nicht ganz stimmt, aber sozusagen zu sehr viele.
Die meisten Werkzeuge, die wir so kennen, mit ganz wenigen Ausnahmen, sind nicht universal.
Computers sind universal. Ribosome sind universelle Tools, die lesen nämlich sowas ähnliche,
die Programme, unseren genetischen Code und stellen dann beliebige oder fast beliebige Proteine her.
Wenn man das jetzt so hört, könnte man denken, dass Computer alles können. Aber es gibt gewisse
Sachen, die sich nicht berechnen lassen durch einen Computer. Ein Beispiel ist, es gibt kein
Computerprogramm, was sich ein anderes Computerprogramm anguckt und zuverlässig sagt,
ob das andere Computerprogramm anhalten wird oder in einen in einen unendlichen Schleife stürzt.
Das kann man nicht berechnen. Es gibt gewisse Sachen, die nicht berechenbar sind und es gibt
gewisse Sachen, die berechenbar sind. Und es sieht so aus, das kann man nicht beweisen,
aber das gibt es bisher noch keinen. Jeder glaubt, dass alle Programmiersprachen,
alle die wirklich programmieren, eine gewisse Sache sind, die gleichen Dinge berechnen können.
Es macht also die Sachen, die ich in Python berechnen kann, sind die gleichen, die ich in
Java berechnen kann, sind die gleichen, die ich in Maschinensprache berechnen kann. Es gibt einige
Sprachen, die nicht ganz Programmiersprachen sind, die also nicht so die üblichen Dinge berechnen
können, die nennen wir Datensprachen. Aber alle Programmiersprachen können dasselbe berechnen.
Das verstehen nicht alle Leute. Es gibt immer wieder Leute, die sagen, ja du musst Java machen,
weil es gibt gewisse Sachen, die kann man außerhalb von Java nicht machen. Das stimmt nicht.
Wir haben keine Ahnung, wovon sie reden, was durchaus, also im Prinzip können alle
Programmiersprachen dasselbe berechnen. Und man muss noch nicht, eine Programmiersprache muss
noch nicht sehr viel können, damit sie wie wir sagen Turing vollständig ist. Alan Turing hat
1950 im Wesentlichen diese Vermutung aufgestellt und mittlerweile, also im Moment, spricht alles
dafür. Auch sogenannte Quantencomputer, von denen Leute irgendwie sagen, die können viel mehr.
Stimmt nicht. Sie können genau das gleiche berechnen. Okay. Natürlich gibt es schilistische
Unterschiede. Python kann zwar das gleiche berechnen wie C, aber einige Leute finden C-Code
einfach hübscher. C ist auch typischerweise Faktor 2 bis 3 schneller als Python. Solche Unterschiede
gibt es schon, aber wenn man genug Zeit mitbringt, können alle Programmiersprachen dasselbe
berechnen. Wie kann man das verifizieren? Naja, man kann jedes C-Programm in Python simulieren und
jedes Python-Programm in C simulieren oder man kann Python-Programm in C übersetzen und umgekehrt.
Und immer wenn man Übersetzer hin und her hat, können die Programmiersprachen dasselbe berechnen.
Das ist für uns nicht sonderlich wichtig. Das ist nur wichtig insofern, dass wir wissen,
Presenters
Zugänglich über
Offener Zugang
Dauer
01:14:00 Min
Aufnahmedatum
2020-11-26
Hochgeladen am
2020-11-26 19:58:29
Sprache
de-DE