Concepts for C++

Wieder mal ist ein Semester zu Ende, und ich habe auch wieder ein Seminar belegt und ein zugehöriges Paper geschrieben. Hier das Abstract:

C++ templates are a powerful language construct that enable generic programming techniques without impacting runtime performance. A problem when using templates is the lack of an explicit contract between the user and the definition of a template. This leads to difficult to understand error messages and inhibits separate checking of template code.

Concepts are part of the next C++ standard and mitigate these problems. Concepts express explicit requirements to template argument types, thus allowing separate checking. Other benefits include syntactical adaption of existing types, making code more reusable.

This paper introduces concepts and shows how existing code can be refactored to use concepts, making the code easier to understand.

Das ganze Paper.

7 comments »

MSE Modulbewertungen

Im MSE wird jeweils pro Modul eine Umfrage durchgeführt, in welcher verschiedene Aspekte des Moduls evaluiert werden sollen. Taugt meiner Meinung nach nicht sehr viel das ganze, vor allem wenn man mehrere Dozenten mit nur einem Kreuzchen bewerten muss und die Bewertung so früh im Semester gemacht hat, dass man noch nicht mal alle Dozenten erlebt hat.

Naja, darum solls aber nicht gehen, eigentlich wollte ich euch nur mit einigen lustigen Zitaten aus dem Feedback zum Software Engineering and Architecture-Modul unterhalten.

Auf die Frage “Was hat mir an diesem Modul gefallen?”:

  • schlechte Begleittexte,
  • völlig unmöglicher Aufbau.

Viel witziger aber, was nicht gefallen hat:

  • Herr Sommerlad unterrichtet mit einer besserwisserischen Haltung, die ekelhaft ist. (Hallo? Was hat das denn für einen Sinn, wenn der Dozent es nicht besser weiss als ich?)
  • Weniger ist oft mehr!!!
  • Nicht so viel common-sense blabla.
  • z.T. Vorkentnisse verlangt, die nicht in Modulbeschrieb standen. (Hier ist wohl Unit-Testing gemeint.. oder ist es Lesen und Schreiben? Das stand nämlich auch nirgends.)
  • Nicht alle sind gut in C++. (Soweit ich mich erinnere, gab es 1-2 Mal ein C++ Beispiel.)
  • Verhalten gegenüber Studenten war etwas arrogant. Sie unterrichten vor MSE-Studenten, nicht vor Primarschülern. (Der muss eine unangenehme Kindheit gehabt haben.)
  • Nicht kritikfähig, nicht cooperativ, zufest von seiner Meinung überzogen. (Zu Sommerlad. Schreibfehler sind nicht von mir.)

Wens interessiert, das Ganze ist öffentlich.

Ein weiterer Kritikpunkt ist auch von vielen, dass nicht die “Lernplattform” (was für ein Wort!) Moodle verwendet wird, sondern ein Wiki. Ich fand es eigentlich sehr angenehm, per RSS über Aenderungen informiert zu werden als sich bei Moodle anzumelden und durch jedes Modul durchzuklicken um zu sehen, ob etwas geändert hat. Auch um Feedback und Aufgaben abzugeben und Feedback zu erhalten fand ich ein Wiki sehr angenehm.

No comment »

MSE Grades

Heute wurden endliche die Grades für den MSE bekanntgegeben. Als Ingenieur hatte ich noch nie mit Grades zu tun, war also eine Premiere (sogar die zweite für heute, war auch noch an der Premiere von «Silence. Now!»).

6.0 -> A
5.5 -> B
5.0 -> C

So siehts aus bei mir.. wenn ich das mit den Grades richtig verstanden habe bedeutet das wohl, dass die Schnitte relativ hoch gewesen sein müssen.

7 comments »

Virtual Reality Labor in Biel

Heute war ich zum ersten mal in Biel, und zwar an der Fachhochschule, und habe einen Besuch in einem Virtual Reality Labor gemacht.

