Code Literacy – everyone should code
September 25, 2019
Was haben zukünftige Digitale Leader mit «Code Literacy» zu tun? Chanel Greco hat uns an diesem Samstag Nachmittag insofern die Augen geöffnet und das Mysterium Code näher gebracht. Kurzum ist ihr ein weiterer Schritt zum Brückenschlag zwischen Business und IT gelungen.
Da wir in unserem Alltag inzwischen von Code nur so umgeben sind, ist es von höchster Relevanz, sich mit diesem Thema auseinanderzusetzen. So sind wir mit Code alltäglich durch Smartphone, Backofen, Lift, Kaffeemaschine, Auto, TV, etc. konfrontiert.
Literacy bedeutet die Lese- und Schreibkompetenz und Code die Zusammenstellung von Zahlen, Buchstaben und Symbolen. Somit versteht man mit Code Literacy die Fähigkeit, Code zu verstehen, zu schreiben und zu beschrieben. Entsprechend geht es nicht nur darum programmieren zu können. Vielmehr geht es darum, ein Verständnis für Code und Menschen in deren Umfeld zu gewinnen. Passend dazu meinte Steve Jobs:
„Everybody […] should learn how to program a computer…because it teaches you how to think.“ – Steve Jobs
Computergestütztes Denken (Computational Thinking) ist ein Werkzeug, um komplexe Probleme strukturiert zu lösen. Es ist eine grundlegende Fähigkeit, die für jedermann – und zwar nicht nur für IT Personen – einen Vorteil in der Problemlösung darstellt.
Diese Methode wendet man bereits in folgenden, alltäglich komplexen Themen an. Diese Aufzählung ist nicht abschließend.
Die «Confibrot Challenge» ist ein gutes Mittel, um einen Algorithmus – an unserem Beispiel wie ein Roboter ein Confibrot streicht – zu schreiben. Als Roboter bzw. Roboterin hat sich unsere Dozentin Chanel Greco freundlicherweise zur Verfügung gestellt. Beim Ausprobieren dieses Algorithmus wurde uns jedoch schnell bewusst, dass die Roboterin die Methode «Brot schneiden» nicht kennt. Des Weiteren fiel uns auf, dass teilweise Vorschritte einer Methode («Butter streichen») vergessen wurde. So konnte die Roboterin die Butter nicht streichen, weil keine Aufforderung zum Öffnen des Butters bestimmt wurde. (Yeah, we found a bug ) Dieses Beispiel demonstriert eindrücklich, dass ein Computer genau DAS ausführt, WAS man dem Computer sagt und nicht mehr oder weniger.
Ein Computer versteht Maschinencodes, welcher im Binärsystem (0 und 1) geschrieben ist.
«01001011 01101111 01101101 01100010 01101111 01100101 01110101 01100110»
oder
«01000011 01101111 01101101 01100010 01101111 01100101 01110101 01100110»?
Übersetzungshilfe
Programmcodes mittels 0 und 1 zu schreiben ist sehr umständlich, fehleranfällig und nicht leserlich. Dahingehend hat Grace Hopper den ersten “Compiler” im Jahre 1952 entwickelt. Hoppers Erfindung wandelt einen Code der Programmiersprache in einen Binärcode um.
Die erste höhere Programmiersprache nennt sich Fortran und wurde im Jahre 1957 entwickelt. Mittlerweile gibt es weit mehr als 2’000 unterschiedliche Programmiersprachen. Trotz des Alters der Fortan-Sprache sind heutzutage Fortan Entwickler weiterhin gesucht. Beispielsweise benötigt die NASA diese, um die Voyager Sonden, welche in den 1970-er Jahren gestartet sind, zu unterhalten.
Die meisten heutigen Betriebssysteme haben ihren Ursprung in C. So programmiert man heute noch in dieser Sprache und C läuft noch immer auf unseren Betriebssystemen. Besonders geeignet ist diese Sprache für hardwarenahe Programmierungen.
Python hat entsprang einem Hobby-Projekt. Diese Sprache ist einfach zu erlernen und daher besonders bei Anfängern beliebt. Eine auffallende Stärke von Python ist das Ausführen von komplexen Berechnungen. Dies macht mitunter die Sprache für «machine learning» und «artificial intelligence» äußerst interessant.
Java ist Plattform-unabhängig und hat sich dadurch auf Millionen von Geräten und Computern etabliert. Am besten eignet sich die Sprache für grössere Webanwendungen. Android oder auch Elasticsearch des Webshops “Galaxus” sind bekannte Einsatzgebiete.
Eine der bekanntesten Sprachen vor allem für Webanwendungen ist JavaScript. Ein riesiger Vorteil derer ist, dass es kein Zusatzprogramm für die Ausführung benötigt. Das bedeutet, die Scripts können mit den gängigsten Internetbrowsern ausgeführt werden.
Ruby ist eine einfache Sprache, um mit dem Programmieren anzufangen. Dies ist umso mehr der Fall, da einfache Plattformen für Start-Ups existieren. Hinsichtlich der Geschwindigkeit zählt Ruby allerdings nicht zu den schnellsten Sprachen.
Bei einer solchen Vielfalt stellt sich natürlich die Frage, welches die beste Programmiersprache ist. Auf diese Frage existiert keine eindeutige Antwort. So eignen sich gewisse Sprachen für spezifische Anwendungsbereiche oder Umfelder mehr oder weniger gut. Folgend sind die bekanntesten Unterschiede der Programmiersprachen aufgeführt, um an dieser Stelle nur einige der Variationen aufzuzählen.
Was ist nun mit dem Programmieren? Um uns dies zu veranschaulichen, führte uns die Dozentin Chanel Greco an die Programmiersprache Ruby heran. Somit lernten wir zuerst die folgenden Grundlagen zu Ruby kennen.
Mittels den Operatoren < oder > können zwei Werte verglichen werden. Zudem wird mit == die Gleichheit geprüft. Das Ergebnis ist entweder “true” oder “false”.
Ein String ist eine Abfolge von Zeichen und wird mit doppeltem Anführungszeichen “ umschlossen.
Die Ausgabe vom String wird mit dem Befehl puts realisiert. Soll ein zusätzlicher Ruby Code innerhalb eines Strings hinzugefügt werden, kann dieser mit geschweiften Klammern ergänzt werden #{..}.
Den Variablen werden Werte zugewiesen und das bietet zudem die Möglichkeit Berechnungen anzustellen. Die Zuweisung der Werte erfolgt mittels dem Gleichheitszeichen =.
Um eine Eingabe zu tätigen, kann der Befehl gets.chomp verwendet werden.
Mit den Befehlen if (wenn), elseif (oder wenn) und oder else (oder) werden eine Anweisungen ausgeführt.
Damit nicht ein endlos langer Code entsteht, existiert die Möglichkeit einer Schlaufe. Innerhalb von loop und end wird der Code unendlich ausgeführt. Die unendliche Ausführung (loop) wird durch das brake Statement unterbrochen, falls dieses “true” wird.
Nun wird es Zeit das Gelernte umzusetzen und zu üben. Auf Master21Academy stellte die Dozentin Chanel Greco mit der Aufgabe “Nummern-Rate-Spiel” eine entsprechende Übungssequenz zur Verfügung. Zusätzlich könnte man das Programmieren auch mit der Aufgabe FizzBuzz trainieren. Häufig muss FizzBuzz bei Einstellungsgesprächen und Eignungstests gelöst werden. Einige Studentenkollegen/innen haben sich ebenfalls an diese Aufgabe gewagt. In einem Fall ist dies sogar erfolgreich umgesetzt.
Ob das alles Eigenentwicklung ist oder mitunter jemand nachgeholfen hat? Was ist bei den Entwicklern üblich? Dieser Link bietet allenfalls Aufschluss: FizzBuzz
Unser Newsletter liefert dir brandaktuelle News, Insights aus unseren Studiengängen, inspirierende Tech- & Business-Events und spannende Job- und Projektausschreibungen, die die digitale Welt bewegen.