Zum Inhalt springen

kurtchen

Communitymitglied
  • Gesamte Inhalte

    879
  • Benutzer seit

  • Letzter Besuch

Blogbeiträge von kurtchen

  1. kurtchen
    Am Freitag war endlich die lange erwartete Urkunde im Briefkasten. Vom Kolloquium bis ihrem Eintreffen hat es immerhin fast 13 Wochen gedauert. Ich nenne diese Zahl mal als Anhaltspunkt für andere Studierende, die ihr Studium bald abschließen wollen. Es passt auch ganz gut zu dem, was mir Kommilitonen berichtet haben, die ein bisschen schneller waren als ich.
     
    Natürlich war ich ein wenig ungeduldig, die Urkunde irgendwann in den Händen zu halten. Das Studium hat mir Spaß gemacht und es war toll, ständig etwas neues zu lernen, aber natürlich hat mich auch die Aussicht auf ein greifbares Ergebnis meiner Mühen angetrieben. Wobei die eigentliche Hoffnung ja war, durch das Studium einen Einstieg in ein neues Arbeitsfeld zu finden. Das hat nun sogar schon knapp vor dem Abschluss geklappt. Insofern war die Urkunde keine Eintrittskarte sondern vor allem das Ende eines langen Weges.
     


    Ich finde, sie sieht recht chic aus, und bin ganz froh, dass meine noch von der FH Dortmund ausgestellt wurde.
     
    Mein neues Leben sieht nun so aus, dass ich Montags bis Mittwochs im Biozentrum der Uni Würzburg arbeite. Dort programmiere ich Steuersoftware für biologische Experimente. Mir gefällt zum Beispiel, dass ich in der schönen und für mich neuen Sprache Go programmieren darf.
     
    Donnerstags und Freitags arbeite ich weiterhin im Kindergarten. Meine Stundenzahl dort wurde jüngst wieder etwas erhöht, so dass ich insgesamt nun fast wieder Vollzeit arbeite. Der Gegensatz zwischen meinen beiden Arbeitswelten ist natürlich enorm. Ich erlebe inzwischen ziemlich bewusst, wie anstrengend die Arbeit in einem Kindergarten ist, nicht nur nervlich sondern auch körperlich, was mir vorher gar nicht so klar war. Trotzdem freue ich mich jeden Mittwoch aufs Neue auf die Kinder. Aktuell sieht es so aus, als würde ich noch bis zum Ende des Kindergartenjahres zweigleisig fahren. Mal sehen, wie es danach weitergeht, denn die Stelle am Biozentrum ist befristet.
     
    Doch unterm Strich bin ich bislang ganz zufrieden, wie der Übergang vom Studium in eine neue Berufspraxis sich anlässt.
     
    Allmählich nehme ich mir auch wieder Zeit für andere Interessen. Ich hatte ja wegen einer Handverletzung mein Instrument - die klassische Gitarre - aufgeben müssen. Noch während des Studiums hatte ich es mit einem Digitalpiano versucht. Das ist mit der Bachelorarbeit aber wieder eingeschlafen. Inzwischen habe ich mir eingestehen müssen, dass es nicht nur am Zeitmangel lag. Das Piano war als Ausgleich zum Informatikstudium keine so gute Idee. Wenn man ohnehin schon viel sitzt und Tasten drückt, dann ist es nicht sehr reizvoll, in der knappen Freizeit schon wieder zu sitzen und Tasten zu drücken. Inzwischen habe ich ein neues Instrument gefunden, das mir sogar noch mehr Spaß macht als damals die Gitarre. Auch lese ich endlich mal wieder Bücher, die nichts mit Informatik zu tun haben.
     
    Abgesehen von der Urkunde gab es noch zwei nette Details, die ich gerne im Blog erwähnen wollte. Das erste ist die sogenannte AbsolvEnte, die in meinem Studiengang seit langem mit der Urkunde überreicht wird. Diese Tradition hat bereits den Wechsel von der W3L zu Springer Campus überlebt. Ich habe keine Ahnung, ob auch die SRH Riedlingen eine AbsolvEnte überreichen wird, aber ich schätze mich glücklich, dass ich meine noch bekommen habe. Das Studienbüro hat sie mir schon in der Adventszeit zugeschickt, darum sieht das Photo so weihnachtlich aus.
     

     
    Außerdem bekam ich dieser Tage noch sehr nette Glückwünsche von Springer Campus übermittelt. Nicht nur irgendein Formschreiben sondern wirklich individuell bezogen auf meine neue berufliche Situation. Darüber habe ich mich wirklich sehr gefreut.
     
    Mein Fernstudium B.Sc. Web- und Medieninformatik ist nun allerdings in jeder denkbaren Hinsicht beendet. Insofern schließe ich heute diesen Blog. Ich hoffe, er hat dem einen oder anderen Mut gemacht, sich für ein Fernstudium zu entscheiden. Es ist toll, sich durch Bildung und Lernen weiterentwickeln zu können.
     
    Macht's gut und Danke für Euer Interesse!
     
     
     
  2. kurtchen
    Beim letzten Prüfungstermin habe ich 4 Klausuren an 2 verschiedenen Standorten geschrieben:
    - Web-Engineering (Heidelberg)
    - Software-Technik 3 (Heidelberg)
    - Content-Management-Systeme (Dortmund)
    - Data-Mining (Dortmund)
     
    Nötig war das, weil ich zum 1. Juli umziehe. Das ist zum Glück nur ein Umzug innerhalb der Stadt, aber viel Zeit wird trotzdem dafür draufgehen. Außerdem werden wir in der neuen Wohnung ein bisschen renovieren und umbauen müssen. Einen Schuppen werde ich auch noch bauen müssen, damit wir einen Platz haben, wo wir unsere Fahrräder hinstellen können. Die alte Wohnung war schon lange zu klein, was sich immer häufiger auf den Familienfrieden auswirkt. Berufsbedingt bin ich es gewohnt, im größten Trubel meinen Kram zu machen, so dass ich wahrscheinlich noch am wenigsten darunter gelitten habe. Mich stören eher technische Geräusche: Handy-Gedudel, Gepiepse von Computerspielen und solche Sachen. Da gilt die Regel: Nicht wenn ich lerne bzw. dann nur mit Kopfhörer. Da halten sich die Teenager zum Glück dran.
     
    Die alte Wohnung hatte viele Vorzüge. Unser Vermieter hat uns nicht ein einziges Mal die Miete erhöht und war immer sehr tolerant gegenüber Kinderlärm. Dafür haben wir bei Reparaturen immer zugeschaut, dass wir uns möglichst selbst mit Material aus dem Baumarkt helfen. Leben und Leben lassen. War eine Hausgemeinschaft, wo man ein bisschen aufeinander aufgepasst hat. Selbst, wenn wir in Urlaub gefahren sind, haben wir die Wohnungstür nur zugezogen, nie abgeschlossen. Wäre sofort aufgefallen, wenn jemand unbekanntes durchs Treppenhaus geht. Die günstige Miete hat mir auch sehr geholfen, die Kosten für mein Studium aufbringen zu können, obwohl ich meine Arbeitszeit auf 30 Stunden reduziert hatte. Das wird ab jetzt alles ein bisschen schwieriger.
     
    Das jedenfalls war der Grund für meinen Versuch, 4 Klausuren auf einen Streich zu schaffen. Den Stoff von 4 Modulen gleichzeitig im Kopf "fluide" zu halten, ist mir nicht leicht gefallen. Vor allem, weil mit Software-Technik 3 ein anspruchsvolles und umfangreiches Modul dabei war, das mir auch inhaltlich sehr wichtig war. Da wollte ich gerne gut abschneiden. Ich hoffe, dass sich mein Ehrgeiz, alles vor dem Umzug zu schaffen, nicht an gerade dieser Stelle rächt.
     
    Nach den Prüfungen habe ich auch gemerkt, dass ich mich nicht lange konzentrieren konnte. Der Start in mein neues Modul "BWL1" war zäh. Jetzt wird es langsam wieder besser. 4 Klausuren an einem Termin, das möchte ich nicht zur Nachahmung empfehlen.
  3. kurtchen
    Bislang war ich von allen Mathematik-Modulen bei Springer Campus begeistert. An Mathe 1 "Mathematisch-logische Grundlagen der Informatik" habe ich vor allem die sehr intensive Betreuung durch meinen Tutor geschätzt. Das war gerade bei meinem ersten Mathe-Modul sehr hilfreich war. An Mathe 2 "Lineare Algebra" und "Analysis" und Mathe 3 "Angewandte Mathematik" gefielen mir die sehr guten PDF-Tools von Herrn Lenze, mit denen man sich selbst nach Bedarf Übungsaufgaben generieren konnte. Die Messlatte für das letzte Mathematik-Modul "Statistik" lag also schon ziemlich hoch. Nachdem ich diesen Kurs am letzten Freitag abgeschlossen habe, kann ich sagen: Das beste kommt zum Schluss.
     
    Auf das Modul Statistik war ich... sagen wir mal gespannt. Ich gehöre ja zu denen, die Mathematik zu Schulzeiten mochten. Aber mit Statistik habe ich mich tatsächlich in der Schule nie beschäftigt. Nicht mal mit Wahrscheinlichkeitsrechnung. In der Mittelstufe legte unser Lehrer das Thema immer ans Ende des Schuljahres, weil er es für unwichtig hielt. Und Jahr für Jahr kamen wir mit dem Stoff nicht schnell genug voran, so dass es am Ende wegfiel. In der Oberstufe war in meinem Bundesland Analysis für alle Abiturienten Pflicht. Außerdem konnte wahlweise Statistik oder Lineare Algebra mit analytischer Geometrie behandelt werden. An meiner Schule wurde nur lineare Algebra angeboten. Das war natürlich eine gute Grundlage für das Modul Mathe 2. Aber was Statistik angeht, hatte ich tatsächlich nur ganz geringe Vorkenntnisse.
     
    Dabei spräche vieles dafür, gerade dieses Gebiet der Mathematik im Schulunterricht zu betonen. Analysis und lineare Algebra sind wichtig in technischen und naturwissenschaftlichen Studiengängen. Statistik braucht man in Biologie und Medizin, in den Wirtschaftswissenschaften und in allen Sozialwissenschaften. Und wenn Geisteswissenschaftler überhaupt Mathematik brauchen, so ist es wohl Statistik. Wer Nachrichten schaut oder Zeitung liest, ist laufend mit Statistiken konfrontiert. Statistische Grundkenntnisse müssten eigentlich zur Allgemeinbildung gehören. Last but not least ist die Statistik der Teil der Mathematik, der sich mit dem Ungewissen und Unpräzisen beschäftigt, während die meisten anderen Gebiete der Schulmathematik den Eindruck erwecken, Mathematik handele allein vom Exakten. Ich war also sehr neugierig darauf, diese Lücke meiner Bildungsbiographie zu schließen.
     
    Das Lehrbuch "Basiswissen Statistik" von Michael Müller und Werner Poguntke ist Grundlage für diesen Kurs. Es hat an die 180 Seiten, was für ein Modul bei Springer Campus sehr wenig ist. Wie schon bei den anderen mathematischen Kursen ist die Informationsdichte sehr hoch. Die 180 Seiten erfordern durchaus vergleichbar viel Arbeit wie 500 Seiten Software-Engineering. Das Buch ist aber keine reine Formel- und Beweisorgie. Anwendungsbeispiele zu allen Themen machen dieses Buch besonders lebendig und praxisnah. Man merkt, dass Statistik ein Fach ist, dass man in vielen Wissens- und Lebensbereichen brauchen kann. Während in anderen Mathematik-Modulen die Anwendungsbeispiele gelegentlich ein bisschen konstruiert wirkten, konnte man hier immer gleich den Nutzen des ganzen erkennen.
     
    Wie schon beim Lehrbuch "IT-Sicherheit" hat Herr Poguntke auch hier viele Verweise innerhalb des Buches eingebaut. Er verweist auf künftige Kapitel, in denen ein aktuell behandeltes Thema noch einmal relevant werden wird. Und er verweist auf vorangegangene Kapitel, in denen man Grundlagen für den aktuellen Stoff noch einmal nachlesen kann. Das hat mir sehr geholfen, die Bezüge zwischen den Kursthemen zu erkennen und den Stoff im Zusammenhang zu denken. Darum bin ich der Meinung, "Basiswissen Statistik" ist das beste unter den guten Mathematik-Lehrbüchern im Studiengang.
     
    Lehrbuch, Online-Tests und Übungsaufgaben sind in diesem Modul besonders gut aufeinander abgestimmt. Es gibt Übungsaufgaben zu allen Themen des Kurses. PDF-Tools, mit denen man sich selbst neue Aufgaben generieren kann, gibt es in diesem Kurs leider nicht. Ich habe aber festgestellt, dass das Übungsmaterial genügt, um sich gut auf die Prüfung vorzubereiten.
     
    Der Kurs zerfällt im wesentlichen in zwei Teile:
    - deskriptive Statistik
    - induktive Statistik
     
    Der Unterschied ist folgender: In der deskriptiven Statistik habe ich eine vollständige Sammlung von Daten oder Werten, die ich verdichten möchte, um eine allgemeine Aussage zu treffen. Aus dem Alltag geläufig ist zum Beispiel der Durchschnitt, der in der deskriptiven Statistik Mittelwert heißt. Er fasst zum Beispiel alle Noten eines Studium in einem Wert zusammen.

    In der induktiven Statistik habe ich eine Stichprobe, von der ich auf eine Gesamtmenge schließen möchte. Es gibt Millionen Wahlberechtigte Bürger, aber befragt habe ich nur ein paar Tausend. Nun möchte ich eine Prognose abgeben, wie die Wahl ausfallen wird und ich möchte abschätzen können, mit welcher Wahrscheinlichkeit meine Prognose zutrifft. Kennzeichnend für die induktive Statistik ist also, dass...
    ... mir ein großer Teil der relevanten Daten unbekannt ist.
    ... ich wahrscheinlichkeitstheoretische Überlegungen anstellen muss.
     
    Themen in der deskriptiven Statistik sind:
    - Lage- und Streuungsmaße
    - Graphische Darstellungen von Häufigkeiten
    - Konzentration und Disparität
    - Lorenzkurve
    - Konzentrationskoeffizient nach Gini
    - Messzahlen und Indizes
    - Geometrisches Mittel
    - Zusammenhangsanalyse
    - Kreuztabellen
    - Unabhängigkeit und Kontingenzmaße
    - der Korrelationskoeffizient nach Pearson und nach Spearman
    - Lineare Regression
    - Zeitreihenanalyse
     
    Die Themen sind sehr lebensnah präsentiert. Mathematisch ist relativ leicht nachzuvollziehen, was hier geschieht. Dieser Teil des Kurses ist vergleichsweise einfacher. Wer sich mit Mathematik schwer tut, sollte sich auf diesen Teil konzentrieren, weil man hiermit in der Klausur einen guten Punktesockel aufbauen kann, so dass man zumindest nicht durchfällt.
     
    Die induktive Statistik ist ein bisschen schwieriger und mathematisch raffinierter. Im Grunde wird die Sache in drei Schritten aufgebaut:
    1. Die Kombinatorik handelt davon, auf wieviele Arten man aus Mengen etwas auswählen kann. Ein aus dem Alltag bekanntes Beispiel ist die Ziehung von 6 Lottozahlen aus 49.
    2. Die Wahrscheinlichkeitsrechnung weist auf dieser Grundlage bestimmten Ereignissen und Kombinationen von Ereignissen eine Zahl zwischen 0 und 1 zu, die man Wahrscheinlichkeit nennt. Was genau eine Wahrscheinlichkeit ist, bleibt letztlich eine philosophische Frage. (Psychologisch interessant ist, dass man beim Umgang mit Wahrscheinlichkeiten leicht in gewisse "kognitive Tunnel" rennt. Das sind Irrwege des Denkens, die einem zeigen, dass man leider gerade im praktisch relevanten Gebiet der Wahrscheinlichkeitsrechnung nicht gut beraten ist, auf Intuition zu setzen. Die Autoren präsentieren in diesem Zusammenhang ein paar interessante Paradoxien, z.B. das Simpson Paradox. Dieses wird im Lehrbuch anhand von zwei Gruppen präsentiert, in denen der Anteil der nichtrauchenden Männer höher ist als der der nichtrauchenden Frauen. Vereint man diese beiden Gruppen zu einer, so ist der Anteil nichtrauchender Frauen höher. Das überrascht und verwirrt, auch wenn man alles wiederholt nachrechnet.)
    3. Auf der Grundlage von Kombinatorik und Wahrscheinlichkeitsrechnung beschäftigt man sich nun mit verschiedenen Wahrscheinlichkeitsverteilungen, von denen die bekannteste die Standard-Normalverteilung ist. Sie ist auch als Glockenkurve bekannt. Normalverteilungen sind deshalb so nützlich, weil dort, wo sich viele zufällige Phänomene überlagern, regelmäßig eine Normalverteilung zu beobachten ist.
     
    Themen in der induktiven Statistik sind:
    - Kombinatorik
    - Rechnen mit Wahrscheinlichkeiten
    - Bedingte Wahrscheinlichkeiten
    - Kontingenztabellen und Wahrscheinlichkeitsbäume
    - die Bayes-Formel
    - Gemeinsame Wahrscheinlichkeiten
    - Zufallsvariablen
    - Bernoulli-Verteilung
    - Binomial-Verteilung
    - Hypergeometrische Verteilung
    - Poisson-Verteilung
    - Stetige Verteilungen
    - Exponential-Verteilung
    - Normalverteilung
    - t-Verteilung
    - zentraler Grenzwertsatz
    - Approximation mit der Normalverteilung
    - Schätzen und Testen
    - Schätzung unbekannter Parameter
    - Testverfahren
     
    Es folgt ein knappes Kapitel über Statistik mit Rechnern, das aber nicht klausurrelevant ist. In diesem Kurs lernt man, Statistik sozusagen mit Papier und Bleistift zu treiben. Dabei merkt man durchaus, dass viel mechanische Rechenarbeit anfällt. Aus diesem Grund darf in der Klausur ein nicht-programmierbarer Taschenrechner verwendet werden. Wer einmal erlebt hat, wie viel Mühe es macht, eine größere Menge von Messwerten zu verdichten, der kommt schnell auf die Idee, das man das mit Software automatisieren müsste. Das ist allerdings nicht mehr Thema dieses Moduls.
     
    Die Betreuung durch meinen Tutor war auch in diesem Mathematik-Modul hervorragend. Die Rückmeldungen kamen schnell. Spannend wurde es gerade dann, wenn ich nicht alles richtig hatte. Hier gab es dann Anregungen, wie man doch noch selbst auf die richtige Lösung kommen konnte. Einmal bin ich in einen der besagten kognitiven Tunnel getappt, so dass ich alles richtig gerechnet und am Ende doch die falschen Schlüsse gezogen habe. Das war ein recht witziger Austausch, bis bei mir endlich der Groschen fiel. (Kurz gesagt, bin ich auf eine Variante des bekannten "Ziegenproblems" reingefallen. Wer das nicht kennt, einfach mal googlen.)
     
    Der Online-Test und die Online-Klausur waren beide gut machbar, wenn man seine "Hausaufgaben" erledigt hatte. Hier konnte man sich noch mal ein kleines Bonuspunktepolster für die Klausur erarbeiten. Geschenkt bekommt man es aber nicht. Die Online-Klausur gibt einen realistischen Vorgeschmack auf das Niveau der Präsenzklausur. Schwierig für mich war: Mein gewohnter Taschenrechner ist programmierbar und funktioniert mit RPN-Logik. Für die Klausur musste ich mir den Taschenrechner meiner Tochter ausleihen. Es hat mich tatsächlich ausgebremst, ständig suchen zu müssen, wo welche Taste ist. Mal schauen, wie verheerend sich das ausgewirkt hat. Unterm Strich ist das aber eine faire Klausur, die die Themen des Kurses breit abdeckt. Man hat ein bisschen Zeitdruck, kann aber alles schaffen, wenn man ordentlich vorbereitet ist.
     
    Damit wäre nun der Studienbereich Mathematik abgeschlossen. Was mir jetzt noch gefallen würde, wäre ein aufbauendes Modul zur Statistik mit Rechnern. Ich denke zum Beispiel an Datenanalyse mit R oder Statistik-Programmierung mit Python. (Da gibt es ein tolles Buch von Allen B. Downey.) Auch ein Modul zur Datenvisualisierung fände ich für einen Studiengang Web- und Medieninformatik ziemlich cool. Gibt es leider bislang nicht, aber ein paar Wünsche dürfen ja noch offen bleiben.
  4. kurtchen
    Ausgangslage
     
    Angefangen hatte alles damit, dass ich als Kindergärtner auf der Suche nach einer interessanten Weiterbildungsmöglichkeit war. Dabei stieß ich auf den B.Sc. Sozialinformatik der Hochschule Fulda. Dieser berufsbegleitende Studiengang richtete sich an ausgebildete Fachkräfte im Sozialbereich oder im IT-Bereich. Ein einschlägige Ausbildung und Beschäftigung während des Studiums war Zugangsvoraussetzung. Ziel des Studiums war die Qualifizierung von IT-Fachkräften für den Sozialbereich, also etwa in Analogie zum Wirtschaftsinformatiker für den Unternehmensbereich. Das klang für mich interessant.
     
    Damals habe ich auch einen Thread hier im Forum gestartet, in der Hoffnung, Studierende zu finden, die mir etwas aus erster Hand berichten konnten. Das hat leider nicht geklappt. Ich hatte damals das Glück, mit Hilfe des Studienbüros einen Studierenden in diesem noch recht jungen Studiengang zu finden, der mir etwas über seine Erfahrungen berichten konnte. Abgehalten hat mich eigentlich nur der relativ starre Zeitplan an der HS Fulda. Zwar gab es die Möglichkeit, verpasste Klausuren oder Module im Folgesemester oder im Folgejahr nachzuholen, aber ich war mir nicht sicher, wie rasch meine Lernfortschritte sein würden. Insbesondere konnte ich nicht abschätzen, wie schwer es mir fallen würde, mich wieder mit Mathematik zu beschäftigen. Rückblickend meine ich, dass ich mit diesem Studium gut zurecht gekommen wäre. Es gab damals ein paar Forumsteilnehmer, die in Zweifel zogen, ob Sozialinformatik als richtiges Informatikstudium gelten konnte. Heute meine ich, das Curriculum dieses Studienganges selbst ganz gut beurteilen zu können. Und finde, dass der B.Sc. Sozialinformatik ein attraktives Studienangebot ist, wenn man mit dem vorgegebenen Tempo zurecht kommt.
     
    Nachdem ich mich schon einmal mit der Möglichkeit auseinandergesetzt hatte, mich mit Mathematik, Programmierung und Algorithmen zu beschäftigen, schaute ich mich nach anderen Anbietern mit einem flexibleren Studienmodell um. Zuerst stieß ich dabei auch auf die WBH, die ja ein besonders bekannter Anbieter technischer Fernstudiengänge ist. Es gab aber auch weniger bekannte Anbieter mit interessanten Konzepten. An Springer Campus - damals noch W3L AG - gefiel mir, dass sie sehr transparent über die Inhalte ihrer Module informierten. Man konnte sich zu jedem Modul Probelektionen freischalten lassen und sich so einen Eindruck von der Lernplattform verschaffen. So konnte ich sehen, dass mir die Inhalte des Curriculums gefielen. Die freie Zeiteinteilung bei der Belegung der Module und der Anmeldung von Prüfungen hätte es aber auch bei anderen privaten Anbietern - wie z.B. der WBH - gegeben
     
    Sehr interessiert hätte mich auch der Studiengang IT-Analyst der Hochschule Kaiserslautern. Auch hier gefiel mir die Zusammenstellung der Themen und Module. Und auch die HS Kaiserlautern informierte sehr transparent über Inhalte. Leider war einschlägige Berufserfahrung eine Zugangsvoraussetzung, die ich nicht erfüllen konnte.
     
    So bin ich also bei Springer Campus gelandet. Sie boten ihren Studiengang in Kooperation mit der FH Dortmund an, die später auch den Abschluss verleihen sollte.
     
    Was mir am Studium bei Springer Campus gefallen hat:
     
    Die inhaltliche Zusammenstellung des Curriculums: Der Studiengang hatte vergleichsweise viele Module zur Programmierung in Java, so dass ich mir zumindest in einer Programmiersprache eine wirklich solide Grundlage erarbeiten konnte. Außerdem wurde das Gebiet der Softwaretechnik sehr ausführlich behandelt. Die didaktisch gut gemachten Mathematik-Module: Hier ist insbesondere der sehr sanfte Einstieg mit dem Modul "Mathematisch-logische Grundlagen der Informatik" zu nennen. Die Module "Mathe 2" (Analysis und Lineare Algebra) und "Mathe 3" (Numerik, polynomiale Interpolation und Approximation sowie Grundlagen der Kryptographie) waren schon schwieriger. Gut waren hier die zur Verfügung gestellten PDF-Tools, mit denen man sich beliebig viele Übungsaufgaben erstellen konnte. Das Tutorensystem: In jedem Modul hatte man einen Ansprechpartner, der Einsendeaufgaben korrigierte und Fragen beantworten konnte. Das war mir oft sehr nützlich. Allerdings muss man sich klar machen, dass man als Studierender an einer Hochschule eine "Holpflicht" hat und nicht "mit dem Löffelchen gefüttert" wird. Manche Studierende berichteten mir, dass sie lediglich Aufgaben eingesendet und Korrekturen empfangen hatten. So kann es gehen, wenn man keinen Kontakt mit dem Tutor aufnimmt. Ich habe mich bei allen Tutoren vorgestellt, bei den Korrekturen nachgehakt, z.T. überarbeitete Lösungen eingereicht oder auch Fragen zum Stoff oder zum Transfer in die Praxis gestellt. So ergab sich oft ein recht intensiver Austausch mit meinen Tutoren. Mir blieb zwar nichts anderes übrig, als berufsbegleitend zu studieren, aber deswegen musste ich ja kein Einzelkämpfer sein. Die gute Betreuung durch das Studienbüro: Springer Campus war ein vergleichsweise kleiner Fernstudien-Anbieter. Man kannte die Mitarbeiter und die Mitarbeiter kannten die Studierenden. Wenn es etwas zu klären gab, hatte man schnell einen Verantwortlichen an der Strippe. Man konnte mit den Leuten reden. Das war oft sehr hilfreich. Die Lotsenfunktion des Studienbüros beim Finden eines Betreuers: Das hat sowohl bei der Projektarbeit als auch bei der Bachelorarbeit hervorragend geklappt. Die Präsenztage: Diese waren zunächst verpflichtend und dann freiwillig. Bei vielen Studierenden waren sie unbeliebt, weil man dafür nach Dortmund anreisen musste. Darum gingen die Teilnehmerzahlen stark zurück, als die Präsenztage freiwillig wurden. Schade, denn die Präsenztage waren sehr nützlich, um mit anderen Studierenden in Austausch zu kommen und auch die Hochschullehrer ein bisschen kennenzulernen. (Das hilft zum Beispiel, wenn man einen Betreuer für seine Bachelorarbeit sucht.) Das Praxisprojekt: Da ich fachfremd studiert habe, war mir bei Aufnahme meines Studiums nicht klar, wo und wie ich ein Praxisprojekt würde durchführen können. Ich habe darauf vertraut, dass sich schon etwas ergeben würde. So kam es dann ja auch. Gerade das Praxisprojekt hat im Vergleich zu anderen Modulen sehr viel Zeit verschlungen, vor allem gemessen daran, das es nur 5 ECTS brachte. Aber ich würde sagen, dass ich durch dieses Modul am meisten gelernt habe, weil ich im Praxisprojekt die Inhalte vieler Module verbinden und im Zusammenspiel erleben konnte.  Die flexible Steuerung des Workloads: Es zeichnet vor allem private Anbieter von Fernstudiengängen aus, Module im eigenen Rhythmus belegen und bearbeiten zu können; und regelmäßige Prüfungstermine für alle Module anzubieten. Diese Flexibilität erfordert vom Anbieter natürlich einen hohen Aufwand, den man mit entsprechenden Studiengebühren bezahlt. Wenn man berufsbegleitend studiert, ist das aber sehr wichtig. Auch wenn ich über weite Teile meines Studiums ziemlich schnell vorangekommen bin, gab es Zeiten, in denen ich ein von außen vorgegebenes Tempo nicht hätte halten können. Das hätte sich bei manchen Anbietern verlängernd auf die Studienzeit ausgewirkt. Die Möglichkeit, mein Studientempo flexibel an meine berufliche und familiäre Belastung anpassen zu können, war für meinen Studienerfolg sehr wichtig. Die Anbindung an die FH Dortmund: Insbesondere bei der Projektarbeit und bei der Bachelorarbeit fand ich es toll, Betreuer zu haben, die auch ganz normal im täglichen Lehrbetrieb einer Präsenzhochschule stehen. Ich hatte zu keinem Zeitpunkt das Gefühl, dass meine Betreuer zwischen den Präsenzstudierenden und uns Fernstudierenden einen Unterschied machten.  
    Was mir nicht so gut gefallen hat:
     
    Manche Module waren "schlecht gealtert": Es gibt Module, bei denen es nichts ausmacht, wenn sie ein paar Jahre "auf dem Buckel" haben. Dazu zählt z.B. Mathematik aber auch Module wie "SQL und relationale Datenbanken". Und auch in einem einführenden Modul in Algorithmen und Datenstrukturen ändern sich die Inhalte nicht alle Jahre. Dringend überarbeitungswürdig gewesen wäre das Modul "Multimedia". Hier spielte z.B. Flash noch eine große Rolle. Aber auch im Modul "IT-Recht" waren viele Inhalte durch neuere Gesetzgebung nicht mehr aktuell. Dazu gehörte z.B. das Thema DSGVO. Die ist ja nicht vom Himmel gefallen. Da wäre es schon wünschenswert gewesen, darauf hinzuarbeiten, dass das Modul rechtzeitig aktualisiert wird. Für ein Studium der Web- und Medieninformatik kam mir das Thema Frontend zu kurz: Das Modul "Skriptsprachen", das als gründliche Einführung in JavaScript konzipiert war, wurde ersatzlos und ohne Ankündigung gestrichen, kurz bevor ich es belegen wollte. Im Modul "Web-Engineering" wurde unter anderem das GWT behandelt. Da wird das Front-End in Java geschrieben und per Transpiler zu JavaScript übersetzt. Mag sein, dass das mal als aussichtsreicher Ansatz galt. Letztlich hat es sich nicht durchgesetzt. Gleichzeitig hat sich JavaScript als Sprache stark weiterentwickelt. Es wäre wünschenswert, im Studium wenigstens ein modernes UI-Framework zu behandeln, also etwas wie Angular, React oder Vue. Freiwillige Präsenztage: Die Entscheidung, die Präsenztage freiwillig zu machen, fand bei den Studierenden viel Beifall und war damals auch durch Gesetzgebung des Landes NRW so vorgegeben. Ich halte die politische Entscheidung rückblickend für falsch. (Soweit ich weiß, ist das von der neuen Landesregierung inzwischen auch wieder korrigiert worden.) Leider habe ich den Eindruck gewonnen, dass viele Studierende mit der neuen Freiheit nicht sinnvoll umgehen konnten. Dazu nur ein Beispiel: Wenn man sich erkundigte, welche Module als herausfordernd wahrgenommen wurden, hörte man immer wieder "Mathe 2", also Analysis und Lineare Algebra. Eben dazu wurden auf den Präsenztagen regelmäßig Tutorien angeboten. Die spärlich besucht wurden. Es passt für mich nicht zusammen, wenn man klagt, wie schwierig Mathe sei, aber angebotene Hilfen nicht wahrnimmt. Die Lernplattform als solche: Sie hatte viele Merkmale, die de facto niemand nutzte. Dazu zählten insbesondere Social Media Funktionen wie eigene Foren und Messaging Systeme. Meine Kommilitonen nutzten für ihren Austausch lieber allgemeine Plattformen wie Facebook oder Whatsapp. Es macht in meinen Augen auch wenig Sinn, wenn jeder Anbieter so etwas selbst implementiert. Insbesondere nach Einführung der neuen Plattform reagierten die Server manchmal recht träge, was angesichts der Studierendenzahlen nicht nachvollziehbar war. Für einen Studiengang, der einen Schwerpunkt auf serverseitige Webprogrammierung legt, war die neue Plattform nicht gerade ein Aushängeschild. Die hier investierten organisatorischen und finanziellen Ressourcen hätte man meiner Meinung nach lieber in die Aktualisierung der obenen genannten Module oder in neue Inhalte investieren sollen. Und stattdessen eine der vielen vorhandenen Lernplattformen nutzen können, die andere Hochschulen mit Erfolg verwenden.  
    Was mir gar nicht so wichtig war:
     
    Der inhaltliche Schwerpunkt "Web- und Medien". Betont wurde die serverseitige Web-Programmierung. Die fand ich auch interessant. Aber ich habe mein Studium in erster Linie als Informatikstudium an einer FH aufgefasst. Das Curriculum eines Bachelorstudiengangs muss naturgemäß erst einmal breite Grundlagen vermitteln. Zwar ist es "chic" geworden, schon im Bachelor recht spezialisierte Bezeichnungen zu verwenden, aber das sollte man meiner Meinung nach nicht überbewerten. Mathematik, Programmierung, Algorithmen, Betriebssysteme, Netze, Softwaretechnik, das alles sind Beispiele für Themen, die wohl in jedem Bachelor der Informatik vorkommen dürften. Echte Spezialisierung dürfte erst im Master realistisch sein.  
    Was ich mir noch gewünscht hätte:
     
    180 ECTS sind naturgemäß zu wenig, um alle inhaltlichen Wünsche an ein Informatikstudium abzudecken. Aber es wäre schön gewesen, bestimmte Themen im Wahlbereich belegen zu können.
     
    Künstliche Intelligenz: Das einzige Modul, dass ein bisschen in diese Richtung wies, war das Wahlpflichtmodul "Text Mining". Aus meiner Sicht wäre es an der Zeit gewesen, ein Modul über künstliche neuronale Netze anzubieten. Datenvisualisierung: Ich hätte gerne aufbauend auf dem Modul "Statistik" ein Modul gehabt, bei dem man die dort vermittelten Verfahren mit einer geeigneten Programmiersprache und geeigneten Frameworks nutzt. Also z.B. ein Modul über Statistikprogrammierung mit R oder Python. Oder eines über Datenvisualisierung im Browser, z.B. mit Frameworks wie D3.js. Ethik der Informatik oder Informatik und Gesellschaft: Das ist für mich ein anderes Thema als Datenschutz oder IT-Recht. Es gibt in den letzten Jahren zunehmende Diskussionen über gesellschaftliche Auswirkungen neuer Informationstechnologien. Ich hätte mir ein Modul gewünscht, bei dem es um ethisches und/oder politisches Abwägen und Argumentieren in diesem Themenfeld geht.  
    Wie es war, berufsbegleitend zu studieren:
     
    Für den größten Teil meines Studiums habe ich 30 Stunden als Erzieher im Kindergarten gearbeitet. Das ging überraschend gut. Mein Job und mein Studium zehrten von unterschiedlichen Ressourcen. Im Kindergarten braucht man vor allem Nerven, um mit den vielen Stressoren und der sich ständig ändernden Situation umgehen zu können. Man muss kurzfristig auf neu auftretende Bedürfnisse und Konflikte reagieren. Wenn ich nach Hause kam, war ich nervlich ermüdet. Denken in formalen und abstrakten Strukturen ist im Kindergarten dagegen weniger gefragt. Zu meiner Überraschung war ich am späten Nachmittag und Abend gut in der Lage, mich noch lange auf Themen wie Mathematik, Programmierung, Algorithmen und Softwaretechnik zu konzentrieren. Das Studium bildete einen fruchtbaren Gegenpol zu meiner Arbeit. Und nach einem Wochenende vor dem Bildschirm freute ich mich auch wieder auf den Trubel mit den Kindern.
     
    Für die Projektarbeit und die Bachelorarbeit wollte ich meinen Arbeitsumfang aber reduzieren. Hier musste ich mit meinem Arbeitgeber verhandeln. Während ich anfangs an jedem Wochentag gearbeitet hatte, war es nun für mich günstiger, ganze Tage im Kindergarten und ganze Tage für mein Studium zu haben. Gerade wenn ich beim Projekt oder bei der Bachelorarbeit eine härtere Nuss zu knacken hatte, war es hilfreich, nicht immer mitten im Tag umschalten zu müssen, sondern an manchen Tagen auch mal 8 Stunden an einer Sache dranbleiben zu können, um nicht immer wieder neu in ein komplexes Thema finden zu müssen.
     
    Für meine Einrichtung war es sicher nicht leicht, mir solch ein Arbeitszeitmodell anzubieten. Dass es geklappt hat, lag sicher auch daran, dass auch meine Region inzwischen vom Erziehermangel betroffen ist, von dem man so häufig in den Medien liest. Vor zehn oder auch nur fünf Jahren wäre mein Wunsch nach Stundenreduzierung vielleicht nicht erfüllt worden. Aber die Träger müssen heute schon sehr flexibel sein und oft Stellen aus Teilzeitverträgen "zusammenstückeln", um die geforderten Betreuungsschlüssel erfüllen zu können. Aus frühpädagogischer Perspektive wäre es freilich wünschenswerter, Vollzeitkräfte in die Gruppen zu stellen, die ihre ganze Kraft den Kindern widmen. Die gibt der Arbeitsmarkt nach dem raschen Krippenausbau aber nicht mehr in ausreichender Zahl her. Und die Politik hat es versäumt, mit den Betreuungseinrichtungen auch die Ausbildungseinrichtungen für Fachpersonal auszubauen.
     
    Für mich kam diese erzwungene Flexibilität der Träger zur rechten Zeit. Gleichzeitig habe ich auch gespürt, wie viel dies den Mitarbeitern abverlangte. Denn auch ich musste mich damit auseinandersetzen, dass viele meiner Kolleginnen nur in Teilzeit anwesend waren. Das erforderte viele Absprachen und auch ein hohes Maß an Toleranz und Flexibilität. Ich bin dankbar, dass mein Team mich auf dem Weg zum Bachelor unterstützt hat und auch an meinem Studienfortschritt Anteil genommen hat. Das ist nicht selbstverständlich. Vor allem wenn man bedenkt, dass dieses Projekt das mittelfristige Ziel hatte, mich als Mitarbeiter zu verabschieden.
     
    Perspektiven nach dem Studium:
     
    Fast unmittelbar nach Abgabe meiner Bachelorarbeit ergab sich für mich eine Beschäftigungsmöglichkeit, die indirekt mit meiner Projektarbeit zusammenhing. Damals habe ich ja eine Steuersoftware für chronobiologische Experimente entwickelt. Im Moment mache ich etwas ähnliches für einen Neurobiologen. Mein Arbeitgeber ist also die örtliche Universität. Mit meinem Studienschwerpunkt Web- und Medieninformatik hat das wenig zu tun. Ich programmiere kleine Single Board Computer wie den Raspberry Pi. Weil das eine Menge mit Hardware zu tun hat, wäre es eigentlich besser, ich hätte technische Informatik oder Elektrotechnik studiert. Die Stelle ist in Teilzeit und befristet auf ein halbes Jahr. Ich sitze jetzt an drei Tagen pro Woche als einziger Informatiker unter lauter Biologen, die an sozialen Insekten forschen. Das ist ein spannendes Umfeld, weil ich unter sehr cleveren Leuten bin, die sich mit Inhalten beschäftigen, von denen ich keine Ahnung habe. Was mir fehlt, sind andere Software-Entwickler, von denen ich lernen könnte.
     
    Nicht so beeindruckend ist meine Bezahlung. Da ich als Kindergärtner schon recht viel Berufserfahrung hatte, war ich in der tariflichen Eingruppierung schon ganz gut gestiegen. Man kann ja regelmäßig in der Zeitung lesen, dass Erzieher nicht so gut bezahlt werden. Und gemessen an einer Ausbildungszeit von 5 Jahren, von denen 4 nicht vergütet sind, ist da schon etwas dran. Umso überraschter waren meine Kolleginnen, dass ich im Kindergarten den höheren Stundenlohn erziele als an meiner neuen Arbeitsstelle.
     
    Aus diesem Grund arbeite ich noch immer an zwei Tagen pro Woche im Kindergarten. Und freue mich auch jedes Mal darauf. Gleichzeitig fällt mir zum ersten Mal in meinem Leben auf, wie emotional fordernd diese Arbeit ist. Der Kontrast zu meiner neuen Arbeitsumgebung könnte kaum größer sein.
     
    Bis zum Juni werde ich also zweigleisig fahren und habe die Chance, erstmals Code gegen Bezahlung zu schreiben. Bis dahin muss sich erweisen, ob es in meiner Region Unternehmen gibt, die auch einen Berufseinsteiger im mittleren Alter einstellen möchten.
     
    Was ich aus dem Studium ziehe:
     
    Aufgenommen habe ich mein Studium, weil ich nicht nur einen beruflichen sondern auch einen fachlichen Wechsel wollte. Ein wichtiger Grund dafür war, dass ich es für unwahrscheinlich hielt, die Arbeit als Erzieher im Gruppendienst bis zum regulären Renteneintrittsalter ausüben zu können. (Ich habe leider nur wenige Erzieherinnen erlebt, die bis zum vorgesehenen Ende durchgehalten haben.) Ein Maßstab für meinen Studienerfolg wird also sein, ob der Sprung auf ein anderes Gleis tatsächlich klappt.
     
    Persönlich meine ich, stark davon profitiert zu haben, durch mein Studium viele neue inhaltliche Impulse und Perspektiven bekommen zu haben. Dadurch habe ich manchmal sogar neue Freude an meinem bisherigen Beruf gefunden. Nach einem Tag vor der Tastatur war es toll, am nächsten Morgen wieder eine Turnstunde zu leiten.
     
    Natürlich bin ich mit diesem Studium ein bisschen "der bunte Hund" im Team. Kindergärtner, die berufsbegleitend studieren, gibt es häufiger als man denkt. Aber meistens werden sie Sozialarbeiter, Sozialpädagogen oder Kindheitspädagogen.
     
    Insgesamt war es eine tolle Erfahrung, dieses Studium zu machen. Nach etwas mehr als 4 Jahren kann ich nun sagen:
    "Ich bin Informatiker."
  5. kurtchen
    Das Modul BWL1 ist Pflichtmodul sowohl für die Studierenden der Wirtschaftsinformatik als auch für die der Web- und Medieninformatik. Die Wirtschaftsinformatiker belegen zuvor noch das Modul "Grundlagen der BWL", über das ich leider nichts sagen kann. Möglicherweise hätte mir die Belegung dieses Moduls die Bearbeitung von BWL1 erleichtert. Web- und Medieninformatiker müssen im weiteren Studienverlauf mindestens noch BWL2 belegen. Für die Wirtschaftinformatiker folgen noch einige weitere BWL-Module:
    - strategisches Management und Controlling
    - Electronic Business
    - Human Ressource Management
     
    Für angehende Web-Informatiker wie mich ist BWL1 schon im 1. Semester vorgesehen. Ich hatte dieses Modul jedoch lange vor mir hergeschoben. Inzwischen hat sich das zu einem Bremsklotz meines Studiums entwickelt. BWL1 ist Voraussetzung für das Modul "Geschäftsprozess-Management" und für BWL2. Letzteres ist wiederrum Voraussetzung für weitere Module, die ich gerne belegen möchte, z.B. für "Business Intelligence". Es half also alles nichts. Ich musste dieses Thema endlich angehen.
     
    BWL habe ich lange vor mir hergeschoben
     
    Grund für meine "Aufschieberitis" war meine Vermutung, dass mir dieses Modul nicht so leicht fallen würde. Ich war Schüler eines katholischen Gymnasiums, das sich durchaus bemüht hat, mir eine solide Allgemeinbildung zu vermitteln. Betriebswirtschaftliche oder volkswirtschaftliche Grundkenntnisse gehörten damals aber nicht zum Kanon. Es wird ja in letzter Zeit immer häufiger beklagt, dass solche Themen in den Lehrplänen vieler allgemeinbildender Schulen nicht vorgesehen sind. Ich kann sowohl das FÜR als auch das WIDER der laufenden Diskussion nachvollziehen und möchte mich diesbezüglich auch gar nicht positionieren. Festzuhalten bleibt einfach, dass ich ohne nennenswerte Vorkenntnisse in dieses Modul gestolpert bin. Auch meine beruflichen Erfahrungen haben mir hier nichts genutzt. Als Beschäftigter in einem sozialpädagogischen Beruf genieße ich den Vorteil, einen vergleichsweise abwechslungsreichen Berufsalltag zu haben und innerhalb meines Berufes ganz unterschiedliche Kompetenzen entwickeln zu können. Betriebswirtschaftliche Kenntnisse gehörten in meinem Fall aber nicht dazu. Hier hatte ich immer das Glück, dass in unserer Verwaltung kompetente Kollegen saßen, die die abrechnungstechnischen Probleme für mich lösten. Das ist schön, weil es mir den Rücken für meine eigentlichen Aufgaben frei hält. Ich habe aber auch gemerkt, dass Kommilitonen, die in einem betrieblichen Umfeld arbeiten oder gar selbstständig sind, die Themen des Modules zugänglicher finden.
     
    Kursaufbau
     
    Der Kurs besteht aus 2 Lehrbüchern von 2 verschiedenen Autoren: "Basiswissen Externes Rechnungswesen" von Frank Wischmann und "Basiswissen Internes Rechnungswesen" von Rainer Ostermann. Zusammen kommt man auf an die 500 Seiten Lehrtext, so dass der Kursumfang für ein Modul bei Springer Campus als leicht überdurchschnittlich gelten kann.
     
    Teil 1: Externes Rechnungswesen
     
    Insbesondere mit dem Kursteil zum externen Rechnungswesen habe ich mich sehr schwer getan. Inhalte dieses Kurses sind:
    - Bilanz ziehen, Bilanzaufbau, Inventar und Inventur, Kapitalarten
    - die Buchhaltung als Teilgebiet des Rechnungswesens
    - die rechtlichen Grundlagen der Buchführungspflicht
    - Darstellung von Grundgeschäftsfällen mit T-Konten
    - Buchungssätze
    - Erfolgsbuchungen
    - das System der Umsatzbesteuerung
    - besondere Geschäftsfälle wie Beschaffung, Handelswaren, fertige und unfertige Erzeugnisse, Bezugskosten und Wertreduzierung, Grundlagen der Anlagenwirtschaft und der Personalwirtschaft
    - private Vorgänge wie Privatentnahmen und -einlagen
    - Bilanzierungsgrundsätze und -maßstäbe
    - Gewinn- und Verlustrechnung
    - aktive und passive Rechnungsabgrenzungsposten
    - Rückstellungen
    - Bewertung des Anlagevermögens, des Umlaufvermögens, der Forderungen und der Verbindlichkeiten
    - Bilanzpolitik und Bilanzkennzahlen
     
    Die meisten dieser Begriffe waren mir zu Beginn des Kurses völlig unbekannt. Das externe Rechnungswesen richtet sich nicht allein an Akteure innerhalb des Unternehmens sondern vor allem an solche außerhalb des Unternehmens. Zum Beispiel ist die Bilanz Grundlage für die Besteuerung des Unternehmen; insofern werden die Bücher z.B. auch für das Finanzamt geführt. Aber auch Kapitalgeber haben ein legitimes Interesse an den Büchern. Ihnen gegenüber muss man nachweisen, dass man ordentlich gewirtschaftet hat, um sich nicht etwa der Insolvenzverschleppung schuldig zu machen. Aus diesem Grund wird das externe Rechnungswesen stark durch gesetzliche Vorgaben und durch Konventionen bestimmt. Im Kurstext wird regelmäßig auf Paragraphen verwiesen, z.B. aus dem Handelsgesetzbuch oder auf Steuergesetze. Es empfiehlt sich, diese Texte als Sekundärliteratur zu besorgen und dort nachzuschlagen, wovon im Kurs die Rede ist. Schon allein, um sich an die spezielle juristische Sprache zu gewöhnen, die dort verwendet wird, was zumindest für mich im Laufe des Kurses immer eine zusätzliche Hürde blieb.
     
    Herausforderung doppelte Buchführung
     
    Große Schwierigkeiten hatte ich auch damit, die innere Logik der doppelten Buchführung zu verstehen. Jeder Vorgang wird grundsätzlich auf 2 Konten gebucht, einmal im Soll und einmal im Haben. Vieles davon war für mich kontraintuitiv und ich habe oft zurückblättern müssen, um Themen und Begriffe erneut zu erarbeiten, von denen ich eigentlich glaubte, sie endlich verstanden zu haben. Ein Beispiel für meine Schwierigkeiten: Gewinne werden im Eigenkapital als Haben gebucht, also im Prinzip als Schulden oder Verbindlichkeiten des Unternehmens. Das liegt daran, dass ein Unternehmen das Eigenkapital den Kapitalgebern schuldet, die es aus dem Unternehmen entnehmen könnten. Macht ein Unternehmen Verluste, so werden diese - für mich zunächst überraschend - im Eigenkapital ins Soll gebucht. Die Schuld gegenüber den Kapitalgebern schrumpft und diese können nun weniger Geld aus dem Unternehmen entnehmen. Wenn man einmal begriffen hat, warum das so gehandhabt wird, ist es in sich schlüssig, aber ich musste mir das sehr mühsam erarbeiten und hatte auch große Schwierigkeiten, mir solche Sachverhalte und Zusammenhänge zu merken.
     
    Online-Tests und Einsendeaufgaben
     
    Die Online-Tests konnte ich selten im ersten Anlauf lösen. Oft habe ich erst durch Rumprobieren die richtige Lösung gefunden. Dann begann meine eigentliche Arbeit: Anhand des Lehrbuches nachvollziehen, warum nun gerade DAS die richtige Lösung war. Das sorgte dann doch für gelegentliche Aha-Erlebnisse, die ich mir aber mühsam erkämpfen musste.
     
    Dabei glaube ich nicht, dass meine Schwierigkeiten dem Lehrtext geschuldet sind. Ich habe mir aus der Bibliothek Sekundärliteratur besorgt, hatte damit aber die gleichen Schwierigkeiten. Letztlich bin ich immer wieder auf den Lehrtext zurück gekommen, der immerhin den Vorteil einer kompakten, auf den Punkt kommenden Darstellung hatte. Nachdem ich mit den meisten Modulen meines Studiums recht gut zurecht gekommen bin, so z.B. auch mit den allgemein gefürchteten Mathematik-Modulen, ist mit dem externen Rechnungswesen meine Achillesferse gefunden. Dieses Thema wollte mir einfach nicht ins Hirn.
     
    So überrascht es nicht, dass ich auch bei den Einsendeaufgaben selten die volle Punktzahl erzielen konnte. Auch wenn ich meist viel mehr Zeit investiert hatte, als eigentlich vorgesehen war, und mir auch gelegentlich Rat von Kommilitonen eingeholt hatte: Irgendetwas war doch meistens falsch. Natürlich war es kein Problem, die Zulassung zur Online-Klausur zu bekommen. Aber im Hinblick auf die Präsenzklausur machte ich mir schon Sorgen, wie ich vergleichbare Aufgaben unter Zeitdruck und ohne die Möglichkeit, im Lehrbuch nachzuschlagen, lösen sollte. Nicht ganz zu unrecht, wie sich herausstellen sollte.
     
    Gleichwohl kann ich mich über den Lehrtext und die tutorielle Betreuung nicht beklagen. Aus Gesprächen mit BWL-affineren Leuten weiß ich, dass von uns nichts unmögliches verlangt wurde. Der Kurs behandelt recht grundlegende Themen und die Anforderungen der Klausur sind nicht zu hoch. Meine Schwierigkeiten haben wohl eher etwas mit meinem persönlichen Begabungsprofil zu tun.
     
    Teil 2: Internes Rechnungswesen
     
    Zum Glück fiel mir der zweite Kursteil zum internen Rechnungswesen leichter. Das interne Rechnungswesen richtet sich an Akteure innerhalb des Unternehmens. Seine Ergebnisse dienen z.B. der Preisfindung. Sie sind aber auch Grundlage für unternehmerische Entscheidungen, z.B. zwischen eigener Fertigung oder Fremdbezug einer Komponente. Hier geht es darum, Kosten zu ermitteln und auf Kostenstellen umzulegen, um für Produkte und Dienste Preise zu finden, die einerseits wettbewerbsfähig und andererseits kostendeckend sind.
     
    Dazu ein Beispiel: Wegen meines Umzuges war ich in den letzten Wochen häufiger bei IKEA. In der Markthalle stehen Einkaufswagen, die die Kunden mit ihren Möbelkartons beladen. Auf dem Parkplatz lassen sie die Wagen stehen. Nun muss jemand regelmäßig Wagen zurück in die Markthalle schieben und das verursacht der Filiale Kosten. Diese müssen in irgendeiner Weise auf die Produkte umgelegt werden. Wenn ich mein neues Billy-Regal mit nach Hause nehme, ist im Preis auch das Zurückschieben meines Einkaufswagens enthalten. Aber woher weiß man, wie viel man auf den Preis eines Regals aufschlagen muss, damit solche Kosten gedeckt sind? Und was ist mit anderen Kosten, die sich nur schwer einem einzelnen Artikel zurechnen lassen? Die Kundentoiletten mit ihrem Wasserverbrauch, die Handwerker, die das Gebäude instand halten, die Kosten für die Aktualisierung der Homepage, für die Kataloge, die Verwaltung...
     
    Nach dem Kurs zum internen Rechnungswesen versteht man etwas besser, wie so etwas abläuft. Die grobe Gliederung des Kurses ist:
    - Kostenartenrechnung
    - Kostenstellenrechnung
    - Kostenträgerrechnung
    - Weiterentwicklung der Kostenrechnung, z.B. mit Normalkostenrechnung oder Plankostenrechnung.
     
    Die Einsendeaufgaben waren für mich nachvollziehbarer als im externen Rechnungswesen. Nach meiner Empfindung ist das interne Rechnungswesen ein bisschen mehr "common sense" während das externe Rechnungswesen ein bisschen mehr "Konvention" ist. Im internen Rechnungswesen geht es oft darum, Gemeinkosten Kostenträgern und Kostenstellen zuzuordnen. Da das Rechnungswesen selbst Kosten verursacht, muss man immer wieder abwägen zwischen möglichst präziser Zuordnung der Kosten einerseits und dem Aufwand für diese Zuordnung andererseits, der natürlich vertretbar bleiben muss. Interessant ist, dass sich viele kleine und mittelständische Unternehmen diesen Aufwand komplett sparen und gar kein internes Rechnungswesen haben. Verpflichtet sind sie dazu auch nicht. Die entsprechenden Aufschläge und Umlagen auf Produkte und Dienstleistungen werden dann eher intuitiv oder nach Erfahrung festgelegt. So kann es aber leicht passieren, dass ausufernde Kosten in bestimmten Bereichen lange unbemerkt bleiben, was dann Gewinne aufzehrt. Oder dass ungünstige unternehmerische Entscheidungen getroffen werden. Manche Ergebnisse der Kostenrechnung können nämlich durchaus kontraintuitiv sein. So kann es manchmal den Gewinn eines Unternehmens mehren, Produkte z.T. zu einem Preis anzubieten, der unter den Selbstkosten liegt, weil sich so Gemeinkosten auf eine größere Stückzahl verteilen und die Gewinnmarge für andere Teile der Produktion so größer wird. Ich war oft überrascht, was bei meinen Rechnungen heraus kam.
     
    Das interne Rechnungswesen war für mich jedenfalls interessant und hat auch Spaß gemacht.
     
    Was kann man am Ende des Moduls?
     
    Mir gefallen am Modul auch die realistisch formulierten Ziele: Natürlich wissen wir am Ende nicht genug, um im internen oder externen Rechnungswesen tätig zu werden. Es geht eher darum, dass wir mit Menschen zu tun bekommen werden, die im Rechnungswesen tätig sind. Mit denen sollen wir besser kommunizieren können. Wenn wir Entscheidungen mittragen oder umsetzen müssen, die vom Rechnungswesen informiert sind, können wir damit vielleicht besser umgehen, weil wir zumindest ein erstes Verständnis für die Notwendigkeiten und Zwänge des Rechnungswesens haben. Dass ich hier ein paar Fortschritte gemacht habe, bemerke ich bereits, auch wenn ich befürchte, das sich das nicht in meiner Klausurnote bemerkbar machen wird.
     
    Online-Klausuren
     
    In der Online-Klausur konnte ich mir ein paar Bonuspunkte sichern. Eine Besonderheit in diesem Kurs ist, dass man zwei Online-Klausuren schreiben kann, eine für jeden Kursteil. Das bedeutet natürlich auch doppelten Zeitaufwand. Gleichzeitig kann man pro Klausur nur die Hälfte der sonst üblichen Bonuspunkte erlangen. Ich glaube, meine Bonuspunkte werde ich diesmal gut gebrauchen können. In der Online-Klausur konnte ich mich natürlich an den bislang gelösten Einsendeaufgaben orientieren und in den Lehrbüchern nachschlagen. Das darf man in der Präsenzklausur nicht. Dies ist also ein Kurs, bei dem auch ein bisschen Auswendiglernen gefragt ist. Beim internen Rechnungswesen war das nicht so nötig, weil ich hier vieles plausibel fand, so dass ich mir vergessene Details wieder erschließen konnte. Beim externen Rechnungswesen hingegen, das stark durch gesetzliche Vorgaben bestimmt wird, muss man mehr WISSEN. Für die Online-Klausur im externen Rechnungswesen kann ich anderen Studierenden den Hinweis geben, dass bei vielen anwendungsbezogenen Aufgaben auch nach den Paragraphen gefragt wird, die das Vorgehen bestimmen. Beim internen Rechnungswesen ist es nützlich zu wissen, dass auch Stoff aus dem letzten Kapitel "Die Weiterentwicklung der Kostenrechnung" abgeprüft wird.
     
    Präsenzklausur
     
    Kommen wir zur Präsenzklausur: Sie dauert 2 Stunden. Die Punkte verteilen sich genau gleichmäßig auf internes und externes Rechnungswesen. Beim externen Rechnungswesen gab es einige Wissensfragen zu grundlegenden Konzepten und Begriffen. Hier sollte man sich mit gründlicher Vorbereitung und fleißigem Lernen Punkte sichern können. Genau das habe ich neben meinem Umzug leider nicht geschafft. Bei vielen Aufgaben wurden Geschäftsvorgänge geschildert und man sollte zeigen, welche Buchungen das auf welchen Konten auslöst. Meine grundlegenden Schwierigkeiten mit diesem Thema zeigten sich auch in der Klausur. Es gibt keine Aufgabe, bei der ich mir sicher bin, das richtige Ergebnis geliefert zu haben. So blieb mir nur, bei möglichst jeder Aufgabe eine Lösung zu versuchen. Unterm Strich meine ich aber, dass die Klausur durchaus gutmütig gestellt war. Es ist schon meine eigene Verantwortung, falls ich diesmal nicht bestehen sollte.
     
    Die Aufgaben zum internen Rechnungswesen erschienen mir anwendungsbezogen und praktisch. Bearbeitungsschritte, an die ich mich nicht mehr erinnern konnte, glaubte ich mir erschließen zu können. Was diesen Teil der Klausur angeht, bin ich optimistischer. Anderen Studierenden würde ich empfehlen, zur Vorbereitung vor allem die Einsendeaufgaben und die Aufgaben der Online-Klausur zu wiederholen.
     
    Ein Ergebnis liegt mir noch nicht vor. Ich erwarte aber diesmal nicht, gut abzuschneiden. Angesichts der vielen Aufgaben in Beruf und Privatleben und der knappen Vorbereitungszeit wäre ich diesmal zufrieden damit, die Klausur nicht wiederholen zu müssen; auch wenn das zu Lasten meines Notendurchschnitts gehen sollte. Ich wäre einfach froh, dieses Modul hinter mir lassen zu können.
     
    Trotzdem war es sicher gut, sich einmal mit dem Thema Rechnungswesen auseinander zu setzen. Mein Respekt und meine Wertschätzung für Leute, die solche Aufgaben tagtäglich für mich erfüllen, hat durch das Modul jedenfalls zugenommen.
     
    Wie geht es weiter?
     
    Als nächstes möchte ich nun BWL2 und Geschäftsprozess-Management bearbeiten; beides Module, denen ich nicht unbedingt entgegen gefiebert habe. Beim Geschäftsprozess-Management habe ich inzwischen einen Teil des Lehrbuches gelesen. Es ist interessanter als ich dachte und ich sehe mehr Bezüge und Analogien zur Informatik als ich vermutet hätte. Das könnte eigentlich noch richtig Spaß machen.
     
    In BWL2 soll es um Ökonomie und Unternehmensführung gehen. Insbesondere beim Kursteil Ökonomie hoffe ich, dass ich daraus etwas mitnehmen kann. In der täglichen Berichterstattung der Medien spielt ja das wirtschaftliche Geschehen eine große Rolle und es ist auch politisch relevant. Oft habe ich das Gefühl, dass meine Allgemeinbildung nicht ausreicht, um hier folgen zu können. Vielleicht wird meine Zeitungslektüre nach diesem Modul ja etwas aufschlussreicher als bislang.
  6. kurtchen
    Das Modul "Text Minining" kann in den Studiengängen von Springer Campus im Vertiefungsbereich (also als Wahlpflichtfach) belegt werden. Es ist auch Teil des Hochschulzertifikates "Junior-Data-Analyst". Um dieses Zertifkat zu erlangen, muss man allerdings auch eine Projektarbeit mit dem inhaltlichen Schwerpunkt Datenanalyse schreiben.
     
    Ich hatte mich für dieses Modul entschieden, weil ich auch Data Mining belegt hatte. Der Schwerpunkt dieses Moduls lag stark auf der Anwendung von Data Mining Techniken in einem betrieblichen Kontext. Es war also eher aus der Perspektive der Wirtschaftsinformatik geschrieben. Mich hätte mehr interessiert, wie die verschiedenen Techniken zur Wissensextraktion mathematisch und algorithmisch funktionieren. Das spielte eine vergleichsweise geringe Rolle. Die Beschreibung des Moduls "Text Mining" ließ erwarten, dass der Schwerpunkt hier anders gelegt sein würde; nämlich auf Mathematik, Statistik und Algorithmen. Insofern hoffte ich, in diesem Modul das zu finden, was ich eigentlich im Modul "Data Mining" gesucht hatte. Ich wurde nicht enttäuscht.
     
    Wer dieses Modul im Wahlpflichtbereich belegen möchte, sollte wissen, dass es inhaltlich zu den anspruchsvollsten Modulen im Studiengang gehört. Das Modul "Statistik" wird als fachliche Voraussetzung genannt. Das finde ich nachvollziehbar. In diesem Modul spielen auch einige Inhalte aus dem ersten Mathematik-Modul eine Rolle: Mengen, Relationen und Graphen. Das Modul ist recht mathematisch. Wer nach seiner letzten Mathe-Klausur froh war, keine Formeln mehr lesen zu müssen, sollte um dieses Modul eher einen Bogen machen. In der Beschreibung heißt es, das Modul "Data Mining" erlaube es, Querbezüge herzustellen. Das trifft es recht gut. Wer die hier beschriebenen Verfahren begriffen hat, kann sich gut vorstellen, wie man vergleichbares mit den strukturierten und halbstrukturierten Daten in Datenbanken machen kann. Für mich hat daher das Modul "Text Mining" einige der Inhalte aus Data Mining noch einmal neu "zum Leben erweckt".
     
    Beim Thema Text Mining berühren sich Informatik, Mathematik, Statistik und die Geisteswissenschaften. Gerade letzteres könnte für manchen Informatik-Studenten herausfordernd sein. So lässt es sich beispielsweise nicht vermeiden, ein wenig linguistische Terminologie zu lernen. Begriffe wie Phonem, Graphem, Morphem, Flexiv, Derivativ oder Allomorphe muss man sich erschließen, wenn sie aus Schulzeiten nicht mehr geläufig sein sollten. Beim Thema Text Mining muss der Informatiker den Geisteswissenschaften ein Stück weit entgegenkommen. Es ist sehr interessant, wie Informatik und Sprachwissenschaft sich gegenseitig fachlich bereichern können. In diesem Bereich tut sich gerade einiges. So bezeichnet der Begriff "digital humanities" die Nutzung computergestützter Verfahren und digitaler Wissensressourcen in den Geisteswissenschaften. Solche digitalen Ressourcen sind zum Beispiel die großen Mengen natürlichsprachlicher Texte im Internet.
     
    Das Lehrbuch
     
    Das Lehrbuch "Text Mining: Wissensrohstoff Text" von Gerhard Heyer, Uwe Qualsthoff und Thomas Wittig hat an die 350 Seiten. Mir liegt der 3. Nachdruck vom Mai 2016 vor. Ursprünglich erschienen ist es 2006. Nun könnte man meinen, das sei für ein Lehrbuch im Bereich Informatik ein stattliches Alter. Man muss sich aber klarmachen, dass es hier nicht um konkrete Implementierungen und Technologien geht, die schnell wieder aus der Mode kommen. Das Buch beschäftigt sich mit Konzepten, Methoden und Algorithmen. Solches Wissen hat eine deutlich höhere Halbwertszeit. Insofern bin ich bei diesem Modul nicht der Meinung, eine inhaltliche Aktualisierung sei nötig. In der Lernplattform und bei den Einsendeaufgaben wird allerdings manchmal auf Online-Ressourcen verwiesen, die in dieser Form nicht mehr existieren. Eine Bearbeitung der Aufgaben ist trotzdem möglich, aber hier wäre eine Aktualisierung sicher benutzerfreundlicher.
     
    Das Thema Text Mining ist komplex. Man braucht viele Konzepte, Begriffe und Verfahren, die wechselseitig stark voneinander abhängen. Daraus ergibt sich die Schwierigkeit, in welcher Reihenfolge man die Inhalte präsentiert. Es lässt sich bei diesem Thema nicht vermeiden, manche Themen mehrfach anzusprechen, weil man ein erstes Verständnis braucht, um sich weitere Konzepte zu erschließen, die dann erst ein vertieftes Verständnis der ersten Themen ermöglichen. So ist es auch in diesem Buch. Immer wieder tauchen Themen aus früheren Kapiteln auf und erscheinen nun in neuem Licht. Diese didaktischen Schleifen sind nötig, weil man den Stoff nicht im ersten Anlauf begreifen kann.
     
    Das Einführende Kapitel "Wissen und Text" gibt auch einen kleinen historischen Rückblick über die automatische Wissensverarbeitung. Hier geht es u.a. um den Ansatz der Expertensysteme, der auf Logik, Fakten und Regeln basierte (Klassische KI). Dieser Ansatz erwies sich als nicht so fruchtbar, wie ursprünglich erhofft. Expertensysteme blieben Insellösungen, die über eine gewisse Komplexität nicht hinaus kamen. Außerdem war ein hoher Aufwand zur Wissenserschließung nötig. Text Mining beschäftigt sich mit der (halb-)automatischen Erschließung von Wissen aus unstrukturiertem Text und bietet somit neue Lösungsansätze.
     
    Im Kapitel "Grundlagen der Bedeutungsanalyse" berühren sich Linguistik und Statistik. Es geht um drei sehr grundlegende Begriffe, die für das Verständnis des gesamten Moduls essentiell sind:
    syntagmatische Relationen paradigmatische Relationen semantische Relationen  
    Vereinfacht gesagt, bezeichnet die syntagmatische Relation das gemeinsame Auftreten zweier Wortformen in einem Satz. Im vorhergehenden Satz stehen also die Wortformen "Satz" und "Auftreten" in syntagmatischer Relation. Das alleine hilft aber nicht weiter. Interessanter ist die statistisch-signifikante syntagmatische Relation. Hierzu betrachtet man die relativen Häufigkeiten einzelner Wortformen im Korpus. Auf dieser Grundlage bestimmt man die Wahrscheinlichkeit dafür, dass zwei Wortformen in einem zufällig zusammengestellten Satz vorkommen. Interessant sind nun Paare von Wortformen, die im Korpus wesentlich häufiger in syntagmatischer Relation stehen, als dies statistisch zu erwarten gewesen wäre. Der Grund ist oft, dass es einen Bedeutungszusammenhang zwischen den Wortformen gibt. So werden zum Beispiel die Wörter Butter und Brot häufiger gemeinsam auftreten als etwa Butter und Schraube.
     
    Der betrachtete Ausschnitt muss nicht immer ein Satz sein. Für viele Anwendungen ist es interessant, benachbarte Wörter zu betrachten. Wörter die statistisch häufig gemeinsam auftreten, bezeichnet man als Kookkurrenzen. Das Finden von Kookkurrenzen ist die Grundlage der Bedeutungsanalyse.
     
    Die paradigmatische Relation hat einen höheren Abstraktionsgrad. Hierfür betrachtet man den globalen Kontext einer Wortform. Das ist einfach die Menge ihrer signifikanten Kookkurrenzen. So könnte z.B. ein Wort wie Brot Kookkurrenzen wie Butter, Marmelade, Bäcker, Wurst und Honig haben. Das Wort Semmel könnte ähnliche oder die gleichen Kookkurrenzen haben. Die Kookkurrenzen sind also Mengen von Wörtern. Man vergleicht nun für Paare von Wörtern diese Wortmengen mittels eines Ähnlichkeitsmaßes. Sind die Kookkurrenzen ähnlich, so sagt man, die Wörter stehen in paradigmatischer Relation. Dies dürfte bei Brot und Semmel der Fall sein. Man sucht also Wörter, die in ähnlichen Kontexten verwendet werden. Dies ist für die Bedeutungsanalyse sehr fruchtbar.
     
    Semantische Relationen findet man, indem man die globalen Kontexte vor Bestimmung der Ähnlichkeit nach verschiedenen Kriterien filtert. Auf diese Weise findet man Zusammenhänge wie Kategorie, Funktion, Maßeinheit, Qualifizierung oder Ersetzungsklassen von Wörtern. Logische Relationen sind besonders trennscharf. Sie erlauben das Ziehen von Schlüssen. Dazu gehören z.B. Ober- und Unterbegriffe oder Gegensatzpaare.
     
    Interessant ist hierbei, dass Logik aus der Perspektive der Bedeutungsanalyse nicht als grundlegend erscheint. Grundlegend sind die statistisch-signifikanten syntagmatischen Relationen, also das auffällig häufige gemeinsame Auftreten von Wortformen. Logische Relationen erscheinen erst auf relativ hohen Abstraktionsstufen (sozusagen als emergente Eigenschaft). Dies ist ein wichtiger Unterschied zu den klassischen Expertensystemen, bei denen die Logik grundlegend war. Mit der Bedeutungsanalyse lassen sich logische Beziehungen zwischen Begriffen durch statistische Verfahren extrahieren.
     
    Im Kapitel "Textdatenbanken" geht es um Datenstrukturen, die sich für die Verarbeitung sehr großer Mengen natürlich-sprachlicher Texte eignen. Diese sollen einerseits platzsparend sein, andererseits einen sehr schnellen Zugriff erlauben. So soll es beispielsweise möglich sein, bei einem Korpus aus hunderten Millionen Wörtern schnell zu überprüfen, ob ein bestimmtes Wort enthalten ist. Eine Datenstruktur, die sich dafür gut eignet, sind sogenannte Tries. Sie sind letztlich Baumstrukturen, wobei jeder Knoten für einen Buchstaben eines Wortes steht. Das interessante an einem Trie ist, dass die Zugriffszeit nicht von der Anzahl der enthaltenen Wortformen sondern allein von der Länge des gesuchten Wortes abhängt.
     
    Auch die Herausforderungen der Segmentierung von Texten sind ein Thema dieses Kapitels. So könnte man meinen, das Ende eines Satzes lasse sich leicht finden, weil deutsche Sätze auf einen Punkt enden. Denkt man einen Moment darüber nach, merkt man, dass die Sache wesentlich komplizierter ist. Nicht jeder Satz endet mit einem Punkt. Nicht jeder Punkt markiert das Ende eines Satzes. Zum Beispiel kann ein Algorithmus leicht eine Abkürzung mit einem Satzende verwechseln. Auch die Identifikation einzelner Wortformen kann durch zahlreiche Sonderfälle erheblich verkompliziert werden.
     
    Im Kapitel "Sprachstatistik" geht es zunächst um die Zipfschen Gesetze. Diese erlauben z.B., die Anzahl der verschiedenen Wortformen eines Textes relativ gut zu schätzen, wenn seine Länge und seine Sprache bekannt sind. Sehr wichtig für das Verständnis der folgenden Kapitel ist der Abschnitt zur Differenzanalyse. Diese beruht auf dem Vergleich einer Textsammlung allgemeinsprachlicher Texte (dem Referenzkorpus) mit einer Sammlung bestimmter Texte (Analysekorpus). Die bestimmten Texte könnten zum Beispiel Zeitungsartikel eines bestimmten Themenbereiches sein. Die Differenzanalyse sucht mit statistischen Methoden nach Wortformen im Analysekorpus, die wesentlich häufiger auftreten als im Referenzkorpus. Dies ist ein Hinweis darauf, dass diese Wortformen für den Text oder die Textgattung in besonderer Weise bedeutungstragend sind. Dies ist zum Beispiel eine Grundlage für die automatische Beschlagwortung von Texten.
     
    Relativ anspruchsvoll sind die Abschnitte zum probabilistischen Sprachmodell. Hier geht es um Hidden-Markov-Modelle. Sie sind endliche Automaten, deren Zustandsübergänge mit Wahrscheinlichkeiten versehen sind. Hidden-Markov-Modelle (HMMs) kann man vielfältig einsetzen, zum Beispiel in der Spracherkennung. HMMs können nämlich mehrdeutige Fälle durch Auswertung des Kontextes auflösen. Sie können z.B. entscheiden, welches von mehreren gleich oder ähnlich klingenden Wörtern gemeint ist.
     
    Spannend sind die Verfahren zur Visualisierung von Kookkurrenzen mit Graphen. Um Begriffe herum erscheinen Wortwolken mit Begriffen, die in einem inhaltlichen Zusammenhang stehen. Bei manchen Begriffen sind diese Wortwolken zusammenhängend. Bei anderen zerfallen sie in Cluster. Das sind dann oft mehrdeutige Begriffe. Ein Beispiel wäre der Begriff Maus. Er ist umgeben von einem Cluster aus Wortformen, die mit der Bedeutung Nagetier zusammenhängen. Ein weiterer Cluster steht für die Bedeutung Eingabegerät.
     
    Im Kapitel "Clustering" geht es um die entsprechenden Algorithmen. Gerade hier kann man vieles auf die Inhalte des Moduls "Data Mining" übertragen. Im Text Mining verwendet man Clustering-Algorithmen, um z.B. Dokumente mit ähnlichem Inhalt zu gruppieren. Es ist faszinierend, dass so etwas allein auf der Grundlage von Kokkurrenzen und Differenzanalyse möglich ist.
     
    Im Kapitel "Musteranalyse" geht es reguläre Ausdrücke, die ja jedem Informatiker geläufig sind. Diese eignen sich gut, um aus Texten bestimmte Informationen mit vergleichsweise geringem Aufwand zu extrahieren. Die Suche nach Morphem-Mustern eignet sich dagegen zur automatischen Extraktion von Fachbegriffen eines Fachgebietes.
     
    Die letzten beiden Kapitel beschäftigen sich mit "Hybriden Verfahren" und "Beispielanwendungen". Insbesondere im letzten Kapitel werden viele Inhalte aus den vorangegangenen Kapiteln im Anwendungskontext noch einmal präsentiert. Nicht zu vernachlässigen sind in diesem Modul die Anhänge, die z.B. linguistische Begriffe klären oder Stoff aus dem Modul Statistik wiederholen.
     
    Tests und Aufgaben
     
    Dass die Inhalte anspruchsvoll sind, merkte ich bei diesem Modul auch bei den Tests und Einsendeaufgaben. Selten gelang es mir, die Tests auf Anhieb richtig zu lösen. Gut war, dass die meisten relativ umfangreiche Kommentare enthielten, so dass man erklärt bekam, warum etwas falsch war. Das half ungemein. Es empfiehlt sich, die gleichen Tests nach ein paar Tagen zu wiederholen, um zu schauen, ob man den Stoff verinnerlicht hat.
     
    Bei allen Aufgaben dieses Moduls habe ich deutlich länger für die Bearbeitung gebraucht als angegeben. In vielen Aufgaben geht es darum, zu erklären, wie bestimmte Verfahren und Anwendungen des Text Minings funktionieren. Es geht um Methoden und Algorithmen. Ich musste die Kapitel schon sehr gründlich durcharbeiten, um den Stoff gut genug zu verstehen.
    Die Implementierung der Verfahren in einer konkreten Programmiersprache spielte im Modul dagegen keine Rolle. Das ist kein Kurs für Leute, die mal wieder etwas programmieren wollen. Es geht allerdings durchaus darum, bestimmte Algorithmen so gut zu verstehen, dass man sie implementieren könnte. Ich habe jetzt z.B. eine ganz gute Vorstellung davon, wie Clustering funktioniert. Das schöne daran ist: Wenn man das verstanden hat, könnte man alles mögliche clustern, nicht bloß Texte oder Wortformen. Das Modul hat für mich so ein paar Wünsche erfüllt, die mir im Modul zu Algorithmen und Datenstrukturen offen geblieben sind.
     
    Klausur
     
    Bei der Online-Klausur habe ich leider gemerkt, dass ich die Aufgaben zwar prinzipiell hätte lösen können, allerdings nicht in der zur Verfügung stehenden Zeit. Dazu hätte man die Konzepte und Methoden schon sehr verinnerlichen müssen, um Lösungen praktisch ohne Nachdenken hinschreiben zu können. Das lief bei mir eher mittelprächtig, weswegen ich der Präsenzklausur mit Sorge entgegen sah.
     
    Die Präsenzklausur war dann einfacher als gedacht. Aber das ist kein Modul, das man nebenbei macht. Es ist nötig, alle Einsendeaufgaben gründlich zu bearbeiten. Und man sollte das Feedback seines Tutors nutzen, um fachliche Lücken zu schließen.
     
    Die Rückmeldungen meines Tutors waren in diesem Modul z.T. recht umfangreich, was mir bei diesem Thema auch sehr geholfen hat. Nachdem mir in der Online-Klausur die Zeit davongelaufen war, bekam ich auch ein paar Hinweise, wie ich schneller werden könnte. Ich habe versucht, dass in der Präsenzklausur zu beherzigen und hoffe, dass ich etwas davon umsetzen konnte. Auf das Ergebnis warte ich noch.
     
    Fazit
     
    Dieses Modul hat mich leider sehr lange beschäftigt. Gebucht hatte ich es schon Anfang 2017. Ich hatte angenommen, das irgendwann "zwischendrin" zu bearbeiten. Aber es war zu anspruchsvoll, um es nebenbei zu schaffen. Ich habe dann zunächst geschaut, dass ich Pflichtmodule abarbeite. Dann hielt mich meine Projektarbeit auf Trab. Nach dem Sommer war ich ein bisschen genervt, dass ich Text Mining noch immer nicht abgeschlossen hatte. Ich hatte das Lehrbuch schon zwei Mal zu zwei Dritteln gelesen, hatte es aber immer wieder abbrechen müssen. Um das Modul fertig zu kriegen, musste ich nun abermals von vorne anfangen. Hilfreich war dabei, dass ich Text Mining mit dem Modul "Präsentieren" kombiniert habe, dass mich auf eine ganz andere Weise forderte. Noch mehr abstraktes Denken hätte ich parallel zu Text Mining nicht geschafft.
     
    Man kann also sagen, dass Text Mining für mich ein anstrengendes Modul war. Es war allerdings auch ein Modul, dass ich inhaltlich unheimlich interessant fand. Gerade weil es fachlich zwischen Informatik, Statistik und Sprachwissenschaft angesiedelt ist, was die Sache natürlich auch schwierig macht. Im Wahlpflichtbereich gibt es leichtere Optionen. Andererseits meine ich, dass die Module "Data Mining" und "Business Intelligence" erst mit diesem Modul "komplett" sind, weil eben hier die mathematische und algorithmische Perspektive betont wird. Das Modul ist klar für Studierende, die sich im Wahlpflichtbereich ein bisschen fordern wollen.
     
    Aktuell warten nur noch zwei gebuchte Module auf mich - IT-Projektmanagement und Electronic Business. In beide habe ich schon reingeschnuppert. Ich hoffe, diese beiden Module im Januar abschließen zu können. Danach sollte nur noch die Bachelorarbeit vor mir liegen.
  7. kurtchen
    Mein erstes Modul bei der W3L war "Grundlagen der Informatik 1". Dies ist das erste von insgesamt 5 aufeinander aufbauenden Modulen zur Programmierung in Java. In GdI1 fängt man an mit strukturierter Programmierung. Objektorientierte Konzepte werden in diesem Modul noch umschifft. Das heißt auch, dass man lediglich Konsolenprogramme schreiben kann, denn der Umgang mit GUI-Bibliotheken setzt voraus, dass man objektorientierte Konzepte verstanden hat.
     
    Hier geht es zunächst einmal um grundlegende Dinge:
    - Datentypen
    - Probleme und Fehlerquellen bei Fließkommaarithmetik
    - Variablen und Zuweisungen, Konstanten
    - Felder
    - Funktionen bzw. Methoden
    - Lokale Variablen
    - Übergabe von Parametern
    - Call-by-value vs. call-by-reference
    - Bedingte Verzweigungen und andere Kontrollstrukturen
    - Schleifen
    - Darstellung des Programmflusses, zunächst mal klassisch mit Nassi-Shneidermann-Diagrammen
    - Und dann mit UML
    - Felder
    - einfaches Sortieren
    - Rekursion
     
    Es wird empfohlen, die Programmierübungen in der Entwicklungsumgebung BlueJ zu machen. Daran habe ich mich gehalten und ich fand das für den Einstieg gut.
     
    Es gibt ein erstes Kapitel über Software-Tests, z.B. über Regressionstests. Ferner gibt es ein Kapitel über Verifikation. Hier geht es darum, die Korrektheit eines Programms formal zu beweisen. Dies war das einzige Kapitel, das ich nicht so gut verständlich fand. Hier ist es mir auch nicht gelungen, die Einsendeaufgabe zur vollen Zufriedenheit meiner Tutorin zu lösen.
     
    Um auch mal etwas anderes kennen zu lernen, endet der Kurs mit zwei recht knappen Kapiteln über andere Programmiersprachen. Man experimentiert ein wenig mit C. Das ist aber vom Umfang her nicht genug, um diese Sprache zu lernen. Eher bekommt man ein Bewusstsein dafür, was Java einem alles abnimmt und worum man sich in einer vergleichweise maschinennahen Sprache selber kümmern muss. Und dann kam noch ein recht kurzes Kapitel über Processing. In dieser Sprache kann man mit geringen Vorkenntnissen Grafik und Animationen programmieren. Processing basiert letztlich auf Java. Ich habe das als spaßiges Element erlebt, um am Ende auch mal etwas anderes zu machen als immer nur Konsolenanwendungen.
     
    Die wenigsten Inhalte des Kurses waren völlig neu für mich. Aber ich fand den didaktischen Aufbau recht gelungen und habe noch einmal viele eigentlich bekannte Dinge in einem anderen Licht oder in einem anderen Zusammenhang gesehen. So war ich am Ende doch sehr froh, diesen Kurs als solide Grundlage gemacht zu haben.
     
    Die Rückmeldungen und Antworten meiner Tutorin waren in diesem Kurs besonders ausführlich. Hier gab es ein erkennbares Bemühen, dem Einsteiger ein bisschen mehr Hilfe zu geben. Die Rückmeldungen in den fortgeschritteneren Kursen sind deutlich knapper, vor allem, wenn die eingereichten Lösungen passen.
     
    Einen kleinen Schock erlebte ich, als ich durch die freiwillige Online-Klausur am Ende des Kurses durchgefallen bin. Hier hatte ich mich zeitlich völlig verzettelt. Außerdem hatte ich unterschätzt, dass ich ein wenig Zeit extra einplanen musste, um Lösungen zu zippen und hochzuladen. In der Bedienung der Lernplattform war ich noch etwas unerfahren und ungeschickt. Darum gab es da ein paar Fehlbedienungen und am Ende war die Zeit um, bevor ich alles hochladen konnte.
     
    Hier hat mir sehr weitergeholfen, dass meine Tutorin mich motiviert hat, trotzdem zügig die Präsenzklausur anzugehen. Ich habe auch ein paar gute Tipps zur Zeiteinteilung in der Klausur bekommen und generell zum Thema Prüfungsvorbereitung. Im Grunde alles Sachen, die einem der gesunden Menschenverstand hätte sagen sollen, aber es war für mich schon lange her, dass ich mich einer Prüfung unterzogen hatte. Und so war das wirklich sehr hilfreich, das noch mal so gesagt zu bekommen. (In späteren Modulen wird allerdings schon vorausgesetzt, dass man seine Lerntechnik drauf hat, sich selbst motivieren und auch mit Rückschlägen umgehen kann.)
     
    Nach der verpatzten Online-Klausur bin ich doch mit großen Respekt und ziemlichem Bammel in die Präsenzklausur gegangen. Ungewohnt war hier, nur mit Papier und Stift arbeiten zu können und keine IDE zu haben. Darauf hatte mich meine Tutorin aber vorbereitet und mir geraten, auch mal zu üben, ein paar Aufgaben nur mit Stift und Papier zu lösen, um ein bisschen auf Tempo zu kommen. Man schreibt ja heute nur noch selten mit der Hand. Zu meiner großen Überraschung, fiel mir die Präsenzklausur dann recht leicht. Ich war innerlich ruhig, konnte mich gut konzentrieren, mir die Zeit gut einteilen und meine Leistung erbringen. Mit dem Ergebnis war ich dann auch zufrieden.
     
    Nach dem Abschlusstest jedes Moduls bekommt man einen Link zu einer Online-Befragung geschickt. Hier kann man das Modul und auch seinen Tutor bewerten.
     
    Auf mein Klausurergebnis musste ich ca. 3 Wochen warten. Das kam mir ewig vor, aber heute weiß ich, dass das eigentlich ein recht guter Wert war. Meistens dauert es noch ein bis zwei Wochen länger.
     
    Fazit: Dieser Einstieg ins Studium hat mir viel Spaß gemacht, mein Selbstvertrauen gestärkt und mich stark motiviert, die nächsten Schritte zu gehen. Programmieren war natürlich auch ein bisschen das, was ich mir noch ganz naiv unter einem Informatik-Studium vorgestellt hatte. Mein nächstes Modul sollte dann "Rechnerstrukturen und Betriebssysteme" werden und das war natürlich ganz anders. Aber davon erzähle ich ein andermal.
  8. kurtchen
    Am Montag war die Lernplattform von Springer Campus für längere Zeit nicht erreichbar. Ein größeres Update wurde eingespielt, was uns Studierenden allerdings einige Tage vorher per Mail angekündigt worden war. Die Plattform hat nun ein neues Design.
     
    Zugegeben: Das bisherige Design sah ein wenig altbacken aus. So nach WindowsXP.
     
    Natürlich habe ich nun erst mal ein wenig Schwierigkeiten, mich zurecht zu finden, weil die verschiedenen Schaltflächen nicht mehr an den gleichen Stellen sind. Auf so etwas reagiere ich nicht mit Begeisterung, aber natürlich weiß ich, dass ich mich schon umgewöhnen werde.
     
    Der Vorteil des neuen Designs: Es ist "responsive", d.h. das Layout passt sich an kleinere Bildschirme von Tablets und Smartphones an, z.B. indem Inhalte untereinander angeordnet werden, die sonst nebeneinander stehen oder indem Menüs eingeklappt werden, die nicht unbedingt gebraucht werden. Es sollte in Zukunft leichter sein, Tests unterwegs zu bearbeiten. Im Prinzip wäre es sogar denkbar, den Text von Wissensbausteinen am Handy zu lesen. Ich vermute, dass das nicht bei allen Modulen gut gehen wird. Im Modul "Computernetze" gab es viele Diagramme, die eigentlich schon für meinen Laptop-Bildschirm zu groß waren. Die konnte man verkleinern, aber dann wurde es schwieriger Details zu erkennen. Aber grundsätzlich eine gute Sache.
     
    Inakzeptabel ist allerdings die Farbgebung: Die Schriftfarbe ist ein Grau, dass vor dem weißen Hintergrund für mich einfach zu kontrastarm ist. Ich schaffe es nicht mehr, längere Zeit zu lesen. Es ist sehr anstrengend und ich bekomme schnell Kopfschmerzen. Zum Glück gilt das nicht für die Darstellung in den Wissensbausteinen, wo man ja den Löwenanteil der Texte lesen wird. Hier wurde ein grauer Hintergrund gewählt, der weniger blendet, so dass die Schrift nicht so überstrahlt wird. Zwar wäre mir auch hier eine dunklere Schrift lieber, aber damit kann ich leben. Schwierig wird es für mich aber bei den Tests und Aufgaben. Hier ist der Hintergrund hell und überstrahlt das Grau der Schrift. Helfen würde mir hier eine dunklere Schrift oder ein etwas dunklerer Hintergrund. Natürlich gibt es immer die Möglichkeit, im Browser eine andere Darstellung zu erzwingen, was ich wahrscheinlich für's erste tun muss.
     
    Eine weitere Schwierigkeit für mich: Bei den Tests unterscheiden die Ampelfarben Rot und Grün die Ergebnisse "geschafft" und "nicht geschafft" bzw. "nicht bearbeitet". Hier wurden recht blasse Farben gewählt, die sich in ihrer Helligkeit recht ähnlich sind. Für mich ist das ein Problem, da ich Rot und Grün nicht sicher unterscheide. Das ist ja bei Männern nicht selten. Helfen würden mir hier sattere Farben oder deutlichere Helligkeitsunterschiede zwischen Rot und Grün. Interessant eigentlich, weil die recht verbreitete Rot-Grün-Schwäche im Modul "Webdesign und Webergonomie" thematisiert wird.
     
    In der alten Plattform konnte man zwischen drei Farbschemata wählen. Jetzt scheint es eine solche Möglichkeit nicht mehr zu geben.
     
    Ich habe dem Studienbüro von meinen Schwierigkeiten berichtet. Mir wurde ins Aussicht gestellt, dass es in der nächsten Zeit noch weitere kleinere Änderungen am Erscheinungsbild der Plattform geben wird und das man sich bemühen wird, die Rückmeldungen der Studierenden zu berücksichtigen. Insofern hoffe ich, dass in Zukunft wieder eine Auswahl zwischen Farbschemata möglich sein wird. Das war schon ein Feature, das ich gerne zurück hätte.
     
  9. kurtchen
    Warum ich das Modul "Programmieren in C++" belegt habe
     
    Das Modul "Grundlagen der Informatik 2" ist im Curriculum von Springer Campus das einführende Modul in die objektorientierte Programmierung; und zwar sowohl im Studiengang "Web- und Medieninformatik" als auch in "Wirtschaftsinformatik". Die Lehrsprache ist Java, was derzeit an deutschen FHs und Uni nicht unüblich sein dürfte. Ergänzend gibt es im Lehrbuch aber auch je ein Kapitel zu C++ und C#. Die Idee ist, dass der Studierende auch andere objektorientierte Sprachen als Java kennenlernt. Ich war damals ziemlich gespannt auf diese Kapitel, zu denen es auch je eine Einsendeaufgabe gab. Allerdings war ich nach dem Durcharbeiten ein bisschen enttäuscht. Denn es ist natürlich nicht möglich, in der knappen Form eine weitere objektorientierte Sprache zu lernen. Vielmehr haben diese Kapitel mein Verständnis für die Besonderheiten der Sprache Java - sozusagen in Abgrenzung zu C++ und C# - geschärft. Das war auch ein schönes Ergebnis.
     
    Dennoch blieb bei mir der Wunsch, zumindest C++ und C noch einmal näher kennen zu lernen. Interessant daran war für mich, dass sowohl C++ als auch C echte Compilersprachen sind. An C interessierte mich vor allem der Umgang mit Zeigern, die ja in Java nicht zur Verfügung stehen. An C++ interessierte mich die Mehrfachvererbung und die dynamische Speicherverwaltung, um die man sich selbst kümmern muss.
     
    Leider bietet Springer Campus aktuell keine gründliche Einführung in C oder C++ an. Ich schaute mich also nach anderen Anbietern um. Und wurde fündig bei der Virtuellen Hochschule Bayern (VHB). Diese bietet zum einen das Modul "Programmieren in C++". Das ist eine Einführung in die strukturierte und objektorientierte Programmierung in C++. Es steht somit inhaltich irgendwo zwischen GdI1 und GdI2 im Lehrplan von Springer Campus. Außerdem kann man dort das Modul "Programmieren in C" belegen. Das ist ein Programmierpraktikum in C und richtet sich an Studierende, die Erfahrung mit einer objektorientierten Programmiersprache haben. (Idealerweise natürlich C++, aber auch Java wäre denkbar.) Interessant an diesem Modul ist, dass es in Kooperation mehrerer Hochschulen entwickelt wurde, die im Laufe des Kurses verschiedene "Sichten" auf die Programmiersprache C vermitteln.
     
    Man könnte also, von Java kommend, zunächst C++ belegen, um die bekannten objektorientierten Konzepte aus der Perspektive von C++ zu erfahren. Und dann in einem zweiten Schritt das Programmierpraktikum in C buchen, um ohne objektorientierung auszukommen und auch noch etwas maschinennäher zu programmieren. Dieser Top-Down Ansatz war mein Plan, von dem ich nun den ersten Teil umgesetzt habe.
     
    Was ist die Virtuelle Hochschule Bayern?
     
    Die Virtuelle Hochschule Bayern ist eine gemeinsame Plattform von 9 Universitäten, 17 FHs und 5 weiteren Hochschulen in Bayern, die sich auf diesem Wege gegenseitig Module in Form von Online-Kursen zur Verfügung stellen. So kann man das den Präsenzstudenten lokal gebotene Spektrum an Lehrveranstaltungen erweitern. Die Hochschulen haben Vereinbarungen über gegenseitige Anerkennung bestimmter Module in bestimmten Studiengängen. Das Angebot ist recht breit, umfasst naturwissenschaftliche, geistes- und sozialwissenschaftliche Kurse, aber auch Fächer wie Medizin, Jura, ingenieurwissenschaftliche Fächer, Soziale Arbeit und Sprachen. Außerdem werden im Bereich "Schlüsselqualifikationen" interessante Kurse angeboten, die fächerübergreifende Kompetenzen vermitteln. Das Angebot der VHB findet ihr unter diesem Link:
    https://www.vhb.org/startseite/
     
    Ein wichtiger Unterschied zu einer Fern-FH oder Fern-Uni: Die VHB bietet lediglich einzelne Module, die als Teil eines Präsenz-Studiums belegt werden können. Es gibt also keinen kompletten Fernstudiengang.
     
    Das Angebot der VHB richtet sich in erster Linie an Studierende der Hochschulen des VHB Verbundes. Sie können die Kurse kostenfrei nutzen. Man kann sich aber auch als "sonstiger Nutzer" registrieren. In diesem Fall zahlt man eine Gebühr, die sich nach dem Workload des Moduls richtet. Die Kosten sind recht überschaubar. Als sonstiger Studierender registriert man sich online. Danach erhält man eine Rechnung per Briefpost aus Bamberg. Nach Überweisung der Gebühr wird der Kurs freigeschaltet. Bei der Registrierung sind Fristen zu beachten. In der Regel gibt es EINEN Klausurtermin pro Modul. Die Klausur wird aber oft zeitgleich an mehreren Partnerhochschulen angeboten. Für C++ hatte ich die Wahl zwischen 3 FHs in Bayern. Auch sonstige Nutzer dürfen also Module mit einer Prüfung abschließen, z.B. als Weiterbildung. Eine Anerkennung der ECTS bei Hochschulen außerhalb des VHB-Verbundes muss man aber selbst abklären.
     
    Der Kurs "Programmieren in C++"
     
    Das Modul basiert auf einem Skript von Professor Herbert Fischer von der TH Deggendorf. Zur Verfügung gestellt wird es als PDF im A4-Format. Wer es auf Papier will, muss es selbst ausdrucken. Das Skript wie auch der Kurs hat 2 Teile. Der erste Teil hat 77 Seiten. Themen sind zum Beispiel:
    - Ausdrücke, Anweisungen, Variablen und Datentypen
    - Rechenoperatoren
    - Funktionen
    - Ein- und Ausgabe
    - Kontrollstrukturen, Verzweigungen, Schleifen
    - Felder und Strings
    - Objekte und Klassen
    - Vererbung
    - Fallbeispiel: Kontoverwaltung
     
    Programmiert werden ausschließlich Konsolenanwendungen. GUIs spielen noch keine Rolle. Dynamische Speicherverwaltung ist im ersten Kursteil ausgeklammert. Man kann eine Klausur lediglich über diesen ersten Kursteil schreiben. Die bringt dann 2 ECTS. Die meisten Studierenden werden aber eine Klausur schreiben wollen, die beide Kursteile abdeckt. Die bringt dann 6 ECTS.
     
    Das Skript zum zweiten Kurs-Teil hat noch mal 58 Seiten. Hier werden folgende Themen ergänzt:
    - Bibliotheken
    - Arrays
    - Referenzen und Zeiger
    - Zeiger auf Zeiger
    - Elementoperatoren
    - Inline-Funktionen
    - Const-Objekte
    - der this-Zeiger
    - Objekte als Argumente und return-Wert.
    - verschiedene Arten der Parameterübergabe
    - Dynamische Speicherverwaltung mit new und delete
    - Verkettete Listen, doppelt und einfach.
    - Bäume und Graphen (sehr knapp)
    - Mehrfachvererbung
    - Polymorphismus
    - Abstrakte Klassen
    - Überladen von Operatoren
    - Templates (generische Programmierung)
    - Dateioperationen
    - Exceptions
     
    Ergänzend zu den Skripten gibt es auf der Lernplattform Tests und Übungsaufgaben, deren Musterlösungen man sich anzeigen lassen kann. Für jeden Kursteil gibt es 2 Einsendeaufgaben, die von einem Tutor korrigiert werden. Hier muss eine Mindestpunktzahl erreicht werden, um zur Klausur zugelassen zu werden. Insgesamt 4 Aufgaben sind natürlich nicht viel. Die Einsende-Aufgaben sind aber ein bisschen umfangreicher als die Übungsaufgaben. Die letzte und komplexeste ist eine Verwaltung für eine Motorradvermietung mit dynamischer Speicherverwaltung. Bei den Einsendeaufgaben habe ich am meisten gelernt, weil die Aufgabenstellung ein bisschen offener formuliert ist und man sich etwas einfallen lassen muss. Von Java kommend habe ich viele Fehler gemacht, weil die Syntax auf den ersten Blick sehr ähnlich wirkt, aber im Detail dann doch anders ist. Leider hatte ich im ersten Kursteil eine andere Tutorin als im zweiten. Viel Tutorinteraktion kommt so nicht zustande, zumal meine eingereichten Lösungen ganz gut waren, so dass das Feedback knapp ausfiel. Erwartungsgemäß fielen mir vor allen solche Themen schwerer, in denen C++ sich von Java unterscheidet: dynamische Speicherverwaltung, Umgang mit Zeigern, Überladen von Operatoren.
     
    Da der Kurs von Studierenden vieler Unis und FH belegt werden kann, sind die Teilnehmerzahlen recht hoch. Es waren über 400. Es gibt auch ein Forum zum Kurs, in dem recht lebhaft diskutiert wird.
     
    Die Klausur
     
    Die Präsenzklausur dauert 90 Minuten und deckte die Themen des Kurses gut ab. Es gab viele praktische Aufgaben, aber auch solche, in denen Wissen abgefragt wurde. Den Umfang fand ich für die Zeit angemessen, den Schwierigkeitsgrad auch. Manche Fragen fand ich etwas speziell und nicht so praxisrelevant. Im wesentlichen konzentrierte sich die Klausur auf den Aspekt objektorientierte Konzepte, was ich ganz vernünftig finde.
     
    Fazit
     
    Dem Skript merkt man stellenweise an, dass der Kurs schon ein paar Jahre auf dem Buckel hat. Allerdings ist C++ eine nicht mehr ganz neue Sprache. Die Grundkonzepte, die hier vermittelt werden, sollten ziemlich zeitlos sein, so dass das Alter des Kurses sich eigentlich nicht nachteilig auswirkt. Was ich vermisst habe: In den Kursen bei Springer Campus wurde schon bei der Vermittlung der objektorientierten Konzepte auf guten Klassenentwurf eingegangen. Es wurden also schon ein paar Ideen aus der Softwaretechnik angerissen. Das sollte uns ermutigen, von Anfang an recht sauber zu arbeiten. Das war in diesem Kurs nicht so. Manche Code-Beispiele kamen mir aus Java-Perspektive ein bisschen "quick and dirty" vor.
     
    Eines habe ich in dem Kurs nicht gelernt: C++-Code idiomatisch zu schreiben. Man merkt meinen Programmen an, dass ich objektorientierte Programmierung mit Java gelernt habe. Um hier mehr wie ein C++-Programmierer zu denken und zu schreiben, müsste ich mich noch wesentlich länger mit der Sprache beschäftigen. Den Ehrgeiz, in C++ richtig sicher zu werden, habe ich aber nicht. Zumal C++ auch nicht besonders zum Schwerpunkt meines Studiums - Web- und Medieninformatik - passt. Mir ging es einfach darum, diese sehr wichtige Sprache ein bisschen besser kennen zu lernen.
     
    Lust auf das Programmierpraktikum C hätte ich aber schon noch. Ich habe mich nämlich sehr an die objektorientierte Denkweise gewöhnt. Da würde ich gerne mal erleben, wie ich ohne diesen "Luxus" auskomme. Mal schauen, ob mir im nächsten Semester Luft für solche Extratouren bleibt.
     
    Im Vergleich zu den Kursen bei Springer Campus (aber auch zur WINGS) ist man bei der VHB mehr auf sich gestellt. Es gibt eine tutorielle Betreuung, aber sie fällt im Vergleich recht knapp aus. Man merkt, dass hier viele Studierende betreut werden. Die VHB bietet einen strukturierten Rahmen, in dem man etwas anspruchsvolles Lernen kann. Aber man muss schon sehr selbstständig arbeiten. Dafür sind die Kosten sehr moderat.
     
    Der Begriff "lebenslanges Lernen" wird in den Medien oft im Zusammenhang mit älteren Arbeitnehmern gebraucht, die auf dem Arbeitsmarkt konkurrenzfähig bleiben sollen. Lebenslanges Lernen meint also meist berufliche Weiterbildung. Man kann lebenslanges Lernen aber auch breiter Denken; nämlich als lebenslange Freude an neuer Erkenntnis und an Wissenschaft.
     
    Die VHB ist auf jeden Fall etwas, das ich im Hinterkopf behalten möchte, auch für die Zeit nach meinem Fernstudium.
  10. kurtchen
    Das Modul "Web-Anwendungen 2" ist ein Pflichtmodul im Studiengang "Web- und Medieninformatik" und zählt zum gleichnamigen Studienbereich. Springer Campus empfiehlt, dieses Modul im 4. Semester zu belegen, also im gleichen Semester wie "XML" und "Multimedia". Studierende im Studiengang "Wirtschaftsinformatik" müssen "Web-Anwendungen 2" nicht belegen, können es aber als Vertiefungsfach wählen. Allerdings sollten sie dabei die inhaltlichen Voraussetzungen beachten. Grundlagen der Informatik 1 und 2 sowie Web-Programmierung müssen ja auch die Wirtschaftsinformatiker als Pflichtmodule belegen. Aber auch "Web-Anwendungen 1" wird hier empfohlen. Es liefert eine solidere Grundlage in HMTL und CSS als das Modul Web-Programmierung. Insofern finde ich es hier sehr sinnvoll, der Empfehlung zu folgen. "Web-Anwendungen 2" ist auch Pflichtmodul für das Weiterbildungszertifikat "Web-Entwickler". Es ist darüber hinaus eine inhaltliche Voraussetzung für das Vertiefungsfach "Aktuelle Webtechniken", bei dem es um Java Server Faces (JSF) geht.
     
    Worum geht es im Kurs?
     
    Während es in "Web-Anwendungen 1" um statisches HTML geht, behandelt "Web-Anwendungen 2" die dynamische Erzeugung von HTML-Dokumenten mit einer serverseitigen Sprache. Bekanntestes Beispiel hierfür ist sicher PHP. In diesem Modul wird aber die serverseitige Programmierung mit Java Server Pages behandelt.
    Was ist nun eine Java Server Page? Eine JSP ist eine Datei, in der Regel mit der Endung ".jsp", die HTML-Schablonentext enthält, in den Java Code-Fragmente eingestreut sind. Diese Datei wird in eine Java-Klasse übersetzt, die wiederum in Bytecode übersetzt wird. Ein Web-Server, z.B. Apache Tomcat, erzeugt damit zu einem HTTP-Request eine sinnvolle HTTP-Response. Die Response ist der HTML-Schablonentext, in den Elemente eingefügt wurden, die dynamisch berechnet wurden und zur Anfrage passen.
     
    Aus Gesprächen mit Kommilitonen weiß ich, dass es für viele ein Ärgernis ist, dass in diesem Modul nicht PHP als Lehrsprache verwendet wird. Zum einen arbeiten viele von ihnen als Web-Entwickler und haben praktische Erfahrung mit PHP. Zum anderen argumentieren sie mit dem recht kleinen Marktanteil von JSP. Das ist natürlich ein Argument. Und doch meine ich, dass es durchaus gute Gründe gibt, die serverseitige Programmierung am Beispiel von JSP zu lehren.
     
    Springer Campus setzt ja in den einführenden Programmierkursen auf Java als Lehrsprache. Die Stärke von JSP ist, dass man Java-Klassen verwenden kann. Man kann die gesamte Fachlogik einer Web-Anwendung in Java programmieren und dabei auf alles zurückgreifen, was man bisher über Programmierung gelernt hat. Das hat didaktisch dann doch einige Vorzüge. JSP kann man Klebstoff zwischen Java und HTMl sehen.
     
    Praktisch wird man eine IDE wie Eclipse oder Netbeans mit JavaEE verwenden. Die nimmt einem eine Menge Arbeit ab, zum Beispiel das Anlegen einer sinnvollen Ordnerstruktur für den Server. Die IDE packt die erstellten Anwendungen auch automatisch in sogenannte war-Archive. Der Tutor erwartet Lösungen zu den Einsendeaufgaben in dieser Form.
     
    Das Lehrbuch
     
    "Java Server Pages" von Dieter Wißmann ist wahrscheinlich das beste deutschsprachige Lehrbuch zu diesem Thema. Es gibt nämlich nicht viel anderes dazu. Und das wenige, was es gibt, ist oft schon ganz schön alt. Wer mit diesem Lehrbuch nicht zurecht kommt und Sekundärliteratur sucht, wird es also nicht ganz leicht haben. Zum Glück schreibt der Autor sehr verständlich. Theorie und Anwendungsbeispiele wechseln sich ab und die Themen bauen gut aufeinander auf. Das Buch hat ca. 450 Seiten, was für Kurse bei Springer Campus üblich ist. Unter den Abbildungen sind besonders die UML-Diagramme relevant, die verwendet werden, um die Zusammenhänge zwischen verschiedenen Klassen zu klären, die man beim Arbeiten mit JSP kennen sollte.
     
    In vielen Modulen habe ich die Themen recht ausführlich beschrieben. In diesem Modul werde ich darauf verzichten, weil JSP ziemlich komplex ist und so ist auch die Vielfalt an Themen sehr groß. Ein einfacher, linearer Aufbau des Stoffes ist hier nicht möglich und sinnvoll, weil JSP eine Brücke zwischen vielen Technologien schlägt. Man arbeitet mit HTML und CSS, muss sich damit beschäftigen, was bei einem HTTP-Request zwischen Client und Server passiert, hat mit Apache Tomcat zu tun, aber auch mit der JVM und natürlich mit der Programmiersprache Java, die womöglich per JDBC auch noch an eine relationale Datenbank angebunden ist. Insofern muss der Kurstext immer wieder Theorie einführen oder wiederholen, um so Themen noch einmal ins Bewusstsein zu rufen, die dann per JSP verknüpft werden. Keine leichte Aufgabe für einen Autor, die meiner Meinung nach hier hervorragend gelöst wurde.
     
    Einen großen Teil des Buches - an die 100 Seiten - nimmt ein komplexes Fallbeispiel ein: Der Aufbau eines Web-Anzeigenmarktes mit JSP, wobei ein Überblick über den gesamten Entwicklungsprozess gegeben wird. Der komplette Code des Fallbeispiels liegt dem Kurs bei und kann praktisch ausprobiert werden.
    Besonders loben möchte ich hier, dass ein Kapitel zur Fehlersuche in JSPs enthalten ist. Die ist nämlich manchmal nicht ganz einfach, was mit dem zweistufigen Übersetzungsprozess zu hat: Von JSP zu Java und von Java zu Bytecode.
     
    Treten Fehler beim ersten Schritt auf, so kann man das noch gut nachvollziehen. Ab dem zweiten Schritt oder zur Laufzeit wird es schwieriger, denn die Fehlermeldung bezieht sich auf die aus der JSP generierte Java-Klasse, die man ja nicht selbst geschrieben und gesehen hat. Der Autor stellt hier einige Strategien zur Fehlersuche vor. Eine ist die Umleitung auf eine Fehlerseite, die im Browser detaillierte Meldungen zeigt. Das ist natürlich nichts für die ausgelieferte Web-Anwendung sondern etwas, was dem Entwickler nützt.
     
    Wegen des zweistufigen Übersetzungsprozesses ist es auch immer wieder nützlich, sich damit zu beschäftigen, wie die Umsetzung in eine Java-Klasse läuft und was dabei im Hintergrund passiert.
     
    Zur Komplexität des Themas trägt bei, dass sich bei JSP verschiedene Syntaxen entwickelt haben, oft mit dem Ziel, das Schreiben von JSPs für Web-Frontend-Entwickler ohne Java-Kenntnisse einfacher zu machen. Das ist historisch gewachsen aber für den Einsteiger unübersichtlich und verwirrend. Der Autor löst dieses Problem, indem er die verschiedenen Syntaxen nacheinander einführt und Hinweise gibt, welche wofür geeignet ist und welche man besser nicht in einer JSP mischen sollte.
     
    Einsendeaufgaben
     
    Die Einsendeaufgaben in diesem Kurs hatten eine gewisse "Künstlichkeit", weil sie erkennbar darauf hin konstruiert waren, dass der Lernende bestimmte Sprachfeatures kennen lernt, ausprobiert und auch typische Probleme kennen lernt, die damit verbunden sind. In anderen Programmierkursen von Springer Campus wirkten die Aufgaben oft ein bisschen näher an realen Anwendungsszenarien. Für den behandelten Stoff hat der Kursautor meiner Meinung nach genau das richtige getroffen. Der Kurs ist schon etwas anspruchsvoller und eine gewisse didaktische Zuspitzung scheint mir deswegen notwendig.
     
    Bei den Einsendeaufgaben geht es um das Abfangen von Fehlern, um Weiterleitungen von Seite zu Seite, um die Übergabe und Validierung von Parametern, um das Speichern und Weitergeben von Informationen vermittels Java-Beans, um die Verwaltung von Sitzungen, den Umgang mit Cookies, aber auch um die Konfiguration des Apache Tomcat Servers vermittels einer XML-Datei.
     
    Für die Aufgaben habe ich regelmäßig länger gebraucht als im Kurs angegeben. Mein Tutor empfahl, den compilierten Code nicht nur zu testen, sondern die erzeugten HTML-Seiten auch validieren zu lassen. Er machte relativ enge Vorgaben hinsichtlich der einzureichenden Lösungen, z.B. verbindliche Dateinamen und Ordnerstrukturen. Dafür waren seine Rückmeldungen besonders detailliert und treffsicher. Mein Tutor benannte nicht nur klar, was nicht gut war und wie man es hätte besser machen können. Er sagte ebenfalls, was gut war und so bleiben sollte.
     
    Auch kommunizierte er im Vorfeld recht genau, wann und in welchem Umfang er Einsendeaufgaben korrigiert, so dass ich mir die Arbeit am Kurs gut einteilen konnte und rechtzeitig zum Prüfungstermin fertig war.
     
    Prüfungen
     
    Die Online-Klausur war wie üblich eine gute Vorbereitung auf die Präsenzklausur, allerdings nicht, weil sie ähnlich war. In der Präsenzklausur hat man keine IDE zur Verfügung, bei der Online-Klausur schon. So war denn die Online-Klausur eine Gelegenheit, noch einmal mit Programmieraufgaben praktische Erfahrungen mit JSP zu sammeln, diesmal natürlich mit tickender Uhr im Hintergrund.
     
    Schreiben von Code spielte in der Präsenzklausur dann eine geringere Rolle. Das hängt wahrscheinlich damit zusammen, dass man so nur ganz kleine Teile des Kurses hätte abprüfen können. Es war also ein Mix aus Wissensfragen, Fehlersuche, Vorhersage von Ausgaben zu gegebenen Programmen, Konfiguration eines Servers per web.xml und einigen anderen Themen. Überrascht hatte mich, dass es viele kleinere Aufgaben waren.
     
    Der Vorzug ist natürlich: Wenn man irgendwo eine kleine Lücke im Wissen hat, ruiniert das nicht gleich die ganze Note. Ich glaube, dass die Klausur recht realistisch abbildet, wo man mit seinem Verständnis des Stoffes steht. Insofern bin ich gespannt auf mein Ergebnis.
     
    Fazit
     
    "Web-Anwendungen 2" war einer der schwierigeren Kurse im Studiengang. Wegen der vielen praktischen Programmieraufgaben hat er mir aber auch besonders viel Spaß gemacht. JSP ist eine vergleichsweise komplexe Angelegenheit. Eine gewisse Einarbeitungszeit muss man einplanen. Auch wird man gerade am Anfang Schwierigkeiten mit der doch recht komplexen und vielfältigen Syntax haben und dabei auch mit Frustration und Rückschlägen umgehen müssen. Aus meiner Sicht lohnt sich diese Mühe. Mehr als andere Kurse verbindet "Web-Anwendungen 2" den Stoff ganz vieler Module des Studienganges zu einem zusammenhängenden Wissensgebiet. Ich glaube, das bringt etwas, auch wenn man später serverseitig lieber mit PHP, Python, Ruby oder etwas ganz anderem programmiert.
     
    Für die Bearbeitung dieses Moduls würde ich etwas mehr Zeit einplanen und vielleicht zuschauen, dass man andere dicke Brocken vorher abgeräumt hat. Ich würde dieses Modul z.B. nicht zeitgleich mit "Software-Technik 1" oder mit "Nicht-sequentielle Programmierung" belegen wollen.
     
    Weil mir das Modul viel Spaß gemacht hat, würde ich gerne auch noch den weiterführenden Kurs "Aktuelle Webtechniken" belegen, der eine Einführung in Java Server Faces gibt. Dafür fehlen mir aber noch ein paar inhaltliche Voraussetzungen, so dass ich mich noch ein wenig gedulden muss.
  11. kurtchen
    Das Modul IT-Recht ist bei Springer Campus ein Pflichtmodul in den beiden Studiengängen Web- und Medieninformatik sowie Wirtschaftsinformatik. Laut Studienplan ist es für das erste Fachsemester vorgesehen. IT-Recht ist außerdem ein Pflichtmodul der wissenschaftlichen Weiterbildung "Software-Manager".
     
    Ich bin im Studium schon recht weit fortgeschritten und habe das Modul im ersten Semester nicht belegt, weil ich erst einmal schauen wollte, ob ich mit Fächern wie Mathematik oder Programmierung zurecht kommen würde. Die Beschäftigung mit Recht kannte ich ein bisschen aus meiner Ausbildung. Dort ging es zwar um ganz andere Gebiete des Rechts, aber immerhin habe ich damals den Eindruck gewonnen, dass ich mich mit solchen Fragen auseinandersetzen kann, auch wenn es mich nicht unbedingt brennend interessiert. Insofern habe ich die Belegung dieses Modul anfangs vertagt und es später irgendwie aus den Augen verloren. Jetzt, im letzten Abschnitt meines Studiums, war mir aufgefallen: "Da fehlt doch noch ein Pflichtmodul!"
     
    Also war das Thema jetzt einfach "dran".
     
    Das Lehrbuch
     
    Das Buch "IT-Recht" von Axel Sodtalbers, Christian Volkmann und Andreas Heise liegt mir in einer Auflage von 2010 vor. Sein Umfang ist mit 315 Seiten für ein Lehrbuch bei Springer Campus etwas unterdurchschnittlich. Gegliedert ist das Buch in drei Teile. Zunächst geht es um Softwarerecht, dann E-Commerce-Recht und schließlich Datenschutzrecht. Gerade beim letzten Thema hat es ja mit der DSGVO viele Neuerungen gegeben. So viel sei vorweg genommen: Acht Jahre sind speziell bei diesem Thema eine lange Zeit. Dieser Teil des Lehrbuches müsste inhaltlich dringend überarbeitet werden.
     
    Teil 1 - Softwarerecht
     
    Dieser Teil beginnt mit dem Thema Urheberrecht. Es geht darum, wer überhaupt Urheber ist, wie man einer wird und wieso Software unter das Urheberrecht fällt (aber z.B. das Design einer Blumenvase im allgemeinen nicht). Auch die Themen Patentrecht und Halbleiterschutz werden angerissen. Bei Software sind gegenüber anderen geistigen Schöpfungen wie z.B. einem Roman ein paar Besonderheiten zu beachten. Zum einen wird Software von Entwicklern meist im Rahmen eines Dienst- oder Arbeitsverhältnisses erstellt. Die Entwickler sind dann zwar Urheber, aber das Recht zur wirtschaftlichen Verwertung ihrer Schöpfung hat ihr Arbeitgeber. Zum anderen wird Software heute überwiegend in Teams entwickelt. Das gilt schon für kleine Independent Games. Die Zeiten, in denen ein pfiffiger Programmierer im Alleingang einen großen Spielehit oder eine revolutionäre neue Office-Anwendung entwickeln konnte, liegen eine Weile zurück. Es gibt also meistens viele Miturheber.
     
    Software wird programmiert, weil man sie nutzen und verwerten möchte. Dazu werden Verträge geschlossen. Insofern spielt das Vertragsrecht eine wichtige Rolle. Interessant war für mich, dass auch bei Individualsoftware im allgemeinen ein Kaufvertrag und nicht etwa ein Werkvertrag zustande kommt. Wenn man etwas verkauft, so unterliegt man der Gewährleistung. Wenn man möchte, kann man durch einen zusätzlich geschlossenen Vertrag darüber hinaus gehende Garantien geben. Kaufverträge enthalten oft AGBs, die jedoch - wenn sie schlecht verfasst sind - unwirksam sein können. Es ist juristisch schwierig, insbesondere die Rechte von Verbrauchern durch ABGs wirksam einzuschränken.
     
    Alle diese Themen sind eigentlich allgemeines Recht. Verwiesen wird im Lehrbuch vor allem auf das BGB. Das ist allerdings ein Aspekt des Kurses, der mir gut gefallen hat. Vieles im IT-Recht ist zunächst einmal allgemeines Recht, das in einem speziellen Kontext angewendet wird. In manchen Fällen hat dieser Kontext starke Auswirkungen, in anderen nicht. Jedenfalls lernt man in diesem Lehrbuch durchaus ein paar Dinge, über die man als Bürger und Verbraucher ohnehin informiert sein sollte. (Aber leider oft nicht ist!) Insofern ist dies zwar ein Modul für Informatiker, es hat aber eine gewisse allgemeinbildende Komponente. So etwas schätze ich sehr.
     
    Die Fallbeispiele und Übungsaufgaben sind in der Regel in einem IT-Kontext angesiedelt. Meist zielen die Aufgaben darauf ab, zu zeigen, welches allgemeine Recht hier Anwendung findet. Neben der reinen Aufzählung wird dabei natürlich auch eine Begründung und eine Abwägung erwartet.
     
     
    Dieses Zitat wird dem US-Journalisten Dan Rather zugeschrieben. Software erledigt in der Regel routinemäßig anfallende Tätigkeiten automatisiert. Das hat eine unangenehme Folge. Arbeitet sie fehlerhaft, wird der Fehler oft tausendfach wiederholt, was den Schaden in die Höhe treibt. Software wird auch in sicherheitskritischen Bereichen eingesetzt. Zur Steuerung medizinischer Geräte oder zur Steuerung von Maschinen, von denen eine erhebliche Unfallgefahr ausgeht. Insofern ist der Bereich Haftung bei Softwarefehlern für die Hersteller sehr wichtig. Hier ist zu beachten, dass man insbesondere bei Schäden für Leib und Leben die Haftung nicht grundsätzlich durch einen Vertrag ausschließen kann. Und der Hersteller einer Software haftet nicht nur gegenüber seinen Kunden, mit denen er einen Vertrag hat, sondern um Umständen auch gegenüber Dritten, die durch einen Fehler seiner Software geschädigt wurden. Mit neuen Anwendungen wie dem autonomen Fahren wird dieses Thema sicher noch drängender werden. Das autonome Fahren ist übrigens bereits Teil einer Übungsaufgabe, wenn auch im Zusammenhang mit einer Straßenbahn und nicht mit einem Auto.
     
    Bleibt noch der für mich besonders spannende Bereich der Open Source Software. Hier geht es darum, verschiedene Arten von Open Source Lizenzen zu unterscheiden. Wer quelloffenen Code in einem eigenen Produkt verwendet muss je nach Lizenz unterschiedliche Dinge beachten. Gut, sich einmal mit so etwas zu beschäftigen.
     
    Dieser erste Teil des Moduls hat mir insgesamt gut gefallen. Ich konnte dem Text gut folgen, fand die Fallbeispiele nachvollziehbar und gut ausgewählt. Tests und Übungsaufgaben erschienen mir gut darauf abgestimmt.
     
    Teil 2 - E-Commerce-Recht
     
    In diesem Teil ging es zunächst noch einmal um das Vertragsrecht, diesmal im Zusammenhang mit E-Commerce. Der Gesetzgeber berücksichtigt, dass Kunden im Zusammenhang mit dem Online-Handel weniger Möglichkeiten haben, Ware vor Abschluss eines Vertrages zu prüfen und sich ein Bild vom Verkäufer einer Sache zu machen. Darum hat der Gesetzgeber mit dem Fernabsatzgesetz und dem Telemediengesetz dem Käufer zusätzliche Rechte verschafft und den Verkäufern und Anbietern umfangreiche Informationspflichten auferlegt. Da heute praktisch jeder Waren im Internet bestellt, dürfte dieses Kapitel für jeden relevant und interessant sein.
     
    Im nächsten Abschnitt geht es um Urheberrecht im Internet. Hier dreht es sich um Themen wie Schutz des Designs einer Webseite, Raubkopien geschützer Inhalte aber auch um das Recht auf Privatkopie. Neben dem Urheberrecht spielt bei Webinhalten auch das Markenrecht, das Domainrecht und das Wettbewerbsrecht eine Rolle. Hier landet man schnell bei einem ungeliebten aber wichtigen Thema: "Was gehört in ein Impressum?"
     
    Bei allem Ärger über den Abmahnirrsinn versteht man nach diesen Kapiteln immerhin etwas besser, was die grundlegende Idee hinter den einschlägigen und oft lästig erscheinenden Gesetzen ist.
     
    Recht spannend ist das Thema der Verantwortlichkeit im Internet, insbesondere wenn es um Inhalte geht, die Rechte verletzen. Das spielt ja auch hier im Forum eine Rolle. So ist zum Beispiel unser Forumsbetreiber Herr Jung als Access-Provider rechtlich nicht verpflichtet, jeden Post VOR seiner Veröffentlichung auf Rechtsverletzungen hin zu überprüfen. Das entbindet ihn aber nicht von seiner Pflicht, entsprechende Inhalte bei Bekanntwerden eines Rechtsverstoßes zu entfernen. Es gibt hier im Forum ja einige Regeln, die Teilnehmer zu beachten haben. Insbesondere gibt es auch Konsequenzen, wenn Regeln nicht eingehalten werden. Dies dient natürlich zum Teil auch dazu, eine gewisse "Forumskultur" zu erhalten. Fernstudium-Infos soll ja einerseits themenbezogen bleiben und andererseits sollen sich Nutzer auch wohl fühlen können. Aber ein Teil der Regeln und Konsequenzen dürfte eben auch damit zu tun haben, dass Herr Jung als Forumsbetreiber nicht für Rechtsverstöße seiner Nutzer haften möchte. Das entsprechende Kapitel im Lehrbuch schafft ein erstes Bewusstsein für diese Problematik.
    Kurz gestreift werden Fälle mit Berührung zum Ausland, was ja beim Anbieten von Waren, Leistungen und Inhalten im Netz häufig der Fall ist.
     
    Bis hierhin gefielen mir Lehrbuch, Tests und Aufgaben ausgesprochen gut. Stellenweise bemerkte ich bei meinen Recherchen zu Einsendeaufgaben, dass manche Gesetze und Verordnungen inzwischen durch neuere ersetzt waren. Das betrifft zum Beispiel weite Teile der BGB-InfoV, die inzwischen durch das EGBGB abgelöst wurde und eigentlich nur noch für Reiseverträge relevant ist. Das finde ich aber gar nicht schlimm. Recht ist ein menschliches Artefakt. Es entwickelt sich durch Gesetzgebung und Rechtsprechung. Schadet gar nicht, wenn man das als Studierender beim Bearbeiten eines Moduls in angemessener Dosierung zu schmecken bekommt.
     
    Teil 3 - Datenschutzrecht
     
    Leider finde ich die Dosierung im letzten Teil des Buches nicht mehr angemessen. In den letzten Wochen und Monaten hat vermutlich jeder Leser an seinem Mail-Eingang gemerkt: Die DSGVO ist in Kraft getreten und bringt z.B. neue Informationspflichten mit sich. Leider spielt sie im Lehrbuch keine Rolle. Ich versuche zunächst mal, diesem letzten Teil des Kurses etwas positives abzugewinnen, was durchaus gelingt.
     
    Geklärt werden zunächst einmal verschiedene Begrifflichkeiten im Zusammenhang mit Datenschutz, die als konzeptionelle Grundlage nicht verkehrt sind. Insbesondere begreift man bei Lektüre der Kapitel schnell: Nach bisherigem Datenschutzrecht sind eigentlich formulierte Ansprüche wie Auskunft über gespeicherte Daten, Löschung, Sperrung oder auch Berichtigung von falschen Daten für einen Betroffenen praktisch nur selten durchzusetzen. Das liegt daran, dass die bisherigen Datenschutzgesetze viele Ausnahmen formulierten. Tatsächlich fiel es mir beim Lesen der Gesetze oft schwer, unter den ganzen Ausnahmen auch noch meine Rechte zu entdecken. Insofern kann man sagen: Der bestehende Datenschutz ließ zu wünschen übrig. Und das, obwohl sich mit dem Internet die Möglichkeiten der missbräuchlichen Nutzung von Daten potenziert haben. Dafür schafft das Kapitel also ein Bewusstsein.
     
    Nun hätte ich gerne gewusst, ob das alles mit der DSGVO aus Betroffenensicht besser wird. Immerhin haben ja Firmen, Vereine und öffentliche Einrichtungen viel Arbeit damit, die neuen Regeln umzusetzen. Steht dem auch ein Nutzen für mich gegenüber? In diesem Modul erfährt man es leider nicht. Dafür ist es zu alt.
     
    Immerhin glaube ich, nach der Lektüre dieses Kursteils begrifflich besser gerüstet zu sein, Texte zur DSGVO zu lesen und zu verstehen. Das ist zwar auch ein Ergebnis, aber insgesamt finde ich das bei diesem Thema zu wenig. Insofern wäre es dringend Zeit, dass Lehrbuch in diesem Punkt auf einen aktuellen Stand zu bringen. Denkbar wäre auch, entsprechende Kapitel zumindest auf der Online-Plattform zügig nachzurüsten.
     
    Ob es entsprechende Pläne gibt, weiß ich nicht. Aber stünde ich noch am Anfang meines Studiums, würde ich mich vor Belegung des Modul einmal danach erkundigen. Um dann gegebenenfalls die Belegung noch zu verschieben.
     
    Tests, Einsendeaufgaben und Online-Klausur
     
    Über die tutorielle Betreuung kann ich mich nicht beschweren. Die Korrekturen kamen sehr zügig, auch bei der Online-Klausur. Die Tests haben für mich viele unklare Punkte noch einmal ausgeleuchtet. Die Einsendeaufgaben gefielen mir gut, auch und gerade im Hinblick auf die Präsenzklausur. Den Abschlusstest fand ich zu leicht bzw. nicht umfangreich genug. In der zur Verfügung stehenden Zeit hätte man durchaus etwas mehr verlangen dürfen, zumal diese Tests ja automatisch ausgewertet werden, also keinen Korrekturaufwand verursachen. Gut gefallen hat mir dagegen die Online-Klausur, weil die Aufgaben das gesamte Modul gut abdeckten und die Themen zum Teil auch vernetzten. Die Online-Klausur gibt auch in diesem Modul einen Vorgeschmack auf Art und Umfang der Aufgaben in der Präsenzklausur, ohne dieser vorzugreifen. So sollte es sein.
     
    Präsenzklausur
     
    Ob ich bei der Präsenzklausur auch geliefert habe, wird sich zeigen müssen. Im Vergleich zu den Einsendeaufgaben gab es nämlich einen großen Unterschied: Bei den Einsendeaufgaben konnte ich im Internet nach Gesetzen suchen und mir auch Kommentare oder Urteile durchlesen. Das half dabei, die Fallbeispiele zu beurteilen. Das ging in der Klausur natürlich nicht. Dort war ich auf das angewiesen, was mir auf Papier zur Verfügung stand. Interessant fand ich, dass das Thema Datenschutz keine große Rolle spielte. Vielleicht wird ja auf diese Weise berücksichtigt, dass die entsprechenden Kapitel im Lehrbuch nicht mehr aktuell sind. Ansonsten deckten die Aufgaben den Stoff sehr breit ab. Viele Aufgaben verbanden auch den Stoff verschiedener Kapitel im Lehrbuch. Es hat mir gut gefallen, dass so unterschiedliche Gesichtspunkte zu berücksichtigen waren. Insgesamt war es eine Klausur, die durchaus auch ein bisschen Spaß gemacht hat.
     
    Fazit
     
    Insgesamt bin ich nun aber froh, mein letztes Pflichtmodul einer schriftlichen Prüfung abgehakt zu haben. Es hat mir mit Sicherheit nicht geschadet, mich wieder einmal mit dem Thema Recht zu beschäftigen, aber Neigung und Interesse richten sich bei mir dann doch auf andere Dinge. Insbesondere sitzt mir das Thema Projektarbeit um Nacken. Hier muss ich nun rasche Fortschritte machen, um die gesetzte Abgabefrist auch einzuhalten. Habe ich einmal freie Zeit, so kreist mein Denken um mein Projekt und nicht so sehr um das Lehrbuch des nächsten Moduls.
     
    Darum habe ich auch ein wenig abgewogen, ob ich mir die Zeit für einen umfangreichen Modulbericht nehmen sollte. Zwei Punkte haben mich dazu bewogen:
    Bislang habe ich für jedes Modul, das ich belegt habe, auch einen Bericht geschrieben. Vor Aufnahme meines Studiums habe ich nach genau solchen Informationen gesucht und sie nicht gefunden. Das war für mich die wesentliche Motivation, diesen Blog anzufangen.
    Insofern habe mich entschieden, die Sache "durchzuziehen". Allzu viele Beiträge müssen es ja nun nicht mehr werden.
     
    Sollte ich IT-Recht bestanden haben, so bleiben mir tatsächlich nur noch 2 Pflichtmodule: Das Projekt und die Bachelorarbeit. Ich befinde mich nun also im letzten Abschnitt meines Studiums, wo es nicht mehr um Aneignung von Wissen geht, sondern darum, dieses anzuwenden und eigenständig neue Themen zu erkunden. Darauf fühle ich mich durch mein bisheriges Studium tatsächlich vorbereitet und ich freue mich auch darauf.
  12. kurtchen
    Das Modul "Grundlagen der Informatik 4: Algorithmen und Datenstrukturen" ist Pflicht für Studierende im Studiengang Web- und Medieninformatik. Die Wirtschaftsinformatiker dürfen es als Wahlpflicht-Modul belegen. Die W3L schlägt vor, es im vierten Semester nach GdI3 zu belegen. Nötig sind aber nur die Kenntnisse aus GdI2. Konkret sollte man gute Grundkenntnisse in objektorientierter Programmierung und in generischer Programmierung haben. Letzteres, weil die meisten Algorithmen im Kurs für generische Typen entwickelt werden. Wer sich auf diesen Kurs ein wenig vorbereiten will, sollte vor allem noch einmal das Kapitel zu generischer Programmierung aus GdI2 wiederholen.
     
    Auf GdI4 hatte ich mich sehr gefreut, weil Kenntnisse im Bereich Algorithmen und Datenstrukturen zu meinem Bild von einem Informatiker gehören. Mathematik oder BWL sind Teil sehr vieler Studiengänge und viele Naturwissenschaftler und Ingenieure lernen programmieren. Aber Algorithmen sind für mich ein wesentlicher Teil dessen, was die Informatik als eigenständige Disziplin auszeichnet.
     
    Ein bisschen hatte ich mich schon einmal mit dem Thema beschäftigt. Zu Schulzeiten hatte ich mal ein Buch über Algorithmen und Datenstrukturen, die damals noch in einer strukturierten Programmiersprache behandelt wurden. Hier ging es zum Beispiel um Sortieralgorithmen, Binärbäume und verkettete Listen. Als Schüler habe ich leider vieles nicht verstanden, obwohl ich das Thema sehr spannend fand. Nun wollte ich herausfinden, ob mir diese Konzepte inzwischen zugänglicher waren.
     
    Schon im ersten Teil des Kurses gab es erste Überlegungen zur Korrektheit und Komplexität von Algorithmen. Überlegungen zur Komplexität bei wachsender Problemgröße ziehen sich durch den ganzen Kurs. Dies ist wichtig, um später für ein gegebenes Problem eine vorteilhafte Datenstruktur oder einen geeigneten Algorithmus auswählen zu können. Das zweite Kapitel handelte von Rekursion. Hier ging es darum, ein Verständnis dafür zu entwickeln, was beim rekursiven Methodenaufruf im Speicher passiert. Klassisches Fallbeispiel ist das Problem der Türme von Hanoi. Interessant war eine allgemeine Strategie, rekursive Algorithmen in iterative Algorithmen umzuwandeln. Oft ist der Algorithmus dann nicht mehr so übersichtlich und nachvollziehbar. Dafür verbessert sich die Laufzeit und der Speicherbedarf. Bis hier fand ich den Kurs noch recht trocken. Der Stoff war durchaus interessant aber nicht das, was ich erwartet hatte.
     
    Das änderte sich im nächsten Kapitel, wo es um Suchalgorithmen ging. Im wesentlichen wurden hier die drei grundlegenden Strategien sequentielle Suche, binäre Suche und Hashing-basierte Suche behandelt. Der Kurs entwickelt die Codebeispiele in Java, weil das an der W3L die Lehrsprache ist. Aber ich habe rasch den Eindruck gewonnen, dass es in diesem Kurs eben nicht um Java sondern um ein Verständnis der Algorithmen und Datenstrukturen ging. Auch wenn immer wieder darauf verwiesen wird, was die Java-Klassenbibliothek schon fix und fertig anbietet. Denn natürlich wird man selten selbst die Algorithmen und Datenstrukturen aus dem Kurs implementieren. In der Regel wird man Bibliotheken benutzen, die sie zur Verfügung stellen. Sinn des Kurses ist eher, das man versteht, was man da benutzt und was das für Implikationen hat. Das macht sich auch ein wenig bei den Einsendeaufgaben bemerkbar. Ich hätte erwartet, hier vor allem Algorithmen implementieren zu müssen. Tatsächlich wurden viele Implementierungen im Lehrbuch schrittweise entwickelt. Oft ging es eher darum, diesen Code in kleinen Problemstellungen zu benutzen, ihn zu erweitern, zu ergänzen oder zu modifizieren.
     
    Im nächsten Kapitel ging es um Sortierverfahren. Es zerfiel in zwei Teile. Im ersten Teil ging es um die sogenannten direkten Verfahren: - Sortieren durch direkte Auswahl
    - Sortieren durch direktes Einfügen
    - Sortieren durch direktes Austauschen
    Diese Verfahren sind leicht zu verstehen aber sie sind langsam. Im zweiten Teil werden diese einfachen Verfahren schrittweise verbessert. Aus dem langsamen BubbleSort wird so z.B. der sprichwörtlich schnelle QuickSort-Algorithmus. HeapSort, QuickSort, ShellSort und MergeSort sind schon etwas schwieriger zu verstehen als die direkten Verfahren. Auch hier ist die Implementierung in Code das geringste Problem. Wichtiger ist, zu begreifen, wie auf der Datenstruktur (in der Regel ein Array) gearbeitet wird, wieviele Vergleiche und Tauschoperationen für große n anfallen, warum ein Verfahren terminiert und so weiter. Eine wichtige Frage ist auch immer wieder die sogenannte Stabilität eines Verfahrens. Hierbei geht es darum, ob sich die Reihenfolge von Elementen mit gleichem Schlüssel im Laufe des Sortierens ändern kann, oder ob sie "stabil" bleibt. Bei diesem Kapitel bedauerte ich nur, dass der BucketSort-Algorithmus nicht ausführlich vorgestellt wurde.
     
    Im nächsten Kapitel ging es um Datenstrukturen. Hier wurden eigene Implementierungen von Feldlisten (ArrayList) und verketteten Listen, von Stapeln (Stack) und Schlangen (Queue), von Mengen (Set) und Abbildungen (Map) entwickelt. Hier wurden immer wieder Bezüge zu den Klassen hergestellt, die Java von Haus aus mitbringt. Es war für mich wirklich schön, zu begreifen, was ich bislang nur benutzt hatte, endlich zu verstehen, was "unter der Haube" passiert. Im Rest des Kapitels ging es um Bäume, um das Einfügen und Löschen in Bäumen und um ausgeglichene Bäume. Also darum, wie man Bäume reorganisieren kann, um zu verhindern, dass sie im schlimmsten Fall zur Liste entarten. Die verschiedenen Baumrotationen fand ich leider im Lehrbuch zu knapp erklärt, um sie nachvollziehen zu können. Zum Glück werden Algorithmen und Datenstrukturen in praktisch allen Informatik-Studiengängen gelehrt. Es war so kein Problem im Internet Skripte und Folien anderer Unis und FHs zu finden und da war dann schließlich auch eine Darstellung dabei, mit der auch ich gut zurechtkam.
     
    Bis hier war ich mit dem Modul sehr zufrieden. Mit diesem Themen war dann wohl auch der Grundstock dessen abgehandelt, was zu einer einführenden Lehrveranstaltung "Algorithmen und Datenstrukturen" gehört. Von hier aus hätte es in verschiedene Richtungen weitergehen können. Die Autoren dieses Modul haben sich dafür entschieden, Algorithmen auf Texten zu behandeln. Konkret ging es um den KMP und den Boyer-Moore-Algorithmus. Dieses Kapitel ist mir sehr schwer gefallen. Ich war zunächst mit der Darstellung des Stoffes unzufrieden. Meine Suche nach alternativem Material, das verständlicher aufbereitet ist, blieb leider erfolglos. Möglicherweise haben die Autoren also ihr bestes getan und ich hatte hier einfach nicht den richtigen Dreh raus. Ich verstand die Algorithmen schon, aber nach ein bis zwei Tagen war alles wieder weg, während ich mich an den Rest des Stoffes gut erinnerte. Zum Glück kamen die Algorithmen auf Texten in der Präsenzklausur nicht dran.
     
    Das letzte Kapitel handelte von kombinatorischen Algorithmen. Zunächst ging es um Backtracking. Damit kann man einige klassische Probleme lösen, zum Beispiel das Färben von Landkarten. Oder klassische Denksportaufgaben, die sich um das geschickte Positionieren von Springern oder Damen auf einem Schachbrett drehen. Schließlich wurde ein Constraint-Solver entwickelt. Dessen Funktionsweise konnte ich leider nicht in allen Details nachvollziehen, denn nun wurde es doch sehr komplex. Hier bewegt man sich schon in Richtung KI. Ich fand es irre spannend, dass dieses Thema im Kurs enthalten war, auch wenn es zum Glück nicht klausurrelevant war. Gerne hätte ich an dieser Stelle noch weiter gemacht, aber es passt eben nicht beliebig viel Stoff in ein Modul.
     
    Mein Tutor hatte in diesem Modul einen einfach zu begreifenden Arbeitsrhythmus. Korrekturen kamen am Samstag, ganz gleich, wieviel man die Woche über eingereicht hatte. Ich konnte mein Arbeitsverhalten gut daran anpassen. Hilfestellung bei Problemen gab es schneller. Interessant für mich: Während in GdI1 noch sehr viel Wert auf einen sehr sauber strukturierten und expliziten Code gelegt wurde, ermutigte mich mein Tutor in GdI4, meinen Code kompakter zu schreiben, mehr Operationen in einer Zeile zusammen zu fassen. Meine Programme wurden so kürzer, waren aber auch nicht mehr ganz so leicht leserlich. Man erinnere sich: Dieser Kurs ist fürs 4. Semester vorgesehen. Da traut man den Studierenden schon einen dichteren Programmierstil zu.
     
    Die Präsenzklausur lief für mich ziemlich gut. Anscheinend lag mir das Thema, denn ich konnte hier eines meiner besten Ergebnisse erzielen. In der Vorbereitung hatte ich mich auf die Grundkonzepte Suchalgorithmen, Sortierverfahren und Datenstrukturen konzentriert. Überraschend für mich: Java-Code musste ich nur wenig schreiben. Es wurde geprüft, ob man die Verfahren und Strukturen begriffen hatte, unabhängig von der Implementierung in einer bestimmten Programmiersprache. Ein Vorteil bei diesem Modul: Hier gibt es in der Regel ein eindeutiges "richtig" und "falsch", während es in anderen Modulen - nennen wir z.B. "Webdesign" - ein bisschen mehr Interpretationsspielräume gibt.
     
    Was ich gerne noch gelernt hätte:
    - Algorithmen zu Pfadsuche in Graphen
    - etwas über genetische Algorithmen
    - etwas über neuronale Netze
    Am liebsten wäre mir, die W3L würde ein eigenes Modul "Künstliche Intelligenz" anbieten. Aber vielleicht passt das nicht zum Profil eines Studiengangs "Web- und Medieninformatik".
     
    Im Kurs ist noch eine ganz knappe Einführung in die funktionale Sprache "Clojure" enthalten, letztlich ein Lisp-Dialekt auf der Java Virtual Machine. Auf dieses Kapitel war ich sehr neugierig, weil ich immer wieder höre, dass es sinnvoll ist, andere Programmierparadigmen kennen zu lernen. Nicht, um in exotischen Sprachen zu programmieren, sondern weil sich das Verständnis für Programmierung insgesamt entwickelt. Ich höre solche Aussagen einerseits mit einer gewissen Faszination und andererseits mit einer gewissen Skepsis. (Sie erinnern mich an die These, man müsse Latein lernen, weil man dann ... besser versteht/kann/lernt.) Jedenfalls wäre ich durchaus neugierig gewesen, eine lispoide Sprache zu lernen. Das Kapitel im Kurs GdI4 ist für diesen Zweck allerdings viel zu knapp. Ich verstehe also leider immer noch nicht, was genau den Reiz funktionaler Sprachen ausmacht. Gerne würde ich diesen Faden eines Tages wieder aufgreifen und zum Beispiel das legendäre "Structure and Interpretation of Computer Programs" von Abelson und Sussman durcharbeiten. Aber ich fürchte, während meines Fernstudiums werde ich die Zeit dazu nicht finden.
     
  13. kurtchen
    Heute kamen Mails vom Studienbüro. Zum einen ging es wieder um eine Einladung zum Prüfungstermin. Da ich mittlerweile scheinfrei bin, betrifft mich das nicht mehr. Das andere war eine Einladung zu einem Vorkurs Mathematik. Der richtet sich aber nicht allein an Studierende bei Springer Campus sondern allgemein an künftige Studierende der FH Dortmund. Darum ist es auch ein Präsenzkurs vor Ort, der sich über eine Woche hinzieht. Ich habe meine Mathe-Scheine, aber zu Beginn meines Studiums hätte mich so ein Angebot schon interessieren können. Bislang hat mir das Studienbüro zu so etwas keine Einladungen geschickt. Wir hatten unsere eigenen Mathe-Tutorien auf den Präsenztagen. Aber schön fände ich das schon, wenn Studierende aus den Präsenz-Studiengängen und aus den Online-Studiengängen sich in so einem Rahmen begegnen würden. Ich vermute, dass das eher selten in Anspruch genommen wird. Viele Online-Studierende haben eine weite Anfahrt. Und natürlich haben sich die meisten für ein Online-Studium entschieden, weil sie arbeiten müssen. Allerdings tun sich auch viele mit Mathe schwer und können ein bisschen Starthilfe gebrauchen. Vielleicht wäre das für den einen oder anderen ja doch Motivation, sich ein paar Tage freizunehmen.
  14. kurtchen
    Heute habe ich in Heidelberg meine letzte Prüfung im Modul "Electronic Business" abgelegt. Da ich mir ziemlich sicher bin, bestanden zu haben, kann ich sagen: "Ich bin scheinfrei."
     
    Das ist ein gutes Gefühl, denn obwohl mir mein Studium große Freude gemacht hat, so habe ich - zumindest im Moment - keinen Appetit mehr auf Module, Einsendeaufgaben und Klausuren.
     
    Scheinfrei heißt natürlich nicht fertig. Die Bachelorarbeit steht noch an. Angemeldet ist sie inzwischen. Ein bisschen geschrieben habe ich auch schon. Die Zeit zur Erstellung einer Latex-Vorlage war gut investiert. Ich kann mich gut auf's Schreiben konzentrieren und das erzeugte PDF sieht ganz gut aus. Jetzt freue ich mich auch darauf, mit der Bachelorarbeit ein eigenes Thema erkunden zu dürfen und meinen Lernprozess selbstständig zu gestalten.
     
    Aber das geht erst nächste Woche wieder los. Ich gönne mir jetzt Kaffee und Kuchen in der Kantine. Ein paar Kommilitonen schreiben noch die nächste Prüfung, aber für mich beginnt nun mein Wochenende.
     
    Ein Modulbericht zu "Electronic Business" folgt noch, könnte diesmal aber etwas knapper ausfallen.
  15. kurtchen
    5. Semester - Wintersemester 2018
    - Geschäftsprozessmanagement
    - BWL2
    - Wissenschaftliches Arbeiten
    - Software-Management
    - Software testen
    - Aktuelle Webtechniken
     
    4. Semester - Sommersemester 2017
    - Web-Anwendungen 2
    - Web-Engineering
    - Softwaretechnik 2
    - Softwaretechnik 3
    - Content Management Systeme (CMS)
    - Data-Mining
    - XML
    - BWL1
     
    3. Semester - Wintersemester 2016/2017
    - Mathematik 3
    - Softwaretechnik 1
    - Nicht-sequentielle Programmierung
    - Statistik
    - IT-Sicherheit
    - Mobile Computing
     
    2. Semester - Sommersemester 2016
    - Grundlagen der Informatik 3
    - Grundlagen der Informatik 4
    - Web-Anwendungen 1
    - Web-Ergonomie und Web-Design
    - Computernetze
    - Mathematik 2
     
    1. Semester - Wintersemester 2015/2016
    - Grundlagen der Informatik 1
    - Grundlagen der Informatik 2
    - Rechnerstrukturen und Betriebssysteme
    - Datenbanken und SQL
    - Mathematik 1
    - Web-Programmierung
     
    Zusätzlich belegte Module an anderen FHs
    - theoretische Informatik (WINGS Wismar)
    - Programmieren in C++ (Virtuelle Hochschule Bayern)
     
    Noch fehlende Pflichtmodule:
    - Multimedia
    - IT-Recht
    - Projektarbeit
    - Bachelorarbeit
  16. kurtchen
    Welche Bedeutung hat das Modul XML im Studiengang?
     
    Das Modul XML ist Pflicht für Studierende im Studiengang Web- und Medieninformatik. Es ist zugleich Baustein für die Hochschulzertifikate "Web-Entwickler" und "Software-Architekt" und wird als sinnvolle Vorbereitung für das Modul "Aktuelle Webtechniken" genannt, bei dem es um Java Server Faces geht. Die inhaltlichen Voraussetzungen für XML sind überschaubar; lediglich "Grundlagen der Informatik 1" sollte man belegt haben. Im Prinzip könnte man XML also schon im ersten Semester belegen.
     
    Für Studierende der Wirtschaftsinformatik ist dieses Modul nicht vorgesehen. Sie erwerben Grundkenntnisse in XML im Pflichtmodul "Web-Programmierung". Dort ist XML aber nur ein Thema unter vielen.
     
    Grundlage für das Modul ist das Lehrbuch "XML - DTD, XML-Schema, XPath, XQuery, XSLT, XSL-FO, SAX, DOM" von Margit Becher. Die Autorin war zugleich auch meine Tutorin, was bei Fragen zum Lehrtext immer praktisch ist. Das Lehrbuch hat an die 300 Seiten; der Umfang ist also für Springer Campus leicht unterdurchschnittlich. Die Stofffülle ist dennoch nicht zu unterschätzen.
     
    Was ist XML?
     
    Worum geht es nun? XML ist eine Auszeichnungssprache, d.h. Text oder andere Inhalte werden mit sogenannten Tags eingeschlossen. Die Tags spezifizieren z.B., um was für eine Art Inhalt es sich handelt, etwa einen Namen, ein Datum oder auch einen komplexen, zusammengesetzten Inhalt wie eine Adresse oder eine komplette Bestellung. Die Auszeichnung erleichtert es Maschinen, die Inhalte zu verarbeiten.
     
    Im Gegensatz zu HTML sind in XML die Tags nicht vordefiniert. Der Autor eines XML-Dokumentes kann selbst nach Bedarf Tags definieren und verwenden. XML ist also erweiterbar - engl. extensible - und das Kürzel XML steht für Extensible Markup Language. Zu beachten ist lediglich, dass geöffnete Tags wieder geschlossen werden und dass Tags sich nicht überlappen dürfen. Sie können lediglich ineinander geschachtelt werden. Dies nennt man Wohlgeformtheit. Tags können auch Attribute aufweisen. Man kann sich vorstellen, dass dem Element Eigenschaften hinzugefügt werden.
     
    Ein XML-Dokument kann man als Baumstruktur visualisieren. XML-Dateien sind maschinenlesbar und zugleich menschenlesbar. Aus diesem Grund eignen sie sich z.B. gut für Konfigurationsdateien. Man kann XML aber auch gut verwenden, um strukturierte Daten systemübergreifend oder über das Internet auszutauschen. 
    XML-Dateien können mit CSS-Stylesheets verknüpft werden. Die Tags stehen dann für die Struktur der Daten, innerhalb der Tags stehen die eigentlichen Daten und das Stylesheet gibt an, wie die Daten darzustellen oder zu präsentieren sind.
     
    Mit DTD oder XML-Schema definiert man die Struktur einer XML-Datei
     
    Interessant ist zunächst die Möglichkeit, die Struktur der Daten in einer XML-Datei in allgemeiner Form zu beschreiben. Man kann z.B. festlegen, dass eine Adresskartei aus Adressen besteht, die wiederum aus Name, Straße, Hausnummer, Postleitzahl und Ort in genau dieser Reihenfolge bestehen müssen. Ein XML-Dokument ist dann eine Instanz oder eine konkrete Ausprägung dieser allgemeinen Struktur. XML-Dateien können gegen eine solche Strukturdefinition gecheckt werden, d.h. ein Algorithmus prüft, ob die Datei der festgelegten Struktur entspricht. Ist dies der Fall, sagt man, die Datei sei valide. Das ist nützlich für Software, die Daten in XML-Form automatisiert verarbeiten soll. Man kann so Fehler in der Verarbeitung der Datei vermeiden.
     
    Es gibt 2 Möglichkeiten, die Struktur einer XML-Datei zu definieren. Die ältere ist die DTD (Document Type Definition). Die neuere ist XML-Schema. Letzteres ist komplexer, hat aber viele Vorteile. Besonders nützlich ist die Möglichkeit, viele verschiedene Datentypen zu unterscheiden, z.B. nummerische Werte, Datumswerte, Uhrzeiten und dergleichen. Man kann auch eigene Datentypen definieren, z.B. durch Werteinschränkung oder Kombination vordefinierter Typen. So kann die Struktur der zu verarbeitenden Daten viel präziser beschreiben als mit der DTD. Im Kurs werden beide Möglichkeiten ausführlich behandelt. Im Gegensatz zum Modul "Web-Programmierung" werden auch viele Detailfragen geklärt und seltener auftretende Anwendungsfälle vorgestellt. Einsendeaufgaben hier bestehen üblicherweise darin, in natürlicher Sprache spezifizierte Anforderungen an eine Datenstruktur als DTD oder XML-Schema präzise zu beschreiben.
     
    Wir können nun strukturierte Daten in einer Textdatei ablegen, die für Maschine wie Mensch zu lesen ist. Wir können die Struktur der Daten präzise beschreiben und eine Maschine prüfen lassen, ob Daten die für eine automatisierte Verarbeitung nötige Struktur haben.
     
    Mit XPath und XQuery extrahiert man Informationen aus einer XML-Datei
     
    XML-Dokumente können sehr lang und umfangreich werden. Nun gibt es Anwendungsfälle, bei denen man bestimmte Informationen aus einem XML-Dokument extrahieren möchte. Dazu werden im Kurs 2 Möglichkeiten behandelt: XPath und XQuery. XPath bietet die Möglichkeit, durch die Baumstruktur des Dokumentes zu navigieren und Elementeinhalte und Attribute zu testen, um bestimmte Elemente und Attribute herauszufiltern. Aus einer umfangreichen Vorlesungsliste in XML-Form kann man so z.B. alle Lehrveranstaltungen eines bestimmten Professors im Sommersemester eines bestimmten Jahres mit mehr als 2 SWS herausfiltern. XQuery bietet noch weitergehende Möglichkeiten, z.B. durch Schleifen. XQuery wird manchmal auch "SQL des 21. Jahrhunderts" genannt. Ganz so elegant und deklarativ wie SQL ist es aber - zumindest in der im Kurs behandelten Version - noch nicht. So müssen z.B. Joins noch von Hand ausprogrammiert werden. Bei Einsendeaufgaben in diesem Kursabschnitt geht es in der Regel darum, aus einer gegebenen XML-Datei bestimmte Informationen per XPath oder XQuery zu extrahieren.
     
    Mit XSLT kann man XML-Dokumente automatisch in andere Dokumente transformieren
     
    Im nächsten großen Kursabschnitt geht es um XSLT. Diese Technik ermöglicht, ein XML-Dokument in ein anderes Dokument zu transformieren, z.B. ein neues XML-Dokument aber auch in eine HTML-Datei. In XSLT können XPath-Ausdrücke verwendet werden. Man kann XSLT also z.B. benutzen, um aus einer XML-Datenbasis bestimmte Informationen zu extrahieren und daraus automatisch HTML-Seiten oder Fragmente von HTML-Seiten zu bauen. Dazu werden Schablonen definiert, die auf bestimmte Elemente des XML-Dokumentes angewendet werden. Bei Einsendeaufgaben in diesem Kursabschnitt ist üblicherweise ein XML-Dokument vorgegeben, das per XSLT in HTML-Dokument transformiert werden soll, das ausgewählte Inhalte des ursprünglichen Dokumentes in bestimmter Form präsentiert. In einem eigenen Kapitel wird noch XSL-FO vorgestellt. Das kann z.B. benutzen, um aus XML-Dateien automatisch PDFs zu erzeugen.
     
    Der Abschluss des Kurses bildet ein Kapitel über die Verarbeitung von XML in Java mit SAX und DOM. Dieses durchaus interessante Kapitel ist allerdings nicht mehr prüfungsrelevant.
     
    Ein gutes Modul, wenn man die richtigen Werkzeuge nutzt
     
    Der Lehrtext ist gut strukturiert und die Aufgaben sinnvoll darauf abgestimmt. Die Rückmeldungen durch meine Tutorin waren präzise, hilfreich und kamen meist schnell. Zu Beginn des Kurses habe ich leider viel Zeit vergeudet, indem ich versucht habe, ohne den empfohlenen XML-Editor OxygenXML auszukommen. Der ist proprietär und leider nicht billig. Studierende können ihn allerdings für 30 Tage kostenlos testen, nachdem sie sich registriert haben. 30 Tage erschienen mir etwas knapp für die Bearbeitung des Kurses. Darum hatte ich zunächst versucht, mit OpenSource-Tools auszukommen. Den Kursteil zur DTD und zu XML-Schema konnte ich so noch gut bearbeiten, auch wenn es müsam voran ging. Spätestens für XPath ist es von enormem Vorteil, einen professionellen XML-Editor zu Verfügung zu haben. Als ich mich schließlich doch wiederwillig für OxygenXML registrierte, musste ich nach wenigen Minuten einsehen, dass das besser von Anfang an hätte machen sollen. Man kann damit viel komfortabler und vor allem schneller arbeiten. Eiert also nicht rum wie ich sondern besorgt euch von Anfang an das richtige Werkzeug.
     
    Online- und Präsenz-Klausur
     
    Online-Klausur und Präsenzklausur fand ich vom Schwierigkeitsgrad vergleichbar. Der Zeitdruck in der Online-Klausur erschien mir höher. Möglicherweise wurde hier in Anschlag gebracht, dass man in der Präsenzklausur keine Entwicklungsumgebung zur Verfügung hat, während der Online-Klausur aber schon.
     
    In der Präsenzklausur war EIN XML-Dokument gegeben. Auf der Grundlage dieses Dokumentes wurden ALLE wesentlichen Themen des Kurses abgeprüft: DTD, XML-Schema, XPath, XQuery und XSLT. Das erscheint mir vernünftig. Indem sich alle Aufgaben auf EIN Dokument  beziehen, muss man sich nicht ständig neu einlesen und die Prüfer können den Stoff breiter abdecken. Mein Eindruck war, dass die Aufgabenstellungen sich auf häufig verwendete Anwendungsfälle konzentrieren, hier also nicht die exotischsten Spezialfälle abgefragt werden. Ein Klausurergebnis liegt mir aber noch nicht vor.
     
    Fazit
     
    XML hat mir Spaß gemacht. Man braucht nicht viel Phantasie, um sich vorzustellen, welchen Nutzen diese Sprache für einen Web-Informatiker haben könnte. Wünsche, was ich gerne NOCH gelernt hätte, sind bei mir diesmal nicht offen geblieben; das Modul ist aus meiner Sicht inhaltlich vollständig.
     
    Es würde mich nun reizen, auch noch das Modul "Aktuelle Webtechniken" im Wahlbereich zu belegen, bei dem es um Java Server Faces geht. XML wird dafür als inhaltliche Voraussetzung genannt. Kommilitonen, dieses Modul schon belegt haben, berichten mir, dass XML hierfür durchaus sehr nützlich ist. Da ich diese Voraussetzung nun erfülle und mir die Kurse zur serverseitigen Programmierung mit Java gut gefallen haben, bin ich schon sehr gespannt auf diese Einführung in JSF. Allerdings wird es wohl Herbst werden, bevor ich dazu komme. Das größte Chaos meines Umzuges ist zwar überstanden und ich habe nun wieder einen Arbeitsplatz und einen Internetanschluss; trotzdem hängt am Umzug ein Rattenschwanz zu Kleinigkeiten, die noch erledigt werden müssen; und die mir Tag für Tag Zeit rauben, die eigentlich gerne ins Studium stecken würde. Mal sehen, wie lange dieses Stadium noch dauert.
  17. kurtchen
    Welche Rolle spielt Softwaretechnik 2 im Studium?
     
    Das Modul "Softwaretechnik 2" wird - wenig überraschend - dem Studienbereich "Softwaretechnik" zugerechnet, der in den Studiengängen von Springer Campus einen recht großen Raum einnimmt. Das Modul ist Pflicht, sowohl im Studiengang "Web- und Medieninformatik" als auch im Studiengang "Wirtschaftsinformatik". Als inhaltliche Voraussetzung gilt das Modul "Softwaretechnik 1", bei dem es um Basistechniken und die Basiskonzepte Statik, Dynamik und Logik geht. Dieser Einschätzung würde ich mich anschließen. In SWT1 wird vor allem eine solide Grundlage in UML vermittelt, die man in SWT2 braucht. Springer Campus empfiehlt, auch das Modul "Softwaremanagement 1" vorher zu belegen, weil es das Verständnis von SWT2 erleichtere. Dazu kann ich nichts näheres sagen, weil ich SWM1 nicht vorher belegt hatte. Ich hatte den Eindruck, mit dem Stoff gut zurecht zu kommen und SWM1 als Grundlage nicht unbedingt zu brauchen. Möglicherweise wären mir die Kursabschnitte zur Aufwandsschätzung so leichter gefallen.
     
    SWT2 ist auch ein Pflichtmodul in den Weiterbildungszertifikaten "Requirements Engineer", "Software-Architekt" und "Software-Manager". Wer sich für eine dieser wissenschaftlichen Weiterbildungen interessiert, sei es als Etappenziel auf dem Weg zum Bachelor oder auch als eigenständige Weiterbildung, der muss sich mit den Inhalten dieses Moduls beschäftigen.
     
    Das Lehrbuch
     
    Inhaltlich geht es in SWT2 um Requirements Engineering, Aufwandsabschätzung und die Modellierung von Anforderungen. Ein neues Lehrbuch bekommt man nicht. Man bearbeitet die verbleibenden Kapitel vom (hervorragenden) "Lehrbuch der Softwaretechnik - Basiskonzepte und Requirements Engineering" von Helmut Balzert, welches ja schon SWT1 zu Grunde lag. Während SWT1 mit über 400 Seiten ein umfangreicher Kurs war, fällt SWT2 mit nur ca. 150 restlichen Seiten deutlich kompakter aus. Ich habe den Eindruck, dass sich das nicht ganz im Zeitaufwand niederschlägt. Viele Kapitel zum Requirements-Engineering sind vergleichsweise trockene Themen, durch die man sich mühsam durchbeißen muss. In SWT1 nahmen große UML-Diagramme viel Raum auf den Seiten ein, so dass man oft schneller voran kam. Dieses Modul ist etwas textlastiger. Gleichwohl scheint mir, dass der Arbeitsaufwand ungleichmäßig verteilt ist. Ich hätte es besser gefunden, die Kapitel zur Logik aus SWT1 noch SWT2 zuzuteilen. Allerdings ginge dabei die klare thematische Gliederung der Module verloren. Wahrscheinlich muss man sich damit abfinden, dass die Module trotz formal gleichem Workload mal anstrengender und mal etwas leichter ausfallen. Dies bezieht sich allerdings nur auf den Arbeitsumfang. Inhaltlich ist SWT2 anspruchsvoll und relevant.
     
    Requirements Engineering
     
    Beim Requirements Engineering geht es im wesentlichen um das Erfassen von Anforderungen für Software-Projekte. In der Vergangenheit sind immer wieder große Software-Projekte spektakulär gescheitert. Ein wesentlicher Grund war, dass die Anforderungen an das Produkt zu Beginn nicht präzise ermittelt wurden, Entwurf und Implementierung also schon vorangeschritten waren, als wesentliche Anforderungen erst bekannt wurden. So etwas endete oft damit, dass sich der erstellte Code als unbrauchbar erwiest, weil der Entwurf schon in den Grundzügen an den Anforderungen vorbei ging. Die nötigen Änderungen wären teurer gewesen als ein kompletter Neubeginn. Requirements Engineering beschäftigt sich mit Techniken und Vorgehensweisen, um relevante Anforderungen zu Beginn eines Projektes (und im laufenden Projekt) zu ermitteln, um ausufernde Kosten, Terminverzögerungen oder gar ein Scheitern des Projektes zu vermeiden.
     
    Das klassische Vorgehen ist ein dreistufiges. Die Anforderungen werden aus Kundensicht definiert. Das Ergebnis ist ein Lastenheft, das i.d.R. auch Angebotsgrundlage ist. Dann werden die Anforderungen aus dem Lastenheft spezifiziert. Das Ergebnis ist das deutlich umfangreichere Pflichtenheft, zu dem auch Abnahmekriterien gehören. Die im Pflichtenheft spezifizierten Anforderungen werden dann klassischerweise in eine fachliche Lösung in Form eines OOA-Modells überführt. Damit sind wir aber schon im Bereich Anforderungs-Modellierung.
     
    Es gibt aber auch agile Softwareentwicklung. Hier ist das Ziel mit möglichst wenig Dokumenten außer dem Code auszukommen. Ein Kunde oder Kundenrepräsentant wird ins Entwicklungsteam integriert, die Anforderungen werden in Form von User Stories erhoben, die beschreiben, was das Softwaresystem für die Benutzer leisten soll. Kennzeichnend für agile Entwicklung ist, dass die Anforderungen nicht vollständig vor sondern nach und nach während des Projektes ermittelt werden.
     
    Der inhaltliche Fokus von SWT2 liegt aber klar auf dem klassischen sequentiellen Vorgehen. Im Rahmen der Einsendeaufgaben erstellt man auch selbst ein Lasten- und ein Pflichtenheft, was sich vergleichsweise lange hinzieht und ungewohnt viel Schreibarbeit ist. Hier geht es unter anderem darum, Anforderungsschablonen anzuwenden, die eine klare inhaltliche Gliederung vorgeben und zum Teil auch mit einheitlichen Formulierungen arbeiten. Hier muss man sich ein bisschen disziplinieren. Man muss zum Beispiel sehr präzise unterscheiden, was ein System leisten SOLL und was es leisten MUSS. Beim Pflichtenheft ist es wesentlich, Abnahmekriterien zu formulieren, die eindeutig überprüfbar sind. Hier kam es mir tatsächlich einmal zu Gute, dass ich eine pädagogische Ausbildung habe. Bildungs- und Förderziele sollten ebenfalls so formuliert sein, dass sie konkretes und beobachtbares Verhalten beschreiben, damit man nachprüfbar ist, ob der Lernende sie erreicht hat. Schwammige Formulierungen wie "das Sozialverhalten der Schüler soll sich verbessern", lassen viel Interpretationsspielraum. Man kann mir so zwar nicht beweisen, dass meine Maßnahme wirkungslos war, aber ich kann umgekehrt auch nicht beweisen, dass ich etwas erreicht habe. Hier sah ich also eine gewisse Analogie, die mir das Verständnis erleichterte.
     
    Aufwandsschätzung
     
    In den folgenden Kapiteln geht es um das Schätzen des Entwicklungsaufwandes. Das ist ein sehr wichtiger Schritt, weil ein Unternehmen, das Software entwickelt, dem Kunden ein Angebot machen muss. Schätzt man den Aufwand zu hoch ein, geht der Kunde zu einem günstigeren Mitbewerber und man bekommt den Auftrag nicht. Schätzt man ihn zu niedrig ein, sind die Entwicklungskosten höher als der vereinbarte Preis und man verliert Geld. Eine möglichst gute Aufwandsschätzung ist also wesentlich für den wirtschaftlichen Erfolg, auch wenn es gute Gründe geben kann, eine Software unter den tatsächlichen Entwicklungskosten anzubieten. Zum Beispiel weil man damit in eine neue Anwendungsdomäne vordringen kann und sich eine Codebasis erarbeitet, die man in künftigen, ähnlichen Projekten wiederverwenden kann. Solche Entscheidungen sollte man dann aber bewusst und strategisch treffen.
     
    Aufwandsschätzung ist leider alles andere als einfach. Im Kurs lernt man verschiedene Schätzverfahren kennen, wozu auch algorithmische Verfahren wie Function Points oder Object Points gehören. Viele der Verfahren sind selbst recht aufwendig, so dass allein die Durchführung der Schätzung schon beträchtliche Kosten verursacht. Auch formalere Verfahren wie Functions Points müssen mit Erfahrungswerten aus dem Unternehmen sozusagen kalibriert werden, um ermittelte Aufwandspunkte in Entwicklermonate umrechnen zu können. Hier spielen viele Faktoren eine Rolle. Eine Rolle spielt zum Beispiel die Erfahrung der Entwickler mit ähnlichen Projekten, der Anteil von Code, der wiederverwendet werden kann, aber auch die Sprache, in der entwickelt werden soll.
     
    Natürlich darf man nicht erwarten, allein auf Grundlage eines Studienmoduls in der Lage zu sein, eine Aufwandsschätzung vorzunehmen. Man lernt Methoden kennen, mit denen Unternehmen versuchen, dieses Problem zu lösen. Man lernt relevante Begriffe und Konzepte. Und man entwickelt ein Bewusstsein, für die damit verbundenen Probleme. Einsendeaufgaben hier beinhalten z.B. das Bestimmen von Function Points für ein skizziertes Projekt.
     
    Anforderungen modellieren
     
    Im letzten Kursabschnitt geht es um objektorientierte Analyse, also das Erstellen eines OOA-Modells auf Grundlage einer Spezifikation. Wichtigstes Ergebnis ist in der Regel ein UML-Klassendiagramm, das die Statik des Systems modelliert. Der Kurs vermittelt 10 sogenannte OOA-Muster, wiederkehrende Formen der Verknüpfung von Klassen, mit charakteristischer Semantik und charakteristischen Multiplizitäten. Hier muss man wieder Diagramme zeichnen und dieser Kursteil war dann schon wieder lebendiger und näher dran an der Programmierung. Für mich persönlich war das der Teil des Kurses, der mir am meisten Spaß gemacht hat. Eine typische Einsendeaufgabe hier wäre das Wiedererkennen der behandelten Muster in kleinen Spezifikationen, die man modellieren soll.
     
    Prüfungen
     
    Online-Test und Online-Klausur deckten die Inhalte des Kurses noch einmal breit ab. Eine kleine Warnung vorweg: Ich hatte ein Lastenheft mit Glossar zu schreiben. Da steckt viel Schreibarbeit drin und es ist nicht ganz einfach, sich die Zeit gut einzuteilen. Hier habe ich Punkte verschenkt, weil ich mich mit Schreiben zu lange aufgehalten habe und die verlorene Zeit beim Modellieren nicht mehr rausholen konnte. Hilfreich wäre vielleicht, gewisse Text- und UML-Schablonen schon griffbereit zu haben.
     
    Ich hatte den gleichen Tutor wie in SWT1. Auch in SWT3 er mich voraussichtlich wieder begleiten. Die Kurse bauen aufeinander auf und es ist sehr schön, hier einen kontinuierlichen Ansprechpartner zu haben, der einen durch einen längeren Lernprozess begleitet.
     
    Die Präsenzklausur deckte die Inhalte breit ab, wenn auch mit unterschiedlicher Gewichtung. Ich hatte relativ viel Modellierung, was mir eigentlich Spaß gemacht hat. Mal sehen, ob ich das auch in eine gute Note umsetzen konnte. Der Zeitdruck war im Vergleich zur Online-Klausur geringer, so dass die Online-Klausur hier als gute Vorbereitung gelten kann. So ist es mir am liebsten.
     
    Ausblick
     
    Ich bin nun sehr gespannt auf SWT3, wo es unter anderem um Entwurfsmuster gehen wird. Laut meinem Tutor wird dort auch wieder mehr programmiert. Darauf freue ich mich schon richtig.
  18. kurtchen
    Das Modul "Wissenschaftliches Arbeiten" gehört zum Studienbereich "Basiskompetenz Beruf", in dem man verschiedene "Soft Skill" Module belegen kann. Die anderen Module dieses Bereichs sind "Soziale Kompetenz", "Selbst- und Zeitmanagement", "Rhetorik", "Präsentieren" und "Kreativitätstechniken". "Wissenschaftliches Arbeiten" nimmt unter diesen Modulen eine besondere Stellung ein. Es kann als einziges auch als Wahlpflichtmodul belegt werden. Wer also zu Beginn seines Studiums lieber "Rhetorik" belegen möchte, kann "Wissenschaftliches Arbeiten" noch kurz vor der Projekt- und Bachelorarbeit nachholen. Wichtiger ist allerdings, dass dieses Modul auf die Anfertigung der Bachelorarbeit vorbereitet.
     
    Früher war die Belegung freiwillig aber dringend empfohlen. Soweit ich informiert bin, ist das Modul inzwischen Pflicht für neu eingeschriebene Studenten, weil es in Einzelfällen Probleme bei der Anfertigung der Bachelorarbeiten gab. Das ist fatal, weil bei einer nicht bestandenen Bachelorarbeit ja schon die komplette Studienzeit investiert wurde. Auch eine schlechte Note ist hier besonders ärgerlich. Zum einen, weil die Bachelorarbeit stärker in die Endnote eingeht als andere Module, zum anderen, weil die Bachelorarbeit als eigenständige Leistung in einem (oft) selbstgewählten Themengebiet auch in der Außenwahrnehmung durch Arbeitgeber eine höhere Bedeutung hat als andere Module.
    Anscheinend hat sich an der FH Dortmund gezeigt, dass Studierende, die eine Einführung ins wissenschaftliche Arbeiten belegt haben, die formalen Anforderungen einer Bachelorarbeit besser bewältigen. Und das ist ja auch nicht überraschend. Die Methoden wissenschaftlichen Arbeitens kann und muss man lernen.
     
    Lehrbuch und Themen
     
    Professor Balzert ist einer der Autoren des Lehrbuches "Wissenschaftliches Arbeiten". Ich meine, den Stil und den sauberen Aufbau seiner Lehrbücher zur Softwaretechnik auch in diesem Buch wiederzuerkennen. Weitere Autoren sind Marion Schröder und Christian Schäfer. Frau Schröder kennen manche Studierende auch als Autorin des Lehrbuches "Heureka, ich hab's gefunden! Kreativitätstechniken, Problemlösung & Ideenfindung".
     
    Der reine Textteil hat über 400 Seiten. Ich kenne andere Einführungen ins wissenschaftliche Arbeiten und finde diese klar formuliert und gründlich. Wie schon in anderen Büchern von Herrn Balzert, klärt er zu Beginn wichtige Begriffe. Insbesondere behandelt er Qualitätskriterien wissenschaftlichen Arbeitens: Ehrlichkeit, Objektivität, Überprüfbarkeit, Reliabilität, Validität, Verständlichkeit, Relevanz, Logische Argumentation, Orginalität, Nachvollziehbarkeit, Fairness und Verantwortung. Diese Begriffe werden analysiert und durch konkrete Beispiele lebendig und verständlich gemacht. Diese Kapitel haben mir besonders gefallen. Eine so trennscharfe Analyse der Begriffe kenne ich eher aus geisteswissenschaftlichen Texten. Allein deswegen hat mir dieses Modul viel Freude gemacht.
     
    Im weitern Verlauf geht es dann um Techniken und Konventionen wissenschaftlichen Arbeitens. Zunächst geht es um den inhaltlichen Aufbau verschiedener Arten von wissenschaftlichen Arbeiten. Eine empirische Arbeit hat zwar im Prinzip einen ähnlichen Aufbau wie eine konstruktive Arbeit, aber Umfang und Gewichtung der verschiedenen Abschnitte unterscheiden sich deutlich. Darum ist es wichtig, sich darüber klar zu werden, was für eine Art wissenschaftlicher Arbeit man schreiben möchte. Unterschieden werden hier:
    Literaturarbeit empirische Arbeit konstruktive Arbeit theoretische Arbeit  
    Insbesondere die konstruktive Arbeit ist für Informatiker relevant. Hier geht es darum, durch systematisches Vorgehen ein technisches Erzeugnis zu erstellen, also z.B. ein Software-System. Die Projektarbeit im Studiengang Web- und Medieninformatik ist eine konstruktive Arbeit. Soweit ich informiert bin, kann die Bachelorarbeit auch einen anderen Charakter haben.
     
    In verschiedenen Studienabschnitten sind unterschiedliche Arten wissenschaftlicher Arbeiten zu erstellen. Es ist ein Unterschied, ob man eine Hausarbeit, eine Bachelorarbeit, eine Masterarbeit, einen wissenschaftlichen Artikel oder eine Dissertation schreibt. Mich haben natürlich zunächst einmal die Anforderungen an eine Bachelorarbeit interessiert, aber es ist schon interessant zu wissen, auf welche Höhen das Niveau noch steigen kann. Ich habe zwar momentan keine konkreten Pläne für einen Master, aber das könnte ja irgendwann noch einmal Thema werden.
     
    Schließlich geht es um den formalen Aufbau wissenschaftlicher Arbeiten, also um Dinge wie Satzspiegel, Textgestaltung, Seitennummerierung, Fußnoten, Anhänge und insbesondere Verzeichnisse. Hier erhält man viele wertvolle Tipps, wie man sich eine geeignete Dokumentenvorlage erstellt, um dann auch zügig arbeiten zu können. Im Modul sind Dokumentvorlagen für Word, LibreOffice und LaTEX enthalten, die man sich herunterladen kann. Ich habe ein wenig mit der LaTEX-Vorlage experimentiert. Leider hätte ich hier noch einige Anpassungen an die deutsche Sprache vornehmen müssen, weil insbesondere das Erstellen von Verzeichnissen noch unbefriedigend funktionierte. Für meinen mündlichen Vortrag habe ich aus Zeitdruck mit der LibreOffice-Vorlage gearbeitet, die ich für meine Zwecke etwas angepasst habe.
     
    Das Thema Formatierung ist nicht aufregend, aber für solche formalen Dinge kann später viel Zeit draufgehen. Die kann sich sparen, wenn man sich vorher die Mühe macht, eine gescheite Vorlage zu bauen. Literaturverzeichnissysteme können einem die Arbeit erleichtern, erfordern aber natürlich auch eine gewisse Einarbeitung. Darum ist es gut, sich schon vor Anmeldung einer Bachelorarbeit mit so etwas zu beschäftigen. LaTEX möchte ich mir noch einmal genauer anschauen. Ich habe den Eindruck, dass man damit viel Zeit sparen kann, wenn man die anfänglichen Hürden nimmt.
     
    Eine wichtige Rolle nimmt im Modul natürlich das korrekte Zitieren von Quellen ein. Hier geht es zunächst einmal darum, zu verstehen, was für Quellen zitierfähig und zitierwürdig sind. Dann geht es darum, sich in Absprache mit der Hochschule bzw. dem Betreuer für eine der verschiedenen Zitierweisen zu entscheiden und diese auch konsequent durchzuhalten. Dabei hilft wieder eine gute Dokumentenvorlage. Unterschiedliche Arten von Veröffentlichungen müssen im Literaturverzeichnis auch unterschiedlich behandelt werden. Insbesondere Quellen aus dem Internet sind nicht einfach zu referenzieren, weil eine Quelle unter einem Link nicht unbedingt dauerhaft zu finden ist. Es gibt verschiedene Möglichkeiten, damit umzugehen, die im Modul thematisiert werden.
     
    Es folgt ein Kapitel über wissenschaftlichen Schreibstil, verständliches Schreiben und die Visualisierung von Inhalten.
     
    Ein weiteres Kapitel behandelt unterschiedliche Forschungsmethoden mit ihren Stärken und Schwächen. Unterschieden werden hier:
    schriftliche Befragung Fragebögen und Interview-Leitfäden Experiment Interview Gruppendiskussion Beobachtung Inhaltsanalyse  
    Je nach Gegenstand und Forschungsschwerpunkt sind unterschiedliche Methoden angemessen. Auch dieses Kapitel hat eine erkenntnistheoretische Komponente.
    Ein wichtiger Teil des Kurses beschäftigt sich damit, wie man sich seine Arbeitszeit gut einteilt, um seine Arbeit auch rechtzeitig abschließen zu können. Hier fällt der Begriff Projektmanagement, den ich etwas übertrieben finde, weil für mich dazu gehört, dass zumindest ein kleines Team koordiniert wird. Selbst- und Zeitmanagement hielte ich für die passendere Bezeichnung. Gleichwohl erhält man hier wertvolle Tipps, wie man die Arbeit an einer Bachelorarbeit in überschaubare Teilschritte gliedern und Meilensteine definieren kann. Gezeigt wird auch die Arbeit mit Software-Tools zum Projektmanagement. Ich habe die Arbeit damit ausprobiert, hatte aber den Eindruck, dass hier das Verhältnis zwischen Einarbeitungsaufwand und Nutzen nicht stimmt. Wenn man ein Projekt mit vielen Beteiligten zu managen hat, mag das freilich ganz anders aussehen. In diesem Abschnitt wird auch behandelt, wann und wie oft man sich mit seinem Betreuer austauschen sollte.
     
    Der letzte Kursabschnitt handelt von der Präsenation der Ergebnisse in einem mündlichen Vortrag, denn eine Bachelorarbeit muss ja in den meisten Fällen auch verteidigt werden. Die Inhalte dieses Abschnittes überlappen sich zum Teil mit dem Modul "Präsentieren".
     
    Einsendeaufgaben
     
    Die Einsendeaufgaben sind zahlreich und vielfältig und beziehen sich auf alle Kursteile. Spaß gemacht haben mir zum Beispiel die Aufgaben zur Stilverbesserung. Am besten gefallen haben die Aufgaben zu den Qualitätskriterien wissenschaftlichen Arbeitens, weil sie oft eine kreative Komponente hatten. Die Korrekturen durch meine Tutoren kamen sehr zügig. Gut gefallen hat mir, dass sie Informatikerin ist und das Thema "Wissenschaftliches Arbeiten" aus dieser Perspektive betreut. Auch die Tests waren zahlreich und deckten den Stoff engmaschig ab.
     
    Prüfung
     
    Eine Besonderheit dieses Moduls ist, dass die Klausur nur eine Stunde dauert, dafür aber eine mündliche Prüfung zum Modul gehört. Diese muss ein bisschen früher anmeldet werden als eine Klausurteilnahme, weil der organisatorische Aufwand höher ist. Mündliche Prüfungen finden nur in Dortmund statt, üblicherweise am Freitag Vormittag.
    Die mündliche Prüfung besteht aus einem Vortrag von 20 Minuten. Anschließend beantwortet man noch Fragen zum Thema. Man reicht drei Themenvorschläge ein:
    ein allgemeines Informatikthema ein spezielles Informatikthema ein allgemeines Thema (das also nichts mit Informatik zu tun hat)  
    Ich hätte am liebsten ein Thema aus der Entwicklungspsychologie vorgetragen, aber ausgewählt wurde mein Vorschlag "Grundlegende Merkmale und Muster funktionaler Programmierung". Dieses Thema war auch gut, weil es schon einen gewissen Bezug zu dem hat, was ich in meiner Bachelorarbeit gerne machen würde. Insofern war die mündliche Prüfung auch eine Gelegenheit, sich hier schon mal ein bisschen einzulesen.
     
    Welches Thema ausgewählt wurde, erfährt man übrigens erst zwei Wochen vor dem Prüfungstag. Es geht nun darum, die im Modul gelernten Techniken im kleineren Maßstab anzuwenden. Erwartet wird z.B. die Recherche und Auswahl relevanter Literatur. Die Art des Vortrages ist nicht genau vorgegeben, aber Beamervorträge sind heute üblich. Ein Handout ist nicht zwingend, es kostet aber Punkte, wenn es fehlt. Außerdem ist das Handout eine Möglichkeit, das Verfassen einer schriftlichen Arbeit zu üben und auch Feedback dazu zu erhalten. Darum meine ich, es lohnt sich, hier zumindest etwas in der Art einer Hausarbeit abzuliefern. Zwei Wochen sind durchaus wenig Zeit für eine saubere Arbeitsweise im Sinne der vermittelten Techniken und Qualitätskriterien. Es macht viel Spaß, ein selbst gewähltes Thema zu recherchieren und zu bearbeiten, aber es ist auch viel Arbeit, insbesondere, wenn man eigentlich erst nach seinem Job Zeit hat, sich mit seinem Thema zu befassen. Die mündliche Prüfung erhöht den Bearbeitungsaufwand des Moduls erheblich. Ich vermute, dass das auch für andere Module mit mündlicher Prüfung gilt.
     
    Ein kritischer Punkt bei meinem Vortrag war die Einhaltung der Redezeit, was auch zu Punktabzug geführt hat. Auch beim Punkt Einbeziehung des Publikums habe ich noch einiges zu lernen. Fachlich war es zu meiner Überraschung in Ordnung. Ich war nämlich die ganze Zeit der Ansicht, viel zu wenig Stoff behandelt zu haben, und habe mir den Kopf zerbrochen, wie ich noch mehr Themen in die 20 Minuten quetschen kann. Für das nächste Mal werde ich lernen müssen, stärker Wesentliches vom Unwesentlichen zu trennen.
     
    In den Klausuraufgaben geht es unter anderem um Qualitätskriterien wissenschaftlichen Arbeitens. Es werden etwa Vorgehensweisen, Aussagen oder Schlussfolgerungen präsentiert und man soll dann erklären, warum das keine saubere wissenschaftliche Arbeitsweise ist und was man besser machen müsste. Für die Endnote werden die Punkte aus mündlicher und schriftlicher Prüfung addiert.
     
    Mit meinem Prüfungsergebnis war ich zufrieden, auch wenn die mündliche Prüfung gezeigt hat, dass es noch Punkte gibt, an denen ich arbeiten muss.
     
    Fazit
     
    Ich hätte erwartet, dass dieses Modul zwar nützlich für die Bachelorarbeit aber nicht besonders spannend ist. Zu meiner Überraschung hat die Bearbeitung mir unheimlich viel Spaß gemacht.
     
    Thematisch war es eine echte Abwechslung. Es hat eben nicht nur und nicht mal schwerpunktmäßig mit Informatik zu tun. Tatsächlich ist das Lehrbuch eine allgemeine Einführung ins wissenschaftliche Arbeiten. Die Beispiele stammen darum nicht nur aus der Informatik sondern z.B. auch den Sozialwissenschaften oder ganz anderen Disziplinen. Das Modul ist im Gegensatz zu den meisten anderen Modulen meines fachbezogenen Studiums allgemeinbildend. Was hier vermittelt wird, entwickelt auch die Fähigkeit zu kritischem Denken. Bei den Einsendeaufgaben und auch bei den Themenvorschlägen für die mündliche Prüfung hat man größere Entscheidungsspielräume als bei anderen Aufgaben im Informatik-Studium. Rückblickend betrachte ich das Modul "Wissenschaftliches Arbeiten" als eines der schönsten in meinem Studium.
  19. kurtchen
    12:45 Uhr - Vortrag "Sicherheit im Internet"
     
    Der Vortrag hielt Prof. Rettinger von der FH Dortmund. Seine Lehrgebiete dort sind Grundlagen der Informatik und Compilerbau. Herr Rettinger hat Erfahrung mit Fernlehre, unter anderem weil er als Lehrbeauftragter für die Fernuni Hagen tätig ist. Bei Springer Campus betreut er künftig Grundlagen der Informatik 1 und 2, also die Einführungen in die strukturierte und objektorientierte Programmierung in Java. Herr Rettinger hat früher einmal im Bereich "Public Key Kryptographie" geforscht. Möglicherweise ist dies sein Bezug zum Thema des Vortrages. Dieses lautet...

    "Sicherheit im Internet. Eine kurze Einführung in die moderne Kryptographie"
     
    Der Vortrag begann mit einer alltäglichen Anwendungssituation im Internet, dem Abruf eines Wikipedia-Eintrages. Dabei wird eine HTML-Datei von einem Server per Internet auf den heimischen Laptop gesendet. Die Übertragung erfolgt mit den bekannten Protokollen, die aufeinander aufbauen.
    - Ethernet als Netzzugangsschicht
    - IP als Internetschicht
    - TCP als Transportschicht
    - HTTP als Anwendungsschicht
     
    3 Grundfragen der Sicherheit im Internet
     
    Im Hinblick auf die Sicherheit dieser Situation stellen sich folgende 3 Grundfragen:
    1. Wer sagt mir, dass am anderen Ende der Kommunikation wirklich ein Server der Wikipedia ist? Das ist das Problem der Authentizität.
    2. Liest jemand mit? Das ist das Problem der Vertraulichkeit.
    3. Ist der empfangene Inhalt manipuliert? Das ist das Problem der Integrität.
     
    Symmetrische Verschlüsselung
     
    Der klassische Ansatz wäre Verschlüsselung beim Sender, Entschlüsselung bei Empfänger. Dann kann ich Inhalt über einen unsicheren Kanal wie das Internet übertragen. Eine gängige Technik dazu wäre z.B. die Verschlüsselung mit AES. Verwendet man EINEN Schlüssel zum Ver- und Entschlüsseln, so spricht man von symmetrischer Verschlüsselung. Dabei treten 2 prinzipielle Probleme auf:
    1. Wie vereinbaren die Kommunikationspartner den gemeinsamen Schlüssel? Dazu bräuchten sie einen sicheren Kanal. Wenn sie den hätten, bräuchten sie nicht verschlüsseln. Tatsächlich ist das eine gängige Strategie. Beispielsweise verschicken Banken das Kennwort für den Zugang zum Online-Banking per Briefpost, in der Hoffnung, dass die Abhörsicherer ist als eine E-Mail.
    2. Die Anzahl der nötigen Schlüssel. Wollen 1000 Teilnehmer miteinander kommunizieren, müssen sie an die 500.000 Schlüssel vereinbaren. Bei einer Million Teilnehmern braucht man schon an die 500.000.000.000 Schlüssel.
     
    Um die genannten Probleme zu überwinden, hat man asymmetrische Verschlüsselungsverfahren entwickelt. Hier verwendet man unterschiedliche Schlüssel zum Ver- und Entschlüsseln. Davon später mehr.
     
    Einwegfunktionen
     
    Verschlüsselung basiert allgemein auf Einwegfunktionen. Eine Einwegfunktion ist eine Funktion, deren Umkehrung schwierig ist. Ein einfaches Beispiel für eine Einwegfunktion ist die Multiplikation von Primzahlen:
    - Das 143 das Produkt der Primzahlen 11 und 13 ist, errät man nicht so schnell.
    - Dagegen ist es sehr leicht, 11*13 zu rechnen.
    - Werden die Primzahlen größer, steigt die Schwierigkeit der Faktorisierung enorm. Man ist im wesentlichen auf rumprobieren angewiesen.

    Die Multiplikation von Primzahlen ist also eine Einwegfunktion, weil ihre Umkehrung, die Primfaktorzerlegung, schwierig ist.
     
    Prinzipiell immer möglich: Brute-Force-Angriffe
     
    Schwierig ist natürlich ein schwammiger Begriff. Möglich ist die Umkehrung einer Einwegfunktion prinzipiell immer, nämlich mit dem brute force Ansatz. Er besteht im Ausprobieren aller möglichen Schlüssel. Die in der Praxis relevante Frage ist, wie lange brute force Entschlüsselung dauert. Für die meisten Anwendungsfälle würde es reichen, wenn das Brechen der Verschlüsselung im Schnitt 50 Jahre dauert.
     
    Hat ein Schlüssel die Länge 500 Bit, so muss man im Schnitt 2 hoch 249 mögliche Schlüssel ausprobieren. Wir nehmen an, jedes Atom im Universum sei als Prozessor nutzbar. Man schätzt, dass es 10 hoch 85 Atome bzw. ungefährt 2 hoch 282 Atome gibt. Wir nehmen an, dass jedes Atom mit 1 PHz gtaktet wird. Für die Berechnung geben wir uns 1.000.000.000 Jahre. Dann können wir 2 hoch 387 Schritte ausführen. Das reicht bei weitem nicht, um den Schlüssel durch Ausprobieren zu finden. Man kann also sagen: Ist ein Schlüssel nur lang genug, so wird brute force Entschlüsselung praktisch unmöglich.
     
    Wichtige Einwegfunktionen sind z.B. Hashfunktionen. Diese dampfen in kurzer Rechenzeit große Datenmengen, z.B. komplette Internetseiten, auf einen kleinen Zahlenwert ein, den sogenannten Hashwert. Gängige Hashfunktionen sind SHA1 (gebrochen) und SHA256 (noch sicher).
     
    Primfaktorzerlegung: Grundlage des RSA-Verfahrens
     
    Für Verschlüsselung bedeutsamer sind Einwegfunktionen mit Hintertür (im englischen auch trap door also eigentlich Falltür). Sie verwenden 2 Schlüssel, einen zum Ver- und einen zum Entschlüsseln. Das sind also die oben genannten asymmetrischen Verschlüsselungsverfahren. Die beiden Schlüssel nennt man auch öffentlichen Schlüssel und privaten Schlüssel. Wichtig dabei ist: Es muss unmöglich sein, den privaten Schlüssel aus dem öffentlichen Schlüssel zu errechnen. Das nennt man Unabhängigkeit der Schlüssel. Ein bekanntes asymmetrisches Verschlüsselungsverfahren ist RSA. Es basiert auf der oben erwähnten Schwierigkeit der Primfaktorzerlegung.
     
    An dieser Stelle sei bemerkt: Die Schwierigkeit der Primfaktorzerlegung ist ein Erfahrungswert. Mathematiker versuchen sich seit langer Zeit an diesem Problem und konnten es bislang nicht in akzeptabler Zeit lösen. Es könnte natürlich sein, dass es ein schnelles Verfahren zur Primfaktorzerlegung gibt, das bislang nicht entdeckt wurde. In dem Fall wäre die Multiplikation von Primzahlen keine Einwegfunktion mehr und die darauf basierenden Verschlüsselungen leicht zu brechen.
     
    Auf die Details des RSA-Verfahrens gehe ich hier nicht länger ein, auch wenn sie im Vortrag kurz vorgestellt wurden. Knapp gesagt verschlüsselt man eine Botschaft M (message) mit einem Schlüssel e und erhält die verschlüsselte Botschaft C. C wird mit dem Schlüssel d entschlüsselt und man erhält wieder M.
     
    Die Grundidee lieferten im Jahr 1975 Merkle, Hellman und Diffie. 1978 wurde das eigentliche RSA Verfahren am MIT von Rivest, Shamir und Adleman entwickelt. Ihre Initialen wurden namensgebend. Kurios ist, dass diese zentrale Methode 20 Jahre vor dem eigentlichen, massenhaften Durchbruch des Internets entwickelt wurde.
     
    Problem: Authentizität
     
    Kehren wir zurück zu unserem ursprünglichen Anwendungsfall, dem Abruf einer Wikipedia-Seite. Wikipedia hat einen privaten und einen öffentlichen Schlüssel. Wikipedia könnte meinen öffentlichen Schlüssel kennen, z.B. weil ich ihn bei Aufnahme der Kommunikation genannt habe. Wikipedia verschlüsselt damit eine Seite und schickt sie mir über den unsicheren Kanal Internet. Ich kann die Seite nun mit meinem privaten Schlüssel entschlüsseln. Wer meinen privaten Schlüssel nicht kennt, kann nicht entschlüsseln. Die Vertraulichkeit der Nachricht ist also gewährt. Nicht gewährt ist allerdings die Authentizität. Ein anderer Akteur könnte eine gefälschte Wikipedia-Seite mit meinem öffentlichen Schlüssel verschlüsseln und mir senden. Ich könnte mit meinem privaten Schlüssel entschlüsseln, würde aber nicht bemerken, dass mir eine falsche Seite untergeschoben wurde.
     
    Hybride Verschlüsselung
     
    Ein weiteres Problem von RSA: Diese Art der Verschlüsselung ist langsam. Darum nutzt man RSA lediglich, um mit asymmetrischer Verschlüsselung einen symmetrischen Schlüssel zu vereinbaren, den man im folgenden benutzt. Das nennt man dann hybride Verschlüsselung. Als symmetrisches Verfahren verwendet man z.B. AES. Das ist sehr schnell und oft in Hardware implementiert. 
     
    Unser Netzwerkstack sieht nun so aus:
    - Ethernet als Netzzugangsschicht
    - IP als Internetschicht
    - TCP in Verbindung mit SSL/TLS als Transportschicht
    - darauf aufbauend HTTPS als Anwendungsschicht
     
    Problem: Echtheit öffentlicher Schlüssel
     
    Auch aus Sicht des Senders Wikipedia gibt es ein Problem. Meinen öffentlichen Schlüssel habe ich über das Internet bekannt gemacht. Natürlich könnte jemand anderes Wikipedia einen falschen öffentlichen Schlüssel unterschieben. Wikipedia würde die Seite dann nicht für mich sondern für einen anderen Akteur verschlüsseln. Wie kann der Sender wissen, dass der öffentliche Schlüssel echt ist?
     
    Die Lösung für dieses Problem ist eine vertrauenswürdige Instanz. Man nennt sie Zertifizierungsstelle. Diese hat ebenfalls einen öffentlichen und einen privaten Schlüssel. Die Zertifizierungsstelle verschlüsselt den öffentlichen Schlüssel des Senders mit ihrem privaten Schlüssel. Ich entschlüssele mit dem öffentlichen Schlüssel der Zertifizierungsstelle und erhalte den öffentlichen Schlüssel des Senders. Diesen kann ich vergleichen mit einem mir bekannt gemachten öffentlichen Schlüssel. Stimmen beide überein, ist der mir bekannt gemachte Schlüssel echt. Die Zertifizierungsstelle kann also öffentliche Schlüssel beglaubigen.
     
    Die künftige Sicherheit der Kommunikation im Internet wird von verschiedenen Grundproblemen bedroht. Das erste war bereits erwähnt:
     
    1. Wie schwer ist Faktorisierung wirklich?
     
    Oben war erwähnt, dass brute force bei hinreichend langem Schlüssel unmöglich ist. Es gibt aber zur Primfaktorzerlegung bessere Verfahren als brute force. Die Rechenleistungen steigen. Darum empfehlen Institutionen wie das BSI ständig längere Schlüssel. Für RSA gelten 1900 Bit als minimum, bis 2016 wurden 2000 Bit empfohlen und ab 2016 sogar 3000 Bit. An dieser Stelle muss man sich noch einmal klar machen, das jedes zusätzliche Bit die Anzahl möglicher Schlüssel verdoppelt.
     
    MIt Elliptische Kurven steht ein alternative Ansatz im Hintergrund bereit. Dieser wird praktisch nicht genutzt, weil er sehr rechenaufwendig ist. Außerdem ist unklar, wie sicher elliptische Kurven wirklich sind. Bei der Faktorisierung weiß man, dann man sie seit langer Zeit erfolglos versucht. Elliptische Kurven sind noch nicht so gut erforscht. Mag sein, dass unerwartet schnelle Umkehrungen entdeckt werden.
     
    2. Implementierungsprobleme
     
    i. Gebrochene Verschlüsselung basiert oft auf mangelnden Implementierungen, z.B. auf mangelnder Zufälligkeit.
    ii. Auch Protokolle sind ein häufiger Angriffspunkt, z.B. die Einigung auf ein Verschlüsselungsverfahren und die Methode des Schlüsseltausches.
    iii. Betriebssysteme halten viele Daten in Zwischenspeichern. Manche Verfahren zur Überwindung von Verschlüsselung basieren darauf, den Hauptspeicher eines Rechners auszulesen. Aus dem Speicherinhalt probiert man mögliche Passwörter. Das reduziert die Anzahl der möglichen Schlüssel erheblich.
    iv. Zertifizierungsstellen arbeiten nicht immer sauber.
    v. SSL/TLS sind auf Betriebssystem-Ebene implementiert. Der Browser vertraut dem OS. Hier ist eine Eingriffmöglichkeit.
     
    3. Quantencomputer
     
    Die ultimative Bedrohung für die aktuellen Verschlüsselungsverfahren sind Quantencomputer. Sollten sie verfügbar werden, könnten RSA und auch bekannte Alternativen wie elliptische Kurven gebrochen werden. Bislang erweist sich die Konstruktion von Quantencomputern aber als schwierig.
     
    Absolute Sicherheit
     
    Absolute Sicherheit versprechen 2 Ansätze
     
    1. One-Time-Pad
     
    Dieser Ansatz ist theoretisch perfekt und praktisch irrelevant. Man wählt einen zufälligen Schlüssel, der so lang wie die Botschaft sein muss und nur ein Mal verwendet werden darf. Diesen nimmt man zum Ver- und Entschlüsseln. Das Verfahren ist praktisch nicht nutzbar, weil man einen sicheren Kanal braucht, um diesen Schlüssel zu vereinbaren. Wenn ich einen Schlüssel von der Länge der Nachricht sicher vereinbaren könnte, so könnte ich auch gleich die Botschaft senden und bräuchte keine Verschlüsselung. (Wollen zwei Partner die Vertraulichkeit ihrer Kommunikation zu sichern, könnte man sich die Anwendung etwa so vorstellen. Man trifft sich einmalig und bespielt zwei Festplatten mit einer identischen, zufällig erzeugten Bitfolge, die mehrere Terrabyte lang ist. Die Partner trennen sich räumlich. In der folgenden Kommunikation verschlüsseln und entschlüsseln sie mit dieser Bitfolge, bis die gesamte Bitfolge konsumiert ist. Die Gefahr: Diese Bitfolge darf nicht in falsche Hände geraten. Sie muss sicher transportiert und aufbewahrt werden.)
     
    2. Quanten-Kryptographie
     
    Sie arbeitet mit verschränkten Quanten. Misst man den Zustand verschränkter Quanten an zwei Orten, so erhält man gleiche Ergebnisse. Man kann so eine zufällige Bitfolge vereinbaren. Da jede Messung den Zustand verändert, würde ein Mithören sofort bemerkt. Die Partner hätten dann nämlich keinen gemeinsamen Schlüssel mehr und könnten gar nicht kommunizieren. In der praktischen Implementierung gilt Quanten-Kryptgraphie als noch nicht sicher.
     
    Fazit
     
    Soweit die Inhalte des Vortrages von Herrn Rettinger, die ich hier aus dem Gedächtnis und auf Grundlage meiner Notizen wiedergegeben habe. Studierenden, die das Modul "IT-Sicherheit" schon hinter sich haben, dürften die meisten Inhalte bekannt gewesen sein. Sie sollten insbesondere auch deutlich mehr über die mathematischen Grundlagen und die Abläufe im Detail wissen. Allerdings erodieren solche Kenntnisse schnell, wenn sie nicht regelmäßig angewendet werden, wie ich beim Hören des Vortrages bemerkt habe. Insofern war der Besuch des Vortrages in jedem Fall lohnend. Für Studierende, die "IT-Sicherheit" noch vor sich haben, war es ein guter Einstieg ins Thema.
     
    Zum Thema Quanten-Kryptographie sei noch auf diese aktuelle Meldung verwiesen:
    Wissenschaftler kommunizieren quantenverschlüsselt
     
    Möglicherweise rückt die praktische Anwendung also näher als man denkt.
     
    Sehr empfehlenswert finde ich zu diesem Thema auch das Hörbuch "Spukhafte Fernwirkung" aus dem kleinen aber feinen Verlag supposé. Hier erzählt der Physiker Anton Zeilinger ca. 100 Minuten lang über Quantenphysik und spannt am Ende den Bogen zur praktischen Anwendung Quanten-Kryptographie. Das Hörbuch ist ein paar Jahre alt, aber für einen Einblick ins Thema noch immer hervorragend geeignet.
     
    Mathe-Tutorium
     
    Parallel zum Vortrag von Herrn Rettinger fanden die üblichen Mathe-Tutorien mit den Themen "Lineare Algebra" und "Analysis" statt. Die sind üblicherweise gut besucht, denn der Stoff des Moduls Mathe2 ist erfahrungsgemäß für viele Studierende herausfordernd, insbesondere für Studierende ohne Abitur, aber auch für diejenigen, deren Abitur länger zurück liegt. Da ich diesen Teil meines Studiums schon hinter mir habe, habe ich diesmal an den Tutorien nicht teilgenommen.
     
    Zum neuen Studiengang "Elektrotechnik"
     
    Mitarbeiter von Springer Campus standen für Fragen zu den Studiengängen Chemie, Biologie und Elektrotechnik bereit. Als Studierender im Studiengang Web- und Medieninformatik interessierte mich vor allem, ob denkbar sei, einzelne Module aus dem E-Technik-Studium als Ergänzungsmodule zum Informatikstudium zu belegen. Aus meiner Sicht könnten folgende Module aus dem Curriculum des Studiengangs Elektrotechnik auch für Informatiker interessant sein:
    - Programmierung eingebetteter Systeme (hier käme es freilich darauf an, wie hardwarelastig das Modul konzipiert ist)
    - Maschinelles Lernen (insbesondere weil im Curriculum der Informatik-Studiengänge bislang kein KI-Modul zur Verfügung steht)
    - Bildverarbeitung
     
    Zum gegenwärtigen Zeitpunkt kann man über solche Möglichkeiten der Verknüpfung der Curricula noch nichts sagen. Der Studiengang Elektrotechnik ist im Aufbau. Bislang gibt es nur wenige Studierende und viele Module sind noch nicht fertig. Ähnlich wie in den Fernstudiengängen Biologie und Chemie richtet sich auch Elektrotechnik an Studierende mit einschlägiger Berufsausbildung, um die praktischen Teile eines E-Technik-Studiums abzudecken. Präsenzen spielen in diesem Studiengang natürlich eine Rolle. Vielleicht gibt es zu einem späteren Zeitpunkt eine Möglichkeit, dass Informatik-Studenten von einzelnen Modulen aus dem E-Technik-Studium profitieren können.
     
    Das "Drumherum" eines Präsenztages
     
    Ein Präsenztag ist natürlich mehr als die Summe der gebotenen Veranstaltungen. Zunächst ist ein Präsenztag immer auch Prüfungstag. Viele Studierende bringen ihre Prüfungen schon am Anreisetag Freitag hinter sich und können den Samstag dann genießen. Aber manche müssen noch am Samstagmorgen in den Klausuren schwitzen. Ich hatte es zum Glück auch schon am Freitag hinter mich gebracht und konnte dann am Samstag gemütlich frühstücken. Interessant und nützlich ist natürlich auch immer der allgemeine Austausch mit anderen Studierenden: Über belegte Module, Prüfungen, Zeitplanung im Studium, sinnvolle Modulkombinationen und andere Themen, die im Leben eines Fernstudenten eine Rolle spielen. Das allgemeine "Hallo" macht natürlich abgesehen vom Nutzen auch Spaß, denn meistens kämpfen wir ja alleine. Schön ist auch, dass die Mitarbeiter von Springer Campus immer wieder den Kontakt zu den Studierenden suchen und an Rückmeldungen sichtlich interessiert sind. Der nächste Präsenztag ist am 10.03.2018. Ich komme gerne wieder.
  20. kurtchen
    Zur Rolle des Moduls im Studium
     
    Das Modul "IT-Projektmanagement" ist ein Pflichtmodul im Studiengang "B.Sc. Wirtschaftsinformatik" und wird dort auch dem Studienbereich Wirtschaftsinformatik zugerechnet. Vorgesehen ist es für das 4. Fachsemester. Formale Zugangsvoraussetzungen gibt es keine. Als inhaltliche Vorbereitung werden die Module "Geschäftsprozessmanagement" und "Software-Management 2" empfohlen. Ich meine, man könnte das Modul auch ohne diese Vorbereitung belegen. Web- und Medieninformatiker können dieses Modul im Wahlpflichtbereich belegen. Es gibt auch einen besonderen Anreiz, gerade dieses Modul zu wählen: Es ist Pflichtmodul für die Hochschulzertifikate "Requirements Engineer" und "Software-Manager".
     
    Persönliche Motivation
     
    Da ich Web- und Medieninformatik studiere, hätte ich dieses Modul nicht unbedingt belegen müssen. Nun war mir das Pflichtmodul "Software-Management 1" nicht leicht gefallen und auch die Klausur hätte besser laufen können. Darum hoffte ich, fachlich davon profitieren zu können, mich dem Thema Software-Management noch einmal aus einer anderen Perspektive zu nähern.
     
    Zum Lehrbuch
     
    Das Buch "Management von IT-Projekten" ist von Hans W. Wieczorrek und Peter Mertens. Es ist ein gebundenes Hardcover vom Springer Verlag aus der Serie Xpert.press. Im Modul verwendet wird die 4. Auflage von 2011. Sie hat einen Umfang von ca. 450 Seiten. Ich hatte das Glück, dass einer der Autoren mich als Tutor betreute.
     
    Das Buch behandelt sein Thema umfassend und aus vielen unterschiedlichen Perspektiven. In Kapitel 2 werden Grundbegriffe des Projektmanagements geklärt, Projektarten vorgestellt und Erfolgsfaktoren des Projektmanagements identifiziert. Kapitel 3 beschäftigt sich mit dem institutionellen Management von IT-Projekten. Hier geht es z.B. um Vor- und Nachteile verschiedener Projektorganisationsformen und auch um die Aufbauorganisation von Projekten. Schon nach diesen zwei Kapiteln wird deutlich, dass das Modul gegenüber dem Modul "Software-Management 1" eine stärker betriebswirtschaftliche Perspektive einnimmt. Ich finde, auch die Praxis bekommt ein etwas stärkeres Gewicht als im Lehrbuch von Herrn Balzert, dass dafür mehr Aufwand bei der scharfen Definition von Begriffen treibt.
     
    Kapitel 4 beschäftigt sich mit dem Vorgehen in IT-Projekten. Es geht um die Phasen der Projektinitialisierung und Projektdefinition. Dann geht es um mögliche Vorgehensmodelle, wobei auch agile Modelle eine Rolle spielen. Auch das Thema Prototyping wird behandelt. Insgesamt gibt es hier viel inhaltliche Überlappung mit dem Modul "Software-Management 1". Aber die Kapitel scheinen stärker aus der Perspektive der Praxis geschrieben zu sein. Mit dem Vorwissen aus dem Lehrbuch von Herrn Balzert war der präsentierte Stoff für mich gut lesbar. Ich hatte das Gefühl, hier viele Dinge noch einmal anders zu verstehen als beim ersten Anlauf. Insofern hatte ich schon hier den Eindruck, dass die Bearbeitung dieses Moduls sich für mich lohnte.
     
    Dem agilen Projektmanagement ist das Kapitel 5 gewidmet. Hier geht es unter anderem um das agile Manifest und Prinzipien agiler Entwicklung, aber auch um Voraussetzungen für den Einsatz agiler Modelle.
     
    Die Kapitel 6 und 7 beschäftigen sich mit der Planung von IT-Projekten und Techniken der Projektplanung. Projektmanagment wird als Regelkreis vorgestellt und Schritte und Phasen der Planung werden beschrieben. Neben der Listentechnik und den vielen bekannten Gantt-Diagrammen werden vor allem CPM-Netzpläne beschrieben, die auf der Graphentheorie basieren. Die Erstellung solcher Netzpläne sollte man für die Online-Klausur üben.
     
    Recht interessant war für mich das Kapitel zur Führung in IT-Projekten, wo es z.B. um soziologische Führungsmittel ging. Hier gab es z.T. sehr konkrete Hinweise, wie ein fairer Umgang mit Mitarbeitern aussehen müsste. Auch Themen wie Budgetierung, Steuerung und Controlling wurden behandelt.
     
    Für mich weniger zugänglich war das Kapitel 9 zur Aufwandsschätzung in IT-Projekten. Hier wurden verschiedene Methoden knapp vorgestellt. Es schafft somit einen Überblick. Leider wird nicht für alle Verfahren anschaulich gezeigt, wie sie im einzelnen funktionieren. Dass allerdings hätte den Umfang des Lehrbuches auch stark erhöht. Viele Schätzungen basieren auf dem Vergleich neuer Projekte (mit bislang unbekannten Kosten) mit abgeschlossenen Projekten (mit bekannten Kosten). Das setzt natürlich voraus, dass Projekte ordentlich dokumentiert und ausgewertet werden.
     
    Im Kapitel 10 geht es um die Wirtschaftlichkeit von IT-Projekten. Hier war mir das Tempo oft zu hoch. Es wird deutlich, dass die Autoren sich in einem betriebswirtschaftlichen Umfeld gut auskennen. Dabei setzen sie möglicherweise Begrifflichkeiten als allgemein bekannt voraus, die zumindest mir durchaus unklar waren. So habe ich zum Beispiel anhand der Ausführungen nicht begreifen können, was die Kapitalwertmethode ist. Allerdings war mein Tutor auf Nachfrage gerne bereit, mir dafür zusätzliches Übungsmaterial zur Verfügung zu stellen. Allgemein kann ich sehr empfehlen, Kontakt zu den Tutoren herzustellen und zu halten und sie als Ansprechpartner bei fachlichen Schwierigkeiten zu nutzen.
     
    Kapitel 11 gibt Tipps und Tricks für Leiter von IT-Projekten. Die folgenden Kapitel behandeln Subsysteme des Projektmanagements, Projektpolitik und stellen einen Rahmen für das Projektmanagement vor. Den Abschluss bildet, wie so oft bei Springer Campus, eine Fallstudie, die für meinen Geschmack noch ein bisschen mehr Raum hätte einnehmen dürfen.
     
    Insgesamt fand ich das Lehrbuch gut lesbar und praxisnah geschrieben. Obwohl ich bislang nicht im IT-Bereich arbeite, konnte ich einige Analogien zu Situationen in meinem beruflichen Alltag herstellen und so viele Ausführungen besser nachvollziehen. Die Materie an sich ist durchaus trocken, aber die Autoren behandeln den Stoff auf eine praxisorientierte Weise. Insgesamt habe ich von der Lektüre profitiert. Vieles, was ich beim Lesen des Lehrbuches von Herrn Balzert recht mühsam verstanden habe, fiel mir hier leichter. Das mag zum Teil an der inhaltlichen Überlappung liegen, aber ich glaube, dass Texthandwerk der Autoren leistet auch einen wichtigen Beitrag dazu.
     
    Tests und Einsendeaufgaben
     
    Die Tests habe ich selten auf Anhieb richtig lösen können. Gut gefallen hat mir, dass sie umfangreich kommentiert sind. So habe ich stets nachvollziehen können, warum meine erste Lösung falsch war. Oft habe ich gerade durch meine Fehler neue Einsichten in den Stoff gewonnen. Die Tests waren auf den Stoff der Kapitel bezogen und ergänzten ihn in sinnvoller Weise.
     
    Die Einsendeaufgaben zielten meist auf Reproduktion des Stoffes und waren somit relativ leicht lösbar. Hier hätte ich mir mehr Aufgaben gewünscht, die auf Anwendung abzielen und Transferleistungen beinhalten, denn das spielt in der Online-Klausur und in der Präsenzklausur natürlich eine Rolle.
     
    Die Rückmeldungen meines Tutors kamen zügig und waren konkret und hilfreich. Auf Nachfrage verwies mein Tutor auch auf zusätzliches Material, um z.B. das Erstellen von CPM-Netzplänen zu üben. Das erwies sich als sinnvoll und nützlich, denn erst in der Anwendung merkt man, ob man den Stoff verstanden hat. Allerdings hielte ich es deswegen für wünschenswert, wenn auch einige Einsendeaufgaben stärker auf Anwendung und Transfer abzielten.
     
    Online-Test und Online-Klausur
     
    Der Online-Test fiel mir recht leicht und passte gut zu den Aufgaben, die ich zuvor geübt hatte. Es war gut, dass ich zuvor mit zusätzlichem Material geübt hatte, auf das mich mein Tutor verwiesen hatte. Ich empfehle hier allen Studierenden, Kontakt mit dem Tutor zu suchen und auch konkret nachzufragen, wie und womit man üben kann. Es gibt im Netz viel Material, das frei zugänglich ist. Aber wenn man nicht im Dialog bleibt, entgeht einem womöglich die Chance, sich bestmöglich vorzubereiten. Leicht denkt man nach Lektüre der Kapitel, dass man alles verstanden hat und auch anwenden kann. Aber das kann trügerisch sein.
     
    Präsenzklausur
     
    Die Präsenzklausur lief für mich leider nicht gut. Die ersten Aufgaben fielen mir zwar leicht und ich konnte sie in weniger als der Hälfte der Zeit bearbeiten. Aber die letzte Aufgabe machte 40% der Punkte aus und war umfangreicher. Und ausgerechnet hier gelang es mir nicht, die Aufgabenstellung zu verstehen und die enthaltenen Hinweise zu verwerten. Am Ende war ich überzeugt, hier keinen einzigen Punkt erzielen zu können. So habe mich entschieden, alle bearbeiteten Aufgaben durchzustreichen, um mit null Punkten durchzufallen und einen neuen Anlauf nehmen zu können.
     
    Ursprung meiner Schwierigkeiten war ein Missverständnis. Ich hatte eine Auflistung von Werten falsch gelesen und so jeweils zwei durch ein Komma getrennte Werte als einen einzigen Wert mit Nachkommastellen aufgefasst, der dann völlig unrealistisch war. Leider waren diese Werte grundlegend für alle folgenden Arbeitsschritte. Offenbar war ich dann so aufgeregt, dass ich eine Art Tunnelblick entwickelt habe. Ich habe eine Stunde lang immer nervöser nach einer Möglichkeit gesucht, mit den unsinnigen Werten zu rechnen oder irgendeine sinnvolle Erklärung dafür zu finden. Ärgerlich daran ist, dass auch die letzte Aufgabe gut machbar gewesen wäre.
     
    An dieser Stelle zeigte sich wieder einmal der Wert einer guten tutoriellen Betreuung. Ich habe zu Hause umgehend meinen Tutor kontaktiert, weil ich zu diesem Zeitpunkt noch nicht verstanden hatte, was eigentlich schiefgelaufen war. Dementsprechend verunsichert war ich, auch im Hinblick auf eine Wiederholungsprüfung. Mein Tutor hat sehr umgehend reagiert und mit seiner Hilfe konnte ich verstehen und für mich reflektieren, was eigentlich passiert war. Für Außenstehende dürfte offensichtlich sein, dass ich dieses Mal die Nerven verloren hatte. Mir selbst war das zunächst gar nicht klar. Dies war meine 38. Klausur im Studiengang und bislang hatte ich unter Stress immer gut funktioniert und bis zum Schluss einer Klausur lösungsorientiert weiterarbeiten können. Möglicherweise habe ich mich wegen der stärker betriebswirtschaftlichen Perspektive des Moduls und dem Management-Fokus unsicher gefühlt.
     
    Jedenfalls habe ich mich nach der Klärung mit meinem Tutor wieder beruhigen und das Geschehene für mich einordnen können. Ich plane nun, einfach das nächste Modul zu bearbeiten und beim nächsten Klausurtermin die Wiederholungsklausur zu schreiben. Eigentlich sollte das klappen.
     
    Fazit
     
    Ursprüngliche Motivation für die Belegung dieses Moduls war, das Thema Software-Management noch einmal in den Blick zu nehmen. Und zwar nicht, weil ich mich für eine Tätigkeit mit diesem Schwerpunkt interessiere. Sondern eher, um die Perspektive eines Projektmanagers auf den Gesamtprozess besser verstehen zu können, auch wenn ich selbst lieber umsetzend als planend und führend tätig werden möchte. In meinem Arbeitsbereich habe ich die Erfahrung gemacht, dass ein wenigstens rudimentäres Verständnis für die Aufgaben des Managements die Kommunikation am Arbeitsplatz verbessert. In dieser Hinsicht hat sich das Modul für mich gelohnt. Das liegt in erster Linie am verständlich geschriebenen Lehrbuch und an der guten tutoriellen Betreuung.
     
    Obwohl das Projektmangement im Softwarebereich einige Besonderheiten hat, meine ich, dass ich einige Einsichten auch auf meinen gegenwärtigen Arbeitsbereich übertragen kann, der nichts mit IT zu tun hat. Möglichkeit zur Verbesserung sehe ich bei den Einsendeaufgaben. Diese könnte man um zwei bis drei komplexere Aufgaben ergänzen, die mehr Transfer und Anwendung erfordern.
     
    Um das Modul abschließen zu können, muss ich nun noch die Wiederholungsklausur bestehen. Ich werde hier im Blog berichten. Ich glaube, für meine persönliche Entwicklung ist es gar nicht schlecht, dass ich auch mal eine Klausur nicht bestanden habe. Mein Umgang damit war zunächst alles andere als gelassen. Für die Zukunft denke ich, dass ich an meiner Fähigkeit arbeiten muss, Rückschläge zu verdauen und mich bei eigenen Fehlern nicht gleich in Frage zu stellen. Das Phänomen, aus dem "kognitiven Tunnel" nicht mehr herauszufinden, ist auf jeden Fall Aufmerksamkeit und Reflexion wert. So etwas könnte ja auch in anderen Zusammenhängen passieren. Die nächste Chance, es besser zu machen, kommt Mitte März.
  21. kurtchen
    Das Modul "Data Warehouse & Data Mining" kann in meinem Studiengang "Web- und Medieninformatik" als Vertiefungsmodul belegt werden. Für Studierende der Wirtschaftsinformatik ist es ein Pflichtmodul und wird dem Studienbereich "Wirtschaftsinformatik" zugerechnet. Meine Erwartungen an dieses Modul wurden durch das Lehrbuch "Data Mining" von Jürgen Cleve und Uwe Lämmel geprägt. In diesem Buch geht es darum, wie Analyseverfahren mathematisch und algorithmisch funktionieren. Das wollte ich lernen. Zu meiner anfänglichen Enttäuschung hat dieses Modul andere inhaltliche Schwerpunkte. Eigentlich hätte ich das ahnen müssen. Als inhaltliche Voraussetzung werden nämlich "Grundlagen der Informatik 1" und "SQL und relationale Datenbanken" aber nicht "Statistik" genannt. Kein Wunder also, dass die eigentlichen Mechanismen des "Knowledge Discovery in Databases" keinen großen Raum einnehmen.
     
    Dieses Modul beschäftigt sich mit Data Mining und Data Warehousing in einem unternehmerischen Kontext. Zunächst geht es um die Unterscheidung zwischen operativen und analyseorientierten Informationssystemen. Operative Systeme sind entlang von Workflows im Unternehmen organisiert. Ein Beispiel wäre eine Software zu Aufnahme und Abwicklung von Bestellungen. Solche Informationssysteme häufen im Laufe der Zeit große Datenbestände an. Die Art der Ablage der Daten ist aber an der konsistenten Speicherung von fallbezogenen Daten orientiert.
     
    Bei analyseorientierten Informationssystemen geht es darum, die so gewonnenen Daten in Kombination mit Daten aus anderen Quellen mit geeigneten Methoden auszuwerten, um bislang unbekannte Muster und Zusammenhänge zu erkennen, die sich betriebswirtschaftlich nutzen lassen. Zum Beispiel, dass bestimmte Produkte häufig in Kombination gekauft werden oder dass der Kauf bestimmter Produkte Folgekäufe bestimmter anderer Produkte nach sich zieht. Ein Unternehmen könnte darauf z.B. reagieren, indem es solche Produkte gemeinsam anbietet oder Werbung passgenau verschickt.Die Details solcher Auswertungsprozesse stehen nicht im Mittelpunkt des Kurses. Vielmehr geht es um den Prozess im Unternehmen, in dem solche Verfahren durch geeignete Aufbereitung der Daten vorbereitet werden und zur Anwendung kommen. Und natürlich auch darum, wie die Ergebnisse solcher Analysen für den Unternehmenserfolg nutzbar gemacht werden können.
     
    Als Studierender der Web- und Medieninformatik bin ich eine andere Perspektive gewohnt: Wie funktioniert es technisch?
     
    Aber das ist ein Modul für Wirtschaftsinformatiker. Die Perspektive ist eher: Wie bekommen wir das im Unternehmern organisiert? Was fangen wir betriebswirtschaftlich damit an? Die nötige Analysesoftware programmieren wir wahrscheinlich nicht selbst sondern kaufen sie ein. Wir möchten daher nur wissen, was für Verfahren es gibt und für welche Anwendungsszenarien sie welche Stärken und Schwächen haben. Wir müssen nicht en detail wissen, wie z.B. ein künstliches neuronales Netz in der Lage ist, bislang unbekannte Muster im Kaufverhalten zu entdecken.
     
    Nach der ersten Enttäuschung habe ich beschlossen, mich auf diese andere Perspektive einzulassen und das beste aus dem Modul zu machen. Unterm Strich hat es mir dann doch recht gut gefallen, wenn auch aus ganz anderen Gründen als erwartet. Der größte Gewinn war tatsächlich die unternehmerische, anwendungsbezogene Perspektive, über die ich mir bislang weniger Gedanken gemacht hatte. Mich interessiert, wie man ein gegebenes Problem technisch lösen kann. Wie man vorhandene Technologien einsetzt, um sich im Wettbewerb Vorteile zu verschaffen, finde ich weniger spannend. Aber natürlich braucht man Menschen, die sich um genau solche Dinge Gedanken machen. Ich möchte mich nicht unbedingt selbst in diese Richtung entwickeln, aber ich halte es für sinnvoll, ein Verständnis für diese Denk- und Arbeitsweise zu entwickeln. Und für Menschen, die so arbeiten. Dazu ist das Modul Data Mining gut geeignet.
     
    Der Umfang des Lehrbuches ist mit ca. 200 Seiten für Springer Campus unterdurchschnittlich. Nur die zweite Hälfte des Buches beschäftigt sich mit dem Prozess der Wissensgewinnung aus großen Datenbeständen. In der ersten Hälfte geht es zunächst um die Transformation und Zusammenführung von Daten aus operativen Systemen. Für analyseorientierte Systeme bieten sich andere Formen der Datenspeicherung an. Es gibt multidimensionale Datenbanken, die für genau solche Anwendungsfälle entwickelt wurden. Auch die Verwendung relationaler Datenbanken ist möglich, aber sie werden dann oft anders aufgebaut. Während man in operativen Systemen redundante Speicherung von Informationen vermeiden möchte, um Inkonsistenzen auszuschließen, lässt man bei analyseorientierten Systemen manchmal gewisse Redundanzen zu, um schneller durch multidimensionale Datenbestände navigieren zu können. All dies ist zusammengefasst in den Kapiteln zu Data Warehouse und OLAP. Eine wesentliche Rolle spielen die grundlegenden Navigationsmöglichkeiten in multidimensionalen Datenstrukturen. Man kann multidimensionale Datenwürfel in verschiedenen Ebenen schneiden (Slicing), den Datenwürfel durch die Schnittebene drehen (Dicing), Dimensionen feiner Auflösen bzw. in den Würfel hineinzoomen (Drill down) oder aus dem Würfel herauszoomen (Roll up). Ziel ist, eine Datenstruktur aufzubauen, die es erlaubt, große Datenbestände interaktiv und auf neue Weise zu erkunden. Das ist etwas ganz anderes als klassisches Reporting.
     
    Erst im zweiten Teil des Buches geht es dann um Data Mining, also das Erkennen bislang unbekannter Muster in großen Datenbeständen. Im Lehrbuch werden zwei Auslegungen des Begriffes Data Mining unterschieden. Data Mining im engeren Sinne ist der technische Prozess der Wissensentdeckung in Datenbanken. Dazu verwendet man Verfahren wie künstliche neuronale Netze, Clusterverfahren, Assoziationsanalyse und Entscheidungsbaumverfahren. Data Mining im weiteren Sinne ist ein umfassender, mehrstufiger Prozess. Die Stufen heißen: Business Understanding, Data Understanding (Auswahl und Sichtung der Daten), Data Preparation (Datenaufbereitung und -bereinigung), Data Modelling (die Anwendung der eigentlichen Analyseverfahren), Evaluation (Beurteilung und Auswahl relevanter Analyseergebnisse) und Deployment (die Anwendung der Ergebnisse zur Generierung von Wettbewerbsvorteilen). Das Lehrbuch konzentriert sich auf die zweite Sichtweise des Data Minings als mehrstufiger Prozess. Wer wissen will, wie die Phase des Data Modelling mathematisch-technisch funktioniert, sollte ein anderes Lehrbuch lesen.
     
    Typisch für Springer Campus ist, dass jedes Kapitel mit einer Fallstudie endet, die die Anwendung der beschriebenen Techniken und Konzepte in einem betrieblichen Kontext schildert. Hier geht es um eine Firma, die Fahrräder produziert und ihre Kunden gezielter ansprechen möchte.
     
    Meine Tutorin gab mir mit den Aufgaben gute Rückmeldungen zur Klausurvorbereitung. Dankbar bin ich vor allem für ihre Tipps zum Zeitmanagement in der Klausur. Meine eingereichten Lösungen waren nämlich oft recht detailliert. Hier bekam ich den Hinweis, für die Klausur mehr auf den Punkt zu kommen, weil die Zeit knapp sei. In der Präsenzklausur gab es denn auch viele Aufgaben, die alle Teile des Kurses abdeckten. Ich habe von Anfang bis Ende geschrieben, was das Zeug hielt, und wurde gerade so rechtzeitig fertig. Was recht angenehm war: Die Aufgaben kamen in Dreiergruppen und aus jeder Gruppe sollte man zwei Aufgaben auswählen, eine durfte man weglassen. Auf diese Weise konnte man kleinere Unsicherheiten im Stoff ein wenig ausgleichen. Aber nicht ganz, denn z.T. zielten die Fragen in ähnliche Richtungen mit unterschiedlichen Schwerpunkten. Eine gründliche Vorbereitung des gesamten Stoffes ist also angesagt. Ich meine, ganz gut klar gekommen zu sein. Ein Ergebnis liegt mir aber noch nicht vor.
     
    Data Mining ist aus meiner Sicht ein Modul mit mittlerem Schwierigkeitsgrad. Der Arbeitsumfang für die Bearbeitung erscheint mir leicht unterdurchschnittlich, weil das Lehrbuch etwas dünner ist als in vergleichbaren Modulen. Web- und Medieninformatiker sollten sich bewusst sein, dass Data Mining als Modul für Wirtschaftsinformatiker aus einer anderen als der gewohnten Perspektive geschrieben ist und auch eine andere Zielsetzung hat. Wer mit diesem anderen Blickwinkel zurecht kommt, ihn vielleicht sogar als willkommene Abwechslung und Anregung begreifen kann, hat hier eine Möglichkeit, im Vertiefungsbereich auch mal mit etwas weniger Bearbeitungszeit einen Schritt weiter zu kommen. Mir hat es am Ende Spaß gemacht, auch wenn ich immer noch Lust hätte, ein Modul zu belegen, das wirklich vertieft auf die einzelnen Analysetechniken eingeht.
  22. kurtchen
    Es ist soweit: Am Mittwoch habe ich meine Bachelorarbeit zur Post gebracht. Das war zwei Tage vor dem Abgabetermin. DHL hat die Sache dann noch ein bisschen spannend gemacht. Am nächsten Abend war mein Paket nämlich gerade einmal 10 km weit "gekrochen". Aber am übernächsten Tag kam es doch noch fristgerecht in Dortmund an.
     
    Natürlich sind mir schon am Tag nach der Abgabe Fehler aufgefallen, die ich auch beim x-ten Korrekturlesen nicht gesehen hatte. Ebenfalls typisch für mich: Sofort nach der Abgabe ist eine Erkältung ausgebrochen. Die hätte ich mir vorher nicht "gegönnt".
     
    Eigentlich hatte ich zur Entstehung der Bachelorarbeit ja mehrere Blogbeiträge schreiben wollen. Aber letztlich musste ich die knapp werdende Zeit in die Bachelorarbeit investieren. Mein Fernstudien-Blog war leider nicht das einzige Hobby, das in den letzten Monaten auf der Strecke blieb.
     
    Trotzdem nun ein paar Worte, die wie Sache nun eigentlich gelaufen ist.
     
    Inhaltliches
     
    Die Grundidee meiner Arbeit war ja ein Vergleich objektorientierter und funktionaler Programmierung an einem Fallbeispiel. Das Fallbeispiel war eine Variante des klassischen Travelling Salesman Problems: In eine Platine sollen von einem Roboter Löcher gebohrt werden. Ein Optimierer solle ein möglichst effiziente Abfolge der Löcher finden. Was genau effizient ist, bestimmt eine Bewertungsfunktion. Hier gab es als einfachste Funktion die euklidische Distanz. Eine Variante nahm an, dass ein Motor des Roboters defekt ist, und daher vertikale Bewegungen nur halb so schnell möglich sind wie horizontale. Eine andere Variante sah vor, dass der Bohrer für einen Bohrerwechsel zurück zum Ursprung kehren muss, falls der Durchmesser aufeinander folgender Löcher sich unterscheidet. Das hatte natürlich große Auswirkungen auf die gefundenen Routen. Die Routen wurden ja auch visualisiert und das war visuell z.T. ganz attraktiv, wie die Anmutung der Routen sich änderte, wenn eine andere Bewertungsfunktion gewählt wurde.
     
    Die Routen wurden mit drei verschiedenen Heuristiken optimiert:
    mit der einfachen und schnellen Nearest-Neighbour-Heuristik mit dem Sintflut-Algorithmus und mit einer Evolutionsstrategie  
    Die beiden letzten Heuristiken ahmen einen Evolutionsprozess nach. Der Sinflut-Algorithmus erzeugt dabei Routenvarianten allein durch Mutation. Außerdem arbeitet er mit einer minimalen Population von nur zwei Individuen: Der bisherigen Lösung und einer neuen Lösung, die akzeptiert oder verworfen wird. Die Evolutionsstrategie simuliert eine größere Population. Sie erzeugt Routenvarianten nicht nur durch Mutation sondern auch durch Rekombination. Sie ahmt also "sexuelle Fortpflanzung" nach. Interessant war dann z.B. die Frage, was geeignete Mutations- und Rekombinationsoperatoren für ein Travelling Salesman Problem sind.
     
    Die beiden Heuristiken unterscheiden sich auch beim Selektionsmechanismus. Sintflut arbeitet mit der Metapher eines steigenden Wasserspiegels. Eine Routenvariante wird akzeptiert, solange ihre "Fitness" nur besser als der momentane Wasserspiegel ist. Auch dann, wenn sie gegenüber der letzten Routenvariante schlechter ist. Das ist entscheidend, damit der Algorithmus ein lokales Optimum überwinden kann. Mit steigendem Wasserspiegel wird die Selektion immer härter, so dass gegen Ende der Optimierung nur noch Verbesserungen akzeptiert werden. Sintflut geht also nach und nach in einen sogenannten Bergsteiger-Algorithmus über. Meine Fallstudie arbeitete mit einer variablen Regenrate. Wenn die Optimierung stagnierte, regnete es gar nicht. Wenn sie voran schritt, regnete es umso stärker, je größer die Differenz zwischen momentaner Fitness und Wasserspiegel war.
     
    Bei der Evolutionsstrategie wurde die Selektion durch den Wettbewerb innerhalb eine Population bestimmt. Meine Implementierung arbeitete mit einer (µ+λ)-Selektion. Dabei steht µ für die Elterngeneration und λ für die durch Rekombination von Genen und Mutation entstandenen Kinder. Die Kinder geraten also in Wettbewerb mit der Generation ihrer Eltern. Theoretisch könnte man dieser Form der Selektion ein Individuum beliebig viele Generationen überlegen, wenn seine Fitness nur hoch genug ist. Es gibt viele mögliche Selektionsoperatoren. Individuen mit hoher Fitness haben eine höhere Chance, die Selektion zu überleben, aber wie bei der natürlichen Selektion spielt i.d.R. auch der Zufall eine Rolle.
     
    Am besten funktionierte der noch vergleichsweise einfache Sintflut-Algorithmus. Die Evolutionsstrategie war nicht nur langsamer sondern brachte auch etwas schlechtere Ergebnisse. Ich vermute, dass lag am früh einsetzenden Selektionsdruck durch Wettbewerb innerhalb der Population. Der führte dazu, dass die Optimierung früher als bei Sintflut in einem lokalen Optimum hängenblieb. Es wäre spannend gewesen, mehr mit den Selektionskriterien zu spielen, um zu schauen, ob man Sinflut so nicht doch einholen kann. Auch weiß ich inzwischen, dass es bessere Rekombinationsoperatoren gegeben hätte. Leider fehlte mir die Zeit, diese noch zu implementieren und auszuprobieren. Aber es war schon faszinierend anzusehen, wie das Duo aus Mutation und Selektion eine Route optimiert. Die Software hatte ein einfaches GUI, das periodisch Momentaufnahmen der laufenden Optimierung zeigte. Der Moment, in dem es erstmals klappte, und man zuschauen konnte, wie die Routenlängen fielen, war schon sehr befriedigend.
     
    Allerdings war heuristische Optimierung ja nur das Fallbeispiel für einen Vergleich der Programmierparadigmen. Darum habe ich die gleichen Heuristiken in Java, Scala und Clojure implementiert.
     
    Meine persönliche Motivation für dieses Thema war, dass ich eine empfundene fachliche Lücke meines Studiums schließen wollte. Ich wollte funktionale Programmierung und funktionale Programmiersprachen besser kennenlernen, als das im Curriculum meines Studiums vorgesehen war. Dieser Wunsch ging für mich in Erfüllung. Bei der Implementierung der Optimierer in Scala und Clojure konnte ich viele Aspekte funktionaler Programmierung erleben und anwenden: Funktionen höherer Ordnung, (End-)Rekursion, Verwendung persistenter Datenstrukturen, Closures, partielle Funktionen, Lazy Evaluation und Lazy Sequences und einiges mehr. Wie erwartet, war es so in vielen Fällen möglich, kompakteren und dennoch gut lesbaren Code zu schreiben. Vor allem war der funktionale Code oft deklarativer als der imperative. Er war also eher eine Beschreibung der Problemlösung als eine kleinschrittige Handlungsanweisung für den Computer. Im Vergleich zur objektorientierten Programmierung war es schon faszinierend, sich als Programmierer so gegenüber der Maschine ausdrücken zu können.
     
    Leider hatte insbesondere die Verwendung persistenter Datenstrukturen ihren Preis. Die in Scala implementierten Optimierer liefen deutlich langsamer als ihre Gegenstücke in Java. Die Performance ließ sich verbessern, indem man (zumindest vorrübergehend) doch veränderliche Datenstrukturen verwendete. Leider fiel der Code dann nicht mehr so elegant und deklarativ aus. Er ähnelte wieder stärker den imperativen Lösungen. Auf einem höheren Abstraktionsniveau mit dem Computer zu kommunizieren hat also einen Preis.
     
    Obwohl Scala Java syntaktisch viel ähnlicher ist als Clojure, dauerte es länger, eine Heuristik von Java nach Scala zu portieren. Die Portierung von Scala nach Clojure war dagegen meist sehr schnell erledigt, obwohl die lispoide Syntax für mich anfangs sehr fremdartig war. An dieser Stelle war spürbar, was es heißt, sich innerhalb eines Programmierparadigmas oder eben zwischen verschiedenen Programmierparadigmen zu bewegen. Bleibt man innerhalb eines Paradigmas, hat man das Gefühl, alle Sprachen sind gleich. Wechselt man zwischen den Paradigmen, merkt man, dass jede Sprache ihr Paket an impliziten Denkweisen und Lösungsstrategien mit sich trägt.
     
    Clojure war als dynamisch typisierte Sprache natürlich noch einmal deutlich langsamer als Scala. Bei Clojure bedauere ich, dass die Zeit nicht reichte, um Metaprogrammierung mit Makros auszuprobieren.
     
    Scala gefällt mir als Programmiersprache gut. Ich finde es z.B. toll, dass man es einerseits als funktionale aber andererseits auch als objektorientierte Sprache verwenden kann. Auch wenn man objektorientiert programmiert, erlaubt es an vielen Stellen kompakteren und zugleich besser lesbareren Code als Java. Ich glaube, es gibt in meiner Region sogar ein Softwareunternehmen, das diese Sprache produktiv einsetzt. Inzwischen wäre ich auch neugierig, mit Kotlin eine weitere multi-paradigmatische Sprache auf der JVM kennenzulernen.
     
    Betreuung
     
    Meinen Erstbetreuer kannte ich schon von der Projektarbeit. Er bekam fortlaufend Textbausteine geschickt. Wie in Aussicht gestellt, kamen anfangs mehr Rückmeldungen und mit fortschreitender Arbeit wurde es knapper. Das fand ich genau richtig. Ich habe mich gut begleitet gefühlt, hatte aber auch den Eindruck, selbst für meine Bachelorarbeit zuständig zu sein. Toll war für mich, dass mir das Studienbüro einen Betreuer vermitteln konnte, der für mein Wunschthema offen war.
     
    Ich bin ein bisschen gespannt, was mein Zweitbetreuer zu meiner Arbeit sagen wird. Er bekam sie erst am Schluss, als sie fertig war, so dass ich ihn noch nicht richtig kennenlernen konnte. Aber beim Kolloquium muss ich mich ja den Fragen beider Betreuer stellen.
     
    Mal schauen, wie lange es nun dauert, bis eine Rückmeldung kommt. Ich werde im Blog berichten.
     
    Tools und Werkzeuge
     
    Lohnend war in jedem Fall, dass ich mir schon letztes Jahr die Mühe gemacht hatte, eine brauchbare LaTeX-Vorlage zu erstellen. Für eine Arbeit mit vielen Abbildungen, Fußnoten, Querverweisen, Verzeichnissen und Quellenangaben ist es sehr angenehm, sich Dank LaTeX aufs Schreiben konzentrieren zu können und sich nicht mit dem Layout herumschlagen zu müssen.
     
    Meine Quellen habe ich als einfache Textdatei mit einem Texteditor erfasst. Ich war anfangs der Ansicht, für eine Bachelorarbeit würden es ja wohl nicht so viele Quellen werden, so dass eine Literaturverwaltung mir übertrieben vorkam. Am Ende wurden es doch mehr Quellen als ich gedacht hätte. Stünde ich noch einmal am Anfang, würde ich eine Literaturverwaltung verwenden.
     
    Als IDE habe ich IntelliJ verwendet. Die hat eine gute Unterstützung für Scala. Man kann sie auch für Clojure verwenden. Allerdings hat es sich als etwas schwierig erwiesen, Scala und Clojure im gleichen Projekt zu verwenden. (Dazu nur ein Beispiel: Scala-Projekte nutzen als Build Tool bevorzugt das SBT. Clojure-Projekte verwenden meist Leinigen. Prinzipiell müsste es möglich sein, mit dem SBT auch Clojure oder mit Leiningen auch Scala zu compilieren, aber ein entsprechendes Setup habe ich nicht hinbekommen.)
     
    Für die Erstellung von UML-Diagrammen habe ich UMLet verwendet. Es ist ein bisschen "spartanisch", aber dafür ist es auch schlank und erschlägt einen nicht mit der Vielfalt seiner Features.
     
    Zeitmanagement
     
    Im Großen und Ganzen hat meine Zeiteinteilung funktioniert. Inzwischen bin ich alt genug, um begriffen zu haben, dass ein noch so guter Plan nie hinhaut und man daher stets Puffer für Unerwartetes einplanen muss.
     
    Die hätten allerdings noch ein bisschen üppiger ausfallen dürfen. Insgesamt habe ich mir doch mehr vorgenommen, als im Rahmen einer Bachelorarbeit realistisch war. So musste ich gegen Ende auf ein paar Themen und Aspekte verzichten, die ich gerne noch erkundet hätte. Zum Beispiel bietet Scala nebenläufige Programmierung auf einem höheren Abstraktionsniveau mit Aktoren. Die hätte ich gerne für die Evolutionsstrategie verwendet, aber dafür reichte die Zeit nicht mehr.
     
    Es wäre auch gut gewesen, am Ende mehr Zeit für Korrekturen zu haben. Eigentlich hatte ich dafür eine ganze Woche eingeplant, aber dann musste es doch schneller gehen. Zwar hatte ich zwischendurch immer wieder Kapitel gelesen und überarbeitet, aber ich war doch jedes Mal wieder erstaunt, dass man auch nach dem x-ten Durchgang wieder etwas findet.
    Das Drucken und Binden war diesmal stressfrei, weil ich schon eine ganze Weile vorher im Copyshop vorstellig geworden war und vorgefühlt hatte, wie ausgelastet die Mitarbeiter waren. So konnte ich eine klare Vereinbarung treffen und das lief dann auch genau so.
     
    Ausblick
     
    Nun heißt es, loslassen und abwarten, was meine Betreuer sagen. Somit habe ich, eigentlich zum ersten Mal seit Beginn meines Studium, so etwas wie "Leerlauf". Das kann ich inzwischen aber auch gut gebrachen. In den letzten Monaten ist einiges auf der Strecke geblieben; Hobbies zum Beispiel. Gestern habe ich zum ersten Mal wieder ein bisschen Klavier geübt. Das möchte ich nun wieder regelmäßiger machen.
     
    Ich hoffe ein bisschen, dass es noch vor Jahresende zum Kolloquium kommt. Wäre schön, wenn ich das Studium mit dem alten Jahr abschließen könnte.
     
    Auch aus einem praktischen Grund wäre das gut. Der Kindergarten, in dem ich während meines gesamten Studiums gearbeitet habe, kann mich ab Januar nicht mehr beschäftigen. Es sind Zuschüsse weggefallen, die für die Finanzierung meiner Stelle wesentlich waren. Darum stehen zwingend berufliche Veränderungen an.
     
    Meine Idee bei Aufnahme des Studiums war ja, einen Branchenwechsel hinzulegen: Von der Frühpädagogik zur IT. Das Problem dürfte dabei mein Alter werden. Man liest zwar beinahe täglich in der Zeitung, dass Informatiker gesucht werden. Aber bald werde ich erleben, ob das auch gilt, wenn sie Berufseinsteiger im mittleren Alter sind.
     
    Sorgen muss ich mir eigentlich nicht machen, denn in meiner Region kann man als Kindergärtner kaum arbeitslos werden. In den letzten Wochen habe ich neue Kinder eingewöhnt und wieder einmal gemerkt, wie identitätsstiftend diese Arbeit in der ersten Hälfte meines Berufslebens für mich war. Eigentlich bin ich immer noch stolz, dass ich mich als junger Erwachsener für diesen Beruf entschieden habe; zu einer Zeit, als es noch absolut unüblich war, dass Männer in Kindergärten arbeiteten. Insofern mache ich mich nicht verrückt. Falls die Arbeitgeber mir nicht zutrauen, in meinem Alter noch ein guter Informatiker zu werden, bleibe ich eben Kindergärtner. Das kann ich immer noch ganz gut.
     
    Wenn die Bachelorarbeit bestanden ist, bleibt als letzter Baustein des Studiums tatsächlich nur noch das Kolloquium. Darüber mache ich mir im Moment aber noch keine Gedanken. Aktuell versuche ich, nach den intensiven letzten Monaten ein bisschen Abstand zu meiner Bachelorarbeit zu gewinnen.
     
    Für diesen Blog heißt das, dass es wohl nicht mehr allzu viele Beiträge werden. Ich möchte noch über das Kolloquium berichten. Und danach noch einmal rückblickend, den Studiengang als Ganzes betrachten. Aber möglicherweise besuche ich vorher noch einmal einen Präsenztag in Dortmund, so dass es vielleicht auch noch drei Beiträge werden könnten.
     
    Bildergalerie
     

     
    Das erste Bild zeigt den implementierten Optimierer vor einem Lauf. Geladen ist das sogenannte 442-Problem, eine Platine mit 442 Bohrlöchern, die im Zusammenhang mit dem TSP gerne als Testfall benutzt wird. Die Koordinaten der Löcher wurden mir freundlicherweise von Dr. Johannes Josef Schneider von der ZHAW Winterthur zur Verfügung gestellt. Das Bild zeigt eine zufällig generierte - also noch nicht optimierte - Route. Das schöne am 442-Problem ist, dass dafür eine optimale Lösung bestimmt werden konnte. Gelbe Kanten zeigen an, dass aufeinander folgende Löcher den gleichen Durchmesser haben. Hellrote Kanten zeigen dagegen, dass die Lochdurchmesser sich unterscheiden, was einen Bohrerwechsel nötig macht. (Das originale 442-Problem kennt keine Lochdurchmesser. Das ist eine Variation, die ich eingebaut habe, weil ich mit verschiedenen Bewertungsfunktionen experimentieren wollte.)
     

     
    Das zweite Bild zeigt die Anordnung der Löcher des 442-Problems. Eine optimale Lösung konnte im Jahr 1987 gefunden werden, weil viele Löcher in horizontalen oder vertikalen Linien angeordnet sind. Dies ließ sich mathematisch verwerten, um viele mögliche Routen auszuschließen. Wie genau das funktioniert, verstehe ich freilich nicht; ich bin leider nur Informatiker, kein Mathematiker. Relevant für mich war, dass eine optimale Rundreise nachweislich eine Länge von ca. 5078 mm hat. Das liefert einen Anhaltspunkt dafür, wie gut die Optimierung - z.B. mit dem Sintflut-Algorithmus -  funktioniert.
     

     
    Das dritte Bild zeigt eine mit dem Sintflut-Algorithmus optimierte Tour. Hier wurde die Route in ca. 8 Sekunden auf 5321 mm verkürzt. Sie ist somit lediglich 4,7% länger als die optimale Route. Lässt man es langsamer regnen, so braucht die Optimierung etwas länger, aber der Algorithmus findet kürzere Routen, die nur noch ca. 2,5% länger sind als die optimale Route.
  23. kurtchen
    Das Abschlusskolloquium ist die letzte Prüfungsleistung in den Informatik-Studiengängen bei Springer Campus. Die Bachelorarbeit wird in einer Präsentation vorgestellt, die 20 Minuten dauern soll. Es folgt ein Prüfungsgespräch mit Erst- und Zweitprüfer. Ich hatte bei Abgabe meiner Bachelorarbeit damit gerechnet, dass es bis zum Kolloquium recht lange dauern würde. Unsere Studiengangskoordinatorin hatte ich mich bei Abgabe der Arbeit nach meinen beruflichen Plänen gefragt. Ich hatte ihr signalisiert, dass ich es schon gut fände, wenn ich zumindest noch vor Jahresende abschließen könnte. Insofern hatte ich auf einen Termin kurz vor Weihnachten gehofft.
     
    Mein Erstprüfer und Betreuer meldete sich dann aber schon knapp drei Wochen nach der Abgabe, um mir einen Termin für Ende November anzubieten; an einem Montag Nachmittag um 16 Uhr. Ich war erst ziemlich überrascht, dass er mit der Korrektur schon so weit fortgeschritten war. Andererseits hatte ich ihm während des Schreibens immer wieder Kapitel der entstehenden Arbeit geschickt, so dass er sie in weiten Teilen schon kannte. Zunächst war ich etwas angespannt, weil ich mich nach der Abgabe auf ein paar Wochen "La dolce vita" gefreut hatte. Nun musste ich die Abschlusspräsentation vorzubereiten. Andererseits war es auch verlockend, noch vor dem ersten Advent das Studium abzuschließen. Und ausnahmsweise einmal eine ruhige Vorweihnachtszeit zu genießen. Der nächste Termin wäre auch erst wieder im neuen Jahr möglich gewesen. Also habe ich zugegriffen.
     
    Bei der Vorbereitung der Präsentation war mein größtes Problem, die umfangreiche Arbeit auf 20 Minuten einzudampfen. Letztlich lief es darauf hinaus, knapp vorzustellen, was das Gesamtkonzept war, und dann stichprobenartig einige Punkte vorzustellen, die mir besonders wichtig erschienen. Insgesamt kam ich so auf 13 Folien.
     
    Themen waren:
    Was unterscheidet funktionale Programmierung von objektorientierter Programmierung? Was ist das Travelling Salesman Problem? Was ist heuristische Optimierung? Grobe Arbeitsweise des Sintflut-Algorithmus. (Die anderen Verfahren habe ich nicht vorgestellt.) Wiederkehrende Muster funktionaler Programmierung in der Fallstudie: Funktionen höherer Ordnung und Funktionsverkettung. Performanceunterschiede zwischen objektorientierter und funktionaler Programmierung. Das Muster "Focussed Mutability" mit dem man die Performance-Nachteile funktionaler Sprachen z.T. ausgleichen kann.  
    Das Material meiner Arbeit musste ich nicht noch einmal durchgehen. Da die Abgabe noch nicht so weit zurück lag, war ich noch gut im Thema.
     
    In der mündlichen Prüfung zum Modul "Präsentieren" hatte ich die Rückmeldung bekommen, dass meine Foliengestaltung recht "altbacken" wirkte. Insofern habe ich einen Tag investiert, um mir verschiedene Präsentationsframeworks anzuschauen. Auf einem unserer Präsentage hatte ich eine Beamerpräsentation von Prof. Jörges (FH Dortmund) gesehen, die er mit dem Framework reveal.js erstellt hatte. Da schreibt man seine Inhalte in HTML (oder Markdown) und braucht sich nicht um graphische Gestaltung kümmern. Das überlässt man einer CSS-Stilvorlage. Die Präsentation läuft dann im Browser. Man kann mit einem geeigneten Plugin die Folien auch in PDFs wandeln, die sich ausdrucken lassen. An dem Ansatz gefiel mir die Trennung von Inhalt und graphischer Gestaltung. Das erinnerte mich an LaTeX, wo ich ja auch nur beschreibe, WAS ich will, und es dem Satzsystem überlasse, WIE das layoutet wird. Das habe ich also mal ausprobiert und die Ergebnisse haben mir auf Anhieb ganz gut gefallen.
     
    Alternativ habe ich auch mal in impress.js angeschaut. Das ist ebenfalls ein Javascript-Framework für Präsentationen. Hier können Inhalte frei in einem dreidimensionalen Raum platziert werden. Die Präsentation ist dann eine Kamerafahrt durch diesen Raum. Das kann sehr chic aussehen. Allerdings ist es auch nicht ganz trivial, diese Möglichkeiten sinnvoll auszuschöpfen.
     
    Als dritte Variante habe ich das LaTex-Paket powerdot angetestet. Damit kann man recht übersichtliche Folien erstellen. Da ich in LaTeX gut eingearbeitet war, wäre ich damit wahrscheinlich am schnellsten voran gekommen. Die Stilvorlagen waren aber ziemlich nüchtern und erinnerten mich an meine mit LibreOffice Impress erstellen Folien. Empfehlen würde ich LaTeX, wenn man Folien mit vielen Formeln setzen muss oder regelmäßig Fußnoten in den Folien unterbringen möchte. Das geht damit sehr komfortabel.
     
    Meine Wahl fiel schließlich auf reveal.js, das mit einem entsprechenden Plugin Formelsatz in LaTeX-Syntax ermöglicht. Wenn man ein bisschen HTML oder Markdown kann, aber nicht so gerne graphisch gestaltet, ist das eine ziemlich gute Möglichkeit, schnell eine Präsentation zu gestalten.
     
    Dann galt es, meinen Vortrag zu üben, um die Inhalte frei sprechend aber eben in 20 Minuten rüber zu bringen. Anfangs lag ich regelmäßig über der Zeit, aber es wurde von Durchgang zu Durchgang besser, so dass ich zumindest in die Nähe der 20 Minuten kam.
     
    Am Tag der Prüfung bin ich vor der Abreise nach Dortmund noch ins Schwimmbad gegangen, um Stresshormone abzuarbeiten. Ich bin dann ziemlich entspannt nach Dortmund gefahren. Auf der Fahrt bin ich meinen Vortrag noch ein paar mal gedanklich durchgegangen. In Dortmund blieb noch Zeit für ein verspätetes Mittagessen.
     
    Gelegentlich möchten andere Studierende an so einem Kolloquium teilnehmen, aber da meines an einem Montag um 16 Uhr stattfand, herrschte im Haus schon allgemeine Aufbruchstimmung in den Fluren. Ich stand also lediglich vor meinen Prüfern.
     
    Das Üben und Feilen an den Formulierungen hatte anscheinend etwas gebracht. Bei der Präsentation blieb ich erstmals knapp unter den anvisierten 20 Minuten. Dafür blieb Zeit, im anschließenden Prüfungsgespräch an der Flipchart vorzustellen, wie die in der Fallstudie verwendeten Mutationsoperatoren funktionieren. Dann ging es unter anderem um die Frage, ob die Performance-Nachteile funktionaler Sprachen eines Tages durch optimierende Compiler überwunden werden könnten. In Teilbereichen gibt es so etwas ja schon. Zum Beispiel übersetzt der Scala Compiler endrekursive Funktionen in Schleifen, weil die JVM gar keine Tail Call Optimierung unterstützt. Aber insgesamt ist nicht damit zu rechnen, dass es derartig optimierende Compiler geben wird, weil man bei funktionaler Programmierung nicht nur mit anderen Sprachen sondern auch mit anderen Datenstrukturen und Lösungsstrategien arbeitet.
     
    Gefühlt ging das Prüfungsgespräch ziemlich schnell rum. Die Notenfindung dauerte auch nicht lange. Mit dem Ergebnis war ich zufrieden. Die Note ist eine Gesamtnote für die Bachelorarbeit und das Colloquium. Gewichtet werden diese beiden Prüfungsteile im Verhältnis 2:1. Da das Kolloquium einen recht großen Anteil an der Gesamtnote der Bachelorarbeit hat, ist es empfehlenswert, auch dieser Prüfungsleistung genügend Zeit und Aufmerksamkeit zu widmen.
     
    Und damit ist das Studium nun rum. Insgesamt habe ich etwas mehr als 8 Semester gebraucht. Als es zwischenzeitlich mit den Modulen sehr schnell voranging, hatte ich ja sogar einmal gehofft, schon um Weihnachten 2018 fertig zu werden. Allerdings erwiesen sich dann die Projektarbeit und die Bachelorarbeit doch als recht aufwendig. Andererseits boten diese Module die beste Gelegenheit, eigenen Interessen zu folgen. Insofern hat es Spaß gemacht, hier Zeit zu investieren.
     
    Auf der Rückfahrt habe ich angefangen, das Hörbuch "Krabat" zu hören. Ich erwähne das hier, weil ich in den vergangenen vier Jahren kaum fiktionale Literatur gelesen habe, obwohl ich eigentlich sehr gerne lese. Das war eines der Opfer, die ich für mein Studium bringen musste. Insofern ist es schön, jetzt auch wieder Zeit für solche Dinge zu haben. Auf mich wartet inzwischen ein halbes Billy-Regal voll mit Romanen, Comics oder auch Sachbüchern, die nichts mit Informatik zu tun haben. Es wird eine Weile dauern, bis dieser Stau aufgelöst ist. Seltsamerweise ist bei mir noch gar nicht so richtig angekommen, dass mein Studium nun vorbei ist. Es bleibt eine innere Unruhe, ein unbestimmtes Gefühl, mich bald wieder an den Schreibtisch setzen zu müssen, weil ich doch bestimmt noch etwas zu tun habe.
     
    Nun bin ich natürlich gespannt darauf, die Urkunde in den Händen zu halten. Von Kommilitonen habe ich sehr unterschiedliche Erfahrungswerte gehört, wie lange so etwas dauern kann. Das wird dann wahrscheinlich einer meiner letzten Beiträge in diesem Blog.
  24. kurtchen
    Das Modul "Computernetze" wird der Fachgruppe "IT-Systeme" zugerechnet. Für Studierende im Studiengang "Web- und Medieninformatik" ist es Pflicht. Die angehenden Wirtschaftsinformatiker können es als Wahlpflichtmodul belegen. Formal betrachtet gibt es keine Teilnahmevoraussetzungen. Empfohlen wird ein grundlegendes Verständnis von IT-Systemen und Informationsarchitekturen.
     
    Meiner Meinung nach lässt sich ein solches Verständnis gut mit dem Modul "Rechnerstrukturen und Betriebssysteme" aufbauen. Dies sollte nach empfohlenem Studienplan im 1. Semester belegt werden. Computernetze ist dann schon für das 2. Semester vorgesehen. Ich finde die beiden Module ähneln einander. In beiden Fällen sieht das Lehrbuch recht dünn aus. Beim Durcharbeiten merkt man dann, dass es sehr komprimiert geschrieben ist. Jeder Satz hat es in sich. Man kommt also beim Bearbeiten langsamer voran als bei anderen Modulen, die auf den ersten Blick umfangreicher wirken.
     
    Der Stoff ist - wie bei Rechnerstrukturen - zunächst einmal recht trocken und formal. Man verbringt viel Zeit damit, z.B. den bitweisen Aufbau von Headern zu verstehen, ohne an diesem Punkt zu ahnen, wozu das gut sein wird. Man muss sich auch bei diesem Modul durch einige Kapitel beißen, die die nötigen Voraussetzungen für späteres Verständis schaffen. Das macht es manchmal schwierig, die Studienmotivation aufrecht zu erhalten. Der Stoff dieses Kurses ist im Vergleich zu anderen Modulen recht technisch und formal.
     
    Das verwendete Lehrbuch "Technische Grundlagen von Computernetzen" ist von Patrick-Benjamin Bök und Andreas Noack. Es hat ca. 270 Seiten, die aber recht eng bedruckt sind und auch die Schriftgröße ist etwas kleiner als bei der W3L üblich. Lasst euch also von der Seitenzahl nicht täuschen. Das ist kein Modul, das man nebenbei belegt. Das Buch enthält viele Abbildungen, häufig schematische Darstellungen des Aufbaus von Headern oder an Graphen erinnernde Darstellungen der Topologie von Netzen. Der inhaltliche Aufbau ist wie folgt:
    - (technische) Grundlagen
    - Kommunikation auf physikalischer Ebene
    - Kommunikation auf logischer Ebene
    - Kommunikation auf Anwendungsebene
    - Performance Engineering
     
    Die Grundidee ist also, sich von der Übertragung einzelner Bits (z.B. über einen Kupferdraht) Stufe für Stufe zu immer komplexeren Protokollen hochzuarbeiten, die aufeinander aufbauen oder präsizer ineinander geschachtelt sind wie Zwiebelschalen. So landet man am Ende bei Themen wie Voice-over-IP.
     
    Es gibt Lehrbücher, die den umgekehrten Weg gehen, also von den Protokollen höherer Stufen hinabsteigen zur Bitübertragungsschicht. Der Ansatz, den die Autoren gewählt haben, scheint der gängige zu sein. Er hat für mich auch gut funktioniert, weil man an jedem Punkt versteht, auf welchem Fundament man ruht. Der Nachteil dieses Ansatzes ist, dass man viel Stoff lernen muss, bevor man schließlich mit etwas zu tun bekommt, das man aus eigener Alltagserfahrung kennt, z.B. der Übetragung einer Webseite per HTTP oder einer E-Mail per IMAP.
     
    Ziemlich zu Beginn des Kurses werden zwei Referenzmodelle eingeführt, das ISO/OSI-Modell und das TCP/IP-Referenzmodell. An ihnen verdeutlicht man sich die schichtweise Struktur der aufeinander aufbauenden Protokolle. Diese Modelle tauchen im Verlauf des Kurses immer wieder auf, um zu zeigen, wo im Schichtenmodell der gerade behandelte Stoff angesiedelt ist. Dies ist nützlich, um bei der Auseinandersetzung mit den vielen technischen Einzelheiten nicht den Überblick zu verlieren: Worauf baut das aktuelle Thema auf? Und worauf läuft es hinaus? Gerade bei diesem Modul ist es leicht, den Kompass zu verlieren. Die wiederkehrenden Verweise auf das Schichtenmodell sollen dem vorbeugen. Für mich hat das gut funktioniert.
     
    Gleichwohl musste ich mich immer wieder damit abfinden, vieles zunächst einmal nur halb zu verstehen. Das Lehrbuch war so geschrieben, dass ich das WAS und das WIE meist gut nachvollziehen konnte. Aber das WOZU, das mir auch geholfen hätte, den Stoff für mich einzuordnen und mir besser zu merken, musste manchmal vorläufig im Dunkeln bleiben. Mein Eindruck ist: Das ist kein Versäumnis der Autoren sondern der Struktur des Stoffes geschuldet. Netze entwickelten sich über die Zeit, es wurden neue Protokolle auf vorhandene Protokolle aufgesetzt. Man muss also ein Stück weit diesen historischen Entwicklungsprozess nachvollziehen.
     
    Die Online-Tests waren zum Teil etwas spitzfindig formuliert, was mich aber zwang, den Stoff der einzelnen Wissensbausteine noch einmal genauer durchzuarbeiten. Die Aufgaben waren anders, als ich erwartet hatte. Kommilitonen, die eine frühere Version dieses Moduls belegt hatten, hatten mir berichtet, dass vor allem Wissen abgefragt würde. In der aktuellen Auflage des Kurses geht es eher darum, die gelernten Konzepte anzuwenden.
     
    Man sollte z.B. zeigen, wie mit dem Spanning Tree Protocol redundante Pfade aus einem vermaschten Netz entfernt werden, so dass eine Baumstruktur entsteht. Oder erklären, wie ein Routing-Algorithmus ausgehend von einer bestimmten Ausgangssituation Schritt für Schritt eine Routing-Tabelle aufbaut. Oder durchspielen, welche Pakete bei bestimmten Formen des Queuings in welcher Reihenfolge bedient werden. Bei den Aufgaben zur Verwaltung von IP-Adressen muss man auch immer wieder ein bisschen rechnen. Da ist es gut, wenn man im Umgang mit Dualzahlen und Hexadezimalzahlen noch recht fix ist.
     
    Bei diesem Kurs sind zur Klausur keinerlei Hilfsmittel zugelassen. Um die Fülle an Stoff in den Kopf zu bekommen, habe ich an die 150 eng beschriebene A4 Seiten eigene Notizen angefertigt. Vieles davon waren Diagramme zum Aufbau der vielen verschiedenen Header, wobei ich pro Bit ein Kästchen auf Karopapier verwendet habe. Diese Zeichnungen habe ich dann stark kommentiert. Außerdem habe ich viele Fragen niedergeschrieben, die sich mir beim Bearbeiten des Kurses stellten und die Antworten, die ich darauf gefunden habe, sauber ausformuliert. Meine Notizen sahen also auf manchen Seiten aus wie Sammlungen von Quizfragen. Schließlich habe ich viele Diagramme aus dem Kurs abgezeichnet, bei denen es vor allem um Kommunikationsflüsse und die dabei ausgetauschten Daten ging. Ich habe dabei bewusst von Hand gearbeitet, weil ich gehofft habe, den Stoff so gleichsam "in die Finger" zu bekommen.
     
    Mein Tutor war der Ansicht, bei diesem Kurs ginge es nicht um das Abfragen von Wissen. Es ginge um das Verständnis von Zusammenhängen; und die Fähigkeit, dieses Verständnis problemlösend anzuwenden. In der Klausur erwies das als einerseits richtig. Aber andererseits auch wieder nicht. Ja, es gab nur wenige Wissensfragen. Meistens musste man Wissen anwenden, zeigen, wie sich eine Situation entwickelt, wer, wann, was und in welcher Form an wen sendet, damit ein Paket den Weg von A nach B finden kann. Aber um solche Probleme lösen zu können, braucht man auch Wissen: Längen von Headern, ihren Aufbau, den genauen Ablauf wechselseitig gesendeter Botschaften. Es war schon vorteilhaft, eine Menge Fakten im Kopf zu haben. Hier hätte ich in der Präsenzklausur noch etwas mehr rausholen können. Müsste ich die Klausur noch einmal schreiben, dann würde ich mehr Fakten mit Karteikarten lernen. Man verstehe mich nicht falsch: Fakten zu lernen reicht auf keinen Fall, um diese Klausur zu bestehen. Aber es ist oft nötig, um mit der eigentlichen Arbeit beginnen zu können. Ich musste an vielen Stellen raten und war hinterher überrascht, dass ich oft richtig gelegen hatte.
     
    Erwähnen möchte ich noch die sehr intensive Betreuung durch meinen Tutor. Bei diesem Modul hatte ich viele Verständnisfragen und weiterführende Fragen. Die Antwort kam oft noch am gleichen Tag und hat mich eigentlich immer weiter gebracht.
     
    Für mich war das bislang die schwierigste Präsenzprüfung meines Studiums. Dank der Bonuspunkte aus Online-Test und Online-Klausur habe ich mit einem schönen Ergebnis abschließen können, auch wenn mein Punktwert aus der Klausur im Vergleich zu vielen anderen Modulen etwas schlechter ausgefallen ist. Ich habe mich aber hier besonders über das Ergebnis gefreut, weil ich das Gefühl hatte, mir hier wirklich etwas erarbeitet zu haben.
     
    Für Studierende, die nach diesem Modul noch mehr über Netze wissen wollen, gibt es ein aufbauendes Modul "Planung und Auslegung von Computernetzen", das man als Wahlpflichtmodul belegen kann.
     
    "Computernetze" wird als Grundlage für das Modul "IT-Sicherheit" empfohlen. Das ist das nächste von insgesamt 4 Modulen aus dem Studienbereich "IT-Systeme", das ich belegen möchte. Ein bisschen dauert das aber noch, denn als weitere Grundlage wird Mathe3 empfohlen, wo unter anderem kryptographische Basistechniken behandelt werden. Nun habe ich aber Mathe2 noch nicht bestanden. Die IT-Sicherheit muss also noch ein wenig warten.
     
    "Computernetze" war ein ordentliches Stück Arbeit. Ich bin froh, dass ich das geschafft habe.
  25. kurtchen
    Das Modul Softwaretechnik 3 (SWT3) ist verpflichtend für Studierende im Studiengang Web- und Medieninformatik und wird dort dem großen Studienbereich "Softwaretechnik" zugerechnet. Für Studierende im Studiengang Wirtschaftsinformatik ist es nicht verpflichtend. Soweit ich es verstanden habe, kann es von ihnen nicht einmal als Vertiefungskurs belegt werden. Laut Studienplan sollte man SWT3 im 6. Semester belegen. Es ist also als eines der letzten Module vor der Bachelor-Arbeit vorgesehen.
     
    Voraussetzungen
     
    Die Liste der Module, die als inhaltliche Voraussetzung genannt werden ist lang: Man benötigt GdI1 und GdI2, weil man solide Kenntnisse objektorientierter Konzepte sowie gute Java-Kenntnisse braucht. GdI3 ist wichtig, weil die Interaktionen zwischen den Schichten GUI, Fachkonzept und Datenhaltung eine wesentliche Rolle spielen. SWT1 ist unter anderem nötig, weil man sich mit den verschiedenen UML-Diagrammen gut auskennen sollte. Wozu man Software-Management braucht, erschließt sich mir nicht. Ich hatte diese Grundlage nicht und habe sie auch an keiner Stelle des Kurses vermisst. Dafür denke ich, dass das Modul "Nicht-sequentielle Programmierung" (NSP) eine sinnvolle Vorbereitung wäre, denn verteilte Anwendungen spielen eine große Rolle und es ist sehr hilfreich, zumindest schon einmal Erfahrungen mit RMI (Remote Methode Invocation) gesammelt zu haben. Das Modul SWT3 ist außerdem ein Pflichtmodul für das Hochschulzertifikat "Software-Architekt". Kein Wunder, denn Software-Architektur ist ein roter Faden dieses Kurses.
     
    Das Lehrbuch
     
    Grundlage für den Kurs ist das "Lehrbuch der Softwaretechnik - Entwurt, Implementierung, Installation und Betrieb" von Helmut Balzert. Es ist der Folgeband zum "Lehrbuch der Softwaretechnik - Basiskonzepte und Requirements Engineering" vom gleichen Autor. Während sich der Inhalt des ersten Bandes auf 2 Module verteilte, muss man für SWT3 tatsächlich die kompletten 580 Seiten durchackern. Und die haben es in sich. Wie schon im ersten Band legt Herr Balzert großen Wert auf eine präzise Definition der Begriffe. Viele Diagramme (vor allem UML-Diagramme) und Code-Beispiele (meist in Java) ergänzen den Kurstext.
     
    Die Themen
     
    Eine der ersten Einsendeaufgaben behandelte Verteilungsdiagramme. Mit diesen stellt man dar, wie die Komponenten eines verteilten Softwaresystems auf verschiedene physische Rechner oder auf verschiedene Ausführungsumgebungen an verschiedenen Standorten verteilt sind, und über welche Protokolle die Interaktion zwischen den Knoten abläuft. Konkret sollte man für die Aufgabe die sprachliche Beschreibung eines verteilten Systems in ein Diagramm umsetzen. Hier hatte ich Schwierigkeiten, mir das System und das Zusammenwirken seiner Teile vorzustellen. Ich brauchte mehrere Anläufe und viele Rückmeldungen meines Tutors, um diese Aufgabe befriedigend lösen zu können. Leider ist dieses Thema eine meiner Achillesfersen geblieben. Die Verteilungsdiagramme spielten auch in der Klausur eine Rolle und gerade mit dieser Aufgabe habe ich mich sehr schwer getan.
     
    Leichter fiel mir der große Themenbereich der Entwurfsmuster. Hier zielten die Einsendeaufgaben darauf ab, verschiedene Entwurfsmuster in Java auszuprogrammieren. Zu meiner Überraschung ist SWT3 ein Modul, in dem das Schreiben von Code wieder eine größere Rolle spielt. Eine schöne Nebenwirkung dieses Moduls ist, dass ich nun viel besser mit Netbeans umgehen kann. (Eigentlich nicht vorgesehen, ich hätte ich das Modul mit Eclipse bearbeiten sollen.) Wichtige Themen sind: Callback, Schichten-Muster, Beobachter-Muster, MVC-Muster, Fassaden-Muster, Kommando-Muster, Proxy-Muster, Fabrikmethoden-Muster, Strategie-Muster und Brücken-Muster.
     
    Angenehm am Modul ist auch, dass sich eher theoretische und sehr praktische Kapitel abwechseln. Nach einem recht theoretischen Kapitel über nicht-funktionale Anforderungen geht es also wieder recht praktisch weiter mit Globalisierung und Internationalisierung von Software, mit Authentifizierung und Autorisierung am Beispiel JAAS und mit Transaktionen am Beispiel JTA. Ergänzend zur vorherrschenden Java-Perspektive gibt es immer wieder kleinere Ausflüge, wie die verschiedenen Konzepte des Kurses in .NET umgesetzt werden.
     
    Ein nächster großer Block sind Arten der Netzkommunikation bei verteilten Anwendungen. Hier lernt man in rascher Folge die Kommunikation mit Sockets, mit Remote Method Invocation (RMI), mit CORBA, mit XML-RPC, mit SOAP und REST. Hierzu gibt es auch wieder mehrere Programmieraufgaben. In diesem Zusammenhang lernt man auch weitere Entwurfsmuster kennen, z.B. Wert-Objekte, Fabrik-Dienste und Fassaden.
     
    Es folgt ein Kapitel über softwaretechnische Infrastrukturen. Hier geht vor allem um Java EE und um .NET. Das Kapitel über eingebettete Systeme und Architekturmuster für diese fällt aus meiner Sicht recht knapp aus. Wichtiger scheint mir das Kapitel über Persistenz. Hier gibt es Einsendeaufgaben zur objektrelationalen Abbildung (ORM) und zur Java Persistence API (JPA). ORM war ja auch schon im Modul "SQL und relationale Datenbanken" Thema, aber ich finde es nicht schlecht, dass dieses Thema hier noch einmal auftaucht. Bei der objektrelationalen Abbildung geht es darum, Klassen, Assoziationen und Vererbungsstrukturen eines per OOA erstellen Fachkonzepts in sinnvoller Weise auf Tabellen einer relationalen Datenbank abzubilden. Hierfür gibt es mehrere Möglichkeiten, die je eigene Vorzüge und Nachteile haben.
     
    Die restlichen Kapitel über GUI-Entwurfsmuster, den Entwurfsprozess, Qualitätssicherung der Architektur, Implementierung, Verteilung und Installation, Betrieb und Reverse Engineering werden nur noch durch Tests abgedeckt. Aufgrund des Umfangs des Moduls gibt es sehr viele Tests. Ich habe auch den Eindruck, dass im Abschlusstest breit geprüft wird.
     
    Mein Tutor war der gleiche wie in SWT1, SWT2, Mobile Computing und Web-Design. Die Rückmeldungen zu meinen Einsendeaufgaben kamen meist schon am nächsten Tag. Besonders interessant war es natürlich, wenn meine Lösung nicht gestimmt hatte. Durch die schnelle Antwortzeit, konnte ich gut Rückfragen stellen und meine eingereichten Lösungen zum Teil in mehreren Schritten verbessern. Das war wieder sehr hilfreich für die Klausurvorbereitung.
     
    Online- und Präsenzklausur
     
    Bei der Online-Klausur kamen Themen dran, mit denen ich nicht unbedingt gerechnet hätte. Aufgrund der Gewichtung der Einsendeaufgaben erschienen mir, Entwurfsmuster, Arten der Netzkommunikation und Persistenz als die Kernthemen des Moduls, die man gründlich vorbereiten sollte. Aber hier kamen auch Aufgaben zu kleineren Themen. Wer Bonuspunkte will, sollte also den gesamten Kurs ernst nehmen.
     
    In der Präsenzklausur kamen große Punktebringer dann schon aus den oben genannten Kernthemen. Es gab aber auch mehrere kleinere Aufgaben, die mit Wissensfragen Inhalte aus dem gesamten Modul abdeckten. Schon eine clever konstruierte Prüfung, wenn man checken will, ob die Studierenden wirklich alles bearbeitet und verstanden haben. Leider kamen auch die von mir nicht geliebten Verteilungsdiagramme wieder dran.
     
    Fazit und Ausblick
     
    Manche der vorgestellten Architektur-Muster waren recht komplex. Zum Teil habe ich bei diesem Modul gespürt, dass ich an die Grenzen meiner Abstraktionsfähigkeit komme. Man merkt deutlich, dass es ein Modul für fortgeschrittene Semester ist. Gut gefallen hat mir, dass hier die Umsetzung der Entwürfe in Code wieder eine größere Rolle spielt. SWT3 bildet eine gute Brücke zwischen den Modulen der Softwaretechnik und den Programmiermodulen. Ich finde insgesamt die Studienbereiche GdI und SWT gut aufeinander abgestimmt. Der Kurs hat mir wieder sehr viel Spaß gemacht, war aber für mich auch herausfordernd. Während ich bei anderen Modulen oft noch Wünsche formulieren konnte, was ich gerne noch alles gelernt hätte, war ich nach SWT3 endlich einmal "satt". Das kommt bei mir eher selten vor.
     
    Ein Klausurergebnis habe ich noch nicht, aber ich hoffe sehr, dass die Mühe sich gelohnt hat und ich diesen anstrengenden Teil meines Studiums nun auch wirklich hinter mir lassen kann. Den "dicken Brocken" Softwaretechnik habe ich damit aber noch nicht geschafft. Auf mich warten noch immer die Module "Software-Management 1" und "Software testen". Ich brauche nun aber tatsächlich einen Themenwechsel, um nicht ständig von der gleichen geistigen Ressource zu zehren. Darum möchte ich nun endlich einmal das bislang von mir vernachlässigte Thema BWL angehen, um das auch Studierende der Web- und Medieninformatik nicht herumkommen. In den nächsten Wochen wird mich also das interne und externe Rechnungswesen beschäftigen. Nicht gerade eine Entwicklungsaufgabe, auf die ich mich freue, aber nachdem ich in den letzten Wochen sehr viel vor dem Bildschirm gesessen habe, wird es zumindest eine Abwechslung sein.
×
  • Neu erstellen...