Das ganze fand im Rahmen des MSE-Moduls Information Visualization and User Interfaces statt, und war sozusagen eine Belohnung für das überstehen des Semesters. Allerdings hätte ich es eigentlich sinnvoller gefunden, so eine praktische Einführung als Motivation zum Auftakt zu machen.

Sehr interessant war das (oder der) CAVE, allerdings ist mir jetzt noch ein wenig schlecht davon (Note to self: Das nächste Mal unbedingt vorher was gegen Seekrankheit einnehmen oder so).

Der Besuch bildete somit – auch wenn die Noten noch ausstehen – wirklich den Abschluss des Semesters; am Dienstag geht es ja auch bereits weiter.

No comment »

Erstes MSE Semester fertig

Heute war es endlich so weit, das erste Semester im MSE ging für mich mit der letzten Prüfung zu Ende. Zurück bleiben einiges an neuem Wissen und auch einen Haufen Papier.

Und nun? Im Prinzip hätten wir jetzt endlich mal Ferien, eine Woche lang, in der ich aber arbeiten muss und zudem schon fürs nächste Semester vorausgesetzten Stoff repetieren muss (oder sollte).

No comment »

Gelesen: Computers Ltd

Das Buch wurde uns von Tyko Strassen (MSE-Dozent für theoretische Informatik) nahegelegt, als populärwissenschaftliche Literatur zum Thema Berechenbarkeit, Komplexität und verwandter Themen, das man mal an einem ruhigen Abend zur Entspannung lesen kann.

Während ich am Anfang sehr gut mitkam und halt auch wusste, was für Theorie genau dahinter steckt, kann ich mir daran sicher ein Beispiel nehmen, wie einfach man ein sehr komplexes Thema wie die theoretische Informatik einer breiten Leserschaft näherbringen könnte. Ausserdem lernt man noch ein paar NP-Vollständige Probleme kennen. Ein kleiner Abstecher in die Kryptographie gelingt auch sehr gut, und ich habe sogar etwas neues gelernt, und zwar über Zero-knowledge proofs.

Für das Buch braucht man eigenlich keinen besonderen Hintergrund in Informatik oder gar Mathematik, mit ein wenig Interesse sollte es für alle lesbar sein.

Wen also schon immer mal interessiert hat, woran man sich als Informatiker so den Kopf zerbrechen kann, dann unbedingt lesen.

No comment »

Seminar Program Analysis and Transformation

Soeben ging das Seminar zum Thema Program Analysis and Transformation mit der letzten Präsentation zu Ende. Das Seminar ist eines von zweien, welches man im MSE in der jeweiligen Fachhochschule zu absolvieren hat.

Das wichtigste zuerst, die besten Zitate des Tages, von Josef Joller: “Swiss German is an advanced version of German” (zu unseren Singapurianern). Und von Peter Sommerlad, zu einem Studenten: “Du scheinst aus einem Kontext zu kommen, wo du mir eigentlich leid tust.”

Ok, um was ging es in meinem Paper? Ich zitiere einfach mal mein Paper:

Slicing is an approach to divide a program into chunks that share a common property, like their contribution to the result of a calculation. Slicing can be used to leverage the power of refactoring tools by providing a deeper understanding of the code. For example, the Extract Method refactoring used to extract a series of statements can—with the aid of a slicing algorithm—be enhanced to allow the extraction of non-contiguous statements.

This paper summarizes Ran Ettinger’s thesis about “Refactoring via Program Slicing and Sliding”, where he introduces the notion of sliding, a visualization of the slicing procedure based on transparent overhead-projector slides. I also show how several well-known refactorings can benefit from a slicing algorithm.

Wer will darf das Paper natürlich auch selbst mal lesen, auch die Präsentation ist hier, aber steht nicht so viel drin.

No comment »

Die grosse MSE FAQ (letztes Update 27.12)

Inspiriert durch eine Frage bei meinem “grossen MSE Semesterrückblick” eröffne ich hier die grosse MSE FAQ :-) Also, falls ihr Fragen zum MSE habt, Kommentar schreiben, dann werde ich diesen Beitrag updaten.

Absolvierst du nun den MSE als Vollzeitstudium oder arbeitest du noch parallel dazu?

