Archive for the 'Mein Informatikstudium' Category

TPE Labor deleted scenes

Das sind mal wieder die berühmten TPE Laborstunden, in denen eigentlich die Profs bzw. die Lehrbeauftragten den Studenten die Übungen abnehmen.
Ja, da sitzen auch wir, die berühmt berüchtigte Gruppe 3, die auch, nach dem die meisten Kommilitonen und die eigentlichen Prüfer schon längst entschwunden sind, vor Ort bleibt. Immerhin, man hat den Rechnerpool für sich allein :D
Das ist auch eigentlich die beste Gelegenheit nochmals am Programm zu schrauben. (Der Prüfer meinte, eine prozentuale Ausgabe der Trefferquote wäre doch schön gewesen…)
Na gut, lässt sich machen, denken wir alle, aber die Tücke steckt ja immer im Detail und da Informatiker sowieso, wenn man so die Klischees hört, zum Diletantismus neigen, passiert dann sowas:

auf gut dünken wird dann schnell der Code für ein wenig Prozentrechnung zusammen geschrieben. Da werden bestimmt keine Fehler drin sein, schließlich haben wir ja reichlich Mathe. Die Wahrscheinlichkeit, dass da was Fehlerhaftes dabei rauskommt, approximiert gegen Null, wird also infintissimal klein … – ähm, kurz gesagt: das ist kein Problem.
Doch dann:

Häh, warum kommt da 600 Prozent raus? Kann nicht sein. [...] Weiß jemand von euch, wie das nochmal geht [*grins*]. [...] Sind wir jetzt so mathematikbelastet, dass wir nicht mal sowas Einfaches können?

Denk, denk, grübel, grübel… Internet!

Ich, als Compiler, krame in meinen mathematischen Bibliotheken; entdecke den Dreisatz; mache eine Beispielrechnung und erkläre.

Nee, das ging irgendwie anders.

Na, ist die Variante, die ich in der Schule eingebläut bekommen habe.

Also wird weiterhin Google befragt. Google is your friend. Schließlich bekommen wir das Problem gelöst. Neben der Lösungssuche haben wir mal die vorhandenen Boxen im Raum für die eigene Beschallung genutzt. Und ich muss ja zugeben, Marc hat gleich das richtige Programm gefunden – Sunshine live. Trance und Techno, mein bevorzugte Richtung.

Is vielleicht zu trancig. Hoffentlich fangen die nich an zu singen – das kann ich gar nicht haben.

Mach was polnisches drauf

Es wird der passende Sender gesucht. Und es kommt dann schließlich auch gute, polnische Musik. Bei soviel Komfort, fängt man an zu überlegen. Hier bleiben, die Füße hochlegen, am besten noch eine Pizza bestellen und Musik hören? Und es gibt ein Klo und natürlich Computer – paradiesisch, nicht war?

Irgendwann kommt das Thema der gesprochenen Dialekte auf.

Ich weiß nicht, wie man da sowas raushören kann. Finde ich aber auch nicht so interessant, aber Programmiersprachen…

[...] der hat mal so einen schrecklichen Dialekt gehabt. Keine Ahnung, was das war. [...] Aber Mannheimerisch ist für mich schon kein Deutsch mehr

Würd’ ich nicht sagen.

Ich bin da außen vor. [...] Komm ja aus Hessen. So rischdich schee hessisch babble. Do könnt isch der oner verzele…*

*Für alle auf Hochdeutsch: Auf hessisch könnte ich vieles erzählen. Marc sagte darauf nur: “Das ist ja noch schlimmer.” :cry:
Oh, der Bundestrojaner war ja auch noch ein Thema, was wir angeschnitten hatten.

Hast du schon das FAQ zum Bundestrojaner schon gelesen? [...] Da steht drin, dass der User davon informiert wird, wenn sich der Trojaner installiert. [...] Wer glaubt denn sowas

Huh, soll dann da so’n schönes Installationsfenster aufploppen? Ich hab da mal was vorbereitet:

Einen Installer für den Bundestrojaner

Willkommen zurück in der Routine

