Springe zum Inhalt

kurtchen

Benutzer
  • Anzahl Inhalte

    658
  • Benutzer seit

  • Letzter Besuch

Ansehen in der Community

946 Sehr gut

3 folgen dem Benutzer

Informationen

  • Status
    Aktiver Fernstudent
  • Anbieter
    Springer Campus
  • Studiengang
    Web- und Medieninformatik
  • Wohnort
    Bayern
  • Geschlecht
    m

Letzte Besucher des Profils

Der "Letzte Profil-Besucher"-Block ist deaktiviert und wird anderen Benutzern nicht angezeit.

  1. kurtchen

    Vorkurse

    Wenn mit Leistungspunkten ECTS gemeint sind, ist es normal, dass eine Prüfungsleistung erbracht werden muss. Es kann dich ja niemand zwingen, eine Klausur zu schreiben. Wenn es Dir genügt, mit den Vorkursen als Lernmedien dein Wissen zu erweitern, lässt du's halt bleiben mit der Klausur. ECTS wären nur nützlich, wenn sie für einen geplanten Studiengang anrechnen lassen kannst.
  2. Hagen hat auf der Homepage Modulbeschreibungen und zu vielen Modulen recht umfangreiche Leseproben. An Transparenz mangelt es nicht. Ich hatte mich noch im Januar für den Master in Hagen interessiert, aber ausgerechnet Module, die ich gerne belegt hätte, sind ausgelaufen (z.B. logische und funktionale Programmierung) oder werden aus anderen Gründen nicht mehr angeboten (Künstliche neuronale Netze). Ist auch nicht garantiert, dass man im Wunschpraktikum einen Platz kriegt. Aktuell wäre mir zu wenig dabei, was mich interessiert, so dass mir die niedrigen Gebühren auch nicht weiterhelfen. Aber das kann bei Dir natürlich anders sein.
  3. Ganz verschieden: Ich habe früher ganz gute Erfolge mit Mind Maps erzielt. Habe aber zeitweise auch viel mit Karteikarten gearbeitet. Auch mit Bleistift viel in die Lehrbücher und Skripte zu schmieren, war ganz gut. Vor allem, wenn ich viel graphisch dargestellt habe. Auch Zusammenfassungen zu tippen, brachte viel. Klingt vielleicht blöd, aber manchmal habe ich auch Selbstgespräche geführt, wenn ich etwas mit Mühe und Not begriffen hatte. Ich habe mir dann vorgestellt, wie ich es jemandem erklären würde, der es noch nicht versteht. Rückblickendwürde ich sagen, dass jedwede Form der aktiven Auseinandersetzung mit dem Stoff etwas bringt. Ich habe den Eindruck, dass analoge Medien für mich effektiver sind, um Stoff zu komprimieren oder zu wiederholen. Manchmal denke ich, dass es sich lohnen müsste, richtig zeichnen zu lernen. Bin da leider nicht sehr talentiert, glaube aber, dass man auch da mit regelmäßiger Übung unweigerlich besser wird. Ich vermute, dass gerade das Zeichnen sehr helfen kann, Dinge gedanklich zu ordnen.
  4. Nachdem ich in der Vergangenheit häufiger Beiträge gelesen habe, die eine frühe Spezialisierung kritisch bewerten oder sich über exotisch klingende Fächer lustig machen, fand ich diesen Beitrag bemerkenswert nüchtern. Bei vielen sogenannten Bindestrich-Studiengängen würde ich empfehlen, das Curriculum mit dem eines generalistischen Abschlusses zu vergleichen. Denn oft gibt es auch da Möglichkeiten, über Wahlpflichtmodule einen Schwerpunkt zu legen. Und dann kann der Unterschied zum vermeindlich spezialisierten Abschluss überraschend klein sein. Ich bin ja eingeschrieben für Web- und Medieninformatik, aber das heißt ja keineswegs, dass ich mich nur mit Webtechnologien beschäftigt habe. Wenn mich jemand fragt, was ich studiere, sage ich meist: "Informatik an einer FH." Ich befürchte auch nicht, dass der Titel "Web- und Medieninformatik" meine Verwendungsmöglichkeiten von vorneherein stark einschränkt. Umgekehrt erwarte ich aber auch nicht, dass ich mit dem Bachelor bereits als Spezialist wahrgenommen werde. So viel Spezialisierung lässt ein grundständiger Bachelor von 6 bis 7 Semestern ja gar nicht zu. Ich denke, die Arbeitgeber wissen das. Die Vermehrung der Studiengänge sehe ich daher eher als Vermehrung der Namen. Das dürfte - zumindest beim Bachelor - häufig etwas mit "Studiengangsvermarktung" zu tun haben als mit früher Spezialisierung.
  5. Es gibt gelegentlich mal Berichte über Studierende, die die Regelstudienzeit deutlich schlagen. In meinen Augen ist das nicht unbedingt eine Empfehlung. Zu Rankings hat Frau Kanzler ja schon einiges gesagt. Bei einem Fernstudium der Psychologie könnte man die Anerkennung durch den BDP als Auswahlkriterium nennen.
  6. Zu Beginn meines Studiums habe ich Module nacheinander belegt. Zum Lernen war mir das am angenehmsten. Dann habe ich gemerkt, dass ich schneller vorankommen könnte. An meiner Hochschule waren aber Prüfungstermine so ca. alle 8 Wochen. Weil man immer 10 Tage vor der Prüfung den Online-Abschlusstest geschafft haben musste, um sich noch anmelden zu können, wurde es bei sequentieller Belegung zeitlich etwas knapp. Ich habe dann probiert, 2 Module parallel zu bearbeiten. Das ging ganz gut, wenn die Module möglichst unterschiedliche Themen behandelten. So zehrten sie nicht von der gleichen Ressource. Ich hätte z.B. nicht mehrere Mathe-Module parallel belegt. Später wollte ich mal testen, wo mein persönliches Limit ist. Ich habe dann mal probiert, zu einem Prüfungstermin 3 und dann sogar 4 Klausuren zu schreiben. Das ging, machte aber wenig Freude. War danach auch manchmal regelrecht "ausgelaugt" und habe nach so einem "Marathon" weniger geschafft. Daher meine ich, dass es unterm Strich nicht so viel gebracht hat. Mein Tipp wäre also: An den persönlichen Eustress-Bereich rantasten, dann in diesem Tempo bleiben. Akzeptieren, dass es je nach Stoff auch mal langsamer geht. Ich finde z.B. nicht so spannend, was mit BWL zu tun hat. Solche Module haben mich dann stark ausgebremst. Habe ich akzeptieren müssen. Für wichtig halte ich noch, dass man möglichst nie ganz stehenbleibt. Das ist für die Motivation sehr ungünstig, wenn man längere Zeit keinen Fortschritt mehr erlebt.
  7. Bei einem akkreditierten Studiengang ist irgendwann eine Reakkreditierung fällig, die auch nicht zwingend durchgehen muss. Wäre also denkbar, dass man zwar einen akkreditierten Studiengang beginnt aber nicht abschließt. Will sagen: Mit so etwas kann man sich auch verrückt machen. Die Fragen von Fr. Kanzler halte ich für relevanter.
  8. kurtchen

    Alternative Lernmethoden

    In meinem Erststudium habe ich zeitweise viel mit Mindmaps gearbeitet, um große Stoffmengen für mich zu strukturieren und zu verdichten. Die Erstellung hat natürlich viel Arbeit gemacht. Eigentlich hatte ich vor, die Mindmaps zum Wiederholen vor Klausuren zu nutzen. Das habe ich dann aber bald gelassen, weil es für mich total langweilig war. Wenn man so eine Mindmap selbst erstellt hat und sich da wirklich Gedanken gemacht hat, wie man sie aufbaut und warum man sie so und nicht anders aufbaut, dann kennt man die ziemlich gut. Das war dann für mich eher einschläfernd, die nochmal durchzugehen. Im Prinzip habe ich kontinuierlich gelernt aber nicht vor einer Klausur für die Klausur gelernt. Das hat ganz gut funktioniert. Aber es kommt auch immer auf das Fachgebiet an. Für mein derzeitiges Studium fand ich Mindmaps weniger geeignet und habe sie auch nicht benutzt. Karteikarten habe ich manchmal auch mit gutem Erfolg eingesetzt. Mein Eindruck ist, dass es mir nur etwas bringt, wenn ich die selbst erstelle. Darum würde ich keine fertigen Karteikarten kaufen oder welche von anderen verwenden. Mein Lernprozess ist, das Material zu erstellen. Am Ende landet es oft unbenutzt in der Tonne.
  9. Mit einem kleinen Kind ist es natürlich schwierig, entsprechende Fachpraktika abzuleisten. Ich weiß ja nicht, wie Deine Vorstellungen sind, was z.B. die Inanspruchnahme von Krippenbetreuung oder einer Tagesmutter angeht. Und dann ist es natürlich so, dass man gerade bei recht jungen Kindern oft noch nicht auf eine so lange Betreuungszeit kommt. Wie gut und wie lange es tatsächlich geht, etabliert sich oft erst während der Eingewöhnung. In dem Alter kommt es nach meiner Erfahrung auch noch häufiger vor als im Kindergartenalter, dass ein Kind wegen Krankheit nicht fremdbetreut werden kann. Schließlich ist es nach wie vor in vielen Regionen schwierig, überhaupt einen gewünschten Krippenplatz zu bekommen. All das reduziert die Planungssicherheit für ein sozialpädagogisches Praktikum. Die Praktikumsregelungen der IUBH scheinen mir recht flexibel. Vielleicht kannst Du Dein Praktikum später beginnen, als Du gehofft hast. Vielleicht schaffst Du weniger Stunden pro Tag, als Du wolltest. Oder weniger Tage pro Woche. Vielleicht zieht sich die Sache dadurch länger hin. Aber insgesamt meine ich, dass es dort möglich sein sollte, das Fachpraktikum über die Bühne zu bringen. Hinsichtlich der Anrechnung würde ich einfach mal abwarten, was die Hochschulen zu Deinen Leistungsnachweisen sagen. Nach meiner Erfahrung wird es wahrscheinlich so sein, dass Dir ein paar Sachen nicht anerkannt werden, die Deiner Meinung nach unbedingt hätten anerkannt werden müssen. Und andere Sachen anerkannt werden, bei denen Du Dich fragst, wodurch das denn nun gerechtfertigt ist. Wenn die Gesamtzahl der ECTS einigermaßen passt, würde ich mir über das Warum und die Einzelheiten keine großen Gedanken machen.
  10. Was willst Du denn in Wismar studieren? Hast du eine abgeschlossene Berufsausbildung?
  11. Allerdings können unterhaltspflichtige Eltern entscheiden, in welcher Form sie Unterhalt leisten wollen. Das kann auch in Form von Kost und Logis zu Hause sein. Einen grundsätzlichen Anspruch darauf, eine eigene Wohnung finanziert zu bekommen, gibt es nicht. Ein valides Argument dafür wäre, dass der Studienort zu weit weg ist, um noch zu Hause wohnen zu können. Aber das dürfte ja bei einem Fernstudium nicht zu begründen sein.
  12. Hier einmal ein Codebeispiel in der funktionalen Sprache Clojure. Es ist die Definition einer Funktion by-sample, die für den Sintflut-Algorithmus einen anfänglichen Wasserspiegel bestimmt. Dieser sollte so gewählt werden, dass zu Beginn der Optimierung jede noch so schlechte Routenvariante akzeptiert wird. Es gibt verschiedene Möglichkeiten, dies zu tun. Eine vergleichsweise einfache Möglichkeit ist, eine überschaubare Anzahl zufälliger Routen zu erzeugen, deren durchschnittliche Länge zu bestimmen und diese mit einem Korrekturfaktor zu multiplizieren. Die Funktion erhält in Zeile 1 als Parameter eine Rundreise und eine Funktion zur Bewertung des Abstandes zwischen zwei Bohrlöchern. Die Funktion by-sample ist eine Funktion höherer Ordnung, weil ihr eine Funktion als Parameter übergeben wird. Die folgenden Zeilen zeigen die in der funktionalen Programmierung häufig auftretende Verkettung von Funktionen. So etwas nennt man auch Chain of Operations. In Zeile 2 wird mittels der Funktion repeatedly eine prinzipiell unendliche Sequenz zufälliger Routenvarianten erzeugt. Die Funktion arbeitet mit lazy evaluation, d.h. sie tut zunächst einmal gar nichts. Es genügt, dass prinzipiell bekannt ist, wie Routenvarianten erzeugt werden. In Zeile 3 werden der unendlichen Sequenz ein paar Elemente als Stichprobe entnommen. Das macht die Funktion take. Die Konstante sample-size gibt an, wie groß die Stichprobe ist. Erst im Moment der Entnahme, werden von repeatedly tatsächlich Routenvarianten erzeugt. Und auch nur genau so viele, wie in diesem Moment benötigt werden. Man erhält so eine Liste einer bestimmten Länge mit zufälligen Routenvarianten. In Zeile 4 wird mittels der Funktion höherer Ordnung map eine Bewertungsfunktion auf jede Route der Liste angewendet. Man erhält so eine neue Liste der Routenlängen. Die ursprüngliche Liste der Routenvarianten bleibt davon unberührt. In Zeile 5 wird die Liste der Routenlängen mit der Funktion höherer Ordnung reduce auf einen einzelnen Wert reduziert. Ihr wird dazu die Funktion + übergeben. Die Elemente der Liste werden somit aufaddiert zur Summe der Routenlängen. In Zeile 6 wird diese Summe durch die Größe der Stichprobe geteilt und somit die durchschnittliche Routenlänge bestimmt. In Zeile 7 wird diese durchschnittliche Routenlänge mit einem Korrekturfaktor multipliziert und somit der anfängliche Wasserspiegel festgelegt. Wie in der funktionalen Programmierung üblich, wird das Ergebnis dieses letzten Ausdrucks implizit als Ergebnis der Funktion zurückgegeben. In Zeile 2 steht das Threading Macro as->. Er reicht das Ergebnis jeder Zeile als Wert x an die jeweils nächste Zeile weiter. Auf diese Weise entsteht eine Art Verarbeitungs-Pipeline aus Funktionsaufrufen, die sogenannte Chain of Operations. Clojure ist ein LISP-Dialekt. Lispoide Sprache haben eine eigenwillige Syntax mit ineinander geschachtelten Funktionsaufrufen. Das führt dazu, dass der Code oft viele Klammern und Klammerebenen enthält. Hier fällt das dank des Threading Macros as-> sogar noch recht moderat aus. Wer LISP nicht mag, stört sich oft an den Klammern. Allerdings hat LISP der Vorzug, ein einfaches syntaktisches Prinzip stur und ohne Ausnahmen durchzuziehen. Ein LISP-Ausdruck ist eine Liste, deren Elemente durch eine Klammer eingeschlossen sind. Das erste Listenelement ist eine Funktion. Die restlichen Listenelemente sind die Argumente, die die Funktion verarbeitet. Listen sind die grundlegende Datenstruktur in LISP. Zugleich ist jedes LISP-Programm eine Liste, also eine Datenstruktur, die durch LISP erzeugt oder verarbeitet werden kann. Dieses Sprachmerkmal nennt man auch Homoikonizität. Man umschreibt dies auch mit dem Schlagwort: "Code is data, data is code." Es ist daher in LISP vergleichsweise einfach, Programme zu schreiben, die LISP-Code verarbeiten oder LISP-Code erzeugen. Dies bezeichnet man als Metaprogrammierung.
  13. 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.
  14. Ich bin rechtlich zwar nicht auf dem laufenden, aber für mich klingt es so, als ob eine Externenprüfung in Frage käme: Informationen zur Externenprüfung vom KM Bayern Fernabiturkurse sind meist recht teuer und bereiten letztlich nur auf die Externenprüfung vor. Wenn Du den Stoff weitestgehend durch Schulbesuch gelernt hast, sehe ich eigentlich keinen Mehrwert durch einen Fernkurs.
  15. Das würde ich gerne etwas präziser formulieren. Es war schon vor der deutlichen Erhöhung der Studiengebühren in England so, dass Studierende im europäischen Ausland eine erhöhte Gebühr zahlen mussten. Europarechtlich sollten Studierende aus EU-Ländern auch damals eigentlich die gleichen Gebühren zahlen. Zulässig waren die erhöhten Gebühren, weil die OU argumentierte, für die Studierenden im Ausland erhöhte Ausgaben zu haben. Zum Beispiel durch Studienzentren, so dass man für Klausuren nicht unbedingt nach England reisen musste. Diese Kosten sollten nur von denen getragen werden, die sie verursachten. Sie fielen auch für britische Studierende an, wenn sie vom EU-Ausland aus studierten. Umgekehrt zahlten EU-Ausländer die gleichen Gebühren wie britische Studierende, wenn sie während des Studiums in England lebten. Es gab also eine Unterscheidung nach Wohnort und nicht nach Nationalität. Nach einen EU-Austritt muss man befürchten, dass von EU-Ausländern deutlich höhere Studiengebühren verlangt werden.
×
×
  • Neu erstellen...