Universität – what sucks

  • Du musst Skripten kaufen. Du limitierst damit die Anzahl der Lehrveranstaltungen, die ein (finanziell beschränkter) Student besuchen kann. Zweitens bekommst du keine digitale Version, um das Skript durchsuchen zu können. Drittens; obwohl du dafür zahlen musst, bekommst du nur ein Exemplar in lokaler Sprache und meist enthält es inhaltliche wie auch Rechtschreibfehler.
  • Skripten sind nicht öffentlich und frei zugänglich. Scheint als hätte die Professoren die Informationsrevolution verpasst. Zumindest zeigen sie damit symbolisch, dass die Qualität der Skripten ungenügend für eine Veröffentlichung ist. Und die Menge an Dokumenten, Skripten und Lernmaterialien ist geringer als erwartet (vermutlich werden sie nur nicht verteilt).
  • Um möglichst viel Freiheit zu erlangen, sind Prüfungstermine frei wählbar. Nur wird diese Freiheit dadurch zerstört, dass man bei Hausübungen an genaue Zeitspannen gebunden ist. Der Kritikpunkt: Hausübungen sollten alle am Anfang des Semesters ausgegeben werden und nur die Abgaben sollen an Deadlines gebunden werden.
  • Professoren schaffen es nicht die einheitliche & konsistente Oberfläche der Universität zu verwenden. Der Verwaltungsaufwand steigt damit für den Studenten (wöchentliches Überprüfen der Prüfungstermine und Hausübungsdeadlines auf externen Webseiten). Vermutlich ist es jedoch besser als auf den meisten Universitäten.
  • Die Kurse sind teilweise sehr gemixt. Zum Beispiel “Grundlagen der Informatik” spricht viele Aspekte der Informatik an; wie der Titel verrät. Ist auch okay, aber leider gibt es Überschneidungen mit anderen Fächern. Das nervt in dem Moment, wenn man Themen mehrmals hört, aber niemand in die Tiefe des Thema eintaucht. Man vermisst die Herausforderung. “Einführung ist das wissenschaftliche Arbeiten” ist mehr “mache irgendwie in möglichst wenig Zeit” statt den wissenschaftlichen Aspekt zu beleuchten (Notiz: die Vorlesungen waren aber gut). Computermathematik geht leider auch nicht in die Tiefe. Es sagt eher “rtfm” statt auch die Theorie hervorzuheben.
  • Softwareentwicklung und das Schreiben guter Software geht wesentlich unter. Paradigmen und Lösungsansätze werden nicht aufgezeigt und jeder Student ist angeregt Probleme irgendwie zu lösen. Allerdings möchte ich erwähnen, dass es zu diesen Themen vielleicht später entsprechende Veranstaltungen gibt; schließlich bringt das 1. Semester erstmal alle Studenten auf ein einheitliches Niveau.
  • Die Unterschiede zwischen Tutoren sucken.
  • Eine offene Frage bleibt: Hat ein Tutor die Note deiner Studienrichtung anzupassen? (ich bin stark auf der Seite “Nein” und spreche damit gegen die Masse)
  • Die meisten Dinge (die du zuvor noch nicht gekannt hast), werden auf einem sehr hohen Niveau erklärt. Ich habe überhaupt kein Problem mit vor-universitären Voraussetzungen, aber einfache Dinge werden oft möglichst komplex dargestellt, sodass “Fremde” auf diesem Gebiet gar keine Chance haben, Zugang zu diesem Thema zu finden.
  • Fehler in Angaben sind gängig und nerven.
  • Für die Hälfte der Lehrveranstaltungen bekommst du bessere Noten, wenn du alte Tests auswendig lernst als wenn du versuchst, die Dinge wirklich umsetzbar zu verstehen.
  • Für manche Dinge ist man komplett auf sich alleine gestellt. Die Ausarbeitung des Thema für “Einführung in das wissenschaftliche Arbeiten” als Beispiel. Auf der anderen Seite muss man für kleine, dumme Aufgaben gemeinsam arbeiten (C Programmierung, Probleme aus den Themen RegEx, Datenbanken oder Logik gemeinsam lösen). Die Differenzen halte ich für sehr extrem.
  • Teil einer Prüfung: Nennen Sie alle Lehrveranstaltungen aus dem Themenbereich Mathematik, die sie im Zuge ihres Studiums besuchen werden. Der wissensrelevante bzw. praxisbezogene Teil dieser Aufgabe ist mir bisher noch nicht klar.
  • Teil einer Prüfung: Die Frage “May you use images under Public Domain at your homepage?” ist mehrdeutig und kann nicht beantwortet werden (Ö hat kein Public Domain, Public Domain lässt sich nicht als gemeinfrei übersetzen).

Die Vorteile?

  • Da sind einige wirklich coole Typen draußen
  • Die Infrastruktur auf der Universität ist ziemlich gut
  • Newsgroup als Kommunikationswerkzeug *rockt*
  • Du setzt dich wirklich mit vielen technischen Dingen und Werkzeugen auseinander; was *rockt* (im Vergleich zur Schule 🙂 )
Universität – what sucks

The Right Tool: Python vs. PHP

This article is one year old. Accidently I did not post it in the past. So here we go with an updated version.

The Right Tool offers a nice survey, asking to rank the programming languages you select, in a suitable order related to a statement (2705 9383 programmers did it yet). Even though, I think I have experience with several languages, I was interested in comparing my “two Big Ones” (PHP and Python). And these are the results of the survey:

