BIO

Empfohlen 

Denken wie ein Computer

Die Life sciences sind stark im Umbruch: Neue Technologien wie die automatisierte Gen-Sequenzierung erlauben es, immer grössere Datenmengen zu generieren. Die Anwendungsmöglichkeiten biologischer und medizinischer Forschung verschieben sich immer mehr zur Schnittstelle zwischen Mensch und Technik. Organismen werden immer mehr als programmierbare, lebende Maschinen gesehen, wobei das Programm die genetische Information ist. 

Heutzutage ist nicht mehr das Generieren von immensen Datenmengen das Problem, sondern v.a. deren Speicherung und Analyse. Ebenso werden die neuen Herausforderungen, mit denen sich unsere Generation auseinandersetzen wird, technisch geprägt sein – z.B. sind Künstliche Intelligenz und Synthetische Biologie interessante neue Forschungsgebiete, in die momentan viel investiert wird.
So ist es unvermeidlich, dass sich auch Biologie-Studierende ein Grundlagenwissen in Informatik und Datenanalyse aneignen müssen, um auf diese neuen Fragestellungen vorbereitet zu sein.

Mein erster Informatikkurs – Einführung in die Programmiersprache Python – startete dieses Semester. Der ganze Kurs ist mehr oder weniger autodidaktisch aufgebaut. Das ist zum einen sehr praktisch, da man sich alles Wissen im eigenen Tempo erarbeiten kann. Zum anderen kann das auch sehr mühsam sein, da man oft allein nicht mehr weiterkommt. Darum gibt es jede Woche auch Übungsstunden. An diesen Nachmittagen kann man an den Aufgaben arbeiten und bei Problemen die Assistenten um Hilfe bitten.
Ich muss zugeben, dass ich mich zuvor nie gross für Technik und Informatik interessiert habe und entsprechend kein Vorwissen hatte. Mit einer Menge Zeit – und Ausdauer – habe ich mir nun aber doch ein gewisses Grundlagenwissen in Computerprogrammierung angeeignet. Auf dem Weg dazu habe ich v.a. drei wichtige Dinge gelernt:

1.Es ist alles logisch

Programmieren ist so etwas wie mit Computern zu sprechen. Man gibt ihnen Anweisungen, was sie tun sollen, und sie tun es – hoffentlich – auch so, wie man es von ihnen will. Die grundlegende Formel jeder Anweisung ist «Wenn X eintritt, dann mach Y». Der Computer macht es möglich, dass wir von vielen mühsamen, repetitiven Aufgaben befreit sind – etwa davon, alle 8967 Elemente einer Liste nach Grösse in Gruppen einzuteilen oder die Pixelgrösse bestimmter Elemente in einem Bild zu bestimmen.
Damit das möglich ist, braucht man eine klare Sprache, die keine Unklarheiten oder Graubereiche enthält. Programmiersprachen sind daher sehr simpel aufgebaut. Jedes Wort hat genau da zu stehen, wo es steht. Ebenso «weiss» der Computer nur das, was man ihm im jeweiligen Programm an Information gibt – nicht mehr und nicht weniger. So kann man vermeiden, dass ungewollte Zusammenhänge entstehen. Eigentlich besteht die Sprache nur aus einer limitierten Anzahl Elemente, etwa den Wörtern «for», «while», «if», «and», «or», «else» und den Vergleichszeichen «>», «<», «=». Mit «for» etwa kann man dem Computer befehlen, mit jedem Element in einer bestimmten Liste eine Operation durchzuführen – etwa jede Zahl mit 3 zu multiplizieren. Dieses «for» ist notwendig, weil für den Computer eine Liste nie eine Liste als Ganzes, sondern immer nur die Ansammlung von bestimmten Elementen ist. Darum muss er jedes Element einzeln betrachten.
Die «Vokabeln» der Sprache muss man für jedes Problem anders kombinieren, um auf das gewünschte Resultat zu kommen. Das ist das Grundkonzept der Programmierung.

2.Durch Fehler lernt man am besten