Die Weihnachtsferien sind endgültig rum. Das bedeutet wieder zeitiges Aufstehen. Nun dafür sieht man wieder die lieben Kollegen, bezieungsweise die Banknachbarn in der Vorlesung.
Dämlicherweise hab ich für heute vergessen meinen MP3-Player aufzuladen. Und etwas musikalische Untermalung wäre doch wünschenswert.

Ihr Groupies!

Leider hat uns (Marc und meine Wenigkeit) Herr Keil (unser Lehrbeauftragter) nicht in seine Freundschaftsliste im StudiVZ aufgenommen. Denn am Mittwoch, nach dem Testat haben wir ihn spaßeshalber adden wollen, was leider ohne Erfolg blieb.
Melchior sagte da am Mittwoch nur: “Der wird denken: was sind denn das für Groupies?”
Na ja und an besagten Mittwoch sind wir auch nicht von ihm Testiert worden und Melchior hat ihn gebeten, beim nächsten Mal uns wieder zu testieren. Daraufhin hab ich mal wieder ein Spruch abgelassen, als Keil bei uns stand:

“Wir mögen Sie!”

War wohl nicht die richtige Anmache :-D

“Wir schätzen Ihre fachliche Kompetenz”,

meinte dann Melchior, hätten wir sagen sollen. Aber ein Lächeln hat es ihm doch entlockt.

Das geht aber so nicht!

Ich bin mal wieder am Programmieren und muss reguläre Ausdrücke unter Java anwenden.
Weil ich in besagten Ausdrücken nicht so ganz sicher bin, hab ich mir gleich mal die aktuelle Onlinevariante von Java ist auch eine Insel zu Rate gezogen und entdecke da folgenden Codeschnipsel (Kapitel 4.6):

String url = “a href=\”www.tutego.com\”";
boolean b = String.matches( “a href=.*”, url ); // true

Nun, das mit String.matches funktioniert aber nicht, weil die Methode nicht statisch ist. Das heißt, man braucht immer ein konkretes Stringobjekt, welches dann matches aufruft. Es müsste so heißen (in Java 6):

String url = “a href=\”www.tutego.com\”";
boolean b = url.matches( “a href=.*”); // true

// Die spitzen Klammern > und < hab ich entfernt, weil Wordpress denkt, es müsse den Text als HTML-Tag verstehen :-P

Von Lisper zu Lisper

Eigentlich habe ich heute den ganzen Tag nur diesem Moment entgegen gesehnt. Übers Wochenende habe ich mich ein wenig in die Lektüre Pracatical Common Lisp vertieft und dabei drängten sich mir eine ganz große Frage auf:

“Was sind eigentlich Closures? Und wozu braucht man sie?

Ich weiß über Closures an sich nur soviel, dass viele sich diese in der jeweilgen Programmiersprache wünschen, die diese ja offensichtlich nicht unterstützt. :-(
Da ich leider noch kein erfahrener “Lisper” bin, wusste ich mit dem Begriff schlicht und ergreifend nichts anzufangen. Zum Glück ist unser Lehrbeauftragter ein begeisterter Lisp-Fan. (Von ihm habe ich ja auch diesen Buchtipp, Practical Common Lisp, bekommen.)
Hier muss ich an merken, dass er sehr erfreut gewirkt hatte, als ich vor knapp 2 Wochen gesagt hatte, dass ich Interesse hätte, Lisp zu lernen.

O-Ton: “Wenn Sie fragen haben sollten, kommen Sie zu mir. Das ist kein Problem.”

Und heute, nach der Vorlesung machte ich auch davon Gebrauch:

“Ich hab da mal eine Frage, aber nicht zur Programmiersprache Java, sondern zu Lisp.”

…zu besagten Closures eben. Er darauf.:

“Closures sind was ganz tolles.”

So wie ich ihn dann verstanden habe, soll man damit Funktionen überdecken können – für alle, die Fachwörter lieben: Shadowing – auch wenn diese sich in einem völlig anderen Package befinden sprich, sie befinden sich in einer anderen Übersetzungseinheit).
Bisher hab ich aber auch noch nicht wirklich die tollsten Dinge in Lisp programmiert; damit wird es wohl noch etwas daueren, bis ich den ganzen, neuen Input zum Thema Common Lisp richtig verstanden und (ver-/be-)arbeitet habe.

