j_sulz

Ich habe mehr als die Hälfte des Informatikstudiums an der Oregon State University nach dem Abitur hinter mir. Es ist ein (leicht) zermürbender Spießrutenlauf von 15 Kursen, der dadurch noch zermürbender wird, dass ich Vollzeit arbeite und zwei Kurse pro Quartal belege (mit einer Ausnahme im letzten Sommer, als nur ein Kurs auf dem Plan stand, um mir etwas Zeit zum Heiraten zu geben 🙂 ). Bisher habe ich die folgenden Kurse belegt bzw. belege sie gerade (in keiner bestimmten Reihenfolge):

  • Einführung in die Informatik I
  • Einführung in die Informatik II
  • Diskrete Strukturen in der Informatik
  • Datenstrukturen
  • Webentwicklung
  • Einführung in Datenbanken
  • Computerarchitektur &Assembler
  • Analyse von Algorithmen
  • Betriebssysteme (derzeit in Arbeit)
  • Software Engineering I (derzeit in Arbeit)

Und habe folgende Kurse vor mir:

  • Software Engineering II
  • Introduction to Usability Engineering
  • Intro to Computer Networks
  • Mobile and Cloud Software Development
  • Software Projects (Program Capstone)

Wie in jedem Studiengang, der darauf ausgelegt ist, eine vielfältige Gruppe von Studenten zu unterrichten, die alle unterschiedliche Lernstile haben und aus unterschiedlichen Verhältnissen kommen, variiert die Qualität und Schwierigkeit der Kurse. Meiner Einschätzung nach waren die interessantesten Kurse auch die, die ich für die schwierigsten halte.

Die Einführung in die Informatik II war anscheinend dazu gedacht, Studenten auszusortieren, die keine starken Programmierer waren. Der Kurs war stark auf das Schreiben von Code ausgerichtet (C++ ist die wichtigste Sprache im OSU-Programm und wurde hier stark berücksichtigt), wobei der Schwerpunkt auf objektorientierten Entwurfsmustern lag.

Diskrete Strukturen in der Informatik wäre wahrscheinlich einfacher gewesen, wenn meine Algebra- und Beweisschreibmuskeln nicht so eingerostet wären. Wenn man sich aber erst einmal warmgelaufen hat, ist der Kurs eine faszinierende Übung im induktiven Denken und eine solide Einführung in die Mengen- und Graphentheorie. Dieser Kurs hat sich als besonders hilfreich erwiesen, da ich mich mit Disziplinen der künstlichen Intelligenz beschäftige, die sich stark auf die Arten von Symbolen stützen, die man in diesem Kurs kennenlernt.

Computerarchitektur & Assemblersprache ist eine Reise. Während man in C++ Konzepte wie Zeiger und Speicherzuweisung kennenlernt – Dinge, von denen die meisten Sprachen abstrahieren -, ist Assembler etwas ganz anderes. Hier lernen Sie, wie man Speicher auf der CPU verschiebt, und sehen, wie Schleifen, bedingte Anweisungen und Funktionen von Grund auf aufgebaut sind. Sie werden auch in den Zyklus “Holen, Dekodieren, Ausführen” eingeführt, den alle CISCs verwenden. Kurz gesagt, man lernt, was ein Computer ist und wie er all die schönen Dinge tut, die wir für selbstverständlich halten.

Analyse von Algorithmen war konzeptionell der schwierigste Kurs im Programm. Der Arbeitsaufwand war geringer als bei Einführung in die Informatik II, aber das letzte Mal, dass ich mich mit Grenzwerten und Ableitungen beschäftigt habe, war im College. An den Wochenenden habe ich wieder Khan Academy besucht, um meine Rechenkenntnisse aufzufrischen, aber sobald ich die Grundlagen beherrschte, konnte es losgehen. In diesem Kurs fühlte ich mich zum ersten Mal wie ein “Informatiker”, denn die Konzepte erfordern eine abstrakte Denkweise, die über das “bloße” Programmieren oder Schreiben von Software hinausgeht. Hier lernt man die Big-O-Notation und die Analyse von Algorithmen, dynamische Programmierung, Komplexitätstheorie, Graphentheorie und Algorithmen sowie die klassischen Such- und Sortieralgorithmen kennen. Die Qualität des Kurses selbst lässt etwas zu wünschen übrig, aber die Themen sind wirklich schön.

Die anderen Kurse sind nicht per se “schlecht”, aber sie haben entweder nicht die Strenge oder Tiefe der anderen Kurse oder die Organisation/Vorlesungen/Kursarbeiten sind so schlecht, dass sie ablenken. Davon abgesehen hat jeder Kurs seine eigenen interessanten Inhalte, und am wichtigsten ist, dass die fortgesetzte Problemlösung der Schlüssel zum Lernen ist, wie man ein “Entwickler”, “Ingenieur”, “Informatiker” (oder wie auch immer man jemanden nennen will, der Bits mit hoher Geschwindigkeit bewegt) ist.

Und jetzt bin ich auf der Zielgeraden! In den nächsten drei Quartalen werde ich 7 Kurse abschließen, wobei die meisten Kurse (Usability Engineering, Software Engineering, Cloud Computing) noch übrig sind – alles Dinge, die in meinem Fachgebiet liegen. Im August dieses Jahres werde ich stolzer Besitzer eines B.S. in C.S. von der Oregon State University sein und zum Georgia Tech’s Master’s in C.S. Programm übergehen. Die zeitliche Belastung durch dieses Programm war manchmal stressig, aber ich würde diese Erfahrung gegen nichts eintauschen wollen.

Schreibe einen Kommentar

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