Ich mache den MSE als Teilzeit-Student, das heisst, ich arbeite noch 50% parallel als Assistent an der HSR. Der Unterschied zu einem Vollzeitstudium ist der, dass ich zuerst ein Jahr lang Schule habe, genau gleich wie die Vollzeitstudenten. Nur machen die parallel zur Schule bereits jetzt eine Projektarbeit. Dasselbe im nächsten Semester: ich nur Schule, Vollzeitler Schule und Projektarbeit. Beim Teilzeitstudium werden die Projekte einfach danach gemacht (mir wurde ein Projekt wegen meiner 1.5 Jahre Assistenzzeit angerechnet, andere Schulen rechnen auch beide Projekte an). Zum Schluss gibt es dann noch die 27 ECTS (~810 Stunden) Masterarbeit, welche in jedem Fall Vollzeit während rund 20 Wochen durchgeführt wird.

Wie gross ist der schulische Aufwand pro Woche?

Das ist eine gute Frage. Auf jeden Fall in einigen Modulen viel höher als während dem Bachelor/Diplomstudium. Man muss auch beachten, dass die alle Module nur 3 ECTS geben, also zwei Stunden Vorlesung und eine Uebungenslektion. Ich würde grob sagen, dass ich pro Modul noch so 2 Stunden zu Hause gearbeitet habe. Hängt aber sehr vom Modul ab, teilweise hab ich bis zu 6 Stunden in einer Woche für ein Modul zusätzlich gearbeitet (Theo. Informatik) und in anderen Modulen häufig kaum was (IT-Security).

Werden Projekte auch erlassen, wenn externe Berufserfahrung besteht?

Sagen wirs so: mir ist kein Fall bekannt. Die meisten bei uns sind entweder Assistenten oder solche die direkt weitergemacht haben. Von 2 Kollegen, die unterdessen wieder aufgehört haben, weiss ich, dass ihre Projekte, die sie zwar als Assistent aber nicht im Hochschulumfeld gemacht haben, nicht angerechnet wurden. Soweit ich aber die Idee des Masters verstanden habe, soll Berufserfahrung anrechenbar sein. Was sicherlich hilft (d.h. bei uns war es Pflicht) beim Anrechnungsgesuch, sind irgendwelche Publikationen oder Konferenzbeiträge.

Weiter Fragen? -> Kommentar

2 comments »

Der Grosse MSE Semesterrückblick

Vor einigen Tagen ging die letzte Vorlesung im MSE dieses Semesters zu Ende, Zeit für einen Rückblick.

Seminar Program Analysis and Transformation

Wohl das Highlight dieses Semesters war das von Peter Sommerlad und Josef Joller geführte Seminar. Darauf werde ich aber in einem gesonderten Blog detaillierter Eingehen und erklären, was ich denn überhaupt gemacht habe. Obschon das Seminar wohl die mit dem höchsten Zeitaufwand erworbenenen ECTS-Punkte sind hat es sich doch gelohnt.

Allerdings sind wir noch nicht fertig mit dem Seminar, die Schlusspräsentation in knapp zwei Wochen steht noch an.

Applied Statistics and Data Analysis

Eines der drei Mathematik-Module, die ich insgesamt nehmen muss. Einerseits war es recht interessant, mal einen tieferen Einblick in Statistik zu erhalten, mit sehr vielen praxisnahen Beispielen. Das Problem: Auch wenn praxisnah, leider nicht wirklich für uns. Ich stehe nicht hinter einer Maschine und muss einen Prozess unter Kontrolle halten, noch muss ich irgendwelches Material abnehmen oder mich mit Regressionsmodellen rumschlagen. Eventuell nützt einem der Teil über statistische Versuchsplanung mal was.. wer weiss. Naja, dafür hatten wir zwei kompetente Dozenten, haben R kennengelernt und (sollten) wissen, wie eine Banane in einem Streudiagramm zu finden ist.

Cryptography and Coding Theory