Im Gegensatz zu anderen Fächern wie Anatomie, Anthropologie oder Virologie kann ich mich im Programmieren nicht in eine Vorlesung setzen und habe danach alles verstanden. Programmieren lernt man nicht dadurch, dass jemand einem alles erklärt, sondern allein durch Trial and Error, und zwar am besten selbst – deswegen ist unser Kurs auch grösstenteils autodidaktisch. Zwar ist das der mühsamste Weg, etwas zu lernen, aber nachher weiss man bestimmt, wie man etwas macht. Es ist ähnlich wie bei jeder anderen Sprache: Man kann zwar die Grammatik studieren und alle Regeln kennen, nach denen die Sprache aufgebaut ist, aber deswegen kann man sie noch lange nicht sprechen oder schreiben. Man muss sich intensiv damit befassen, um ein Gefühl dafür zu bekommen, welche Wörter man in einem bestimmten Fall benutzt, wie der Satzbau funktioniert, welche Möglichkeiten es gibt, etwas auszudrücken. Das lernt man am besten dadurch, indem man sich mit einer Sprache umgibt, sie oft hört und liest und versucht, sie selbst zu sprechen. Irgendwann muss man nicht mehr gross darüber nachdenken, warum man gerade dieses Wort und nicht ein anderes benutzt hat – man weiss einfach, dass das Wort an diese Stelle gehört.
Dieser Prozess ist aber leider nicht immer so einfach, wie man sich das gerne vorstellt. Gerade, weil dieser Kurs ja nicht der einzige ist, den man besucht, wünscht man sich manchmal, dass man doch «bitte einfach endlich die Lösung hat». Man hat sehr viele Möglichkeiten, sich zu verrennen, und wenn man einmal falsch abgebogen ist, kann es schwierig sein, herauszufinden, wo nochmal der richtige Weg ist. Darum ist es auch wichtig, erkennen zu lernen, wann man ein Problem besser liegen lässt und jemanden um Rat fragt. Meine Erfahrung dieses Semester hat gezeigt, dass es immer eine Lösung gibt - man muss sich aber darum bemühen, sie herauszufinden.

3.Probleme lösen ist ein kreativer Prozess

Vielfach wird behauptet, Mathematik und Naturwissenschaften verlangten nicht besonders «kreative» Fähigkeiten – schliesslich gäbe es ja nur eine einzige Lösung. Das stimmt, aber um auf diese eine Lösung zu kommen, muss man tatsächlich oft kreative Wege einschlagen. Und manchmal fällt einem die richte Lösung auch unter der Dusche oder beim Essen ein (alles schon passiert).
Die Sprache beim Programmieren ist zwar simpel, aber die Neukombination aller Elemente für die richtige Lösung erfordert einiges an Einfallsreichtum. Man muss lernen, die unterschiedlichen Elemente und Befehle in unterschiedlichen Kontexten anzuwenden. Dafür muss man die Aufgabe mit den Augen des Computers betrachten können. Oft sass ich grübelnd vor dem Laptop und dachte mir: «Ich weiss ja, was ich dir sagen will, aber ich weiss einfach nicht, wie!»
Kreativität ist auch überaus anstrengend – manchmal musste ich wirklich einige Tage überlegen, bis ich auf die Lösung kam. Eigentlich ist diese Art von Arbeit aber viel näher an der Biologie (und jeder anderen Wissenschaft) als die Vorlesungen, die wir in den «richtigen» biologischen Fächern haben: Auch in der Forschung sucht man nach Lösungen, die man nicht kennt – die noch niemand kennt. Zu denken, das würde man alles ohne Widerstand hinkriegen, wäre ziemlich unrealistisch.
Das Wichtigste, was ich in meinem Programmierkurs gelernt habe, ist also v.a., dass die Lösung eines Problems auch eine Freude am Spielen und Ausprobieren, aber auch eine gute Portion Teamarbeit erfordert. Denn zusammen kommt man oft auf Ideen, die man allein nie gehabt hätte.

In diesem ersten Kurs habe ich vielleicht eine Grundahnung davon erlangt, wie man mit einem Computer spricht, wie man informatische Probleme lösen kann. Ich beginne aber gerade erst zu sehen, wie viel ich darüber eigentlich noch nicht weiss und wie viel es noch zu wissen gäbe. Viel mehr habe ich meine Methoden verbessert, an ein scheinbar unlösbares Problem heranzugehen und es einfach einmal zu versuchen - mit der Einstellung, dass es immer eine Lösung gibt.

Kant unter dem Weihnachtsbaum
Von tatsächlichen und thematischen Inseln
 

Kommentare

Derzeit gibt es keine Kommentare. Schreibe den ersten Kommentar!
Bereits registriert? Hier einloggen
Gäste
Sonntag, 16. Juni 2019
Cookies erleichtern die Bereitstellung unserer Dienste. Mit der Nutzung unserer Dienste erklären Sie sich damit einverstanden, dass wir Cookies verwenden.
Weitere Informationen Ok Ablehnen