PHP vs Python - Programming Languages

PHP vs. Python [outdated]

Note: For PHP “ranked highly” number 3 stands for “The thought that I may still be using this language in twenty years time fills me with dread” and “ranked low” number 3 voted to number 1. For Python “ranked highly” number 2 states “This language would be good for teaching children to write software” and “ranked low” number 3 says “This language has an annoying syntax” today… oder checkout PHP and python

The PHP community is not that self esteemed like the Python community. Even though many programmers rank Python as an “unusual bad language for beginners” language, Python is listed as one of the “best languages for beginners”. On the other hand, we have what I love about python and is listed as number 1 number 5 in comparison to other languages:

This programming language has an annoying syntax
Note: Cobol is to the left and Scheme to the right today.

The Right Tool: Python vs. PHP

CreateCamp Klagenfurt 2011

CreateCamp Klagenfurt 2011

2 von 3 Tagen am CreateCamp Klagenfurt 2011 war ich mit von der Partie und habe mich temporär dem Projekt datenlandkarten.at angeschlossen. Es geht grundsätzlich um die Eingabe von statistischen Daten in einem geographischen Kontext, die dann auf einer Landkarte visualisiert werden. zB Durch die Eingabe numerischer Werte kann so sehr benutzerfreundlich die Kriminalstatistik der Bundesländer visuell dargelegt werden.

Das Projekt Dieses Projekt wurde bereits von einem Münchner in eingeschränkter Form realisiert, der uns auch den Quelltext zur Verfügung stellte. Nach dem ersten Öffnen war mir klar, dass mit diesem Spaghetti-Code kein modularer Quelltext entstehen kann. So entschied ich mich den ganzen Weg von den Eingabefeldern, zur Überprüfung der Usereingaben, zum Parsen und Rendern der SVG-Graphik bis zum Downloadangebot in zwei Graphikformaten selbstständig zu schreiben. Ingesamt bin ich in etwa 20 Gesamtzeit sehr weit gekommen. Die Software steht grundsätzlich vollständig. Unsauberkeiten gibt es bei der Usereingabenüberprüfung (zu streng angesetzt), das Testen des Renderns wurde noch nicht ausgeschöpft und kleine Features sind noch zusätzlich gewünscht. Des Weiteren sind jetzt noch unerwartet provider-spezifische Anpassungen notwendig (imagemagick).

Was habe ich erreicht? Mit dem Quelltext selbst bin ich recht zufrieden. Die Softwarequalität hätte ich noch ein bisschen steigern können, indem ich vorab eine bessere Modellierung der Anforderungen durchführe. Aber es liegt in der Natur jedes Projektes (zumindest meiner bisherigen Projekte), dass Anforderungen erst im Laufe des Entwicklungsprozesses klar werden und damit iterative Prozesse besser in der Softwareentwicklung greifen.

Was habe ich gemacht? Ohloh sagt mir, dass die Projektdateien auf github zu 73% aus PHP, 19% HTML, 5% Javascript und 3% CSS bestehen. Gefühlt würde ich beziffern, dass 85% Zeitaufwand in PHP, 13% in jQuery geflossen sind und der Rest durch SVG, HTML und CSS dargestellt wird. Leider kann ich es nicht verneinen, dass HTML weiterhin einen sehr langsamen Fortschritt hat und ich wenig bis gar keine HTML5 Features nutzen konnte. CSS war kein wirkliches Aufgabengebiet meiner Arbeit, aber PHP macht wirklich schreckliche Dinge. Es arbeitet nicht so schlimm wie C, aber als unerfahrener Programmierer sollte man nicht Webentwicklung betreiben. So erfolgt die Callback-Übergabe bei preg_replace_callback mittels eines Strings. Dieser stellt jedoch auch keinen normalen Call dar und ruft damit nicht die Funktion des geparsten Strings auf, sondern nur die Funktion auf erster Ebene (keine first-class-citizens). So musste ich dieses Problem über (evil) globals lösen. OOP wollte ich (nur dafür) nicht einführen. Ebenso machten mir einige Eigenheiten von PHP Sorgen. empty(“0”) evaluiert gegen true, ein Backslash muss mit vier Backslashes gematcht werden (preg_replace(‘/\\([^\\]*)/’, ‘$1’, $subject)) und die Parameterreihenfolge von Funktionen ist generell inkonsistent.

Was habe mitgenommen? Ein bisschen Programmiererfahrung. Dass man auf den IE6 keine Rücksicht mehr nimmt. Dass SVG einige Anwendungsfälle hat. Dass binäre Datenformate Programmierern prinzipiell im Weg stehen. Dass es öffentliche Datendanken und APIs für öffentliche Daten geben sollte. Dass lizenzrechtliche Diskussionen im Rahmen der ShareIt-Kultur immer wichtiger werden und dass PHP nicht zu bevorzugen ist.

Danke an den Projektleiter Robert und danke insbesondere für die sehr gelungene Organisation des #bcklu. Die verminderte Anzahl an Sessions bei einer Parallelführung (Barcamp + CreateCamp) halte ich auch für kritikfähig und ich persönlich bin für zwei getrennte Konzepte und Termine: barcamps (Diskussion, Sessions) und projectcamps (programming, promoting).

CreateCamp Klagenfurt 2011