Das zweite Mathe-Modul! Dazu noch ein interessantes Thema, das durchaus interessant und relevant für mich ist. Ich denke, von Kryptographie sollte jeder Informatiker eine gewisse Ahnung haben, schliesslich brauchen wir sie täglich.

Der Dozent, Willi Meier, ist absolut genial. Er wusste uns gut zu motivieren und versuchte, uns Ingenieuren alles in verdaulichen Häppchen rüberzubringen (”Mathematikern kann man den Beweis zeigen, und sie glauben einem; Ingenieure interessieren sich nicht für den Beweis, aber wollen ein paar Beispiele sehen bis sie überzeugt sind”).

Information Visualization and User Interfaces

In IVUI haben wir verschiedenste Dinge angeschaut: diverse Design-Fragen (z.B. Verwendung von Farben), verschiedene Visualisierungen, komische Eingabegeräte (Brain-Computer-Interaction), Virtual Reality, Spracherkennung, etc. Unglaublich viel Material, präsentiert von 4 verschiedenen Dozenten.

Was ziemlich lausig war am Modul ist, dass es praktisch keine Uebungen gab. Anstelle der Uebungen mussten wir zwei Seminararbeiten abgeben. Während die erste Arbeit wenigstens noch etwas mit dem Modulinhalt zu tun hatte, brauchte man für die zweite eigentlich kein neues Wissen (deshalb konnte man es auch bereits nach einer Woche abgeben). Das ist nicht der Sinn einer Uebung! In einer Uebung will ich das gehörte vertiefen, nochmals durchdenken oder anwenden können.

IT Security

Das zweite Modul mit 4 Dozenten, wovon einer eine totale Fehlbesetzung war. Ausserdem war es in Englisch, was leider auch nicht alle Dozenten wirklich beherrschten (eigentlich nur einer, ein zweiter war aber ganz OK).

Der Inhalt war vor allem eine Repetition, zumindest für HSR-Studenten, welche laut Aussage des Modul-Chefs eine sehr gute IT-Security-Ausbildung erhalten. Ehrlicherweise muss ich zugeben, dass ich das wusste. Allerdings gab es in der Modulbeschreibung auch einige interessante Punkte die aber leider wegen des wirklich schlechten Dozenten eine Enttäuschung wurden. Tja, Pech gehabt.

Theoretical Computer Science

Das Beste zum Schluss: Theoretical Computer Science war für mich das absolute Highlight des Semesters. Wir haben kurz die regulären und kontextfreien Sprachen repetiert und uns danach mit Turingmaschinen, dem Halteproblem, Komplexitätstheorie und Haskell rumgeschlagen. Und obschon das Modul von 3 Dozenten unterrichtet wurde, klappte die Abstimmung sehr gut. Von mir aus könnte man Haskell weglassen (eigenes Modul) und dafür die Komplexitätstheorie noch weiter ausbauen.

Bonuspunkte gibts von meiner Seite fürs konsequente Ignorieren von Moodle (warum braucht man eine schlechte Web-Anwendung um Dateien auszutauschen?).

Ok, das waren die Module.

Empfehlung?

Hm.. für wen ist der MSE eigentlich? Bloss 1/3 der ECTS holt man sich durch Theorie-Unterricht, der Rest sind Projekte und Seminare. Wer also gerne Arbeiten macht -> MSE. Lieber mehr Theorie und neues Lernen? Dann wohl eher nicht. Die eher magere Auswahl an Modulen macht das ganze nicht besser. Wo ich selbst stehe weiss ich nicht, ich denke irgendwo in der Mitte :-)

4 comments »

Tipps fürs Abstract

Ich kämpfe momentan gerade etwas mit dem Abstract zu meinem Seminarpaper, und dachte, ich könnte doch ein paar Tipps aus Bugs in Writing weitergeben.

Das Abstract soll

  • kurz, klar und “directly to the point” sein.
  • nicht im Passiv geschrieben sein.
  • annehmen, dass der Leser müde, gelangweilt und unter Zeitdruck ist.
  • nur die Highlights hervorheben, keine Details.

So, und nun viel Spass beim weiterschreiben.

2 comments »