Und der beste Spruch zum Schluss:

“Irgendwann sieht man die Klammern nicht mehr.”

Mathematische Begriffe umformuliert

Da hab ich mal aber wieder einen gerissen: Der Prof ist gerade am wiederholen des Funktionsbegriffes allgemein und erklärt die Eigenschaften über den Definitionsbereich wie folgt:

Im Definitionsbereich sind “Singles” verboten … und es gilt die Eindeutigkeit…

Ich vor mich hinsinnierend:

Also keine Affären oder so was.

Neben, hinter und auch vor mir fängt’s an zu lachen. Was vor mir lacht, ist der liebe Dozent, der dann meinen “Ausspruch” in etwas anderer Form in die Vorlesungsfolie übernimmt.
O-Ton:

Und die Eindeutigkeit fordert sozusagen die “Monogamie”. Was man nicht alles tut, damit’s hängenbleibt

Blackboxtesting amüsant

Von einer Vorlesungsfolie in OOT:

Der Code in einem Programm für eine Bank könnte wie folgt aussehen:

// Einlesen einer Kontonummer für eine beliebige Transaktion
int nummer = ...;
// Bestimmen des Kontos
Konto konto = table.getKonto(nummer);
if ( konto.besitzer.equals("Knauber") )
konto.betrag += 100; // Konto um 1 Euro = 100 Cent erhöhen
// korrekte weitere Auswertung

– Diesen (bösartigen) Fehler würde man mittels Blackbox-Test sehr
wahrscheinlich nicht entdecken
– Folge: Das Bankprogramm wird als “korrekt” freigegeben, ich werde reich…

Wenn alles nur so schön einfach wäre… :D

Professorenverwirrung

… hab ich mal wieder gestiftet. Dabei wollte ich nur etwas Klarheit schaffen.
Die Aussage vom Prof: “Java hat doch auch die Schlange [~] als Negationszeichen wie C++.”

Ich daraufhin: “Ja, als bitweise Negation. Für logische Ausdrücke nimmt man aber das Ausrufezeichen. Und in C++ kennzeichnet man damit auch den Destruktor.”

Der Prof: “Destruktor? Das ist ja wieder was anderes, komplexes.”

Na ja, Programmierung ist ja auch nicht sein Fachgebiet. Und in Java hat man ja den Garbage Collector, der fürs Aufräumen zuständig ist und muss dann nicht so was schreiben:

 ~MeineKlasse(){...};

Pioneer ist tot

Heute haben wir in der Robotik AG offiziell beschlossen, die Bemühungen am Pioneer Roboter vorerst ruhen zu lassen, da ich selbst kaum Zeit finde, um im Institut für Robotik am Pioneer zu arbeiten und ich leider einige hartnäckige Probleme nicht gelöst bekomme, für die eigentlich Insider-Wissen von nöten wäre, welches ich leider nicht zur Verfügung habe.
Zudem habe ich auch stets allein gearbeitet, da niemand ein größeres Interesse an diesem Roboter entwickelte. Außerdem drohte die Gruppe (etwa um die fünf Mitglieder) zu stark zu zersplittern.
Daher gibt es nun zwei Teams mit mehreren Mitgliedern:

  1. Team Lauron : Im Mittelpunkt steht der sechsbeinige Laufroboter Lauron.
  2. Das Zweibeiner-Team: Ziel ist es einen selbtkonstruierten zweibeinigen Roboter das Laufen und noch etwas mehr bei zu bringen.

Immerhin sollen auch einige Früchte unserer Bemühungen am Tag der offenen Hochschule vorgestellt werden.

Folien zum Proseminar

Zum Anschauen habe ich meine Vortragsfolien – im PDF-Format – nachträglich reingestellt. Ich hoffe, dass die Folien einigermaßen verständlich sind, da sie nicht den kompletten Inhalt meines Vortrages “Techniken des Compilerbaus” umfassen.
Viel Spaß damit!

Foliendownload: Proseminarvortrag zum Thema “Techniken des Compilerbaus”