Zum Inhalt springen

kurtchen

Communitymitglied
  • Gesamte Inhalte

    879
  • Benutzer seit

  • Letzter Besuch

Blogbeiträge von kurtchen

  1. kurtchen
    14 Uhr - Vorlesung: "Smarte Gegenstände, hybride Produkte, disruptive Geschäftsmodelle, neue Arbeitsformen, Always on-Gesellschaft - wie Vernetzung und Digitalisierung Wirtschaft, Verwaltung und Gesellschaft verändern", Prof. Dr. Uschi Gröner, FH Dortmund
     
    Die letzte Vorlesung des Tages hielt Prof. Dr. Uschi Gröner vom Fachbereich Wirtschaft der FH Dortmund. Sie lehrt Betriebsinformatik und verteilte Informationssysteme. Da am Ende des Präsenztages meine Aufmerksamkeit schon etwas nachließ, waren meine Notizen dazu nicht mehr so detailliert. Insofern kann ich über ihren Vortrag nur skizzenhaft berichten.
     
    Ist-Zustand
     
    Frau Gröner begann mit einer Analyse des Ist-Zustandes. 81% der Bevölkerung sind Online. Das bedeutet im Umkehrschluss, dass immerhin noch 19% - also fast ein Fünftel der Bevölkerung - "Offliner" sind. 15-16 Millionen Deutsche sind NICHT im Internet. 94% davon sind älter als 50. Frauen stellen in dieser Gruppe die Mehrheit.
     
    Wie nimmt man diese Gruppe mit? Diese Frage ist relevant, denn gerade Führungskräfte sind oft ältere Mitarbeiter. Startups haben dagegen meist junge Mitarbeiter. Es fehlt oft an Kompetenzen, ältere Mitarbeiter und solche, die nicht so technikaffin sind, in Übergänge einzubinden.
     
    Weltweit sind ca. 4 Milliarden Menschen online. Wir befinden uns in der Phase der 4. industriellen Revolution. Wie sind wir dorthin gelangt?
     
    Blick zurück
     
    Frau Gröner lieferte einen knappen historischen Rückblick über die bisherigen 3 industriellen Revolutionen. (Im Modul "Electronic Business" wird dieses Thema ausführlicher behandelt.) Einen guten Überblick liefert in diesem Zusammenhang eine Timeline zur Geschichte der Digitalisierung, die man unter www.swisscom.ch finden kann.
     
    1. Industrielle Revolution
     
    Sie begann um 1784 mit der Nutzung von Wasser und Dampfkraft und war gekennzeichnet durch mechanische Produktionsanlagen, die harte körperliche Arbeit ersetzten. In diese Ära fallen auch Innovationen wie die Eisenbahn und der Photoapparat. (Die Eisenbahn eröffnet z.B. die Möglichkeit, auch weiter entfernte Märkte zügig zu beliefern.)
     
    2. Industrielle Revolution
     
    Sie begann um 1870 und ist gekennzeichnet durch die Nutzung elektrischer Energie, künstliches Licht (das z.B. Produktion rund um die Uhr ermöglichte), das Fließband, die Erfindung des Telefons. Es war die Ära der arbeitsteiligen Massenproduktion. Frau Gröner empfahl in diesem Zusammenhang den Spielfilm-Klassiker "Moderne Zeiten" von Charlie Chaplin. Er zeigt und parodiert die monotone Arbeit dieser Zeit.
     
    3. Industrielle Revolution
     
    Sie begann um 1969. Es ist die Ära der speicherprogrammierten Steuerung und der Miniaturisierung von Technik. Dies ermöglichte automatisierte Produktion durch elektronische Steuerung. In diese Phase fallen Innovationen wie E-Mail, Mikrosystemtechnik, Mikroprozessoren oder RFID. Durch Software können immer mehr Arbeitsprozesse automatisiert werden, z.B. im Rechnungswesen. Unternehmenskennzahlen sind erstmals zeitnah verfügbar. Vorher war der Jahresabschluss eines Vorjahres oft erst im August fertig. Auch das World Wide Web, GPS, Mobilfunk oder Skype werden dieser Epoche zugerechnet.
     
    4. Industrielle Revolution
     
    Sie findet gerade statt und ist gekennzeichnet durch die Verschmelzung von virtueller und realer Welt. Alles ist mit allem vernetzt. Es ist eine Ära der Sensorik und Robotik und der weltweiten Vernetzung von intelligenten Gegenständen (Internet of things, IOT). Menschen und Geräte sind "always on". Durch die Vernetzung aller Dienste entsteht Big Data. Intelligente Algorithmen übernehmen zunehmend Denkarbeit. Nutzer haben nicht nur Smartphones sondern zunehmend Smart Things.
     
    Konsequenzen von "always on"
     
    Der Mensch und seine Wünsche stehen im Mittelpunkt. Internetbasierte Dienste bieten ihren Nutzern enormen Komfort und enorme Preistransparenz. Nutzer erwarten, alles sofort und zum bestmöglichen Preis zu bekommen. Sie wollen personalisiert angesprochen werden (also z.B. nur Angebote bekommen, die für ihre Präferenzen und Bedürfnisse relevant sind).
     
    Interessant in diesem Zusammenhang ist die Infografik "60 Sekunden im Internet" auf de.statista.com.
     
    An dieser Stelle thematisierte Frau Gröner einen Widerspruch: Die oben erwähnten Erwartungen an schnelle und günstige Bedürfnisbefriedigung stehen im Widerspruch zu unserem Wunsch, nicht transparent zu werden. Dafür müssten wir allerdings lernen, bestimmte Dinge nicht mehr zu tun, oder darauf verzichten, bestimmte Dienste zu nutzen. Als Beispiel nannte sie Fitness-Tracker, die Bewegungsprofile erfassen. Selbstverständlich könnte man sich auch ohne solche Hilfsmittel fit halten.
     
    An dieser Stelle entspann sich eine kleine Diskussion unter den Zuhörern. Manche Studierende setzen ihre Hoffnung auf bessere Aufklärung und Bildung insbesondere jüngerer Nutzer. Wenn diese über Risiken informiert seien, würden sie bewusster mit der Preisgabe persönlicher Daten umgehen. Andere sahen das pessimistischer. So gibt es z.B. kostenpflichtige Alternativen zu Diensten wie WhatsApp. Diese werden aber wenig genutzt, obwohl sie nur wenig kosten. Frau Gröner verwies in diesem Zusammenhang darauf, dass die meisten Menschen inzwischen sehr viele Dienste nutzen. Selbst wenn pro Dienst nur überschaubare Beträge fällig würden, käme so im Monat doch eine nennenswerte Summe zusammen.
     
    Was ist Digitalisierung?
     
    Die Überführung analoger Werte in digitale Wert ist in diesem Zusammenhang nicht gemeint. Auch nicht die Automation, denn die gab es schon in der 3. industriellen Revolution. Auch die Kombination von Automation und Änderung des Geschäftsmodells ist noch nicht gemeint. Ein Beispiel dafür wäre eine digitale Überweisung und auch die gibt es schon länger.
     
    Gemeint ist vielmehr ein Paradigmenwechsel. Software und Hardware werden für völlig neue Geschäftsmodelle eingesetzt. Wenn diese neuen Geschäftsmodelle alte ersetzen, nennt man sie disruptiv. Oft decken solche Modelle aber auch einen bislang ungedeckten Bedarf.
     
    Ein Beispiel für solch ein neues Geschäftsmodell findet sich unter www.moovel.com. Daimler und BMW bündeln dort ihre Mobilitätsdienste. ÖPNV, car2go, mytaxi und Bahn werden in einer App verbunden. Man kann schnellste Routen über unterschiedlichste Verkehrsträger suchen, buchen und bezahlen. Das hat das Potential, Dienste, die nur einen Verkehrsträger abdecken, zu ersetzen.
     
    Warum macht ein Unternehmen wie Daimler so etwas? Wahrscheinlich weil man erwartet, dass künftig nicht das Auto im Mittelpunkt des Kundeninteresses steht sondern die Mobilität an sich.
     
    Bei einem disruptiven Geschäftsmodell ändern sich die Art der Leistungserbringung, die Leistung, das Produkt oder die Art der Bezahlung. Elektronische Zahlverfahren spielen dabei eine wichtige Rolle.
     
    Ein Beispiel für ein (künftiges) disruptives Geschäftsmodell wäre Carsharing mit fahrerlosen Autos. Die Fahrzeuge wären besser ausgelastet und man bräuchte weniger Platz für parkende Autos. Der Kunde "kauft" seine Fahrt zu Arbeit und nicht ein Fahrzeug, das die meiste Zeit ungenutzt herumsteht.
     
    Kennzeichnend für neue Geschäftsmodelle sind oft neue Erlösmodelle. Gängig ist inzwischen, dass neben Nutzern und Anbietern eines Dienstes noch Dritte involviert sind. Frühere Geschäftsmodelle folgten dem Muster: "Ich kaufe oder nutze, also muss ich auch bezahlen." Bei neuen Geschäftsmodellen zahlt die Leistung immer häufiger ein Dritter, weil er personalisierte Werbung platzieren will oder mit personenbezogenen Daten der Nutzer handeln möchte.
     
    Welche Technologien haben Bedeutung für die Wettbewerbsfähigkeit deutscher Unternehmen?
     
    Industrie 4.0: Maschinen und Gegenstände werden mit Hard- und Software gekoppelt. Es entsteht ein Cyber Physical System, z.B. eine Smart Factory, in der Maschinen miteinander kommunizieren. Sie rüsten sich z.B. schneller ein oder um, weil sie wissen, welche Teile von anderen Maschinen kommen. Big Data: Entsteht als Folge der Vernetzung aller Dienste und Geräte. Big Data bezieht sich auf das Volumen der Daten und auf die Geschwindigkeit ihrer Generierung, aber auch auf eine größere Datenvielfalt (Formate, unstrukturierte und halbstrukturierte Daten). Real-Time Analytics ermöglicht die Auswertung solcher Daten in Echtzeit und somit schnellere Entscheidungen. Predictive Analysis versucht, auf der Grundlage vorhandener Daten in die Zukunft zu blicken. Prescriptive Analysis geht noch einen Schritt weiter, indem automatisiert Handlungsempfehlungen gegeben werden. Im Zusammenhang mit Big Data entstehen neue Berufsfelder mit Bezeichnungen wie Data Scientist, Datenanalyst, Datenarchitekt, Datenwissenschaftler. Die Datenmengen sind in den Unternehmen oft längst da. Die Unternehmen bekommen nun aber neue Möglichkeiten, die vorhandenen Daten zu nutzen. Augmented Reality: Techniker bekommen bei Reparaturen Hilfestellungen in ihr Sichtfeld eingeblendet. Robotik: Ein Beispiel für eine neue Robotik-Anwendung ist Pepper, ein humanoider Roboter, der z.B. in Verkaufräumen oder an Empfangstischen eingesetzt werden könnte. Ein anderes Beispiel sind Roboter für die letzte Meile im Logistikbereich. Blockchain: Mit dieser Technologie lassen sich Daten fälschungssicher ablegen. Estland nutzt dies z.B. für Bürgerdaten. 3D-Druck: Ein Beispiel wären 3D-Drucker, die ein Wohnhaus bauen können. Spracheingabe-Systeme: Viele Nutzer haben bereits solche Sprachassistenten. Diese müssen sich an ihre Nutzer anpassen, indem sie trainiert werden. Das geht mittlerweile meist recht schnell.  
    Was sind Folgen der Digitalisierung?
     
    Die Arbeit wird sich verändern: Microsoft hat in München ein Gebäude, in dem nur Arbeitsplätze für zwei Drittel der Mitarbeiter zur Verfügung stehen. Der Rest ist im Home Office. Auch Digitale Nomaden sind ein Beispiel für veränderte Arbeit. Es gibt Plattformunternehmen ohne Produktionsmittel: Sie haben schon heute produzierende Unternehmen als Börsenchampions abgelöst. Börsenwert und Anzahl der Beschäftigen entkoppeln sich. Für vergleichbare Leistungen werden viel weniger Beschäftigte gebraucht. Ein vergleichbarer oder sogar höherer Börsenwert lässt sich mit weniger Beschäftigten generieren. Der IT-Fachkräftemangel spitzt sich in allen Branchen zu.  
    9 von 10 Unternehmen halten die Digitalisierung für eine Chance.
     
    Im Verlauf des Vortrages kam es immer wieder zu kleinen Diskussionen. Gerade über das Thema "Folgen der Digitalisierung" hätten wir noch lange sprechen können. Leider endete nicht nur diese interessante Vorlesung sondern auch der Präsenztag. Gerade Studierende, die eine weitere Anreise hatten, mussten ihre Anschlüsse bekommen.
     
    Fazit (zum Präsenztag):
     
    Der Präsenztag war wieder mal sehr schön. Bei Kaffee und Kuchen, Snacks und Getränken gab es immer wieder Gelegenheit, mit anderen Studierenden, Mitarbeitern des Studienbüros und der Hochschule ins Gespräch zu kommen. Auch wenn der Studiengang gewachsen ist, die im Vortrag unserer Absolventen beschriebene familiäre Atmosphäre ist noch immer spürbar. Ich freue mich auf den nächsten Präsenztag. Falls ich gut vorankomme, könnte es mein letzter werden. Bei dem Gedanken mischt sich auch ein bisschen Bedauern in meine Vorfreude.
  2. kurtchen
    Nach Datenbanken, Mathe1 und SQL hatte ich richtig Lust, wieder einen Kurs mit Java zu belegen. Der nächste Kurs aus dieser Gruppe war "Grundlagen der Informatik 3: Anwendungen programmieren". Der Kurs deckt verschiedene Themen ab, die mit Anwendungsentwicklung zu tun haben. Aus meiner Sicht gibt es aber 3 inhaltliche Schwerpunkte:
    - GUI-Programmierung
    - Persistenz mit relationalen Datenbanksystemen
    - Erzeugung und Verarbeitung von XML-Dateien
     
    Der Kurs beginnt wie bei der W3L üblich mit einem Schnelleinstieg, der eine Art Überblick über die Themen des Kurses gibt. Bei GdI3 handelt dieser Schnelleinstieg aber nur von den GUI-Kapiteln, die auch mehr als die Hälfte des Kursumfangs ausmachen. Die GUI-Programmierung wird noch am Beispiel Swing behandelt, obwohl mit JavaFX ja ein aktuellerer Rahmen zur Verfügung steht. Das hat mich anfangs ein bisschen enttäuscht.
     
    Auf den ersten 40 Seiten lernt man das Grundgerüst einer Swing-Anwendung kennen; lernt, wie man ein Fenster durch Kompositon oder Vererbung erzeugt, macht erste Erfahrungen mit Event-Handling und lernt einfache Komponenten wie Textfelder und Buttons kennen. In diesem Zusammenhang muss man auch mit inneren Klassen und mit Lambda-Ausdrücken umgehen. Hier geht es zunächst gemächlich voran. Eine wichtige Rolle spielt stets die Darstellung der Zusammenhänge zwischen den Swing-Klassen durch Klassendiagramme in UML. Es geht in erster Linie um das Verstehen der Grundkonzepte. Für meinen Geschmack war es ein bisschen viel UML und ein bisschen wenig Code. Auch das Herumexperimentieren mit den Komponenten kam mir ein bisschen zu kurz. Hier musste ich mir selber zusätzliche Gelegenheiten suchen, das Gelernte durch kleine Experimente zu vertiefen. Auf das Buch, das ich ergänzend verwendet habe, verweise ich am Ende meines Beitrages.
     
    Es folgen 3 kürzere Kapitel über das Testen von GUIs, über GUI-Grafikeditoren und über Applets, die ja inzwischen keine so große Rolle mehr spielen. Da Applets am Anfang sehr wichtig für die Etablierung der Sprache Java waren, konnte man sie wohl nicht übergehen. Die Kapitel über Grafikeditoren sind nicht so umfangreich, dass man hinterher wirklich mit so einem Werkzeug umgehen könnte. Man weiß, dass es so etwas gibt und welche Vor- und Nachteile die Arbeit mit einem Editor haben kann. Ich habe die Aufgaben alle von Hand gecodet und ich glaube, so lernt man in diesem Stadium auch am meisten.
     
    Das Kapitel über Grafikprogrammierung fand ich nicht sehr zugänglich. Natürlich hätte man hier schnell zeigen können, wie man ein paar Linien und Formen zeichnet, aber die Intention war, zu vermitteln, was der Grafikontext ist und wozu man die Methode paint() überschreibt. Später im Kurs ist das einmal Grundlage dafür, Swing-Komponenten ein wenig zu erweitern und mit einer eigenen Optik auszustatten. Außerdem lernt man, wie man Grafiken lädt und anzeigt.
    Interessanter ist das Kapitel, das die Ereignisverarbeitung in Java im Detail behandelt. Hier lernt man das Beobachter-Muster kennen und begreift, wie Adapterklassen die Ereignisverarbeitung vereinfachen. Das Praxisbeispiel ist ein sehr einfacher UML-Editor.
     
    An diesem Punkt des Kurses begann mir zu dämmern, das GUI-Programmierung eine recht zeitaufwändige Angelegenheit sein kann. Man landet schnell bei ziemlich umfangreichem Code, der gar nicht mehr so leicht zu navigieren ist.
     
    Das für mich interessanteste Kapitel war "GUI-Gestaltung - Theorie und Praxis". Hier lernt man viele verschiedene Swing-Komponenten im Zusammenspiel kennen: Fenster, Menüs, Multifunktionsleisten, Listen, Dialoge und die unterschiedlichsten darin enthaltenen Interaktionselemente. Als Fallbeispiel dient eine Artikel- und Lieferantenverwaltung. Konzeptionell lernt man etwas über das MVC-Muster. Sehr interessant fand ich die Abschnitte, wie man auf der Grundlage der objektorientierten Analyse ein GUI konzipieren kann. Die hier vorgestellten Heuristiken sind für kaufmännisch-administrative Anwendungen gedacht, aber der Stoff war sehr aufschlussreich, weil einem klar wird, dass man nicht immer das Rad neu erfinden muss. Lohnend war auch der Abschnitt über Layout-Manager. Hier ging es zunächst um die Layout-Manager, die Swing von Haus aus mitbringt. Es brauchte eine Weile, bis ich das Konzept des schon recht flexiblen GridBag-Layoutmanagers verstanden hatte. Wirklich schwierig fand ich die Ausführungen zur Entwicklung eigener Layout-Manager. Hier konnte ich nicht in allen Punkten folgen.
     
    Nach einem kurzen Kapitel über modellgetriebene Entwicklung am Beispiel von Enterprise Architekt landete man beim zweiten großen inhaltlichen Block: Persistenz mit relationalen Datenbanken. Ich hatte mir vorgestellt, recht pragmatisch zu lernen, wie ich mit JDBC eine Verbindung zu einer relationalen Datenbank wie z.B. MySQL aufbaue. Darum ging es auch zunächst, aber eigentlich ging es vor allem um das DAO-Muster, das Fachkonzept und Datenbank schön entkoppelt, so dass man z.B. die verwendete Datenbank relativ leicht wechseln könnte, ohne Code in den Fachkonzeptklassen ändern zu müssen. Man arbeitet allein an der schlanken Schnittstelle. Das wird dann schon recht komplex und ich habe eine ganze Weile gebraucht, bis ich das Zusammenspiel der vielen verschiedenen Klassen begriffen habe. Der Clou an der Angelegenheit ist natürlich, dass nicht jeder Entwickler verstehen muss, was hier im Detail passiert. In der Regel wird interessieren was vor der Schnittstelle passiert. Diese Abschnitte waren für mich sehr lohnend, weil ich hier das Gefühl hatte, nicht allein etwas über Java zu lernen.
     
    Weniger gelungen fand ich den Abschnitt über die Java Persistence API. Hier ist es mir leider auch nicht gelungen, die Codebeispiele aus dem Kurs zum Laufen zu bringen.
     
    Es folgt ein kurzes Kapitel über Nebenläufigkeit. Das ist nötig, weil Swing nicht threadsicher ist. Wer in Java GUIs programmiert muss sich mit Nebenläufigkeit auseinander setzen. Hier lernt man aber nur das nötigste, denn es gibt ein eigenes Modul "Nicht-sequentielle Programmierung", in dem Nebenläufigkeit viel ausführlicher behandelt wird.
     
    Nun folgte ein umfangreiches Fallbeispiel "Auftragsverwaltung", bei dem die verschiedenen Abschnitte der Entwicklung vorgestellt wurden: Pflichtenheft und Glossar, OOA-Modell, GUI, Architektur und Komponenten, OOD des Fachkonzeptes, Persistenzschicht und natürlich auch die Ausprogramierung der entwickelten Modelle. An diesem Punkt möchte ich erwähnen, dass die Code-Beispiele in diesem Kurs viel umfangreicher sind als in GdI1 und GdI2. Anliegen des Kurses ist auch, dass der Lernende den Überblick über größere Mengen Code behalten kann. Die BlueJ-IDE aus den ersten beiden Modulen reicht hier nicht mehr aus. Die Studierenden sollen sich mit Eclipse vertraut machen. Die herunterladbaren Codebeispiele sind auch dafür aufbereitet. Ich mag Eclipse nicht und habe lieber mit Netbeans gearbeitet, was natürlich auch in Ordnung war, aber manchmal ein bisschen Mehrarbeit bedeutet hat. Bei vielen Aufgaben programmiert man nicht mehr "from scratch" sondern soll vorhandenen Code weiterentwickeln. Interessant waren auch Aufgaben, bei denen man Fehler aufspüren und beheben sollte. Dazu musste man erkunden, wie das Zusammenspiel vieler Klassen in unterschiedlichen Paketen funktioniert. Hier genügte oft wenig Code, um das Problem zu lösen, aber es kostete viel Zeit, zu verstehen, wo dieser Code hin musste, um seine Wirkung zu entfalten. Es verschaffte mir eine gewisse Befriedigung, mich in umfangreicheren Code einarbeiten zu können und mich dann auch darin zurecht zu finden. Den Abschluss dieses sehr aufschlussreichen Fallbeispiels bildeten 2 Abschnitte über Berechtigungssteuerung und Internationalisierung.
     
    Und nun begann der dritte größere inhaltiche Block des Kurses. Am Fallbeispiel der technischen Anwendung "Wetterstation" wurde die Verarbeitung von XML-Dateien behandelt. Die Wetterstation ist eine GUI-Anwendung, die sich Wetterdaten von einem Server holt und am Bildschirm in Form verschiedener Instrumente darstellt. Die Wetterdaten kommen im XML-Format und müssen geparst werden. Hier war ich froh, Webprogrammierung schon belegt zu haben, denn so hatte ich Vorkenntnisse in XML. Zwar gab es auch hier eine knappe Einführung in XML, aber allein damit wären mir diese Abschnitte schwer gefallen.
     
    Im letzten Kapitel wurde am Beispiel Othello (oder auch Reversi) ein Strategiespiel mit GUI entwickelt. Hier spielt Grafikprogramierung eine Rolle, aber eigentlich ging es um den Minimax-Algorithmus, der den besten Zug ermitteln sollte. Im Prinzip schon ein kleiner Vorgeschmack auf GdI4 "Algorithmen und Datenstrukturen".
    Für die Online-Klausur ist es nützlich, den Code der Übungen und Aufgaben griffbereit zu haben. Manche Aufgaben hätte ich in der zur Verfügung stehen Zeit nicht ausprogrammieren können, wäre mir nicht recht früh aufgefallen, dass ich Code aus vorangegangenen Übungen anpassen kann. Ich nehme an, dass war hier auch Zweck der Übung.
     
    Da man bei der GUI-Programmierung recht schnell bei umfangreichem Code landet, war ich natürlich sehr gespannt auf die Präsenzklausur. Wie wollte man den umfangreichen Inhalt in der kurzen Zeit abprüfen? Tatsächlich musste ich relativ wenig Code schreiben. Hier ging es um das Verständnis für die Zusammenhänge zwischen den verschiedenen Swing-Klassen und sehr allgemein um die objektorientierten Konzepte aus dem Modul. Sehr nützlich wäre es hier gewesen, noch einmal Stoff aus GdI2 zu wiederholen. In UML sollte man fit sein. Reines Programmieren genügte hier nicht.
     
    Ich hatte aber Glück und konnte das Modul mit einem schönen Ergebnis abschließen. Auch mit meinem Tutor hatte ich Glück. Er war derselbe wie in GdI2 und es war schön, in 2 aufeinanderfolgenden Modulen die auch noch inhaltlich eng zusammenhingen vom gleichen Tutor betreut zu werden. Von ihm habe ich nicht nur gute und schnelle Rückmeldungen zu meinen Aufgaben bekommen. Ich hatte auch immer wieder Fragen, die eher auf Nebengleise führten und gelegentlich bekam ich sehr interessante Anregungen. Das hat mal wieder Spaß gemacht.
     
    Anderen Studierenden, die GdI3 belegen wollen, würde ich empfehlen, zuvor "Webprogrammierung" und "SQL und relationale Datenbanken" zu belegen, um die Kapitel über XML-Parsing und Datenbankanbindung zu zu verstehen. Ein nicht zu großer zeitlicher Abstand zu GdI2 erscheint mir ebenfalls günstig. Insgesamt würde ich empfehlen, beim Bearbeiten von GdI2 gründlich vorzugehen. Die hier behandelten Grundlagen verfolgen euch über viele Module. GdI3 ist dafür ein gutes Beispiel.
     
    Ich hatte ja schon erwähnt, dass mir das praktische Herumprobieren mit Code im Modul ein wenig zu kurz kam. Hier habe ich mir selber eine alternative Möglichkeit gesucht, nämlich das Buch "Swing - A Beginner's Guide" von Herbert Schildt. Das ist kein Uni-Lehrbuch sondern ein praktisches Programmierbuch. Im wesentlichen stellt Herr Schildt Swing-Komponenten vor und zeigt an kleinen Codebeispielen, wie man sie benutzt. In jedem Kapitel gibt es auch kleine Übungsaufgaben. Das hat mir sehr viel gebracht, um zu lernen, wie ich die sehr gut aufbereiteten Konzepte aus dem W3L-Modul ganz praktisch in Java ausprogrammieren kann. Von Herrn Schildt gibt es auch ein einführendes Buch in JavaFX, das allerdings sehr dicht geschrieben ist und sich klar an Leser richtet, die Swing-Vorkenntnisse haben.
  3. kurtchen
    Nach dem für mich nicht so befriedigenden Modul "Webprogrammierung" wollte ich zügig zum Modul "Webanwendungen 1" übergehen. Da ich schon einmal einen Blick ins Lehrbuch geworfen hatte, erwartete ich, hier die gründliche Einführung in HTML und CSS zu erhalten, die ich im Vorgängermodul vermisst hatte. Außerdem behandelt "Web-Anwendungen 1" HTML5 und nicht XHTML wie noch in "Webprogrammierung". Mein oberflächlicher Eindruck war, dass ich dieses Modul viel lieber als erstes belegt hätte. Und so kam es auch.
     
    Weil ich von meiner Tutorin wusste, dass die Rückmeldungen zu den Aufgaben in den nächsten Wochen nicht in gewohnter Geschwindigkeit kommen würden, hatte ich für die Bearbeitung dieses Moduls etwas mehr Zeit eingeplant. Genauer gesagt bearbeitete ich es parallel zu GdI4 "Algorithmen und Datenstrukturen". Auf diese Weise kam ich im Studium insgesamt zügig voran, obwohl das Tempo im Modul niedriger war. Normalerweise bearbeite ich die Themen lieber schön nacheinander, aber in diesem Fall erwies es sich als gute Strategie. Ich war auch froh, dass mir meine Tutorin realistisch mitgeteilt hatte, dass es etwas länger dauern könnte. So konnte ich mich auf die Situation einstellen und entsprechend planen. (Von vielen Modulen bei der W3L bin ich auch etwas verwöhnt. Aktuell bearbeite ich zum Beispiel "Softwaretechnik 1". Da bekomme ich meine Einsendeaufgaben oft einen Tag nach Einsendung korrigiert zurück. Das ist schon irre schnell, vor allem wenn man sich klarmacht, dass die Tutoren ihre Tätigkeit nur zusätzlich ausüben.)
     
    Das Lehrbuch zu "Web-Anwendungen 1" hat an die 480 Seiten und behandelt in erster Linie HTML5, CSS und ein bisschen Javascript. Deutlich weniger Themen als im Vorgängermodul "Webprogrammierung". So bleibt mehr Zeit, in die Tiefe zu gehen. Ebenfalls angenehm: Am Fallbeispiel eines (zugegebenermaßen sehr einfachen) Web-Anzeigenmarktes werden die verschiedenen Konzepte aus dem Kurs in einer Anwendungssituation gezeigt.Im Fallbeispiel geht es nicht allein um das zu erstellende Produkt Webanzeigenmarkt sondern auch um die fiktive Firma, die ihn im Auftrag eines Kunden entwickelt. Und um die verschiedenen Berufsrollen in diesem Entwicklungsprozess und wie sie miteinander kooperieren. Das trägt sehr zum Verständnis bei. Solche Fallbeispiele kenne ich auch aus anderen Kursen der W3L, aber gerade in diesem Modul fand ich es sehr gelungen umgesetzt.
     
    In diesem Modul geht es um statische Webseiten. Erst in "Web-Anwendungen 2" geht es wieder darum, HTML-Code dynamisch zu erzeugen. Das Buch beginnt mit dem für die W3L üblichen Schnelleinstieg. Hier geht es um den Aufbau eines HTML5-Dokumentes, um das Anlegen von Links, das Einfügen von Bildern, die Verwendung von Formularen und Tabellen und um erste Schritte mit CSS. Alle diese Themen werden später im Buch in eigenen Kapiteln vertieft.
     
    Es gibt ein kurzes Kapitel zum HTTP-Protokoll, aber das wird detaillierter im Modul "Computernetze" behandelt und soll hier nur Hintergrundinformationen für die eigentlichen Kursinhalte liefern.
     
    Nun kommen 60 Seiten Einführung in HTML5. Hier merkte ich sowohl beim Durcharbeiten des Lehrbuches als auch beim Bearbeiten der Einsendeaufgaben: Es bleibt viel mehr hängen. Die Aufgaben waren auch weniger technisch und boten Möglichkeiten, ein bisschen kreativ zu sein. Themen hier sind z.B.:
    - Strukturelemente
    - Zeichensätze
    - Block- und Inline-Elemente
    - Hyperlinks
    - Einführung in Webserver
     
    Besonders interessant fand ich die Ausführungen zur Modellierung von Webseiten mit UML und die Hinweise zur systematischen Programmierung.
     
    Weiter ging es mit einem Kapitel zum Einbinden von Multimedia-Elementen in Webseiten, also Bilder, Audio und Video. Hier geht es auch um Grafik-, Audio- und Videoformate und um Link-sensitive Bilder.
     
    Im nächsten Kapitel ging es um CSS:
    - Trennung von Struktur und Präsentation
    - Stilregeln
    - Textgestaltung und Schrift
    - Farbe und Hintergrund
    - Textformatierung
    - und das Boxmodell
     
    Speziell beim Boxmodell empfehle ich, aufmerksam zu arbeiten, denn das ist etwas, dass sich in einer Klausur in knapper Form abprüfen lässt, ohne dass man viel Code schreiben muss.
     
    Zwischen den Kapiteln kommt der Lehrtext immer wieder auf das Fallbeispiel Webanzeigenmarkt zurück, dass mit den neuen Techniken erweitert und verfeinert wird. So erlebt man den neuen Stoff im Zusammenspiel mit bekannten Inhalten. Das finde ich wirklich didaktisch gut gemacht.
     
    Nun folgen zwei Kapitel zu Tabellen und Formularen. Insbesondere Formulare sind ja für die Interaktion mit den Nutzern einer Seite sehr wichtig. Hier gibt es inhaltliche Überschneidungen mit dem Modul "Web-Design und Web-Ergonomie", wobei es in "Web-Design" um Aufbau und Gestaltung von Formularen geht und in diesem Modul um die technische Umsetzung. Die Module wirken an dieser Stelle gut aufeinander abgestimmt. Auch Tabellen und Formulare werden ins Fallbeispiel Webanzeigenmarkt integriert.
     
    Im nächsten Kapitel geht es um Javascript. Mit "Webprogrammierung" im Hintergrund kam ich diesmal ganz gut zurecht, wenngleich der Stoff auch hier recht komprimiert vermittelt wurde. Ca. 25 Seiten mussten genügen.
     
    Das nächste Kapitel war das einzige im Buch, dass ich nicht so gelungen fand. Hier ging es um neue Features in HTML5, z.B. zur Validierung von Formularen, für Drag&Drop, um das Canvas-Element, um die lokale Speicherung von Web-Ressourcen und um sematische Auszeichnung. Hier war man bemüht, aktuelle Inhalte zu vermitteln. Beim Ausprobieren der Fallbeispiele erlebte ich, dass die Browser neue Elemente zum Teil sehr unterschiedlich darstellen, so dass man sich gut überlegen muss, was man davon in der Praxis verwenden möchte. Oft schienen Codebeispiele erst nicht zu funktionieren, bis ich sie in einem anderen Browser testete. Am besten liefen die Sachen noch im Firefox. (Ich verwende meist Chrome.) Der Grund, weshalb ich von diesem Kapitel nicht so begeistert war: Es fehlte der rote Faden, der sich sonst durch das ganze Lehrbuch zog. Eher war es eine bunte Sammlung von Themen, die in einer recht beliebig scheinenden Reihenfolge präsentiert wurden und zwischen denen es wenig inhaltliche Zusammenhänge gab. Das erinnerte ein wenig an den eher technischen Charakter des Vorgängermoduls "Webprogrammierung". Entsprechend war der Stoff dieses Kapitels auch nicht mit dem Fallbeispiel verknüpft.
     
    Das folgende Kapitel zu CSS war wiederum sehr gelungen. Hier ging es um:
    - Selektoren
    - Pseudoelemente und Pseudoklassen
    - um medienspezifische Präsentation, also um Seiten die z.B. auf einem Smartphone anders aussehen als auf einem Bildschirm
    - um den Elementfluss
     
    Wenn man hier gut aufpasste, konnte das schon als erster Einstieg in responsive Web-Design dienen, auch wenn das nicht explizit Thema des Moduls ist. Meine Tutorin hat mir hier ein sehr gutes weiterführendes Buch empfohlen und ich habe auch einige Aufgaben aus dem Modul nach diesem Kapitel neu bearbeitet, um z.B. Formulare so umzugestalten, dass sie auch auf einem Handydisplay gut zu bedienen sind. An diesem Punkt hatte ich das Gefühl, dass nun alle Kursinhalte schön ineinander greifen und ich die Dinge im Zusammenhang sehe. Ein befriedigender Abschluss.
     
    Das letzte Kapitel handelte von barrierefreiem Webdesign. Es ist aber zu kurz, um danach wirklich Ahnung vom Thema zu haben. Trotzdem finde ich es gut, dass es im Modul enthalten ist. Behörden müssen sich mit dem Thema auseinandersetzen. Firmen machen es seltener. Ich finde das Thema wichtig. Das Internet ist längst im Alltag unverzichtbar, aber man vergisst gerne, dass es viele Menschen gibt, die aufgrund von Einschränkungen Webseiten nicht so nutzen und betrachten können wie die meisten von uns. Aber auch diese Menschen brauchen die Informationen und Dienste, die das Web bereitstellt. In "Web-Design und Web-Ergonomie" taucht dieses Thema noch einmal auf. Leider auch dort in recht kompakter Form. Klar wird allerdings: Barrierefreiheit per se gibt es nicht. Barrierefrei ist eine Seite immer im Hinblick auf die Fähigkeiten und Möglichkeiten ihres Nutzers. Ein blinder Mensch hat zum Beispiel andere Bedürfnisse als jemand mit motorischen Einschränkungen.
     
    Die Einsendeaufgaben haben mir in diesem Modul viel Spaß gemacht und bauten zum Teil auch aufeinander auf. Die Rückmeldung kam zum Teil recht langsam, dann oft schubweise für mehrere Aufgaben, aber das war mir ja so angekündigt worden und ich hatte entsprechend geplant. Auch die Korrektur der Präsenzklausur ließ ein Weilchen länger auf sich warten. Dies mag aber auch den Sommerferien geschuldet gewesen sein.
     
    Die Präsenzklausur fand ich leider nicht so einfach, obwohl viele meiner Kommilitonen der Ansicht waren, im Falle von "Web-Anwendungen 1" sei sie ja besonders leicht. Viele meiner Mitstudierenden arbeiten als Web-Entwickler und haben täglich mit den Inhalten dieses Moduls zu tun. Solche Routine ist natürlich mit Pauken nicht zu ersetzen. Mein Problem war denn auch in erster Linie die Zeit, die ich für die Aufgaben brauchte. Hier ist es mir leider nicht gelungen, alles zu bearbeiten. Ein weiteres Problem war das Arbeiten mit Stift und Papier, ohne zwischendurch einmal sehen zu können, wie das nun im Browser dargestellt wurde. Ich hatte zwar auch für diese Klausur einige Aufgaben noch einmal von Hand bearbeitet, aber dieser Aspekt blieb für mich schwierig.
     
    So befürchtete ich denn, bei diesem Modul schlechter abzuschneiden als bei "Webprogrammierung". Das hätte mich sehr geärgert, weil ich das Gefühl hatte, diesmal den Stoff viel besser verstanden zu haben. Zum Glück hatte ich beim Abschlusstest und der Online-Klausur ziemlich gut abgeschnitten, so dass mir die Bonuspunkte halfen, ein paar Schwächen in der Präsenzklausur auszugleichen. Insgesamt endete es nicht schlechter als in "Webprogrammierung", so dass ich nicht nur mit dem Modul sondern auch mit dem Ergebnis zufrieden war.
     
    Anderen Studierenden im Studiengang Web- und Medieninformatik würde ich empfehlen, sowohl in "Webprogrammierung" als auch in "Web-Anwendungen 1" reinzuschnuppern. Und sich dann zu überlegen, ob sie "Web-Anwendungen 1" nicht entgegen der Empfehlung der W3L zuerst belegen möchten.
  4. kurtchen
    Wie üblich war vor dem Präsenztag - also am Freitag, den 28.09.2018 - auch ein Prüfungstag mit der Möglichkeit, bis zu drei schriftliche Prüfungen zu schreiben. Ich selbst konnte leider erst am Freitagabend anreisen. Darum musste ich meine Prüfung Samstags um 08:30 Uhr schreiben. Der Raum war gut gefüllt; es scheint also noch andere Studierende zu geben, die am Freitag nicht ohne weiteres für eine Prüfung freinehmen können. Bei mir stand das Modul "Business Intelligence" auf dem Plan. Darüber habe ich anderer Stelle berichtet.
     
    Ein Prüfungstermin ist natürlich immer eine gute Gelegenheit, mit anderen Studierenden ins Gespräch zu kommen, z.B. über zurückliegende oder bevorstehende Module. Dies hat mir oft geholfen, Module sinnvoll miteinander zu kombinieren. Da nun nicht mehr so viele Module vor mir liegen, erfahre ich hier natürlich nicht mehr so viel relevantes.
     
    Im September 2015 war ich zum ersten Mal in Dortmund, um "Grundlagen der Informatik 1" zu schreiben, also die Klausur zum einführenden Java-Kurs. Ich weiß noch gut, wie aufregend das damals alles war. Um mich herum lauter "alte Hasen", die in ihrem Studium schon weit fortgeschritten und sich lebhaft austauschten. Jetzt bin ich einer von denen, die vor dem Endspurt stehen. Wie schnell die Zeit vergangen ist.
     
    Nach der Prüfung gab es wie üblich ein Frühstücksbuffet. Dann begann der offizielle Teil.
     
    11-12:30 Uhr - Aktuelles für Studierende
     
    Diesen Teil übernahmen Frau Arens aus dem Studienbüro und Prof. Dr. Sven Jörges, der sich uns bei dieser Gelegenheit vorstellte. Herr Jörges hat seit dem 01.03.2018 eine Professur für Web-Engineering und Softwaretechnik am Fachbereich Informatik. Insbesondere ist er unser neue Studiengangsleiter.
     
    Infos aus dem Studienbüro
     
    1. Reakkreditierung
     
    Herr Jörges informierte über den laufen Reakkreditierungsprozess für die beiden Studiengänge WMI und WI. Die zuständige Akkreditierungsagentur ist die AQAS. Die von ihr erstellen Gutachten lassen sich online abrufen unter:
    www.aquas.de -> Programmakkreditierung -> Ergebnisse Akkreditierungsverfahren BA/MA
     
    Hier findet man also auch die Ergebnisse der letzten Akkreditierung unserer Studiengänge. Und eines Tages hoffentlich das Ergebnis der Reakkreditierung.
     
    Der Antrag ist inzwischen abgegeben. Nächster Schritt wäre eine Begehung durch eine Gutachtergruppe. Diese besteht aus Professoren anderer Hochschulen, Vertretern aus der Industrie, aber auch aus Absolventen und Studierenden. In diesem Zusammenhang sucht die FH Dortmund Studierende, die bereit wären, an der Begehung teilzunehmen. Ein genauer Termin steht noch nicht fest, wird uns aber bekannt gegeben. Interessierte Studierende dürfen sich beim Studienbüro melden. Laut Herrn Jörges kann es gut sein, dass die Gutachter den Studierenden ziemlich konkrete Fragen stellen: "Können Sie im Beruf brauchen, was sie hier lernen?" - "Wie gut können Sie das Online-Studium mit ihrer Berufstätigkeit verbinden?"
     
    Die Evaluierung im März diesen Jahres war ein wichtiger Baustein zur Reakkreditierung. Die Ergebnisse lagen aus und konnten eingesehen werden.
     
    Prüfungstermine und Prüfungsmodalitäten
     
    Hierüber informierte Frau Arens. Die Prüfungstermine für 2018 stehen in der Lernplattform im virtuellen WMI-Café. Die Termine für 2019 folgen noch.
     
    Auf mehrfache Nachfrage sollen ab März 2019 parallel zum Präsenztag in Dortmund auch Prüfungen in München angeboten werden. Bislang war es so, dass man an den Präsenztagen nur Prüfungen in Dortmund ablegen konnte. Studierende aus dem Raum München, die nicht nach Dortmund anreisen konnten, verpassten so zwei Mal im Jahr eine Prüfungsmöglichkeit. Dieses Problem soll nun der Vergangenheit angehören.
     
    Eigentlich sollte es längst bekannt sein, aber Frau Arens wies wegen gelegentlicher Nachfragen noch einmal ausdrücklich darauf hin: Die in der Einladung zu den Prüfungen genannte Deadline für die spätestmögliche Anmeldung gilt!
     
    Mündliche Prüfungen können nach wie vor ausschließlich in Dortmund abgenommen werden. Sie finden grundsätzlich am Freitag statt. Es gibt drei Slots am Vormittag. Bei der Vergabe gilt: "Wer zuerst kommt, mahlt zuerst." Zu beachten ist auch: Die Anmeldefrist für mündliche Prüfungen ist knapper als für schriftliche. Dafür muss nämlich ein Prüfer der Uni Dortmund eingeplant werden, während bei schriftlichen Prüfungen eine Klausuraufsicht genügt. Frau Arens empfiehlt daher, sich zügig an Studienbüro zu wenden, wenn eine mündliche Prüfung ansteht.
     
    Klausuren sollen innerhalb von 6 Wochen korrigiert werden. Oft geht es schneller. (Im Schnitt dauerte es bei mir so um die 3 Wochen.) Das Studienbüro leitet Ergebnisse umgehend an die Studierenden weiter. Wenn man nach 6 Wochen noch nichts gehört hat, darf man sich an Studienbüro melden.
     
    Bescheinigungen
     
    Einen Notenspiegel oder eine Leistungsübersicht kann man kurzfristig im Studienbüro anfordern. Unmittelbar vor Präsenz- oder Prüfungstagen kann es ein bisschen länger dauern.
     
    Studienbescheinigungen stellt nicht das Studienbüro aus sondern die FH. Man beantragt sie über die ODS (Online Dienste für Studierende).
     
    Absolventen
     
    An diesem Präsenztag waren fünf Absolventen zu feiern. Leider konnten nur zwei von ihnen nach Dortmund anreisen und uns über ihre Erfahrungen berichten.
     
    Unsere erste Absolventin ist in der Wasserwirtschaft tätig und hatte ihre Bachelorarbeit in diesem beruflichen Umfeld verfasst. Leider durfte sie nicht über Inhalte ihrer Arbeit sprechen. Gleichwohl sprach sie über den Prozess der Anfertigung einer Bachelorarbeit und die damit verbundenen Herausforderungen und Strategien zur Bewältigung. Hier sind einige ihrer Tipps:
    Frühzeitig nach einem Thema Ausschau halten. Ein Jahr Vorlauf schadet nicht. Intrinsische Motivation ist wichtig. Den roten Faden nicht aus dem Auge verlieren. In der Recherchephase Quellen sofort erfassen. Sonst weiß man nachher nicht mehr, woher man was weiß. Dann hat man doppelte Arbeit, die Quelle wieder zu finden. Ein geringer zeitlicher Abstand zwischen Projekt- und Bachelorarbeit ist günstig. Man ist im Flow. Insbesondere ist man im wissenschaftlichen Arbeiten. Außerdem gab sie allgemeine Tipps zum Fernstudium:
    Sich Ziele setzen. Sich feste Lernzeiten vornehmen, z.B. an 5 Tagen pro Woche lernen. Sich zu jedem Prüfungstermin für mindestens eine Prüfung anmelden. So hat man stets das Gefühl, dass es voran geht. Sich Belohnungssystem ausdenken, z.B. nach jeder Prüfung einen Tag frei nehmen, um etwas Schönes zu machen. Direkt nach der Modulbuchung einen Zeitplan für das Modul machen. Der Kontakt zu anderen Studierenden ist wichtig. Unsere zweite Absolventin hatte eine Web-Anwendung zur Eignungsprüfung von Winterfahrzeugen erstellt. Auch sie berichtete nicht über ihre Bachelorarbeit. Stattdessen reflektierte sie den Verlauf ihres gesamten Studiums. Da sie eine Studierende "der ersten Stunde" war, hatte sie noch den Gründer unseres Studienganges - Professor Helmut Balzert - erlebt. Sie berichtete vom Start des Studienganges mit ca. 20 Studierenden in damals noch sehr familiärer Atmosphäre. Neue Module entstanden. Während anfangs nur Prüfungen in Dortmund möglich waren, kamen später weitere Prüfungszentren hinzu. Damals waren Präsenztage noch Pflicht! Der Studiengang wuchs und irgendwann kannte nicht mehr jeder jeden. Die familiäre Atmosphäre blieb allerdings erhalten, nicht zuletzt durch die Arbeit des Studienbüros.
     
    Zuletzt berichtete sie, was aus dem Studium neben fachlichem Input für ihre Persönlichkeitsentwicklung mitgenommen hatte:
    Keine Angst vor Neuem. Schritt für Schritt Schwieriges schaffen. Herausforderungen leben. Auch mal über den Tellerrand schauen. Infos zu Projekt- und Bachelorarbeit
     
    Es ist üblich, dass an Präsenztagen auch das Thema Projekt- und Bachelorarbeit aus verschiedenen Blickwinkeln beleuchtet wird. Herr Jörges beschäftigte sich diesmal insbesondere mit den Unterschieden zwischen Projekt- und Bachelorarbeit. Beiden gemeinsam ist, dass innerhalb einer zeitlichen Frist ein bestimmtes Thema selbstständig bearbeitet wird. Die Projektarbeit soll dabei eine konstruktive und problembezogene Arbeit sein. Sie ist also eher ingenieursmäßig, auch wenn bei der Problemlösung wissenschaftliche Erkenntnis und wissenschaftliche Methoden der Recherche eine große Rolle spielen. Im Vergleich dazu ist die Bachelorarbeit in erster Linie eine wissenschaftliche Arbeit, auch wenn sie eine konstruktive Arbeit sein kann, bei der ein praktisches Problem gelöst wird. Mehr noch als bei der Projektarbeit spielen die Methoden wissenschaftlichen Arbeitens und der wissenschaftlichen Recherche die tragende Rolle.
     
    An der FH Dortmund hat man überwiegend positive Erfahrungen mit Bachelorarbeit, die auf einer Projektarbeit aufbauen. Dabei muss aber klar sein: Die Bachelorarbeit ist eine eigenständige Arbeit, kann also die Projektarbeit nicht beinhalten. Gelegentlich gibt es Studierende, die erwarten, mit ihrer Projektarbeit schon einen Baustein für ihre Bachelorarbeit in der Hand zu halten. Das geht natürlich nicht. Die Bachelorarbeit trägt ja ihren eigenen Workload und wird eigenständig bewertet. Möglich ist freilich, in der Bachelorarbeit die eigene Projektarbeit zu referenzieren, um die dort geleistete Arbeit inhaltlich weiter zu entwickeln.
     
    Zur Themenfindung berichtete Herr Jörges, dass diese lange dauern könne. Auch Recherche und Einlesen ins Thema gehören dazu. Letztlich geht es in dieser Phase darum, den Kern der Fragestellung zu identifizieren. Themen für die Projektarbeit kann man oft im eigenen Betrieb finden, selbst wenn man gar nicht im IT-Bereich arbeitet. Auch Herr Jörges betonte die Bedeutung eines eigenen Interesses am Thema. Dies hilft als innere Antriebsquelle durch schwierige Phasen der Arbeit. Ein Vorteil einer Arbeit im Betrieb ist, dass man häufig noch einen kompetenten Ansprechpartner für Ort findet, der den Prozess begleiten kann.
     
    Für die Bachelorarbeit ist die wissenschaftliche Fragestellung noch viel wichtiger. Hierzu gehört auch eine Recherche zum Stand der Forschung. Manchmal wird man dabei leider feststellen, dass die eigene Forschungsfrage schon beantwortet wurde. Man könnte aber die eigene Frage weiter zuspitzen und zum Beispiel einen neuen Gesichtspunkt untersuchen, der bislang noch nicht beachtet wurde.
     
    Beim Finden eines Betreuers kann das Studienbüro finden. Oft geht es nach der Vermittlung eines Betreuers noch nicht los. Es gibt meist eine Startphase, die sich hinziehen kann, weil klar wird, dass das Thema doch noch nicht eingrenzt und geschärft ist. In dieser Phase entstehen oft eine Art Abstract, eine vorläufige Gliederung der Arbeit, eine Auflistung von Zielen, eine Erklärung der eigenen Motivation und Vorgehensweise. Erst wenn das geklärt ist, wird "die tickende Uhr" in Bewegung gesetzt. Manche Betreuer wünschen sich auch Exposé von ca. 4 Seiten. Die Startphase ist wichtig, damit sich nicht mitten in der Bachelorarbeit herausstellt, dass Problemstellung und Struktur der Arbeit unklar oder gar untauglich sind.
     
    Für die Erstellungsphase liefert das Modul "Wissenschaftliches Arbeiten" die nötigen Grundlagen. Die sind sehr wichtig, denn für die meisten Studierenden ist die Erstellung einer wissenschaftlichen Arbeit eine ein- bis zweimalige Erfahrung in ihren Leben. Sehr wichtig ist in diesem Zusammenhang das korrekte Referenzieren von Quellen.
     
    Essentiell ist außerdem, Kontakt zum Betreuer zu halten. Es klingt trivial, aber es kommt immer wieder vor, dass Studierende ihre Arbeit anmelden und abgeben, ohne Kontakt zu ihren Betreuer gesucht zu haben. Das geht fast nie gut. Üblich sind Draft-Versionen, zu denen der Betreuer Feedback gibt. Von Studierenden wird erwartet, dass sie den Kontakt zu ihrem Betreuer aktiv suchen und aufrecht erhalten. Viele Professoren sind sehr beschäftigt, darum ist es empfehlenswert, als Studierender selbst aktiv zu werden.
     
    Hochschulzertifikate
     
    Wie an Präsenztagen üblich, wurden die erreichten Hochschulzertifikate ausgeteilt.
     
    Question & Answers
     
    Hier wurde zunächst eine Frage an die Absolventen gerichtet.
     
    Womit soll man seine Bachelorarbeit schreiben? Mit LaTeX? Oder mit Word?
    LaTeX ist ein tolles Werkzeug und kann einem viel Arbeit ersparen. Allerdings ist die Einarbeitung aufwendig. Wer LaTeX kann, soll es nutzen. Wer es zu Beginn der Bachelorarbeit noch nicht kann, soll Word benutzen. Sich zeitgleich zur Bachelorarbeit in LaTeX einarbeiten ist nicht realistisch.
     
    Die weiteren Fragen betrafen Module und Studienorganisation.
     
    Das Modul "Multimedia" ist inhaltlich veraltet? Wann kommt eine neue Version?
    Ein neuer Kursautor wird derzeit gesucht. Die Aktualität der Module ist Thema bei der Akkreditierung und bei manchen Modulen ist klar, dass die aktualisiert werden müssen. Leider ist es nicht immer einfach, Autoren zu finden. Auch unterschätzen Autoren selbst oft den Zeitaufwand für das Schreiben eines Buches.
     
    Das Modul "Web-Anwendungen 1" ist in Bearbeitung. Kann man es buchen?
    Man kann es buchen, erhält aber dann die bisherige Version des Moduls.
     
    Was machen Studierende der Wirtschaftsinformatik, wenn sie für ein Hochschulzertifikat ein Modul buchen wollen, dass im Curriculum ihres Studienganges nicht vorgesehen ist?
    Solche Module kann man über das Studienbüro als Zusatzmodule buchen. Solche Module können auf der Bachelor-Urkunde aufgeführt werden.
     
    Kritik: Aufgrund der Modulkombinationen ist es für Studierende der "Web- und Medieninformatik" relativ leicht, schon während ihres Studiums Hochschulzertifikate zu erlangen. Für die Wirtschaftsinformatiker ist das schwieriger.
     
    Hiermit endete der Teil "Aktuelles für Studierende".
     
    Parallel fand in einem angrenzenden Hörsaal ein Tutorium zu den Inhalten des Moduls "Mathe2" statt. Hier ging es im Lineare Algebra und Analysis. Erfahrungsgemäß macht dieses Mathemodul Studierenden am meisten Sorgen, weshalb Tutorien dazu an fast jedem Präsenztag stattfinden. Da ich es schon hinter mir habe, habe ich es nicht besucht und kann auch nichts näheres dazu sagen.
     
    Im weiteren Verlauf des Tages gab es zwei Vorträge über Web-Entwicklung und Digitale Transformation. Darüber werde ich in folgenden Beiträgen berichten.
  5. kurtchen
    Einordnung und Voraussetzungen
     
    Das Modul "nichtsequentielle Programmierung" (NSP) ist für Studierende im Studiengang "Web- und Medieninformatik" das letzte im Fachgebiet "Grundlagen der Informatik und Programmierung". Springer Campus empfiehlt, es im 5. Semester zu belegen. Die Module "Grundlagen der Informatik 1 & 2" werden als inhaltliche Voraussetzung genannt. Konkret heißt das, dass man Grundkenntnisse in strukturierter, prozeduraler und objektorientierter Programmierung in Java braucht. Auch Kenntnisse der generischen Programmierung, wie sie GdI2 vermittelt, sind unbedingt nötig.
     
    Meiner Meinung nach reicht das aber nicht. Ich möchte ergänzen, dass das Modul "Rechnerstrukturen und Betriebssysteme" eine nötige Vorbereitung ist, weil man hier einiges an Hintergrundwissen über Speicher- und Prozessverwaltung lernt. Auch GdI3 sollte man meiner Meinung nach belegt haben, weil die Kursteile zu Nebenläufigkeit und GUIs eigentlich voraussetzen, dass man sich ein bisschen mit Swing und dem AWT auskennt. Schließlich halte ich auch GdI4 "Algorithmen und Datenstrukturen" für zumindest sinnvoll, weil es bei der nichtsequentiellen Programmierung auch um den nebenläufigen Zugriff auf verschiedene Datenstrukturen geht. Es ist sinnvoll, wenn man diese kennt und versteht.
     
    Studierende im Studiengang Wirtschaftsinformatik müssen NSP nicht absolvieren, können es aber als Vertiefung belegen. Außerdem ist NSP ein Pflichtmodul der wissenschaftlichen Weiterbildung "Anwendungsprogrammierer". Das könnte für manche Studierende interessant sein, die sich unsicher sind, ob ihre Ausdauer für ein komplettes Bachelorstudium reicht.
     
    Das Lehrbuch
     
    Grundlage für den Kurs ist das Lehrbuch "Java: Nebenläufige und verteilte Programmierung" von Peter Ziesche und Doga Arinir. Es hat an die 360 Seiten, aber wegen recht umfangreicher Anhänge kommt der reine Kurstext auf nur ca. 330 Seiten, was für einen Springer Campus Kurs eher im unteren Mittelfeld liegt. Diese 330 Seiten haben es allerdings in sich. Ich empfinde NSP als das herausfordernste der Java-Module.
     
    Der Titel ist Programm. Nebenläufige Programmierung heißt, dass es mehr als einen Kontrollfluss gibt. Verteilte Programmierung heißt, dass Teile einer Anwendung auf verschiedenen Rechnern ausgeführt werden, sozusagen Nebenläufigkeit plus Entfernung. Wichtig ist zunächst die grundlegende Unterscheidung zwischen Prozessen und Threads. Prozesses laufen in je eigenen Speicherbereichen, während sich Threads als leichtgewichtige Prozesse einen Speicherbereich teilen. Die Möglichkeit, so auf gemeinsamen Daten zu arbeiten, erleichtert einerseits die Kommunikation und Kooperation zwischen den Threads. Andererseits schafft das viele Probleme, die erst zur Laufzeit auftreten und schwer reproduzierbar sind.
     
    Warum ist nebenläufige Programmierung schwierig?
     
    Als Programmierer kann man sich vorstellen, dass nebenläufige Programmteile auf verschiedenen CPUs zur Ausführung kommen. In modernen Multicore-Systemen kann und wird das auch tatsächlich so sein. Da in modernen Betriebssystemen stets Dutzende von Prozessen laufen, werden nebenläufige Programmteile de facto häufig auf einer CPU oder einem Kern ausgeführt werden, der zwischen verschiedenen Threads umschaltet. Es ist nicht vorhersehbar, in welcher Reihenfolge die Threads zur Ausführung kommen werden. Wenn Threads eine gemeinsame Datenstruktur manipulieren, kann man also nicht vorhersagen, was in welcher Reihenfolge passieren wird. Genau hier liegt eine der großen Herausforderungen. Als Programmierer gewöhnt man sich nämlich zunächst an das schön planbare Nacheinander eines Programmablaufs. Man trainiert sich an, in Sequenzen zu denken, Abläufe in Arbeitsschritte und Zustandsabfolgen zu zerlegen. Der Programmzustand ist so zu jedem Zeitpunkt das Ergebnis dessen, was zuvor passiert ist. Bei nebenläufigen Programmen ist das im Prinzip auch so, aber es gibt Ungewissheit, was in welcher Reihenfolge passieren wird. Man ist gezwungen, viel darüber nachzudenken, welche Ausführungsreihenfolgen möglich sind und welche Folgen das haben könnte. Auch wird das Testen eines Programmes schwieriger. Ein Programm kann bei Tests hervorragend laufen und im Dauerbetrieb kommt es zu bizarren Bugs, mit denen man nie gerechnet hätte. Nebenläufige Programmierung ist leider komplex.
     
    Theoretische Konzepte
     
    Kommen wir zum Aufbau des Kurses. Die ersten 60 Seiten sind eine Einführung in die nebenläufige Programmierung. Es beginnt mit grundlegenden Konzepten:
    - Anwendungen und Prozesse
    - Threads und Scheduling
    - Speicherverwaltung mit Stapel und Halde, zunächst sequentiell
    - und Speicherverwaltung bei mehreren Threads
    - Vorteile von Nebenläufigkeit: Bessere Performance und bessere Reaktionszeiten, vor allen in Multicore-Umgebungen
    - Probleme nebenläufiger Programme
    - Synchronisation und kritische Abschnitte
    - Monitore
    - Lebendigkeit
    - Verklemmungen
     
    Insbesondere bei den Ausführungen zur Speicherverwaltung musste ich schon sehr konzentriert lesen, um nachvollziehen zu können, was genau auf Stapel und Halde z.B. bei der Initialisierung eines GUIs passiert. Auch wenn hier Codebeispiele in Java gegeben werden, geht es in diesem Kursteil nicht um die Programmiersprache Java sondern um Konzepte.
     
    Die Umsetzung in Java
     
    Diese Konzepte werden in den folgenden 60 Seiten mit Leben erfüllt, denn nun geht es um die Realisierung in Java. Man lernt:
    - Threads zu erzeugen, indem man von Thread abgeleitete Klassen programmiert.
    - Die Schnittstelle Runnable zu nutzen, um Aufträge einem Thread zur Ausführung zu übergeben.
    - Gegenseitigen Ausschluss zu realisieren, indem man Methoden oder Codeabschnitte als synchronized kennzeichnet.
    - Monitore in Java zu implementieren, in denen Threads schlafen gelegt werden, die auf Ressourcen warten müssen.
    - Erste Strategien, um Verklemmungen zu vermeiden.
     
    Das Kapitel endet mit einem Fallbeispiel "Generisches Suchsystem", an dem die neuen Konzepte in einer Anwendungssituation gezeigt werden sollen. Dieses Fallbeispiel, dass sich durch den Kurs zieht, ist einer meiner wenigen Kritikpunkte. Während das Fallbeispiel Auftragsverwaltung aus GdI3 komplett und ausführbar vorlag und ausprobiert werden konnte, ist das generische Suchsystem nicht lauffähig, weil nicht komplett ausprogrammiert. Man kann die Klassen compilieren, aber man kann es nicht in Aktion erleben. So hat man nur eine statische Sicht auf den Code: Das hat didaktisch zwar auch einen hohen Wert, aber mir hätte es geholfen, mit dem Fallbeispiel herumspielen zu können, den Code in der Ausführung zu erleben. Dieser Aspekt hat mir bei diesem Kurs gefehlt. Zum Glück gibt es viele andere Codebeispiele im Kurs, die ausführbar sind und zum Experimentieren einladen.
     
    Modellierung von Nebenläufigkeit in UML
     
    Es folgt ein kurzes Kapitel über die Modellierung von Nebenläufigkeit in der UML. In den sonst so wichtigen Klassendiagrammen ist sie nicht so gut darstellbar. Nebenläufigkeit ist etwas, dass sich zur Laufzeit entfaltet. Sie kann daher besser mit Aktivitätsdiagrammen, Sequenzdiagrammen und Zustandsautomaten dargestellt werden. Hier wird auch auf den Anhang verwiesen, bei dem noch einmal die Petri-Netze knapp wiederholt werden, die ich ja schon aus Softwaretechnik 1 kannte. Die Markenwanderung im Petri-Netz hilft nämlich, Aktivitätsdiagramme besser zu verstehen. Hier sieht man, dass die Module oft schön untereinander vernetzt sind. Dieses Kapitel ist kurz, aber für die Präsenzklausur sollte man sich das gut anschauen.
     
    Vertiefende Kapitel zur Nebenläufigkeit in Java
     
    Nun kommt ein Kapitel zum Entwurf nebenläufiger Anwendungen in Java. Dieses Kapitel ist eine Sammlung verschiedener Klassen, die beim Entwurf nebenläufiger Anwendungen hilfreich sein können. Sie stammen meist aus java.util.concurrent.

    Man lernt hier vieles über:
    - den Unterschied zwischen threadsicheren und nebenläufigen Klassen
    - verschiedene Arten von Warteschlangen und Puffern
    - Container mit copy-on-write-Semantik, deren Iteratoren bei nebenläufigen Schreibzugriffen weiter laufen können.
    - verschiedene nebenläufige Container
    - Auftragsdienste und Threadpools, die eine Anzahl von Threads zum Abarbeiten von Auftragen bereithalten.
    - Aufträge mit Ergebnis, die etwas komplizierter zu handhaben sind.
    - Flexible selbst implementierte Monitore mit eigenen Lock-Objekten und Conditions
    - Leser-Schreiber-Synchronisation
    - Atomare Operationen
     
    Als Anwendungsbeispiele dienen hier nebenläufige Matrizenmultiplikation und ein nebenläufiger Quicksort. Diese Beispiele eigenen sich gut für eigene Experimente.
     
    Ein Problem mit diesem Kursteil ist: Die einzelnen Klassen werden recht knapp vorgestellt. Die Codebeispiele sind ausreichend aber oft nur Skizzen. Es fehlt häufig die Einbettung in einen Anwendungskontext, wie sie z.B. bei der Matrizenmultiplikation gegeben ist. Oft wird auf die API-Dokumentation verwiesen, die man tatsächlich auch braucht, will man das alles verstehen. Das Kapitel ist eher eine Sammlung von Methoden und hat für mich keinen richtigen roten Faden.
     
    Dafür ist hier die Abstimmung mit den Einsendeaufgaben sehr gut. Die laufen meist darauf hinaus, etwas zu programmieren, bei dem die vorgestellten Klassen zum Einsatz kommen. Oft reicht am Ende wenig Code. Trotzdem habe ich hier regelmäßig gemerkt, was ich eben noch nicht verstanden hatte. Ich musste mich regelmäßig durch die API-Dokumentation wühlen, um Erfolg zu haben. Rückblickend meine ich, dass das mehr gebracht hat als ein Text, der von vorneherein alle Eventualitäten erklärt. Das Lehrbuch lässt genug offen, um in den Aufgaben Spielraum für eigene Erkundungen und Aha-Erlebnisse zu haben. Im Zusammenspiel mit den Aufgaben funktioniert das Buch sehr gut.
     
    Im nächsten Kapitel geht es um fortgeschrittene Konzepte von Nebenläufigkeit in Java. Hier geht es z.B. um:
    - das kontrollierte Beenden von Threads
    - Swing-GUIs und Nebenläufigkeit: Fallbeispiel ist hier die Fortschrittsanzeige eines nebenläufigen Auftrages. Eine alltägliche Situation, die komplizierter ist als man zunächst denkt.
    - Caches und Synchronisation
     
    Ans Eingemachte geht es mit den Abschnitten über Caches und Synchronisation. In modernen PCs haben die CPUs ja mehrstufige Caches, in denen sie oft benötige Daten ablegen. Arbeiten mehrere CPUs parallel, stehen im Cache eventuell Daten, die im RAM schon längst geändert wurden. Eine gemeinsam genutzte Variable kann so aus Sicht verschiedener CPUs oder Kerne zugleich verschiedene Werte haben, was dem intuitiven Verständnis von Speicherinhalt widerspricht. So etwas kann zu bizarren und schwer nachvollziehbaren Bugs führen. Java bietet Sprachkonstrukte, mit denen man einen Refresh oder Flush des Caches erzwingen kann. Diese sollte man aber nicht ständig einsetzen, weil so die Zugriffszeiten auf Speicherinhalte steigen und das Programm langsamer wird. Man kommt also nicht umhin, sich zu überlegen, was man tut. Auch in diesem Kapitel war die Verzahnung mit den Einsendeaufgaben sehr gut.
     
    Verteilte Programmierung
     
    Im letzten Kapitel geht es dann um verteilte Anwendungen mit RMI (Remote Methode Invocation). Eine Java-Anwendung kann auf mehrere Rechner verteilt sein, z.B. auf einen Client und einen Server. Ein Client kann Methoden auf dem Server aufrufen. Dazu erhält er über das Netz sogenannte Stummel-Objekte, die sozusagen nur die Schnittstelle und keine Implementierung enthalten. Arbeitet man mit RMI, so implementiert man viele Dinge etwas anders als bei einer Anwendung, die lokal läuft. Entfernte Methodenaufrufe dauern relativ lange. Darum bieten sich Methoden an, die z.B. mehrere Attribute eines Objektes auf einmal abfragen oder verändern.
     
    Es war  schwierig, zum Thema RMI gute und aktuelle Quellen neben dem Kursmaterial zu finden. Manche Codebeispiele liefen nicht mehr so wie im Buch beschrieben, weil inzwischen verschärfte Sicherheitskonzepte gelten. Ich habe hier nicht alles ausprobieren können. Verteilte Programmierung ist komplex. Dies gilt auch für die Verteilung und Installation von Anwendungen. Ich fand es gut, dass dieses Thema behandelt wurde, merkte aber an dem Punkt auch, dass es Grenzen gibt, wie viel Stoff ich für eine Modulprüfung verdauen kann.
     
    Zum Glück wies mein Tutor mich darauf hin, dass dieses letzte Kapitel nicht klausurrelevant ist. Für den Online-Test und die Online-Klausur ist es aber wichtig, also sollte man sich gut damit beschäftigen.
     
    Online-Tests und Online-Klausur
     
    Bei den Tests gab es in diesem Kurs eine Besonderheit. Es waren vergleichweise wenige und zu mehreren Kapiteln gab es gar keine. Der Abschluss-Test deckte aber auch diese Kapitel ab. Hier musste man also direkt liefern ohne zuvor an Fragen zum gleichen Stoff sein Verständnis überprüfen zu können. Es ist mein Eindruck, dass hier bewusst noch eine kleine Hürde vor den ersehnten Bonuspunkten eingezogen wurde. Tatsächlich habe ich bei diesem Kurs nur vergleichsweise wenige Bonuspunkte erringen können, sowohl im Online-Test als auch in der Online-Klausur, die ich ebenfalls als herausfordernd empfand. Der eigentliche Nutzen der Online-Klausur war denn auch das Feedback meines Tutors, das mir ermöglicht hat, die Aufgaben noch einmal zu überarbeiten und dabei noch einige Einsichten zu erlangen. Auch in der Online-Klausur kann Stoff aus dem gesamten Kurs drankommen, auch zu dem Kapitel über RMI.
     
    Präsenzklausur
     
    Für die Präsenzklausur habe ich das Lehrbuch insgesamt 3 mal durchgearbeitet und mit vielen Anmerkungen versehen. Außerdem habe ich mir zum Thema viel Sekundärliteratur aus der Unibibliothek besorgt. Einen konkreten Titel nennen möchte ich aber nicht, weil ich in den meisten Büchern immer nur kurze hilfreiche Abschnitte gefunden habe. Das Lehrbuch von Ziesche und Arinir ist schon sehr gut zusammengestellt und behandelt sehr viele Konzepte, die man anderswo weit verstreut zusammensuchen muss. So kam ich letztlich doch immer wieder darauf zurück. Ich würde für die Klausur empfehlen, die Kapitel 2 bis 5 gründlich zu wiederholen.
     
    Die Präsenzklausur war breit angelegt. Ein Mix aus Wissensfragen, Code analysieren, Code schreiben, UML-Diagramme zeichnen. Inhaltlich wurden eher die Grundkonzepte abgeprüft und nicht so sehr ausgefallene Klassen aus java.util.concurrent. Ich würde empfehlen, die theoretischen Grundlagen und die Kapitel zur UML gut zu wiederholen. Und die grundlegenden Kapitel zu Threads in Java. Damit hat man schon mal einen guten Teil abgedeckt. Strategisch würde ich bei dieser Klausur dazu raten, erst die leichteren Aufgaben mit weniger Punkten zu machen und erst dann die umfangreicheren. Ich habe es umgekehrt gemacht, aber das war hier klar die falsche Strategie, weil ich an irgendeinem Punkt abbrechen musste und später nur schwer wieder reinkam. Eine Aufgabe war etwas anspruchsvoller, weil ein Thema, dass im Kurs nur recht knapp vorgestellt wurde, nun in einer Anwendungssituation ausprogrammiert werden sollte. Mein Tipp: Wenn im Kurstext die Rede davon ist, sich gewisse Dinge noch einmal in der API anzuschauen, dann macht das. Kann auch nicht schaden, die knappen Codebeispiele abzutippen, auszuführen und selbst ein bisschen damit zu experimentieren. Das bezieht sich vor allem auf Kapitel 5.
     
    Fazit
     
    Insgesamt wieder ein schöner Kurs. Leider ist damit die Serie der Java-Module nun vorbei. Schade, denn gerade die haben mir besonders viel Spaß gemacht. Es wird noch ein Wiedersehen mit Java geben, weil auf mich noch der Kurs "Java Server Pages" aus dem Fachgebiet "Web- und Medieninformatik" wartet. Da geht es dann um serverseitige Anwendungen, die dynamisch HTML erzeugen. Das macht man meistens mit PHP aber bei Springer Campus eben mit Java.
     
    Nachtrag (08.12.2016)
     
    Heute kam das Ergebnis der Präsenzklausur. Ich hatte Glück und habe ziemlich gut abgeschnitten. Hier konnte ich wieder einmal lernen, dass ich mich nicht entmutigen lassen sollte, auch wenn der Stoff eines Moduls am Anfang schwer zu fassen ist. Nichtsequentielle Programmierung habe ich als das schwierigste der Java-Module empfunden. Ich habe hier ein paar Anläufe mehr gebraucht, um die Konzepte wirklich zu verstehen. Gerade die Online-Klausur, bei der noch vieles schief gelaufen ist, hat mir hier noch einmal wertvolle Rückmeldungen gebracht. Auch weil mein Tutor sich nicht damit begnügt hat, meine Arbeit nur mit Punkten zu bewerten sondern differenzierte inhaltliche Rückmeldungen gegeben hat, wo genau die Mängel meiner vorgelegten Lösungen waren. Das hat mir erlaubt, mich "auf den letzten Metern vor dem Ziel" noch einmal zu steigern.
     
    Ich denke, dass das ganze auch ein bisschen mit seelischer Reife zu tun hat. Wenn ich an mein Erststudium zurückdenke, so meine ich, dass ich mich damals von Schwierigkeiten viel schneller habe verunsichern lassen. Ich bin jetzt ein paar Jahre älter und habe in meinem Leben auch den einen oder anderen Misserfolg wegstecken müssen, privat wie beruflich. Da erlebt man, dass man nach einen Sturz auch wieder aufstehen kann. Dass Fehler vor allem den aktuellen Lernstand wiederspiegeln, aber eben längst nicht das eigene Potential für die Zukunft. Natürlich hatte ich das auch mit 19 Jahren schon einmal gehört. Aber jetzt ist das eigene Erfahrung und nicht der gute Rat anderer. Es macht viel mehr Spaß als früher, mit dieser veränderten Perspektive zu studieren.
  6. kurtchen
    Seit neuestem ist es möglich, auch in Heidelberg Klausuren zu schreiben. Das liegt daran, dass der Springer Verlag eine Zweigniederlassung in Heidelberg hat. Der Klausurort ist darum auch das große Gebäude in der Tiergartenstraße 17.
     
    Klausuren in Heidelberg sind bis auf weiteres Freitags von 10 bis 12 und bei Bedarf von 13 bis 15 Uhr möglich. Samstags kann man in Heidelberg keine Klausuren schreiben.
     
    Wenn man mit dem Auto anreist, sollte man bedenken, dass der Verkehr sich morgens im Berufsverkehr stadteinwärts staut. Das kennt man auch von anderen Städten. Die Parksituation vor Ort ist gut. Springer hat einen großen Firmenparkplatz, den ich aber gar nicht nutzen musste, weil ich einen der zahlreichen öffentlichen und gebührenfreien Parkplätze einer nahe gelegenen Sportanlage nutzen konnte. Auch die Anreise mit öffentlichen Verkehrsmitteln scheint nach Auskunft eines Kommilitonen kein Problem zu sein.
     
    Beim Betreten des Gebäudes muss man sich am Empfang in eine Besucherliste eintragen und beim Verlassen des Gebäudes auch wieder abmelden. Das dauert einen Moment. Dafür ist der Klausurraum im Erdgeschoss nahe beim Eingang und nicht schwer zu finden. Wie an anderen Klausurorten üblich, werden Getränke und ein paar Süßigkeiten zur Verfügung gestellt.
     
    Ein großes Plus in Heidelberg ist die hervorragende Betriebskantine von Springer. Ob süß oder herzhaft, üppig oder gesundheitsorientiert, mit oder ohne Fleisch, hier ist für jeden etwas geboten. Ich hatte bei meinem ersten Besuch am Ende mehr auf dem Tablett, als ich mir vorgenommen hatte, weil so viele leckere Dinge lockten. So konnte ich gut gestärkt in meine zweite Klausur gehen.
     
    Schön am Standort Heidelberg ist auch, dass man dort Mitarbeiter von Springer Campus trifft, die unseren aber auch weitere Fernstudiengänge organisatorisch betreuen. Das ist eine schöne Gelegenheit zum informellen Austausch, über die aktuelle und künftige Situation unseres Studienganges. Es ist durchaus interessant zu erfahren, wie bestimmte Aspekte unseres Fernstudiums aus Anbietersicht wahrgenommen werden.
     
    Bislang nutzen nur wenige Studierende den  Klausurstandort Heidelberg. Allerdings weiß ich von Kommilitonen, dass trotz eindeutiger E-Mail-Einladung noch längst nicht alle mitbekommen haben, dass es diese neue Möglichkeit gibt. Ich glaube, dass Heidelberg vor allem für die Studierenden aus Baden-Württemberg eine interessante Alternative sein könnte. Aber nicht nur. Ich wohne in Unterfranken und möchte in Zukunft gerne öfter meine Klausuren in Heidelberg schreiben.
  7. kurtchen
    Hier kommt die Fortsetzung meines Berichts über den Springer Campus Präsenztag am 10.03.2018.
     
    12:15 Uhr - Vortrag: Big Data, Prof. Dr. Uwe Schmitz, FH Dortmund
     
    Ich gebe die Inhalte des Vortrages auf der Grundlage eigener Notizen in knapper Form wieder.
     
    Ausgangssituation
    Es ist zu erwarten, dass Industrie 4.0 die Industrieproduktion verändern wird. Es fallen massenhaft strukturierte Daten aus operativen Informationssystemen an. Hinzu kommen massenhaft unstrukturierte Daten, z.B. aus sozialen Netzwerken. Viele der anfallenden Daten bleiben noch ungenutzt.  
    Was kennzeichnet Big Data?
    Volume (Umfang): Das Datenvolumen steigt jedes Jahr im den Faktor 40. Variety (Vielfalt): Es gibt eine Vielfalt der Formate und der Quellen. Daten können strukturiert, unstrukturiert und halbstrukturiert vorliegen. Strukturierte Daten kennzeichnen klassische Datenbanken. Unstrukturierte Daten sind z.B. Photos, Videos oder Audiodateien. Halbstrukturierte Daten sind z.B. E-Mails oder Word-Dokumente. Velocity (Geschwindigkeit): Hier geht es um die Geschwindigkeit, mit der Daten generiert und ausgewertet werden. Velocity hat zwei Aspekte. Zum einen die Geschwindigkeit, mit der Daten verarbeitet werden. Zum anderen die Geschwindigkeit, in der Daten sich ändern. Heute möchte man Updates möglichst in Echtzeit, d.h. die Geschwindigkeit der Verarbeitung soll mit der Geschwindigkeit der Veränderung Schritt halten. Veracity (Richtigkeit): Dies betrifft die Datenqualität. Man möchte wissen, mit welcher Wahrscheinlichkeit ein Wert valide ist. Beispielsweise müssen Stromerzeuger recht zuverlässig wissen, wie das Wetter der nächsten Tage wird, denn das beeinflusst Produktion und Verbrauch von Strom. Value (Mehrwert): Das Sammeln und Auswerten von Daten ist kein Selbstzweck. Die dazu nötigen Investitionen müssen sich lohnen.  
    Aktuell bedeutsame Datenquellen sind noch immer Transaktionsdaten, Protokolldaten, Ereignisdaten. Transaktionsdaten werden seit Jahrzehnten in klassischen relationalen Datenbanken erfasst. Auch Log-Dateien gibt es seit langem. Für die Zukunft werden große Zuwächse bei anderen Datenquellen prognostiziert, z.B. bei Social Media, Sensordaten oder Geodaten.
     
    Die gesammelten Daten sind potentiell in allen Unternehmensbereichen nützlich, also z.B. im Vertrieb, in Finanzen & Controlling, im Marketing, in der Produktion, der Logistik, im Supply-Chain-Management und im Kundenservice.
     
    Big Data Technologie leistet einen unverzichtbaren Beitrag für die Industrie 4.0. Zu nennen sind vier Bereiche:
    Smart Factory: Sensoren schaffen bessere Planungsfähigkeit. Smart Operations: Vernetzte Produktion ermöglicht flexible Steuerung der Produktion. Smart Service: Durch Vernetzung von Produkt und Hersteller und werden neue Dienstleistungen möglich. Smart Products: Hier gab es eine kleine Diskussion über die Frage, was ein smartes Produkt kennzeichnet.  
    Beispiel Netflix
     
    Die Plattform versucht vorauszusagen, was Nutzer künftig sehen wollen. Nutzerprofile werden dazu ausgewertet, z.B. Korrelationen, wann ein begonnener Film abgebrochen wurde. Auf diese Weise werden Präferenzen für Schauspieler, Inhalte, Themen und ähnliches für bestimmte Nutzergruppen ermittelt. Dies hat Auswirkungen auf die Produktion von Serien. Zum Beispiel wurde die bekannte Serie "House of Cards" auf der Grundlage solcher Nutzerdaten produziert. (Eigene Anmerkung: Natürlich haben Produzenten von Filmen und Serien immer versucht, den Geschmack ihrer Zielgruppen zu treffen. Neu erscheint mir hier, die Geschwindigkeit der Rückkopplung und die Verknüpfung von Informationen. Früher konnte man sagen, dass die Einschaltquoten für eine Serie zurückgegangen sind. Für jeden Zuschauer, der abspringt, kann man heute sagen, was er stattdessen geschaut hat.)
     
    Big Data Technologien verändern die Datenhaltung, den Datenzugriff, die analytische Verarbeitung, die Datenintegration und die Visualisierung.
     
    Beispiel Datenhaltung
     
    In-Memory-Datenbanken laden bei Programmstart den kompletten Datenbestand in den Hauptspeicher. Dies erhöht die Geschwindigkeit der Verarbeitung erheblich. Die Datenbankserver müssen dann natürlich besonders gegen Stromausfälle gesichert werden, z.B. durch Akkus. In zeitlichen Abständen gibt es Backups auf nicht-flüchtige Datenspeicher (Save Points). Diese Datenbanken können viele Terrabytes umfassen. Aufgrund der hohen Geschwindigkeit entfällt der bisherige ETL-Prozess. (ETL steht für Extract, Transform, Load. Bislang mussten Daten aus operativen Systemen aufbereitet und verdichtet werden, bevor man sie analysieren konnte. In-Memory-Datenbanken sind schnell genug, um direkt auf den vollständigen operativen Datenbeständen zu arbeiten.) Vorteile sind z.B. schnelle Reaktion auf Preisschwankungen, schnelle Sperrung bei Missbrauchsverdacht, schnelle Reaktion auf aufkommende Gerüchte (Shitstorm-Erkennung!), Verringerung von Out-of-shelf-Problemen, positiveres Image durch schnellere Reaktion auf Kundenanfragen. Ein Beispiel für eine In-Memory-Datenbank wäre SAP Hana.
     
    Beispiel Sentiment-Analyse
     
    Bei der Sentiment-Analyse geht es darum, wie eine Person zu etwas steht. So gibt es mittlerweile Standard-Extraktoren für Posts auf Plattformen wie Twitter und Facebook über standardisierte Schnittstellen. Diese ermitteln z.B. Korrelationen zwischen Schlüsselwörtern und Adjektiven wie "successful" oder "bad". Auf die Weise kann man nicht nur schnell ermitteln, wie ein Produkt, ein Service oder eine Organisation wahrgenommen wird, sondern auch, wie diese Wahrnehmung sich aktuell verändert. Das kann man im Marketing und in der Öffentlichkeitsarbeit nutzen.
     
    Anforderungen
     
    Um Big Data nutzen zu können, muss man verschiedene Arten von Anforderungen erfüllen:
    Technische Anforderungen: Dazu zählen z.B. Skalierbarkeit, um mit dem rasanten Wachstum der Bestände Schritt halten zu können, aber auch Schnittstellen, um Daten aus immer vielfältigeren Quellen verknüpfen zu können. Personelle Anforderungen: Es erweist sich als schwierig, Mitarbeiter mit den nötigen Kompetenzen zu beschaffen. Dazu später mehr bei den Herausforderungen. Organisatorische Anforderungen: Man braucht Regelungen zum Umgang mit den neuen Daten. Auch Regelungen zum Datenschutz sind wichtig. (Wie man in jüngerer Zeit immer wieder erleben muss, kann sorgloser Umgang mit Kundendaten den Ruf eines Unternehmens nachhaltig schädigen.) Projektspezifische Anforderungen: Hier geht es darum, Business-Cases zu finden, also Möglichkeiten, durch Analyse und Verknüpfung von Daten einen Mehrwert zu erzeugen. Dies könnten Einsparungen in der Produktion sein, eine schnellere Bereitstellung von Diensten als Mitbewerber, eine gezieltere Ansprache von Kunden durch Werbung, eine bessere Planung des Produktportofolios und vieles mehr.  
    Herausforderungen beim Einsatz von Big Data
     
    Der Einsatz und die Einführung von Big Data Technologien ist mit verschiedenen Herausforderungen verbunden:
    Fehlendes analytisches Know-How: Ideale Mitarbeiter haben Kenntnisse in Statistik, BWL und Informationstechnologie. Die Person, die diese Fähigkeiten kombiniert, nennt man Data Scientist. Offen bleibt die Frage, wie wahrscheinlich es ist, diese Kompetenzen tatsächlich häufig genug vereint in einer Person zu finden. Voraussichtlich wird man eher interdisziplinäre Teams bilden müssen. Datenschutz: Hier geht es einerseits darum, was Unternehmen dürfen und müssen, und andererseits darum, wie Kunden auf Sicherheitslecks reagieren. Fehlendes technisches Know-how Datensicherheit: Wie verhindert man z.B. unauthorisierten Zugriff? Kosten Fehlender Business-Case Die Geschäftsprozesse sind nicht reif genug für den Einsatz von Big Data  
    Wie etabliert man Big Data in einem Unternehmen?
     
    Dafür gibt es das BITKOM-Vorgehensmodell:
    Assessment: Eine Ist-Analyse erfasst, was die aktuellen Daten sind und wie die aktuelle Systemlandschaft aussieht. Readyness: Neue Datenquellen werden eingebunden. Die Datenquellen werden vereinheitlicht. Implementierung und Integration: Die eigentliche Einführung einer Big Data Applikation. Konsilidierung und Migration Nutzung der neuen Daten Reportung und Predictive Analytics: Hier geht es um die Gewinnung neuer Einsichten, indem man unbekanntes und ungenutztes Wissen in den zusammengeführten Datenbeständen entdeckt. End-to-End-Prozesse: Man wandelt die gewonnenen Einsichten in Vorteile, indem man neue und bessere Geschäftsprozesse konzipiert und einführt. Im Grunde wird erst durch diesen Schritt der Nutzen realisiert. Optimierung und Tuning: Hier geht es um die Frage, wie eine künftige und bessere Systemlandschaft aussehen könnte. Damit schließt sich ein Kreis und die Phasen können erneut durchlaufen werden.  
    Erwarteter Nutzen
     
    Durch den Einsatz von Big Data erwartet man vielfältigen Nutzen:
    Bessere Informationen über das Informations- und Konsumverhalten der Kunden Bessere Steuerung von Marketing und Vertrieb Optimierte Logistik Einschätzung von Marktpotentialen und Business Cases Höhere Renditen durch optimierte Preisgestaltung: Das ist ein heißes Eisen. Technisch betrachtet, könnten Algorithmen eine Prognose erstellen, wie viel ein Kunde für ein Produkt oder eine Leistung zu zahlen bereit oder in der Lage ist. Sie könnten dann einen individuellen Preis je nach Größe des Geldbeutels und Ausgabenbereitschaft machen. (Eigene Anmerkung: Rechtlich ist das problematisch. Bekannt wurde zum Beispiel, dass Disneyland Paris unterschiedliche Preise je nach Herkunftsland der Kunden nahm.) Wettbewerbsvorteile durch genauere Marktkenntnis  
    Reifegrad-Modelle
     
    Reifegrad-Modelle beantworten die Frage: Ist mein Unternehmen reif genug, um Big Data Technologien einsetzen zu können? Ein Beispiel ist das Business Intelligence Maturity Model von Steria Mummert Consulting. Es unterscheidet fünf Stufe der Reife.
    Lokale Daten, bezogen auf bestimme einzelne Aufgaben Informationsinseln, z.B. nach Unternehmensbereichen Informationsintegration, d.h. die Daten sind unternehmensweit vernetzt Informations-Intelligence, d.h. die Daten sind logisch integriert Informationsgetriebenes Unternehmen  
    Zur Person
     
    Prof. Dr. Uwe Schmitz betreut im Online-Studiengang B.Sc. Wirtschaftsinformatik die Module "Strategisches Management & Controlling" und "Grundlagen BWL".
     
    Soweit zum ersten Vortrag des Präsenztages.
     
    13:30 Uhr - Vortrag: DevOps, Dr. Hendrik Neumann (W3L AG)
     
    Nach einer Pause gab es ab 13:30 Uhr einen weiteren Vortrag zum Thema "DevOps" von Dr. Hendrik Neumann (W3L AG), der ebenfalls interessant und aufschlussreich war. Allerdings machte sich an diesem Punkt bemerkbar, dass ich am gleichen Tag auch noch eine zweistündige Klausur geschrieben hatte. Die Qualität meiner Notizen war leider nicht mehr ausreichend, um die Inhalte hier detailliert wiederzugeben.
     
    Fazit
     
    Wichtig war wie immer auch der informelle Austausch mit anderen Studierenden. In Kombination mit dem gebotenen Programm war es die lange Anfahrt nach Dortmund wert. Allmählich kommt für mich die Zielgerade in Sicht. Allzu oft werde ich wohl nicht mehr Gelegenheit haben, an einem Präsenztag teilzunehmen. Mindestens einmal fahre ich aber noch nach Dortmund, wahrscheinlicher sogar zweimal. Ich werde hier im Blog berichten.
  8. kurtchen
    Zur Rolle des Moduls im Studium
     
    Das Modul "Software-Testen" ist ein Pflichtmodul im Studiengang "Web- und Medieninformatik". Es wird dort dem Studienbereich "Softwaretechnik" zugerechnet. Formal darf das Modul jederzeit belegt werden, aber als fachliche Grundlage werden viele andere Module empfohlen: 
    Grundlagen der Informatik 1 Grundlagen der Informatik 2 Grundlagen der Informatik 3 Softwaretechnik 1 Softwaremanagement 1  
    Diese Empfehlung finde ich im Großen und Ganzen plausibel, auch wenn ich selbst das Modul "Softwaremanagement" nocht nicht belegt hatte. Aufgrund der vielfältigen Voraussetzungen wundert es nicht, dass die Belegung erst für das 5. Fachsemester empfohlen wird. Es ist also eines der letzten Pflichtmodule.
     
    Für den Studiengang "Wirtschaftsinformatik" ist das Modul nicht vorgesehen, nicht einmal im Wahlpflichtbereich. Es ist aber ein Baustein des Hochschulzertifikates "Software-Manager".
     
    Das Lehrbuch
     
    Das Buch "Basiswissen Testen von Software" von Torsten Cleff hat knapp 300 Seiten. Der Umfang ist für ein Modul bei Springer Campus also unterdurchschnittlich. Ziel des Lehrbuches ist, Grundwissen zu Testtechniken aber auch zu Prüftechniken zu vermitteln, so dass Fehler möglichst früh entdeckt und behoben werden. Die Erfahrung zeigt, dass die Kosten für die Behebung von Fehlern umso niedriger ausfallen, je früher ein Fehler entdeckt wird. Gemeint sind hier nicht nur Fehler im Quellcode, an die ich zu Beginn des Moduls als erstes gedacht habe. Fehler können auf allen Ebenen der Software-Entwicklung passieren, z.B. auch beim Erfassen von Anforderungen, bei der objektorientierten Analyse oder beim Entwurf, also bevor auch nur die erste Zeile Code geschrieben ist.
     
    Grundlagen
     
    Im ersten Teil des Buches werden vor allem Begriffe geklärt. Interessant war für mich z.B. die Unterscheidung von Teststufen, die jeweils mit Entwicklungsstufen eines Softwaresystems korrespondieren. Zu den vertraglichen Anforderungen an ein Software-Produkt gehört ein Abnahmetest, zur Produktdefinition ein Systemtest, zum Produktentwurf ein Integrationstest und zum Komponentenentwurf ein Komponententest.
     
    Nun ist klar, dass der Komponententest der erste Test ist, den man machen kann, wenn Quellcode vorliegt. Erst kann man die Integration von Komponenten testen und so fort. Die Teststufen folgen also in entgegensetzter Reihenfolge wie die Entwicklungsstufen. Visualisiert man diesen Ablauf, steigt man vom Anforderungsdokument Stufe um Stufe hinab bis zur Implementierung und arbeitet sich dann mit den Tests Stufe im Stufe wieder hinauf bis zu den Anforderungen. Der visualisierte Ablauf hat die Form des Buchstabens V, weshalb man auch vom V-Modell spricht.
     
    Interessant sind auch die verschiedenen Integrationsstrategien. Bei der Bottom-up Integration, baut und testet man zunächst Komponenten, die keine Dienste untergeordneter Komponenten in Anspruch nehmen. Dann baut und testet man die Komponenten, die auf diesen aufsetzen. So arbeitet man sich Stufe für Stufe nach oben. Ein Vorteil dieser Strategie ist, dass man keine Platzhalter programmieren muss. Der Nachteil ist, dass man das Zusammenspiel der Komponenten im Großen erst spät testen kann. Darum gibt es auch eine Top-down Integrationsstrategie. Hier werden möglichst bald Komponenten höherer Ordnung getestet. Da diese untergeordnete Komponenten brauchen, die noch nicht vorliegen, muss man viele Platzhalter programmieren. Dafür bekommt man früh einen Eindruck des Gesamtsystems aus Benutzersicht.
     
    Interessant waren auch die verschiedenen nicht-funktionalen Testverfahren. So werden z.B. bei einem Stresstest die definierten Leistungsgrenzen eines Systems bewusst überschritten, etwa um zu testen, ob das System nach einer Überlastung wieder in den Normalzustand zurückkehren kann.
     
    Testfälle entwickeln
     
    Diesen Kursabschnitt betrachte ich als den inhaltlichen Kern des Moduls. Der größte Anteil der Einsendeaufgaben aber auch der Aufgaben in der Online- und Präsenzklausur bezieht sich hierauf.
     
    Black-Box-Tests
     
    Zunächst geht es um spezifikationsorientierte Testtechniken. Komponenten sollen zu bestimmten Kombinationen von Eingabewerten eine Ausgabe entsprechend der Spezifikation liefern. Diese Tests werden auch als Black-Box-Tests bezeichnet, weil hier nicht interessiert, wie eine Komponente intern arbeitet. Es geht allein darum, ob sie zu gegebenen Eingaben die erwarteten Ausgaben liefert.
     
    Die erste derartige Testtechnik ist die funktionale Äquivalenzklassenbildung. Hier fasst man gleichwertige Eingabewerte zu einer Klasse zusammen, aus der man einen Repräsentanten auswählt. Getestet wird nur mit dem Repräsentanten, was den Testaufwand beträchtlich reduziert. Da die Erfahrung zeigt, dass Fehler vor allem an Klassen- und Intervallgrenzen auftreten, gibt es die Grenzwertanalyse. Hier wählt man als Repräsentanten Werte an den Grenzen eines Intervalls. Bei beiden Testtechniken ist wichtig, dass man gültige und ungültige Repräsentanten testet. Ungültige Repräsentanten sollten dann z.B. dazu führen, dass eine Exception geworfen wird.
     
    Der Entscheidungstabellentest eignet sich, wenn eine natürlich-sprachliche Testbasis vorliegt. Er ermöglicht, die verschiedenen Kombinationen von Eingangsbedingungen übersichtlich darzustellen. Oft ist es dann möglich, Fälle zusammen zu fassen und die Tabelle auf diese Weise stark zu vereinfachen. Auch dies kann den Testaufwand erheblich reduzieren.
     
    Bei der Ursache-Wirkungsanalyse visualisiert man die Beziehungen zwischen Ursachen und Wirkungen als Graph, dessen Kanten logische Verknüpfungen sind. Solche Graphen lassen sich in Entscheidungstabellen überführen.
     
    Beim zustandsbezogenen Test modelliert man ein System als Zustandsautomaten. So kann man die Historie des Systems in den Test einbeziehen. Das Zustandsdiagramm lässt sich in eine Zustandstabelle und in eine Zustandsmatrix überführen. Daraus lassen sich wiederum Testfälle ableiten. Interessant ist diese Testart z.B. für Systeme aus der Automatisierungstechnik.
     
    Auf höheren Teststufen gibt es den anwendungsfallbasierten Test. Ein konkreter Anwendungsfall wird als Use-Case-Diagramm modelliert. Auch hieraus lassen sich Testfälle ableiten.
     
    White-Box-Tests
     
    Während bei den spezifikationsorientierten Testtechniken nicht relevant ist, wie eine Komponente ihre Leistung erbringt (Black-Box-Test), muss man für die kontrollfluss-orientierten Testtechniken den Quellcode eines Programmes kennen. Darum werden diese auch als White-Box-Tests bezeichnet. Bei diesen Testtechniken visualisiert man den Kontrollfluss durch den Quelltext als Graph.
     
    Beim Anweisungsüberdeckungstest möchte man durch geschickte Auswahl möglichst weniger Testfälle sicherstellen, dass alle Anweisungen des Quellcodes ausgeführt werden. Beim Zweigüberdeckungstest sollen die Testfälle nicht nur alle Anweisungen (Knoten) des Graphen abdecken. Auch alle Zweige (Kanten) sollen mindestens ein Mal durchlaufen werden. Dieser Test ist also umfassender als der Anweisungsüberdeckungstest. Noch weiter geht der Bedingungsüberdeckungstest. Er beschäftigt sich mit der Kombination von Bedingungen, die erfüllt sein müssen, damit ein Zweig durchlaufen werden kann. Diese lassen sich z.B. wie eine Digitalschaltung visualisieren. Beim Pfadüberdeckungstest müssen nicht nur alle Kanten durchlaufen werden, sondern jeder mögliche Pfad vom Startpunkt bis zum Endpunkt eines Programmes. Die Zahl möglicher Pfade wächst oft sehr schnell. Entsprechend wächst auch die Zahl nötiger Testfälle.
     
    Erfahrungsbasiertes Testen
     
    Freies Testen ist ein erfahrungsbasiertes Verfahren. Die Testfälle basieren auf Testhypothesen eines erfahrenden Testers. Da hier die Intuition eine große Rolle spielt, sind solche Verfahren schlecht formalisierbar und nicht leicht in den Entwicklungsprozess zu integrieren. Sie werden daher meist nur ergänzend eingesetzt.
     
    Fehlerhypothesen lassen sich methodischer ableiten, wenn man auf der Grundlage bisher entdeckter Fehler Fehlerklassen bildet. Das sind Gruppierungen typischer Schwachstellen, die in vergangenen Tests an ähnlichen Systemen aufgefallen sind. Ein Beispiel für so eine Fehlerklasse wären etwa Fehler bei Klassen oder Datentypen. Konkrete Ausprägungen dieser Fehlerklasse wären dann z.B. Fehler bei Mehrfachvererbung, Typtransformationen oder fehlerhafte Deklarationen von Attributen oder Methoden. 
     
    Exploratives Testen ergänzt das erfahrungsbasierte Testen um ein Element der Analyse und Reflexion. Die dadurch gewonnenen Einsichten werden für die Entwicklung der nächsten Fehlerhypothesen genutzt. Auch dies ist ein Versuch, erfahrungsbasiertes Testen methodischer zu machen.
     
    Testen vs. prüfen
     
    Ein weiterer thematischer Schwerpunkt des Moduls sind Prüftechniken. Während bei Tests vorausgesetzt ist, dass man ein Testobjekt ausführen kann, wird bei einer Prüfung ein Artefakt der Softwareentwicklung nicht ausgeführt sondern inhaltlich nach formalen Kriterien kontrolliert. Dies hat verschiedene Vorteile:
    Nicht nur Quellcode kann geprüft werden, sondern auch Spezifikationen, Modelle, Dokumentationen oder andere Artefakte des Entwicklungsprozesses. Man benötigt keine Testumgebung, Testdaten oder Testtreiber Testen kann man erst, wenn Code vorliegt. Prüfen kann man dagegen in jeder Phase.  
    Entscheidend ist, dass man durch Prüfverfahren Fehler viel früher entdecken kann als durch Tests. Dadurch lassen sich Kosten vermeiden. Allerdings lassen sich durch Prüfungen nicht alle Arten von Fehlern entdecken. Zum Beispiel lassen sich Leistungskennzahlen auf diesem Weg nicht ermitteln, denn dazu müsste Code ausgeführt werden. Im Kurs behandelte manuelle Prüftechniken sind die Inspektion, das technische Review, der Walkthrough und das informelle Review.
     
    Softwaremaße
     
    Es gibt aber auch automatisierte Prüftechniken. So lassen sich z.B. mit geeigneten Werkzeugen sogenannte Softwaremaße bestimmen. Ein gängiges Maß ist sind zum Beispiel die Lines of Code (LOC), mit denen der Umfang eines Quellcodes angegeben wird. Dieses Maß ist nicht so selbstverständlich, wie es auf den ersten Blick scheint. LOCs können stark schwanken, je nachdem welche Formatierungskonventionen angewendet wurden. Dennoch werden LOCs häufig für grobe Umfangsschätzungen verwendet.
     
    Ein genaueres Umfangsmaß ist das Halstead-Maß. Dazu muss man zunächst alle Operanden und Operatoren eines Quellcodes auszählen. Die Anzahl unterschiedlicher Operatoren bezeichnet man mit N1, die der unterschiedlichen Operanden als N2. Operatoren sind z.B. Schlüsselwörter einer Programiersprache, Klammern aber auch Modifier, die die Sichtbarkeit einer Variable festlegen. Operanden sind z.B. Variablen oder auch boolesche Werte wie true oder false. Halstead bezeichnet nun die Summe N1+N2 als Vokabular eines Programmes. Als Volumen bezeichnet er die Summe N1+N2+log(N1+N2). Man kann sich vorstellen, dass das manuelle Auszählen von Operatoren und Operanden für Menschen eine mühselige Arbeit ist. So etwas kann automatisch von Werkzeugen erledigt werden, weshalb man in diesem Zusammenhang von automatisierten Prüftechniken spricht.
     
    Das McCabe Maß wird auch als zyklomatische Komplexität beschrieben. Um das McCabe-Maß berechnen zu können, muss man die Knoten und Kanten eines Kontrollflussgraphen auszählen und die Anzahl verbundener Kontrollflussgraphen bestimmen. McCabe liefert die maximale Zahl linear unabhängiger Programmpfade. Damit kann man abschätzen, wieviele Testfälle man für einen Zweigüberdeckungstest braucht.
     
    Es gibt auch Maße für Bindung und Kopplung von Komponenten.
     
    Problemmuster
     
    Problemmuster sind Anomalien im Quelltext, die erfahrungsgemäß die technische Qualität eines Programms senken. Sie lassen sich durch geeignete Werkzeuge aufspüren, damit sie überarbeitet werden können. Ein bekanntes Beispiel ist die Codedopplung. Wenn an verschiedenen Stellen des Programmes identischer Quellcode steht, muss man bei Änderungen alle entsprechenden Stellen finden. So etwas wird von einem Wartungsprogrammierer leicht übersehen. Meist ist es dann besser, solchen Code in einer eigene Komponente oder Methode zusammenzufassen. Das vermeidet Probleme bei künftiger Wartung. Im Kurs werden viele weitere Problemmuster vorgestellt, etwa mangelnder Polymorphismus, die Verletzung des Geheimnisprinzips, die Verwendung einfacher Typen, die zu Datenklumpen führt oder auch problematisch zusammengesetzte Datentypen.
     
    In den letzten Kapiteln geht es um das Management von Softwaretests sowie die Automatisierung von Tests. In diesem Zusammenhang werden auch ein paar Testwerkzeuge knapp vorgestellt.
     
    Online-Tests und Einsende-Aufgaben
     
    Die Tests decken die Inhalte des Moduls gut ab. Die Einsendeaufgaben konzentrieren sich vor allem auf die Kapitel zur Entwicklung von Testfällen. Aber auch das Entdecken von Problemmustern in Quellcode und die Bestimmung von Softwaremaßen spielt eine Rolle. Man vereinfacht Entscheidungstabellen, zeichnet Kontrollflussgraphen zum Quelltext, verbessert Anomalien in Quellcode, visualisiert komplexe Bedingungen als Digitalschaltung, zeichnet Zustandsautomaten, findet Testklassen, Repräsentanten und Testfälle. Die Aufgaben sind also recht vielfältig. Bei einigen Aufgabentypen hätte ein wenig mehr Übungsmaterial nicht geschadet. Die Aufgaben sind aber didaktisch geschickt gewählt, so dass sie zum Verständnis der vermittelten Konzepte beitragen. Insbesondere geben die Aufgaben einen guten Vorgeschmack auf das, was einen in der Online- und in der Präsenzklausur erwartet.
     
    Die Rückmeldungen meines Tutors kamen auch in diesem Modul sehr zügig. Sein Stil war manchmal etwas knapp, so dass ich gelegentlich noch einmal nachfragen musste. Das hat sich aber dann auch gelohnt und kleinere Unsicherheiten behoben. Ich hatte übrigens den gleichen Tutor wie im Modul "Grundlagen der Informatik 2" zu Beginn meines Studiums. Bei ihm habe ich objektorientiertes Programmieren gelernt. Ich habe mich sehr gefreut, gegen Ende meines Studiums noch einmal von ihm betreut zu werden.
     
    Präsenzklausur
     
    Die Aufgabentypen der Klausur ähnelten den Einsendeaufgaben, so dass man eigentlich gut vorbereitet sein sollte, wenn man alle Aufgaben bearbeitet und die Rückmeldungen seines Tutors genutzt hat. Wissensfragen zu den Prüftechniken spielten auch eine gewisse Rolle. Ich empfand das Arbeitspensum als angemessen für die Dauer der Klausur.
     
    Bei den Aufgaben zur Äquivalenzklassenbildung und Grenzwertanalyse wollte man den Studierenden anscheinend etwas Zeit ersparen, indem man Tabellen zur Verfügung gestellt hat, in die man z.B. Testfälle eintragen konnte. Das Layout dieser Tabellen war für mich allerdings ungewohnt und überraschend. Ich selber hätte meine Tabellen anders aufgebaut, so dass ich gelegentlich Lösungen in falsche Felder eingetragen habe, was ich dann wieder korrigieren musste. Das hat Zeit und Nerven gekostet. Nach der Klausur sprach ich mit einem Kommilitonen, dem es ähnlich ergangen war wie mir. Der hatte die zur Verfügung gestellten Tabellen gar nicht erst genutzt sondern sich lieber selbst welche gezeichnet. Diese Freiheit hätte ich mir auch nehmen sollen. Die dafür nötige Zeit hätte ich bestimmt mit Zinsen zurück bekommen. Wegen dieser Schwierigkeiten rechnete ich damit, ein paar Flüchtigkeitsfehler gemacht zu haben.
     
    Diese Sorge war anscheinend unbegründet. Das Klausurergebnis war erfreulich und spiegelte auch meinen subjektiven Eindruck wieder, den Stoff des Moduls im wesentlichen verstanden zu haben.
     
    Fazit
     
    Grundsätzlich finde ich es sehr sinnvoll, dass das Curriculum ein eigenes Modul zum Thema Testen enthält. Gut gefallen haben mir vor allem die Kapitel zur Entwicklung von Testfällen, weil ich hier die Einsendeaufgaben didaktisch klug gewählt und auch interessant und abwechslungsreich fand. Auch das Thema Problemmuster war für mich spannend. Es hat Spaß gemacht, in fremdem Quellcode nach problematischen Stellen zu suchen und sich bessere Lösungen zu überlegen. Weniger interessant waren für mich die Kapitel zu Prüftechniken und zum Management von Testfällen. Diese empfand ich als theoretischer und trockener, was sich bei diesem Stoff wohl auch nicht vermeiden lässt. Wegen dieser für mich etwas zäheren Abschnitte zählt Softwaretesten zwar nicht zu meinen Favoriten im Studienbereich Softwaretechnik, aber ich ziehe hier ein positives Fazit.
  9. kurtchen
    Bislang habe ich folgende Module abgeschlossen:
     
    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
     
    Aktuell in Bearbeitung
    - Web-Anwendungen 2
    - Softwaretechnik 2
  10. kurtchen
    Mit diesem Blog möchte ich Leser informieren, die sich für ein Fernstudium der Informatik interessieren. Ich studiere seit September 2015 für einen Bachelor in Web- und Medieninformatik an der W3L in Dortmund. Bislang gefällt mir das Studium ziemlich gut. Leider ist der Studiengang wenig bekannt, weswegen ich in meiner Region nur wenige Studierende kenne, die in etwa so weit sind wie ich. Das erschwert natürlich den Erfahrungsaustausch im Studium. Anlass für den Blog ist darum auch mein Wunsch, das Studium an der W3L ein wenig bekannter zu machen, in der Hoffnung, dass künftige Studierende es ein wenig leichter haben mögen als ich.
     
    Ich bin berufstätig, habe eine Familie und muss nun auch noch Zeit zum Lernen finden. Darum habe ich mir vorgenommen, nicht zu viel Zeit in den Blog zu stecken. Tägliche Berichte, wie es mir gerade geht oder wie sich meine Studienmotivation entwickelt, möchte ich hier nicht einstellen.
     
    Geplant sind Berichte über Module des Studienganges, die ich abgeschlossen habe. Die Modulberichte werden also alle in der Rückschau sein.
     
    Kurz zu den Rahmenbedingungen des Studiums:
    - Der Studienvertrag wird geschlossen mit der W3L. Zugleich schreibt man sich an der FH-Dortmund ein. Man bucht Module über die W3L und nutzt deren Lernplattform. Der Bachelor wird am Ende von der FH-Dortmund verliehen. Das ist vielleicht interessant für Leute, die wert auf einen Abschluss einer staatlichen FH legen.
    - Ich zahle eine monatliche Rate von 332 Euro über 36 Monate. Dazu musste ich mich vertraglich binden. Man kann auch flexibel studieren. Dann zahlt man nur die Module, die man gerade bucht, ohne irgendeine weitere Verpflichtung einzugehen. Diese Flexibilität erkauft man aber mit höheren Kosten. Ich habe die ersten Monate flexibel studiert und bin dann in den Vertrag gewechselt, als ich gemerkt habe, dass ich gut zurechtkomme. Soweit ich informiert bin, ist im Vertrag eine Probezeit vorgesehen, so dass man auch von Anfang an von den günstigen Bedingungen eines Studienvertrages profitieren könnte.
    - An der W3L gibt es auch die Möglichkeit, durch Abschluss bestimmter Modulkombinationen ein Zertifikat über wissenschaftliche Weiterbildung zu erhalten. Das wird ebenfalls verliehen von der FH Dortmund. Für mich war das ein wichtiger Grund, mich für das Studium bei diesem Anbieter zu entscheiden. Ich war mir anfangs nicht sicher, ob ich die Ausdauer für ein ganzes Studium haben würde. Inzwischen bin ich recht zuversichtlich, dass meine Puste für die ganze Strecke reichen kann. Trotzdem finde ich den Gedanken beruhigend, dass ich nicht mit leeren Händen aussteigen muss, sollten sich meine Lebensumstände ändern.
    - Die Module schließen mit einer schriftlichen Prüfung ab. Prüfungstermine gibt es etwa alle 6-7 Wochen. Leider gibt es bislang nur 3 Prüfungsstandorte: Dortmund, München, Wien. In München fällt eine Gebühr von 50 Euro pro Prüfungstermin an, egal wie viele Klausuren man an dem Termin schreibt. Das ist für mich ärgerlich, weil München für mich am besten zu erreichen ist und ich die meisten Klausuren dort schreibe. Die schriftlichen Prüfungen dauern in der Regel 2 Stunden.
    - In manchen  Modulen gibt es zusätzlich eine mündliche Prüfung, z.B. wenn man "Präsentation" oder "Rhetorik" belegt.
    - Zwei Mal pro Jahr gibt es einen Präsenztag mit Vorträgen und Workshops zu verschiedenen Themen mit Informatik-Bezug. Die Teilnahme ist nicht verpflichtend. Ich mache das aber gerne, denn es ist eine gute Möglichkeit, einmal andere Kommilitonen zu treffen und sich über Belange des Studiums auszutauschen. Das hilft bei der Auswahl der nächsten Module, der Zeiteinteilung im Studium, auch bei der Klausurvorbereitung. Ich nehme an, auch für die Wahl der Wahlpflichtmodule wird dieser Austausch wertvoll sein. Beim Präsenztag gibt es auch Workshops zur Zeiteinteilung im Studium oder Mathe-Tutorien. Insbesondere letzteres ist für viele Kommilitonen nützlich. Da man an der W3L auch Wirtschaftsinformatik studieren kann, gibt es am Präsenztag auch Vorträge zu solchen Themen.
    - In jedem Kurs hat man einen Tutor, der einen betreut, Aufgaben korrigiert und Fragen zum Stoff beantwortet. Hier habe ich überwiegend sehr positive Erfahrungen gemacht. Bei manchen Tutoren ist die Reaktionszeit etwas länger. Das ist unpraktisch, wenn man auf einen Prüfungstermin hinarbeitet und mit einem Problem alleine nicht weiterkommt. Zum Glück hatte ich dieses Problem bislang nur selten.
    - Zu jedem Kurs gehören Tests und Aufgaben. Tests löst man am Computer. Es sind meist Multiple-Choice-Tests, manchmal Zordnungstests oder Lückentexte. Test werden automatisch ausgewertet. Man kann sie beliebig oft wiederholen. Der Sinn der Tests ist, den Lernstoff zu festigen, sich aktiv damit auseinander zu setzen und beim Durcharbeiten ein Feedback zu haben, ob man alles gut verstanden hat. Die Anzahl der Tests kann unterschiedlich sein. Oft sind es so um die 80 Tests.
    - Aufgaben werden an den Tutor geschickt und von diesem bewertet. Im Gegensatz zu den Tests erfordern Aufgaben eine aktivere Auseinandersetzung mit dem Stoff. Hier muss man z.B. etwas programmieren, UML-Diagramme zeichnen, Skizzen für Web-Oberflächen zeichnen, den Einsatz verschiedener Techniken argumentativ gegeneinander abwägen. In den Aufgaben muss man 50% der möglichen Punkte holen, um zur Abschlussklausur zugelassen zu werden.
    -  In jedem Modul gibt es einen Abschlusstest, den man bei Nichtbestehen zwei mal wiederholen darf. Die Aufgabentypen sind ähnlich wie in den Tests. Der Abschlusstest muss bestanden werden, um zur Klausur zugelassen zu werden. Für besonders gutes Abschneiden bekommt man Bonuspunkte, mit denen man die Klausurnote ein wenig verbessern kann.
    - Außerdem kann man freiwillig eine Online-Klausur schreiben. Hier sind unter Zeitdruck mehrere Aufgaben zu bearbeiten, die vom Tutor korrigiert werden. Die Online-Klausur ist eine Art Probelauf für die Präsenzklausur, weil man einen Eindruck von der Art der Aufgaben und auch vom Zeitdruck in der Klausur bekommt. Auch hier kann man für gutes Abschneiden Bonuspunkte bekommen, mit denen man das Klausurergebnis noch einmal ein bisschen verbessern kann. Der Vorzug ist, dass man etwas gelassener in die Präsenzprüfung gehen kann, weil man sich zumindest ein paar kleinere Ungenauigkeiten erlauben kann. Eine fehlgeschlagene Online-Klausur darf man nicht wiederholen.
    - Zu jedem Modul erhält man ein Lehrbuch. Man kann, muss aber nicht am Bildschirm lernen. In vielen Modulen finde ich es praktischer, mit dem Buch zu arbeiten, z.B. in Mathematik. In anderen Modulen arbeite ich eher in der Lernplattform, z.B. bei den Programmiermodulen, weil ich da schnell zwischen IDE und Lernplattform wechseln kann. Es gefällt mir, hier die freie Wahl zu haben. Videos spielen auf der Lernplattform eine recht geringe Rolle. Man lernt vorwiegend durch Text und Bild.
    - Mit der Betreuung durch das Studienbüro bei organisatorischen Fragen und Problemen habe ich bislang sehr positive Erfahrungen gemacht. Man merkt, dass die W3L ein recht kleiner Anbieter ist. Das gefällt mir aber gut, denn ich habe ich der Regel die gleichen Ansprechpartner am Telefon und lande nicht in einem Callcenter.
    - Die vorherrschende Programmiersprache ist bislang Java. Serverseitige Webprogrammierung läuft mit JSP. Das ärgert manche Kommilitonen, die beruflich meist PHP einsetzen. Mein Eindruck ist, dass die W3L im Bereich Softwaretechnik stark ist. An den Mathemodulen gefällt mir, die gute tutorielle Betreuung. Das ist für viele Kommilitonen eine Hürde und ich habe den Eindruck, dass man hier gute Lehrkräfte gefunden hat, die helfen können, diese Herausforderung zu meistern. Bislang nicht so ganz so gut finde ich die Module zu Webtechnologien. Das ist für mich ein wenig enttäuschend, weil der Studiengang ja "Web- und Medieninformatik" heißt. Hier hat sich in den letzten Jahren mit dem Siegeszug des mobilen Internets viel getan, was sich noch nicht in den Modulen wiederspiegelt.
    - Man kann die Module in beliebiger Reihenfolge belegen, auch wenn für viele Module empfohlen wird, bestimmte Module zuvor abgeschlossen zu haben. Im flexiblen Studienmodell kann man buchen was man will und wann man will. Im Vertragsmodell kann man jeden Monat ein Modul freischalten lassen. Wie lange man für ein Modul braucht, entscheidet man selbst. Man kann sich zu jedem Modul an jedem beliebigen Prüfungstermin zur Klausur anmelden, solange man sich rechtzeitig - also ca. 10 Tage vorher - meldet.
    - Die Lernplattform bietet technisch Möglichkeiten, sich mit Kommilitonen auszutauschen. Foren, Chats und solche Sachen. Da ist aber nie jemand unterwegs, so dass einem das rein gar nichts nützt. Wer auf so etwas wert legt, nimmt bei den Klausurterminen oder Präsenztagen Kontakt zu Kommilitonen auf und organisiert einen direkten Austausch, per Mail, WhatsApp, Facebook oder was es sonst so gibt.
     
    Ich hoffe auf interessierte Leser.
     
    Kurtchen
     
  11. kurtchen
    Im Bereich Mathematik möchte ich nicht nur die einzelnen Module beschreiben, sondern auch etwas zum Gesamtkonzept sagen, wie es für mich bislang erkennbar ist. Aus Gesprächen mit Kommilitonen weiß ich, dass Mathematik für viele Studierende ein "Angstfach" ist. Auch eine lästige Pflicht, die man irgendwie "abhaken" und dann hinter sich lassen möchte. Selten wird Mathematik als etwas beschrieben, das Spaß gemacht hat.
     
    Die anscheinend weit verbreitete Abneigung gegen Mathematik teile ich nicht. Zu Schulzeiten habe ich im Abitur einen Mathe-Leistungskurs gewählt. (Damals, als es noch Leistungskurse gab.) Mathematik gehörte für mich zu den Schulfächern, die mir Spaß gemacht haben und die mir relativ leicht gefallen sind. Das muss man vielleicht im Hinterkopf behalten, wenn man meine folgenden Modulberichte liest. Ich bin bislang gut zurechtgekommen, aber ich mag Mathe auch.
     
    Allerdings ist mein Abitur schon lange her. Und seit der Schule hatte ich wenig Gelegenheit, mich mit Mathematik zu beschäftigen, weil ich mir einen Beruf ausgesucht habe, der keinerlei Bezüge zu diesem Gebiet hat. Als ich mich über Informatik-Studiengänge informiert habe, spielte es also schon eine Rolle für mich, was in Mathematik verlangt wird. Verschiedene Unis und FHs bieten auch Vorkurse an, die den Einstieg erleichtern sollen. Einen solchen Kurs durchgearbeitet hatte ich nicht, aber reingeschnuppert. Und dabei gemerkt, dass ich mich noch ziemlich gut an den Stoff bis zur 10. Klasse erinnerte, von der Oberstufenmathematik aber nicht mehr viel übrig war.
     
    Die W3L bietet die Möglichkeit, sich zu den Modulen Probekapitel runterzuladen und mal "reinzuschnuppern". Darum wusste ich, dass es im Modul "Mathe2" bzw. "Mathematik für Informatiker" um Analysis und Lineare Algebra geht. Inhalte, die mir zu Abiturzeiten geläufig waren, mir aber nach vielen Jahren fremd vorkamen. Der Stoff von "Mathe3" bzw. "Angewandte Mathematik" war mir unbekannt. Hier geht es um Numerik, Grafik, Kryptik. 
    Ich hatte also vor Mathematik nicht unbedingt Angst aber doch Respekt, weil mir dämmerte, dass es schon ein Stück Arbeit werden würde, mich nach langer Abstinenz wieder in dem Thema einzufinden.
     
    Im Bachelor-Studiengang "Web- und Medieninformatik" der W3L gibt es insgesamt 4 Mathematik-Module mit je 5 ECTS. Sie heißen:
    - Mathe1: Mathematisch-logische Grundlagen der Informatik
    - Mathe2: Mathematik für Informatiker
    - Mathe3: Angewandte Mathematik
    - Statistik
     
    Die Studierenden im Studiengang "Wirtschaftsinformatik" müssen Mathe3 "Angewandte Mathematik" nicht belegen, können es aber im Wahlpflichtbereich buchen.
    Da ich inzwischen das dritte Modul "Angewandte Mathematik" bearbeite, kann ich sagen, dass Mathe2 und Mathe3 inhaltlich sehr eng aufeinander aufbauen. Die beiden Module sind vom gleichen Autor geschrieben, der zugleich auch mein Tutor ist. Hier ist ein modulübergreifendes Konzept aus "einem Guss" erkennbar.
     
    Das Modul Mathe1 hat drei Autoren. Man merkt hier einen anderen Stil. Es geht erkennbar darum, den Studierenden einen sanften (Wieder-)Einstieg ins Fach zu bieten. In allen drei Modulen gibt es ein Bemühen, inhaltliche Bezüge zur Informatik herzustellen. Sehr gelungen finde ich das bislang in Mathe1 und Mathe3 gelöst. In Mathe2 wirkt es auf mich bislang ein wenig bemüht. Allerdings muss man sich klarmachen, dass Lineare Algebra und Analysis unbedingte Voraussetzungen für die anwendungsbezogenen Themen Numerik, Grafik und Kryptik aus dem dritten Modul sind. Da muss man also einfach durch, auch wenn man zwischenzeitlich nicht sieht, was das genau mit Informatik zu tun hat.
     
    An den Präsenztagen werden üblicherweise Tutorien zur Mathematik angeboten. Die bezogen sich bislang immer auf das Modul Mathe2, es ging also um Analysis und/oder Lineare Algebra. Dies scheinen die Themen zu sein, die den Studierenden am meisten Mühe machen.
     
    Zu Statistik kann ich bislang noch nichts sagen, da ich dieses Modul noch nicht belegt habe.
     
    Die W3L muss damit zurechtkommen, dass die Studierenden mit recht unterschiedlichen Vorkenntnissen kommen. Es gibt Studierende mit Abitur, das im Idealfall noch nicht lange zurückliegt. Die finden insbesondere im Modul Mathe2 viel bekannten Stoff. Es gibt aber auch Studierende ohne Abitur, die z.B. nach einer Ausbildung zum Fachinformatiker studieren. Für die ist der in den Mathe-Modulen behandelte Stoff oft Neuland und die Bearbeitung ist entsprechend zeitaufwändiger. Es gibt aber auch Abiturienten, die sich mit den Mathe-Modulen schwerer tun, z.B. mit den Modulen Mathe1 und Mathe3. Weil dort nämlich Stoff behandelt wird, denn man aus der Schule in der Regel nicht kennt.
     
    Manche Studierende möchten die Mathe-Module einfach nur bestehen. Mathematik gilt als eines der Fächer, an denen sich entscheidet, ob man das Studium beenden kann. Viele Studierende sind daher der Meinung, dass man die Mathe-Module nicht vor sich herschieben sondern zügig angehen sollte. Wenn es schief geht, soll es bald schiefgehen, bevor man viel Zeit und Geld investiert hat.
     
    Aber natürlich gibt es auch Studierende, die die Mathematik-Module mit dem Ehrgeiz studieren, dort gute Leistungen zu erbringen. Mein bisheriger Eindruck ist: Die W3L hat ein Mathematik-Konzept, dass beiden Fraktionen etwas bietet. Wer die Klausuren einfach gerade so bestehen möchte, hat eine gute Chance, wenn er sich in der Vorbereitung auf bestimmte Grundlagen konzentriert, mit denen er relativ sicher Punkte holen kann. Wer wirklich gut abschneiden möchte, muss auch bereit sein, sich breiter vorzubereiten und etwas mehr Selbstständigkeit zeigen. Das betrifft hier vor allem den Bereich Bonuspunkte. Für die Präsenzklausuren ist die Stoffmenge ein bisschen eingeschränkt. Nicht alles, was im Kurs behandelt wird, kann auch in der Klausur drankommen. Das gibt den Leuten, die nur bestehen wollen, die Möglichkeit, sich bei der Vorbereitung ein bisschen zu spezialisieren. Bei den Abschlusstests kann aber ALLES drankommen und auch bei den Online-Klausuren wird breit geprüft. Wer also mit ein paar Bonuspunkten in die Abschlussklausur gehen möchte, der muss sich schon mit dem ganzen Stoff so auseinandersetzen, dass er sein Verständnis unter Beweis stellen kann.
     
    Mir gefällt, dass es hier ein Angebot gibt, aus dem Leute, die Mathematik mögen, etwas machen können; das aber auch Leuten, denen Mathematik nicht so leicht fällt, eine realistische Chance bietet, ihr Studium erfolgreich zu beenden und ihre Stärken in den anderen Bereichen auszuspielen.
     
    Bedenken muss man allerdings: Sowohl für die Web- und Medieninformatiker als auch für die Wirtschaftsinformatiker ist Mathematik Pflicht und die Module gehen genau wie alle anderen Module  in die Berechnung der Endnote ein.
     
    Abschließend möchte ich noch bemerken, dass die W3L ja mit der FH Dortmund zusammenarbeitet, die Mathematik-Module also FH und nicht Uni-Niveau haben. Gefragt ist also eher problemlösende Anwendung mathematischer Konzepte und weniger das Führen von Beweisen. Damit kann man eventuell in den Klausuren das letzte Quäntchen rausholen. Bestehen kann man aber auch, wenn man im Beweisen nicht so stark ist.
  12. kurtchen
    Welche Rolle spielt das Modul im Studium?
     
    Das Modul "Web-Engineering" ist eines der möglichen Vertiefungsmodule im Studiengang "Web- und Medieninformatik". Es ist außerdem ein Pflichtmodul für die Weiterbildungszertifikate "Web-Frontend-Programmierer" und "Web-Entwickler". Laut Studienplan sollte es ab dem 5. Semester belegt werden. Das Modul "Web-Programmierung" gilt als inhaltliche Voraussetzung, weil man Grundkenntnisse in HTML, Javascript und am besten auch in XML benötigt. Überraschen könnte, dass auch Grundlagen der Informatik 1 und 2 als Voraussetzung genannt werden. Das liegt daran, dass die Programmierung mit serverseitigen Frameworks wie dem GWT oder dem ZK Framework eine große Rolle spielt, und dafür braucht man solide Java-Kenntnisse. Doch davon später mehr. Empfohlen wird auch, das Modul "Skripsprachen" vorher zu belegen. Dieses Modul bietet eine umfangreichere Einführung in Javascript als "Web-Programmierung". Leider wird es nicht mehr angeboten und laut Studienbüro ist auch kein Ersatz in Sicht. Ich finde das recht ärgerlich, denn beim Durcharbeiten von "Web-Engineering" habe ich oft gemerkt, dass vertiefte JavaScript-Kenntnisse nützlich gewesen wären.
     
    Die Streichung von "Skriptsprachen" wurde mir gegenüber damit begründet, dass viele Studierende sich beklagt hatten, das Modul sei veraltet gewesen. Mir liegt die letzte Auflage des verwendeten Lehrbuches vor. Mein Eindruck ist, dass ich dieses Modul immer noch sehr gerne belegt hätte, und dass es eine sehr gute Vorbereitung für "Web-Engineering" gewesen wäre. Schade, aber nicht zu ändern.
     
    Das Lehrbuch
     
    Der Kurs basiert auf dem Lehrbuch "Web 2.0-Anwendungen mit AJAX" von Jürgen Priemer. Herr Priemer ist auch einer der Autoren des Lehrbuches von "Grundlagen der Informatik 3", wo es unter anderem um GUI-Programmierung in Java am Beispiel von Swing geht. Ich meine, seinen Stil wiedererkannt zu haben. Mit GdI3 kam ich gut zurecht und auch dieses Lehrbuch hat mir wieder gut gefallen. Mit ca. 350 Seiten ist der Umfang leicht unterdurchschnittlich. Das heißt aber nicht, dass man dieses Modul überdurchschnittlich schnell durcharbeiten kann. Die Themenvielfalt ist groß und jeder Themenwechsel geht zu Lasten des Arbeitstempos.
     
    Worum geht es?
     
    Worum geht es nun inhaltlich? Springer hat ja ein verpflichtendes Modul "Web-Anwendungen 2", bei dem es um die Programmierung von Web-Anwendungen mit Java-Server-Pages (JSP) geht. Hier ist das GUI eine HTML-Seite, die von einem Servlet erzeugt wurde. Der Nutzer macht Eingaben in ein Formular und sendet es ab. Das Servlet empfängt einen HTTP-Request, dem Nutzereingaben als Parameter angehängt sind. Das Servlet verarbeitet diese Anfrage, interagiert zu diesem Zweck mit Fachkonzept-Klassen und eventuell auch einer Datenbank und baut eine neue HTML-Datei als Antwort auf die Nutzeranfrage. Diese empfängt der Browser des Nutzers und rendert daraus eine Darstellung, die der Nutzer dann sieht. So weit der klassische Ablauf. Eine grundlegende Beschränkung ist, dass die Serverantwort als neue Seite empfangen wird. Es wird also nach jeder Nutzeranfrage eine komplett neue Seite geladen und gerendert.
     
    Wenn man möchte, dass Web-Anwendungen reaktiver und interaktiver sind, hilft die Technik des XML-HTTP-Requests. Dazu braucht man Code, der clientseitig ausgeführt wird. Der kleinste gemeinsame Nenner auf der Clientseite ist Javascript, das in allen modernen Browsern zur Verfügung steht. Wir haben also clientseitig ein Event-Handling in Javascript, das bestimmte Nutzeraktionen registriert, z.B. dass der Nutzer gerade das Postleitzahlen-Eingabefeld verlassen hat. Der clientseitige Code schickt nun dem Server einen sogenannten XML-HTTP-Request, der z.B. die gerade eingegebene Postleitzahl enthält. Der Server verarbeitet diesen Request, z.B. in dem er bei einem Web-Service den zur Postleitzahl passenden Ort nachschlägt. Nun kommt der entscheidende Punkt: Der Server antwortet nicht mit einer neuen Seite sondern schickt eine Response im XML- oder JSON-Format. Diese Response wird von clientseitigem JavaScript-Code in einer Callback-Funktion ausgewertet. Diese Callback-Funktion verändert oder löscht Elemente der dargestellten Seite oder fügt ihr neue Elemente hinzu. Dies geschieht durch Manipulation des Document Object Models (DOM), dass der Browser auf Grundlage der zuvor empfangenen HTML-Datei erzeugt hat. Zum Beispiel kann die Callback-Funktion nun den Ortsnamen in das Eingabefeld Ort einfügen oder eine Fehlermeldung anzeigen, dass die eingegebene Postleitzahl nicht existiert und den Absenden-Knopf des Formulars deaktivieren, bis der Nutzer diesen Fehler behoben hat.
     
    Der oben beschriebene, grundlegende Prozess steht im Mittelpunkt des Moduls. Durch ihn können Web-Anwendungen reaktiver werden. Seiteninhalte können sich dynamisch ändern, ohne das eine Seite komplett neu geladen werden muss. Web-Anwendungen können mit GUIs ausgestattet werden, die denen von Desktop-Anwendungen ähneln. Sie können komplexere Funktionalität und ein insgesamt flüssigeres Nutzungserlebnis bieten.
     
    Der Preis dafür: Wir müssen nicht nur serverseitigen Code in einer serverseitigen Sprache programmieren (wie z.B. PHP oder Java), sondern auch clientseitigen Code in JavaScript. Wir müssen ein bisschen Hirnschmalz darauf verwenden, die Interaktion zwischen client- und serverseitigem Code hinzubekommen. Und das ganze wird eventuell noch dadurch verkompliziert, dass wir Inhalte von unterschiedlichen Servern oder Web-Services einbinden.
     
    Es gibt nun im wesentlichen drei Möglichkeiten, Web-Anwendungen dieser Art zu implementieren:
    1. Wir programmieren den clientseitigen Code von Hand in JavaScript aus. Dann müssen wir uns damit auseinander setzen, dass es Unterschiede zwischen den Browsern gibt. Wir müssen also bedingte Verzweigungen in unseren Code einbauen und Fallbacks schreiben.
    2. Wir verwenden ein clientseitiges JavaScript-Framework, dass uns die Arbeit vereinfacht. Bibliotheken verbergen die Unterschiede zwischen den Browsern hinter einheitlichen Funktionsaufrufen und vereinfachen den Umgang mit dem XML-HTTP-Request und der Response. Als Bonus bekommen wir in der Regel Funktionen zur einfachen DOM-Manipulation und fertige GUI-Elemente, zum Bau interaktiver Oberflächen. Im Kurs werden 2 derartige Frameworks vorgestellt: Prototype und das sehr verbreitete JQuery.
    3. Wir verwenden ein serverseitiges Framework, das uns erlaubt, den gesamten Code, auch für das was auf dem Client passieren soll, in EINER serverseitigen Sprache zu schreiben. Im Kurs behandelt wird zunächst das Google Web Toolkit (GWT). Hier übersetzt ein Compiler clientseitigen Code von Java nach JavaScript. Auch das ZK Framework wird vorgestellt. Dort programmiert man ebenfalls alles in Java. Der Java-Code wird aber nicht zu JavaScript übersetzt. Stattdessen gibt es zu GUI-Klassen in Java korrespondierende fertige Pendants in JavaScript, die automatisch clientseitig eingebunden werden und mit den serverseitigen Klassen per Remote Procedure Call kommunizieren. Der Vorteil für den Entwickler: Er kann eine (verteilte) Web-Anwendung rein in Java schreiben. Das fühlt sich dann fast an, als würde man eine Desktop-Anwendungen programmieren.
     
    Diese Inhalte bilden den Kern des Moduls. Die verschiedenen Ansätze werden immer wieder am Beispiel eines Heimwerker-Portals demonstriert, dass schrittweise um verschiedene Funktionalitäten erweitert wird. Im Kurs gibt es viele praktische Programmieraufgaben, was natürlich Spaß macht.
     
    Herausforderungen speziell bei diesem Modul
     
    Schwierig ist der häufige Wechsel der Frameworks. Man ist ständig mit neuer Syntax konfrontiert und wird nie richtig sicher im Umgang mit einem Framework. Eine weitere Schwierigkeit ist, dass sich Frameworks schnell weiterentwickeln. Ich hatte zum Teil Mühe, Codebeispiele aus dem Kurs zum Laufen zu bekommen. Oft war hier zusätzliche Zeit für Recherche nötig, um herauszufinden, wie bestimmte Dinge inzwischen gehandhabt werden. Und das, obwohl der Kurs noch gar nicht so alt ist. Das scheint der Preis dafür zu sein, wenn man aktuelle Themen in Module aufnimmt.
     
    Der Umgang mit dieser Schwierigkeit wurde mir erleichtert durch die guten Hilfestellungen und Tipps meines Tutors, der immer wieder Ideen beisteuerte, woran es liegen könnte, dass etwas nicht (mehr) läuft.
     
    Als - durchaus klausurrelevanten - Bonus gibt es noch Kapitel über neue Funktionen in HTML5, wie z.B. das Canvas-Element oder Local Storage. Außerdem gibt es Kapitel über Mashups, also Möglichkeiten, Inhalte aus Web-Diensten in eigene Seiten einzubinden, z.B. Kartendienste, RSS-Feeds, Photo-Dienste, Suchmaschinen und dergleichen. Den Abschluss bildet ein Kapitel über die Google-App-Engine.
     
    Mir hat das Modul viel Spaß gemacht, weil es sehr praktisch war und es viele Einsendeaufgaben gab, bei denen es um Problemlösen ging. Es war schwerpunktmäßig ein Programmiermodul.
     
    Die Präsenzklausur
     
    Was mir im Hinblick auf die Klausur Sorge gemacht hatte: In der Präsenzklausur darf man keinerlei Hilfsmittel verwenden. Ich stellte mir die Frage, wie ich mir die syntaktischen Feinheiten mehrer Frameworks einprägen sollte. Und wie ich vermeiden sollte, diese in der Klausur durcheinander zu bringen.
    Diese Sorge war aber unbegründet: Im Gegensatz zum Kurs selbst spielt in der Klausur das Schreiben von Code eine untergeordnete Rolle. Hier geht es vor allem darum, die grundlegenden Abläufe im Zusammenspiel von client- und serverseitigem Code zu verstehen. Auch geht es darum, die Architektur und die konzeptionellen Unterschiede zwischen den verschiedenen Frameworks zu begreifen.
     
    Die Klausur deckt Inhalte aus allen Teilen des Moduls ab. Das ist möglich, weil es auch kleinere Aufgaben mit Wissensfragen gibt, so dass man mit wenig Zeit abchecken kann, ob der Studierende wirklich alle Kapitel durchgearbeitet hat. Das wechselt sich dann wieder ab mit problemlösenden Aufgaben, bei denen man eine eigene intellektuelle Leistung erbringen muss. Eine gut gestellte Klausur, muss ich sagen.
     
    Das heißt leider nicht, dass ich da unbedingt gut abgeschnitten habe. Ein Ergebnis liegt mir noch nicht vor, aber ich weiß inzwischen, dass ich einige "Böcke geschossen" und auch ein paar Sachen verwechselt habe. Die nächsten Wochen werden zeigen, wie stark sich das auf meine Note auswirken wird. Falls sie nicht so gut ausfällt, muss ich mir das aber selbst zuschreiben. Fair gestellt war die Klausur in jedem Fall.
     
    Für wen ist es geeignet?
     
    Web-Engineering ist ein Modul, dass niemand belegen muss. Darum stellt sich am Ende die Frage, wem ich es empfehlen möchte:
    - Leute, die praktische Module mit Programmieraufgaben mögen.
    - Leute, die Spaß daran haben, in rascher Folge neue Frameworks auszuprobieren.
    - Leute, die damit zurechtkommen, auch mal selbst zu recherchieren, weil sich Inhalte schon wieder weiterentwickelt haben.
    - Leute, die es nicht darauf anlegen, den Wahlpflichtbereich mit möglichst wenig Arbeitsaufwand hinter sich zu bringen.
    - Leute, die auch eine schlechtere Note riskieren möchten, wenn dafür die Modul-Inhalte spannend sind.
  13. kurtchen
    Zur Rolle des Moduls im Studiengang

    Das Modul "Business Intelligence" ist ein Pflichtmodul für Studierende im Studiengang "B.Sc. Wirtschaftsinformatik". Dort ist es auch dem Studienbereich "Wirtschaftsinformatik" zugeordnet. Studierende der "Web- und Medieninformatik" dürfen es im Vertiefungsbereich belegen. Den Wirtschaftsinformatikern wird empfohlen, dieses Modul zusammen mit "Human Resources" und einem weiteren Wahlpflichtmodul im 6. Fachsemester zu belegen. Es ist also vorgesehen, dieses Modul im gleichen Semester zu bearbeiten wie die Bachelorarbeit. Dies erklärt vielleicht den vergleichsweise niedrigeren Bearbeitungsaufwand.
     
    Formale Voraussetzungen gibt es keine, so dass das Modul theoretisch auch schon im ersten Fachsemester gebucht werden dürfte. Als inhaltliche Voraussetzungen werden "Data Warehouse & Data Mining" sowie "BWL2" genannt. Dies erscheint mir sinnvoll. Business Intelligence hat eine große inhaltliche Überlappung mit dem Modul Data Mining, nimmt aber noch stärker eine betriebswirtschaftliche Perspektive ein. Mehr noch als im Modul Data Mining liegt also der Fokus darauf, wie man Methoden der Business Intelligence für den Erfolg eines Unternehmens nutzen kann. Die Implementierung dieser Methoden in einer konkreten Programmiersprache ist nicht Thema des Moduls. Es betrachtet Business Intelligence aus Anwender- bzw. Nutzerperspektive. Das Modul Data Mining ist eine nützliche Vorbereitung, weil man dadurch schon viel über die Funktionsweise analytischer betrieblicher Informationssysteme (im Vergleich zu operativen Systemen) weiß. BWL2 ist nützlich, weil es viele inhaltliche Bezüge zwischen dem Lehrbuch zur Unternehmensführung aus BWL2 und den Methoden der Business Intelligence gibt.
     
    Zum Lehrbuch
     
    Das Lehrbuch "Basiswissen Business Intelligence" ist von Christoph Engels und lag mir in der 2. Auflage von 2015 vor. Es hat nur ca. 150 Seiten, gehört aber zu den Lehrbüchern mit kleinerer Schrift und engerem Druck, was die Seitenzahl etwas relativiert. Der Stoffumfang erscheint mir im Vergleich zu anderen Modulen geringer. Allerdings ist das Buch ziemlich dicht geschrieben und treibt sein Thema konsequent voran. Viel Redundanz gibt es hier nicht. Es ist in drei Teile gegliedert:
    Die betriebswirtschaftliche Sicht Die Methoden der Business Intelligence Die Werkzeuge der Business Intelligence  
    Teil 1 beginnt mit einem Kapitel zur "multidimensionalen Perspektive". Hier geht es im wesentlichen um den Unterschied zwischen operativen und analytischen Informationssystemen. Operative Systeme sind z.B. durch häufige Schreibzugriffe und eine starke Datensatzorientierung ausgezeichnet. Sie unterstüzten die alltäglichen Geschäftsprozesse des Unternehmens. Ein Beispiel für ein operatives Informationssystem wäre z.B. ein Bestellsystem. Analytische Informationssysteme verdichten Daten aus operativen Systemen (und anderen Quellen), um Führungskräfte bei unternehmerischen Entscheidungen zu unterstützen. Sie helfen also z.B. bei der Steuerung des Unternehmens und bei der Planung.
     
    Weitere Kapitel behandeln Kennzahlensystem, Performance Management, Planungskoordination, externes Rechnungswesen, Konzernkonsolidierung, Zielkostenrechnung und Kampagnen. Das Tempo in diesen Kapiteln ist hoch und der Stoff geht nicht in die Tiefe, behandelt also z.B. keine Spezialfälle. Die Intention scheint vielmehr zu sein, einem Überblick über mögliche Anwendungskontexte von Business Intelligence zu vermitteln. Um die allgemeinen Konzepte bildlicher und konkreter werden zu lassen, werden sie gelegentlich durch Beispiele aufgelockert. Diese stammen vor allem aus der Tourismusbranche. Solche Fallbeispiele werden in den folgenden Teilen des Lehrbuches häufiger und umfangreicher. Touristik bleibt dabei das gemeinsame Thema.
     
    Teil 2 behandelt Methoden der Business Intelligence. Hier geht es zunächst um klassisches Reporting und im Kontrast dazu OLAP (Online Analytical Processing). Für OLAP wird ein multidimensionaler Datenwürfel aufgebaut, der durch die grundlegenden Operationen Slicing, Dicing und Drill down unmittelbar erkundet und untersucht werden kann, um in den aggregierten Daten operativer Systeme unbekannte Zusammenhänge und Muster zu entdecken, die sich unternehmerisch nutzen lassen. Die verschiedenen Nutzungsszenarien stehen im Fokus dieses Kursteils. So wird beispielsweise vorgestellt, wie sich Lift Charts nutzen lassen, um bei Werbekampagnen einen effizienten Werbemitteleinsatz zu erzielen. Wichtig ist auch die Arbeit mit Szenarios. Hierbei unterscheidet man zwischen Predictive Analytics und Prescriptive Analytics. Während man mit Predictive Analytics künftige Situationen anhand bisheriger Entwicklungen vorhersagen möchte, zielt Prescriptive Analytics auf einen künftig wünschenswerten Zustand und wie dieser zu erreichen wäre. Die Fallbeispiele aus der Touristik werden nun umfangreicher und unterstüzten das Verständnis der Konzepte gut. Kapitel zur Visualisierung und zur Präsentation aggregierter Unternehmensinformation in Form von Geodaten runden diesen Kursteil ab. An diesem Punkt hat man eine Vorstellung davon, welche Methoden der Business Intelligence zu den einzelnen Anwendungskontexten des ersten Kursteils passen.
     
    Im Teil 3 geht es dann stärker um die technische Seite der vorgestellten Methoden. Interessant war zum Beispiel das Kapitel über In-Memory Computing in Verbindung mit Kompressionsverfahren, über hybride Datenhaltung (mit spaltenorientierten Datenbanken) und Parallelverarbeitung. Diese Techniken beschleunigen die Analyse aggregierter Unternehmensdaten enorm, so dass man Methoden der Business Intelligence zunehmed in Echtzeit anwenden kann. In den folgenden Kapiteln wird es formaler und theoretischer, denn nun geht es z.B. um multidimensionale Datenmodelle und ihre Realisierung mit verschiedenen Datenbanktypen. Hier spielt auch formale Notation eine große Rolle.
     
    In den letzten Kapiteln wird es wieder konkret. Hier wird die Arbeit mit einem OLAP-System im Text und durch Videos vorgestellt. Ein Fallbeispiel zum Data Warehouse der TUI rundet diesen Kursteil ab.
     
    Einsendeaufgaben
     
    Die Einsendeaufgaben erschienen mir oft recht knapp, konzentrierten sich aber das das wesentliche des vermittelten Stoffes. Man konnte mit ihnen also feststellen, ob man das jeweilige Kapitel verstanden hatte. Die Aufgabentypen waren so unterschiedlich wie der vermittelte Stoff: Konzepte erklären, unternehmerische Situationen einordnen, kleine Rechenaufgaben, Zeichnen von Diagrammen. Sie passten gut zu den Inhalten. Für meinen Geschmack hätte es aber etwas mehr sein dürfen. Interessant waren die letzten Aufgaben. Diese ergänzten die Videos zur Arbeit mit einem OLAP-System. Hier musste man Verständnisfragen beantworten. Dabei musste ich oft zurückspulen, um genauer zu sehen, was der User macht. Nicht selten habe ich bei der Bearbeitung feststellen müssen, dass ich beim ersten Zuschauen doch noch nicht ganz begriffen hatte, was dort ablief. Diese Aufgaben waren etwas umfangreicher und zwangen einen, genauer hinzuschauen. Mein Tutor äußerte in diesem Zusammenhang, dass mittlerweile auch brauchbare Open Source Werkzeuge verfügbar seien, so dass man künftig die Videos durch praktische Übungen an entsprechenden Systemen ersetzen könnte. Schade, dass das noch nicht so weit ist, denn die Idee finde ich gut.
     
    Die Korrekturen kamen schnell, was die zügige Bearbeitung des Moduls erleichterte. Die Rückmeldungen durch meinen Tutor hätten zum Teil ausführlicher ausfallen dürfen. Aber wenn ich einmal etwas nicht verstanden und konkret nachgefragt hatte, bekam ich stets Antworten.
     
    Präsenzklausur
     
    Die Klausur hatte 10 Aufgaben, die Stoff aus allen Kursteilen abdeckten. Die Aufgabentypen waren dabei recht unterschiedlich. Es gab reine Wissenfragen, Aufgaben, bei denen man etwas erklären sollte, Zuordnungsaufgaben, Aufgaben zur multidimensionalen Modellierung und kleinere Rechenaufgaben. (Bei der Klausur ist kein Taschenrechner erlaubt.) Insgesamt war es eine recht abwechslungsreiche Klausur, die gut zum Modul passte.
     
    Fazit
     
    Wirtschaftsinformatik ist ein Thema, mit dem ich nicht sofort warm geworden bin. Ursprünglich hatte ich das Modul Data Mining belegt. Dabei hatte ich mir erhofft, in erster Linie etwas über mathematische und statistische Grundlagen des Data Minings und ihre Implementierung in Code zu erfahren. Stattdessen nahm das Modul aber eine betriebswirtschaftliche Perspektive ein, was mir anfangs gar nicht gefiel. Im Laufe der Zeit merkte ich aber, dass die Wirtschaftsinformatik eine eigene fachliche Perspektive hat, die auch interessant ist. Darum war ich damals neugierig, auch noch das Modul Business Intelligence zu belegen, das noch einen Schritt weiter in diese Richtung geht.
     
    Meine Leidenschaft für Wirtschaftsinformatik habe ich noch nicht entdeckt, aber es war bereichernd, hier noch einmal einen Blick über meinen persönlichen Tellerrand werfen zu können. Gleichwohl vermute ich, dass angehende Web- und Medieninformatiker dieses Modul seltener wählen werden. Für die Wirtschaftsinformatiker ist es ja ohnehin Pflicht. Für die Zukunft wäre es wünschenswert, interaktive Übungen mit einem freien OLAP-System in das Modul aufzunehmen.
  14. kurtchen
    Einbettung in den Studiengang
     
    Das Modul "Multimedia" ist ein Pflichtmodul im Studiengang "Web- und Medieninformatik". Es ist eines von sechs Modulen des Schwerpunktes Web- und Medien. Für Studierende der Wirtschaftsinformatik ist es nicht Pflicht, sie können es aber als Wahlpflichtmodul belegen. Formal gibt es keine Zugangsvoraussetzungen. Das Modul "Web-Design & Web-Ergonomie" wird zwar zur Vorbereitung empfohlen, aber aus meiner Sicht ist das nicht nötig. Der Studienplan ordnet "Multimedia" ins vierte Fachsemester ein. Ich habe es später belegt, meine aber, dass man es genauso gut auch schon im ersten Semester hätte belegen können, denn es ist inhaltlich nicht eng an andere Module gekoppelt.
     
    Das Modul "Multimedia" ist außerdem eines von fünf Modulen des Hochschulzertifikates "Web-Frontend-Programmierer". Studierende der Web- und Medieninformatik erwerben dieses Zertifikat mit ihren Pflichtmodulen fast automatisch. Lediglich das Wahlpflichtmodul "Web-Engineering" muss noch dazu belegt werden.
     
    Das Lehrbuch
     
    Das Buch "Dynamische Medien" von Maximilian Eibl hat einen Umfang von ca. 340 Seiten. Da beim Thema Multimedia naturgemäß viele Abbildungen nötig sind, ist die Textmenge überschaubar. Das Buch ist von 2011, was für ein Modul zu diesem Thema schon ein stattliches Alter ist. Damit sind ein paar Probleme verbunden, auf die ich später noch eingehe. So viel sei aber an dieser Stelle schon gesagt: Von allen Modulen, die ich bei Springer Campus belegt habe, erscheint mir dieses als dasjenige, das am dringendsten überarbeitet werden müsste.
     
    Multimedia wird im Buch aus drei Blickwinkeln betrachtet:
    Technik: Hier geht es darum, wie Bild, Video und Ton codiert und komprimiert werden. Auch wenn Formate und Codecs sich ändern, bleiben doch viele Prinzipien gleich. Erstellung von Medien: Bilder, Videos und Audioaufnahmen müssen irgendwie erstellt oder zumindest bearbeitet werden. Dafür gibt es Tools wie Photoshop oder Adobe Flash. Das Bedienkonzept dieser Tools und die damit verbundenen Möglichkeiten werden im Kurs vorgestellt. Solche Produkte entwickeln sich rasch weiter und hier merkt man am deutlichsten, dass die letzte Überarbeitung des Moduls schon einige Jahre zurück liegt. Auswahl und Einsatz von Medien: Hier geht es um die Frage, welche Arten von Medien für welche Zwecke und welche Zielgruppe geeignet sind. Für die hier vermittelten Prinzipien ist zu erwarten, dass sie keinem so raschen Wandel unterworfen sind.  
    Kapitel: Bild
     
    Ein Verständnis von digitalen Bildern und Bildformaten ist hilfreich für ein späteres Verständnis von Video und Videoformaten. Darum die nachvollziehbare Entscheidung des Autors, sich zunächst mit statischen Bildern zu befassen.
     
    Es geht um Pixel, Bildgrößen, Farbtiefe, Farbmodelle, die Pixeldichte in verschiedenen Medien und insbesondere um die Datenmengen, die aus diesen grundlegenden Werten resultieren. Der Autor geht auf verschiedene Dateiformate zur Speicherung von (Pixel-)Grafiken ein und welche Vorzüge sie für welche Anwendungsbereiche haben. Beispiele sind GIF, JPEG, PNG, RAW, TIF. Hier wird auch kurz skizziert, wie verlustfreie und verlustbehaftete Kompression funktioniert.
     
    Das Kapitel liefert einen kurzen Einblick in Adobe Photoshop. Mich stört hier ein wenig die ausschließliche Bezugnahme auf das Produkt eines bestimmten Herstellers, auch wenn man im Fall von Photoshop von einem Standard sprechen muss. Hier hätte man meiner Meinung nach zumindest anreißen können, dass es auch quelloffene Alternativen gibt. Das hätte das ganze etwas neutraler gemacht.
     
    Es folgen Abschnitte über die Technik von Digitalkameras. Hier geht es um Chipgrößen, die Unterscheidung von Farben durch den Einsatz von Bayer-Filtern, Sensoren, Objektive, Autofokus, Blende, Verschlusszeiten und dergleichen. Wer eine digitale Spiegelreflexkamera besitzt, nicht immer nur die Automatik verwendet sondern auch einmal selbst die verschiedenen Möglichkeiten zur Bildgestaltung genutzt hat, wird hier nicht viel Neues erfahren. Wer solche Erfahrungen noch nicht gemacht hat, bekommt eine knappe Einführung. Ganz gut gefallen hat mir die Berechnung des Bildwinkels aus Brennweite und Chipgröße, wodurch man z.B. abschätzen kann, welcher Brennweite bei Kleinbildfilm das Objektiv einer Digitalkamera entspricht.
     
    Vermisst habe ich hier einen Abschnitt über 2D-Vektorgrafik, etwa am Beispiel SVG, das ja auch gut fürs Web geeignet ist. Hier hätte man auch einen inhaltlichen Bezug zum Modul "XML" herstellen können.
     
    Kapitel: Audio
     
    Den Anfang machen hier Überlegungen zur Physik von Schallwellen und zum Vorgang der Digitalisierung. Zur Sprache kommt z.B. das Nyquist-Theorem. Es besagt, dass die Abtastrate mehr als das doppelte der höchsten im Signal enthaltenen Frequenz betragen sollte. Für Audio werden nur zwei Dateiformate vorgestellt: Wave und MP3. Im Abschnitt zur MP3-Codierung wird immerhin skizziert, welche psychoakkustischen Erkenntnisse dieser zugrunde liegen. Interessant ist etwa der Effekt der Rückwärtsmaskierung. Eine laute Frequenz überdeckt leisere Frequenzen nicht nur im Moment ihres Auftretens sondern paradoxerweise schon bis zu 20 Millisekunden bevor sie erklingt. Das liegt daran, dass laute Frequenzen von unserer Wahrnehmung schneller verarbeitet werden. Die lauten Reize können also kurz zuvor aufgenommene leisere Reize "überholen" und diese somit rückwirkend verdecken. Wie die MP3-Codierung im Detail algorithmisch funktioniert versteht man so zwar noch nicht, aber man begreift zumindest, was diese möglich macht.
     
    Der Aspekt Erstellung und Bearbeitung wird hier am Beispiel Adobe Soundbooth gezeigt. Das gibt es inzwischen gar nicht mehr (aber das Nachfolgeprodukt Audition CC). Die gezeigten Möglichkeiten hätte man meiner Meinung nach genauso gut am Beispiel des quelloffenen Programms Audacity vermitteln können.
     
    Mir hätte gefallen, wenn weitere Audioformate vorgekommen wären, z.B. das freie Format OGG. Gut gefunden hätte ich auch, wenn der Autor nicht allein auf Audioformate sondern auch auf Dateiformate zur Speicherung von Musikinformation eingegangen wäre. Beispiele dafür wären MIDI und MusicXML. Da MIDI und MusicXML Notenereignisse und nicht Schallwellen beschreiben, kann man diese Dateien zum Beispiel maschinell nach bestimmten musikalischen Mustern durchsuchen. Es ist ein anderer Ansatz zur Speicherung von Musik und steht zu Audioformaten etwa in der Relation wie Vektorgrafik zu Pixelgrafik. Abgesehen von diesen offen gebliebenen Wünschen war ich mit diesem Kapitel aber zufrieden.
     
    Kapitel: Video
     
    Hier geht es um Codecs zur Videokompression. Man erhält eine Vorstellung, wie diese funktionieren. Die geht zwar nicht tief genug, um so etwas selbst nachprogrammieren zu können, aber im wesentlichen versteht man, was dabei abläuft. Es folgt ein sehr knapper Einblick in die Videobearbeitung mit Adobe Premiere und die Einbindung von Titeln und Ton.
     
    Es fällt auf, dass insbesondere die genannten Auflösungen im Zeitalter von Videostreams mit 4K anachronistisch wirken. Das macht das hier beschriebene aber nicht falsch oder irrelevant. Eine Einordnung der Themen in den aktuellen Nutzungskontext würde hier als Überarbeitung durchaus genügen.
     
    Kapitel: 2D-Animation mit Flash
     
    Das Thema 2D-Animation wird am Beispiel Adobe Flash abgehandelt. Hier muss man unterscheiden zwischen Adobe Flash zur Erstellung von 2D-Animationen und dem Flash-Player, der früher nötig war, um Animationen im Browser abspielen zu können. Letzterer ist wegen zahlloser Sicherheitslücken in Verruf geraten. Internetnutzer brauchen ihn nicht mehr, weil HTML5 die Einbindung von Video und Audio auch ohne ein proprietäres Plugin unterstützt. Mobile Geräte von Apple unterstützen Flash schon seit längerem nicht mehr, ohne das deren Nutzer deswegen auf multimediale Inhalte verzichten müssten.
     
    Aber 2D-Animationen müssen ja auch irgendwie erstellt werden. Dies wird im Kurs also am Beispiel Adobe Flash gezeigt. Der Kurstext ist tatsächlich eine Art knappes Tutorial, wie man verschiedene Arten von Animationen mit Flash erstellt. Dabei kommen z.B. Features wie Formtweening zur Sprache. Mit knapp 70 Seiten nimmt dieses Kapitel einen recht großen Raum ein. In der Lernplattform gibt es zusätzlich eine knappe Einführung in ActionScript. Flash heißt inzwischen Adobe Animate und die damit erstellten Animationen lassen sich selbstverständlich in Formaten auswerfen, die man direkt per HTML5 einbinden kann.
     
    Eine Bezugnahme auf Adobe Animate wäre eine naheliegende Möglichkeit, das Modul zu aktualisieren und gleichzeitig das bisherige Konzept zu erhalten. Auch hier würde ich mir wünschen, wenn Alternativen zumindest knapp vorgestellt würden.
     
    Kapitel: 3D-Animation mit VRML
     
    Dieses Kapitel ist die große Baustelle des Moduls. Von VRML hatte ich noch nie gehört. Es handelt sich um eine Beschreibungssprache für 3D-Welten, die übers Internet übertragen und mittels eines Plugins im Browser gerendert werden können. Die Syntax erinnert stark an JSON. Mag sein, dass das im Jahr 2011 noch als vielversprechende Technologie erschien. Ich musste erst mal suchen, wie ich für mein System einen Viewer auftreibe, mit dem ich die Codebeispiele aus dem Kurs ausprobieren konnte.
    Am Ende des Kapitels wird auf den prospektiven Nachfolger von VRML eingangen. X3D ist im wesentlichen VRML mit XML-Syntax. Auch diese Technik scheint mir nicht sehr relevant zu sein.
     
    Die Behandlung von WebGL wäre eine Möglichkeit, den Kurs zu aktualisieren und zugleich des bisherige Konzept zu erhalten. WebGL wird von gängigen Browsern unterstützt.
    Lieber wäre mir gewesen, man hätte eine 3D-Bibliothek einer gängigen Programmiersprache vorgestellt. Alternativ hätte man auch einen Schritt zurück gehen können, um zu untersuchen, wie 3D-Vektorgrafik grundsätzlich funktioniert. Die nötigen Grundlagen in linearer Algebra wären ja durch das Modul "Mathematik für Informatik" und auch durch das Kapitel "Grafik" im Modul "Angewandte Mathematik" vorhanden. Damit hätte man die Perspektive Technik stärker behandelt.
     
    Kapitel: Einsatz dynamischer Medien
     
    Im letzten Kapitel geht es um Auswahl und Einsatz dynamischer Medien für verschiedene kommunikative Zwecke und Nutzergruppen. Grundlage ist die DIN EN ISO 14915. Der Autor stellt zunächst verschiedene Informations- und Medientypen vor, um dann Kriterien für Auswahl und Kombination von Medien - z.B. in Webseiten - zu entwickeln. Dieses Kapitel hat mir sehr gut gefallen, insbesondere weil zu erwarten ist, dass die hier vermittelten Inhalte eine höhere Halbwertszeit haben, da sie nicht an bestimmte Technologien gebunden sind.
     
    Nur kurz erwähnt wird das Thema behindertenfreundliche Gestaltung. Ich freue mich, dass es überhaupt den Weg ins Modul gefunden hat, aber für eine Neuauflage würde ich mir wünschen, dass es ein wenig mehr Raum bekommt. Dies ist dann allerdings auch meine einzige Kritik an dem ansonsten gelungenen Kapitel.
     
    Die Einsendeaufgaben
     
    Die Einsendeaufgaben im Modul zielten mir insgesamt zu stark auf Wissensreproduktion und ich fand sie auch zu leicht. Die Rückmeldungen meines Tutors kamen sehr zügig, was bei den Aufgabentypen allerdings auch nicht überraschend war. Lediglich die Online-Klausur war ein bisschen fordernder. Hier sollte ein Konzept für eine multimediale Präsentation zu einem technischen Vorgang erstellt werden. Dies bezog sich natürlich in erster Linie auf das Kapitel 7 zur Auswahl und Mischung von Medien. Hier durfte man ein bisschen kreativ sein. Ansonsten hätte es schon schwieriger sein dürfen.
     
    Die Präsenzklausur
     
    Da ich von den Kapiteln zu Flash und VRML nicht so begeistert war, ging ich diesmal mit geringeren Ambitionen in die Präsenzklausur. Der Prüfer hat seine Sache aber gut gemacht. Die Mehrheit der Fragen bezog sich auf Grundlagenwissen, das nicht an bestimmte Technologien und Produkte gebunden ist. Auch das Kapitel zur Auswahl und Mischung von Medien spielte eine große Rolle. Hier musste man wieder ein Konzept erstellen, um mittels Medien bestimmte Inhalte zielgruppengerecht zu vermitteln. Dazu gehörten auch kleine Skizzen. Die Klausurfragen haben viel dazu beigetragen, dass ich am Ende durchaus das Gefühl hatte, aus diesem Modul noch einiges mitgenommen zu haben..
     
    Zu erwähnen ist, dass dies eine Klausur ohne Hilfsmittel ist. Man darf einen einfachen Taschenrechner benutzen. Eine Formelsammlung wird zur Verfügung gestellt.
     
    Fazit
     
    Insgesamt bleibt es bei meiner Einschätzung: Von allen Modulen, die ich bei Springer Campus belegt habe, müsste dieses am dringendsten überarbeitet werden. 
    Man könnte das Pferd natürlich auch mal komplett anders aufzäumen. Warum nicht ein Modul zur Grafikprogrammierung mit engen Bezügen zu den Modulen Mathe2 und Mathe3? Oder wie wäre es mit einem Modul zur Datenvisualisierung (etwa mit JavaScript) mit enger Anbindung an die Inhalte des Moduls Statistik? Ich finde, beides würde gut ins Gesamtkonzept des Studienganges passen.
     
    Den Studienbereich "Web- und Medieninformatik" habe ich mit diesem Modul nun jedenfalls abgeschlossen und es gibt in diesem Bereich auch keine Wahlpflichtmodule mehr, die ich belegen könnte. Als nächstes steht das Pflichtmodul "IT-Recht" an, dass ich laut Studienplan eigentlich schon im ersten Semester hätte belegen sollen. Außerdem müsste ich allmählich mit meiner Projektarbeit beginnen.
  15. kurtchen
    7. Semester - Wintersemester 2018/2019
    - Präsentieren
    - Text Mining
    - IT-Projektmanagement
     
    6. Semester - Sommersemester 2018
    - Multimedia
    - IT-Recht
    - Business Intelligence
    - Projektarbeit
     
    5. Semester - Wintersemester 2017/2018
    - Geschäftsprozessmanagement
    - BWL2
    - Aktuelle Webtechniken
    - Wissenschaftliches Arbeiten
    - Software-Management
    - Software-Testen
     
    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)
     
    Aktuell in Bearbeitung bei Springer Campus
    - Electronic Business
     
    Danach noch fehlende Pflichtmodule:
    - Bachelorarbeit
  16. kurtchen
    Das Modul "Software-Management 1" ist ein Pflichtmodul in den Studiengängen "Web- und Medieninformatik" und "Wirtschaftsinformatik". Es ist für das 4. oder 5. Semester vorgesehen. Als fachliche Grundlagen werden die Module "Grundlagen der Informatik 1-3" genannt. Es wird also im wesentlichen erwartet, dass man Kenntnisse in objektorientierter Programmierung hat. Mit Software-Technik muss man sich noch nicht unbedingt auskennen. "Software-Management 1" ist auch Bestandteil des Hochschulzertifikates "Software-Manager".
     
    Ich habe das Modul recht spät belegt, weil ich das Thema nicht unbedingt zum Anbeißen fand. Damit bin ich anscheinend nicht alleine. In Gesprächen mit Kommilitonen habe ich den Eindruck gewonnen, dass Software-Management kein Thema ist, für das sich viele Informatik-Studenten begeistern. Das erwähnt der Autor des Lehrbuches, Herr Balzert, sogar in seinem Vorwort. In seinen Vorlesungen zum Software-Management hat er regelmäßig gefragt, wer denn gerne Software-Manager werden wollte. Meistens meldete sich niemand. Seine Studenten äußerten, Software-Management sei eher etwas für BWLer. Ich muss zugeben, dass ich ähnlich empfinde.
     
    Lehrbuch
     
    Das Lehrbuch "Softwaremanagement" stammt aus der Feder von Herrn Balzert und ist mit der gleichen Gründlichkeit verfasst wie seine anderen Lehrbücher. Ich schätze seinen Schreibstil und seine didaktischen Fähigkeiten sehr, aber als dieses Buch mit der Post kam, war ich zunächst einmal eingeschüchtert: An die 700 Seiten Lehrtext zuzüglich Anhänge.
     
    Das Lehrbuch ist aber für 2 Module vorgesehen, nämlich auch für "Software-Management 2", das kein Pflichtmodul ist. Nur wenig mehr als 200 Seiten beziehen sich auf das Modul "Software-Management 1". Zur meiner anfänglichen Überraschung sind das die letzten 200 Seiten. Das Buch behandelt nämlich zunächst einmal ausführlich allgemeine Management-Prinzipien und arbeitet dann heraus, wie diese sich im Software-Management konkretisieren. Pflicht für alle Studierenden sind lediglich die Kapitel zu Prozess- und Qualitätsmodellen, die einen ganz klaren Software-Bezug haben.
     
    Obwohl es relativ wenig Lesestoff ist, war die Bearbeitung des Moduls für mich mühsam. Prozess- und Qualitätsmodelle sind für mich leider kein spannender Lesestoff, auch wenn ich anerkennen möchte, dass der Autor hier wieder einmal sehr gründlich gearbeitet hat. Wer mit dem Thema etwas anfangen kann, darf im Wahlpflichtbereich dann noch das Modul "Software-Management 2" belegen und sich dann damit beschäftigen, wie Softwaremanagement mit allgemeinen Management-Prinzipien zusammenhängt.
     
    Inhalte & Themen
     
    Da ich leider keinen innigen Bezug zu den Themen des Moduls entwickeln konnte, handele ich die Inhalte diesmal relativ knapp ab.
     
    Das Kapitel "Was ist ein Prozessmodell?" behandelt Notationen und Werkzeuge sowie Anforderungen an Geschäftsprozesse. Hier gibt es gewisse inhaltliche Bezüge zum Modul "Geschäftsprozess-Management". Man ist im Vorteil, wenn man das schon bearbeitet hat.
     
    Das etwas umfangreichere Kapitel "Was ist ein Qualitätsmodell?" behandelt FCM- und GQM-Modelle. Hier sehe ich Bezüge zum Modul "Software-Technik 2".
     
    Es folgt ein eigenes Kapitel zum Thema Qualitätsmanagement. Hier werden konstruktive und analytische Maßnahmen der Qualitätssicherung unterschieden. Das war schon einmal Thema im Modul "Grundlagen der Informatik 2". Man sieht also, dass dieses Modul durchaus sinnvoll in das Gesamt-Curriculum des Studiengangs eingebettet ist. Ich finde es immer gut, wenn Zusammenhänge zwischen Modulen erkennbar sind. Natürlich ist es didaktisch auch hilfreich, wenn Themen wiederkehren und aus neuen Blickwinkeln betrachtet werden.
     
    Die ersten drei Kapitel bilden sozusagen das theoretische und begriffliche Fundament für die folgenden. Es geht nun um manuelle Prüfmethoden: Inspektion, Review, Walkthrough. Die werden ja später im Studiengang noch einmal im Modul "Softwaretesten" behandelt.
     
    Im Kapitel "Basismodelle" lernt man verschiedene Entwicklungsmodelle kennen:
    sequentielles Modell nebenläufiges Modell inkrementelles Modell evolutionäres Modell komponentenbasiertes Modell Prototypen-Modell Modell für geographisch verteilte Entwicklungen Modell für Produktfamilien QS-erweiterte Modelle V-Modell Spiralmodell und deren Kombinationsmöglichkeiten  
    Die Aufzählung macht deutlich, dass der Autor viele Fälle unterscheidet. Bei jedem Modell geht es um Vorzüge und Probleme, die es für bestimmte Entwicklungsszenarien geeigneter machen als für andere. Dieses Kapitel war für mich eines der interessanteren.
     
    Besonders trockene Kost war für mich das Kapitel "Rahmenmodelle". Ich nenne nur ein paar Schlagworte: CMMI, SPICE-/ISO15504, ISO12207, ISO9000, ISO9001ff, TQM. ISO900x kannte ich bereits aus dem Kontext meiner aktuellen beruflichen Tätigkeit im Sozialbereich. Grob zusammengefasst geht es um verschiedene Ansätze, Qualitätsmanagement-Systeme aufzubauen.
     
    Das Kapitel "Monumentale Modelle" behandelt ausführlich das V-Modell XT. XT steht dabei für Extreme Tailoring, also die behauptete Anpassungsfähigkeit des Modells. Weiterhin werden RUP, PSP und TSP vorgestellt.
     
    Recht spannend fand ich dagegen das Kapitel zu agilen Modellen. Hier bin ich gegen Ende des Moduls noch einmal regelrecht aufgewacht, denn die Verfechter dieser Modelle formulieren z.T. ungewöhnliche Standpunkte, die sie recht selbstbewusst vertreten. Das liest sich erfrischend anders. Themen sind eXtreme Programming, Industrial XP, eXtreme Programming 2, Feature Driven Development, Scrum und die Crystal-Familie.
     
    Im letzten Kapitel geht es noch einmal um den Vergleich von monumentalen und agilen Modellen und Kriterien der Auswahl.
     
    Klausur
     
    In der Präsenzklausur gab es recht viele Aufgaben, die sich im Bearbeitungsaufwand stark unterschieden. Vermutlich war hier das Ziel, einerseits die Inhalte breit abzudecken und andererseits auch mal zu schauen, wie tief das Verständnis der Studierenden denn reicht.
     
    Ich hatte leider etwas Pech bei den Aufgaben. Schwächen hatte ich eher bei den Punktebringern. Sicher fühlte ich mich bei den Aufgaben mit weniger Punkten. Insgesamt sind die Aufgaben eher vom Typ Wissensreproduktion. Dies ist ein Modul, bei dem Auswendiglernen von Fakten benotungsrelevant ist. So etwas liegt mir nicht besonders. Bei erster konservativer Schätzung meinte ich, die Hälfte der Punkte sicher zu haben, so dass ich zumindest erwartete, bestanden zu haben.
     
    Ich neige dazu, vorsichtig zu schätzen. Mein Ergebnis war gar nicht mal so schlecht. Da ich mir beim Abschlusstest und der Online-Klausur ein paar Bonuspunkte erarbeitet hatte, war die Endnote dann wirklich OK.
     
    Fazit
     
    "Software-Management 1" war für mich zähe Kost. Interessant waren für mich in erster Linie die Kapitel zu Basismodellen und agilen Modellen. Besonders trocken fand ich die Rahmenmodelle. Ich glaube nicht, dass der Kursautor viel hätte besser machen können, um mir diese Inhalte irgendwie schmackhafter zu präsentieren. Das Modul ist geschafft. Es war für mich das letzte im Studienbereich "Software-Technik". Diesen großen Block konnte ich also nun hinter mir lassen.
     
    Ich werde wohl auch nicht in Versuchung kommen, "Software-Management 2" als Wahlpflichtmodul zu belegen. Das Lehrbuch liegt mir ja vor. Die Kapitel zu den allgemeinen Management-Prinzipien sehen auch tatsächlich spannender aus als die Inhalte von "Software-Management 1". Aber es bleibt dabei: Software-Management ist kein Thema, für das ich mich begeistern kann.
  17. kurtchen
    Zur Rolle des Moduls "Aktuelle Webtechniken" im Studiengang WMI
     
    Das Modul "Aktuelle Webtechniken" ist ein Wahlpflicht-Modul und richtet sich an Studierende im Studiengang "Web- und Medieninformatik". Es ist außerdem Teil des Hochschulzertifikates "Web-Entwickler". Für Wirtschaftsinformatiker scheint es mir weniger geeignet. Das liegt daran, dass das Modul "Web-Anwendungen 2" als fachliche Grundlage sehr empfehlenswert ist. Dieses ist aber für Wirtschaftsinformatiker nicht Pflicht und müsste daher ebenfalls als Wahlpflichtmodul belegt werden.
    Als weitere fachliche Grundlage für dieses Modul wird "XML" genannt. Aufgrund der Voraussetzungen wird man "Aktuelle Webtechniken" wohl gegen Ende seines Studiums belegen, also im 5. oder 6. Fachsemester.  Inhaltlich geht es um die Entwicklung von Web-Anwendungen mit dem serverseitigen Framework JavaServer Faces.
     
    Das Lehrbuch
     
    Das Lehrbuch "JavaServer Faces" von Michael Goll und Marcel Urbanek hat einen Umfang von ca. 250 Seiten. Im Vergleich zu anderen Lehrbüchern bei Springer Campus klingt das wenig. Allerdings ist die Schrift kleiner und der Text recht eng gesetzt, so dass bei gleicher Seitenzahl mehr Inhalt drin steckt, als man zunächst vermuten würde. Der Text ist ziemlich dicht geschrieben. Das Tempo, in dem die Inhalte vermittelt werden, ist recht hoch. Möglich ist das, weil die meisten Studierenden ja Vorkenntnisse in JavaServer Pages und XML haben. Ohne diese Grundlage wäre es deutlich schwieriger, dem Text zu folgen. Die Inhalte ähneln denen des Moduls JSP. Allerdings geht es hier um ein aktuelleres serverseitiges Web-Framework auf Grundlage von Java.
     
    Während man in JSP HTML und Java-Code in einer Seite mischt, gibt es in JSF eine saubere Trennung. Funktionalität wird in Bean-Klassen implementiert. Das sind Java-Klassen mit öffentlichen Gettern und Settern für alle Attribute sowie einem parameterlosen Standardkonstruktor. Dies erlaubt dem Framework die Erzeugung und die Befüllung von Objekten dieser Klassen. Weil sie vom Framework gemanaged werden, nennt man sie auch Managed Beans.
     
    Damit das Framework weiß, welche Managed Beans zur Verfügung stehen, muss man sie ihm in einer XML-Datei bekannt machen. Die eigentlichen Seiten werden dann mit Tags des Frameworks aufgebaut. Hier stellt man Bindings zu Methoden oder Attributen der Managed Beans her. Das ist ein sauberer und übersichtlicher Ansatz, um Webanwendungen aufzubauen. Die Arbeitsweise erinnert mich an ASP.Net und die damit verbundene Code-behind-Technik.
     
    Weitere Themen sind:
    - Templating
    - Internationalisierung
    - Navigation
    - Konverter
    - Validierung
    - Listener
    - Erweiterte Komponenten
     
    Alle diese Themen werden durch Codebeispiele praxisnah behandelt. Es ist sehr empfehlenswert, diese Beispiele in einer geeigneten IDE auszuprobieren und sie abzuwandeln, um ein Gefühl dafür zu bekommen, wie JSF arbeitet. Empfohlen wird als IDE Eclipse. Ich bevorzuge Netbeans und habe das Modul damit bearbeitet. Das war so auch gut machbar.
     
    Nach den recht praktischen ersten zwei Dritteln des Moduls folgen im letzten Drittel vertiefende Themen, die theoretischer und auch anspruchsvoller sind. Hier geht es darum, wie das Framework arbeitet, was für Abläufe durch einen HTTP-Request ausgelöst werden und was für Objekte dabei in welcher Reihenfolge erzeugt werden. Nicht zuletzt geht es darum, wie man eigene JSF-Komponenten, eigene Renderer und eigene Tags implementiert.
     
    Ich finde, JSF ist ein schönes Framework. Gut gefallen haben mir z.B. die Konzepte für Navigation und für die Konvertierung und Validierung von Nutzereingaben.
     
    Tests und Einsendeaufgaben
     
    Die Tests und Aufgaben decken den Stoff gut ab. Für meinen Geschmack hätten es mehr Aufgaben sein dürfen. Sie waren aber ausreichend, um mit allen großen Themenblöcken praktische Erfahrungen zu machen. Eigene Initiative und eine gewisse Experimentierfreude beim Ausprobieren von Codebeispielen halte ich für empfehlenswert. Leider fand ich die Formulierung der Aufgaben oft unklar oder mehrdeutig. Das Nachdenken darüber, was der Autor der Aufgabe gemeint haben könnte, hat bei mir oft wesentlich länger gedauert als die eigentliche Lösung der Aufgabe. Das war für mich oft unbefriedigend.
     
    Die Rückmeldungen meines Tutors kamen zügig. Auf Fragen bekam ich rasche und zufriedenstellende Antworten. Auch die Online-Klausur wurde zügig korrigiert.
     
    Die Online-Klausur passte gut zu den Einsendeaufgaben und den im Kurs behandelten Themen. Sie war durchaus auch eine gute Vorbereitung auf die Präsenzklausur. So sollte es sein
     
    Präsenzklausur
     
    Ich hätte erwartet, dass die Präsenzklausur vor allem die ersten zwei Drittel des Moduls abdecken würde, also die eher praktischen Teile. Dort lag auch ein Schwerpunkt. Es wurden aber auch die theoretischeren Teile durch Wissensfragen abgeprüft. Bei der Arbeit mit JSF hat man mit unterschiedlichen Dateien in unterschiedlichen Sprachen und Formaten zu tun: XML-Dateien, Java-Quellcode, JSF-Seiten mit Tags. In der Klausur spielten alle eine Rolle. Der Schwierigkeitsgrad der Aufgaben war unterschiedlich. Es gab einfachere Punktebringer aber auch schwierigere und umfangreichere Aufgaben für diejenigen, die eine gute Note haben möchten. Leider hatte ich auch diesmal wieder ein Problem mit der Formulierung mancher Aufgaben.
     
    Zeit ist ein entscheidender Faktor in dieser Klausur. Man muss relativ viel schreiben. Auch wenn man im Grunde schon eine Lösung im Kopf hat, wird es knapp, diese auch aufs Papier zu bringen. Ich würde empfehlen, ein paar Einsendeaufgaben von Hand abzuschreiben, um im Schreiben von XML auf ein gewisses Tempo zu kommen. Ich habe es leider nicht geschafft, alle Aufgaben in der gegebenen Zeit zu bearbeiten. Das hatte natürlich Auswirkungen auf meine Note, die nicht so gut ausgefallen ist, wie ich mir im Vorfeld erhofft hatte.
     
    Fazit
     
    Nach dem Modul "Web-Anwendungen 2", welches serverseitige Web-Programmierung mit JSP abhandelt, wird in "Aktuelle Webtechniken" mit JSF ein weiteres serverseitiges und Java-basiertes Framework vorgestellt. JSF ähnelt ein wenig ASP.Net. Mir hat das Modul Spaß gemacht und ich finde, serverseitige Programmierung ist eine der Stärken des Studienganges "Web- und Medieninformatik". Das Modul ist etwas für Studierende, die auch Freude an JSP und XML hatten. Es ist außerdem eine Gelegenheit, noch mal einmal Zeit mit dem Schreiben von Code zu verbringen. Gegen Ende des Studiums gibt es ja viele Module, die recht theorielastig sind. Da ist JSF eine willkommene Abwechslung.
     
    Mein nicht ganz so tolles Abschneiden bei Klausur nehme ich nicht so schwer. Am diesem Punkt meines Studiums stehen einfach schon so viele Noten fest, dass mein Spielraum zu Beeinflussung meiner Abschlussnote ohnehin gering ist. Ich freue mich also einfach, dass ich hier noch einmal die Gelegenheit hatte, ein Modul zu bearbeiten, dass ich inhaltlich sehr genießen konnte.
  18. kurtchen
    10:45 Uhr - Aktuelles für Studierende
     
    Frau Kreissig von Springer Campus informierte über Neues rund um unseren Studiengang. Zum Nutzen der neuen Studierenden gab es ein kurzes Who-is-who der Mitarbeiter des Fernstudienteams. Die Übernahme der W3L durch Springer Campus lag am Präsenztag ziemlich genau ein Jahr zurück. Frau Kreissig dankte den Studierenden für ihre Geduld und Kompromissbereitschaft in der Übergangsphase.
     
    Parallel zu dieser Veranstaltung fand auch eine Infoveranstaltung für Studieninteressierte statt, über die ich leider nichts näheres berichten kann. Zu bemerken ist, dass dort nicht nur über die Studiengänge Web- und Medieninformatik (WMI) und Wirtschaftsinformatik (WI) informiert wurde. Auch über das Fernstudium Biologie und Chemie konnte man sich informieren. (Für diejenigen, die sich hier wundern, dass man Biologie und Chemie überhaupt "aus der Ferne" studieren kann: Diese Studiengänge richten sich ausschließlich an Berufstätige, die eine einschlägige Ausbildung als TA abgeschlossen haben und insofern umfangreiche Praxiserfahrung mit Laborarbeit haben.)
    Die Cover der Lehrbücher zu den einzelnen Modulen unserer Studiengänge WMI und WI werden nach und nach überarbeitet. Sie erscheinen nun im "Springer Look". Natürlich sollen die Bücher auch fortlaufend inhaltlich aktualisiert werden. Das dauert naturgemäß etwas länger. So gibt es z.B. aktualisierte Lehrbücher für SQL oder bald auch für die Einführung in die Wirtschaftsinformatik.
     
    Das Modul "Strategisches Management und Controlling" ist aus aktuellem Anlass kurzfristig nicht verfügbar. Springer Campus sucht nach einer Vertretung, die die Betreuung dieses Moduls übernehmen kann. Man möchte diesem Umstand offen kommunizieren, damit die Studierenden dies in ihrer Studienplanung berücksichtigen können, z.B. indem sie andere Module zeitlich vorziehen. Strategisches Management und Controlling ist ein Pflichtmodul für Studierende des Studiengangs Wirtschaftsinformatik und wird dort dem Studienbereich BWL zugerechnet. Die Belegung wird für das 4. Semester empfohlen.
     
    Frau Kreissig informierte auch über Änderungen bei Dozenten und Tutoren.
     
    Viele (meist private) Fern-Hochschulen bieten Prämien für geworbene Studierende und das Studienbüro wird gelegentlich danach gefragt, ob es das auch bei Springer Campus gibt. Tatsächlich gibt es schon seit einer Weile eine Prämie von 250 Euro oder wahlweise einen Buchgutschein pro geworbenem Studierenden. Dies gilt aber nur für Bachelor-Studiengänge und nicht für die Belegung von Zertifikatskursen. (Ich mag solche Prämienprogramme nicht besonders, weil mir das doch ein bisschen "marktwirtschaftlich" daherkommt, aber da sich Studierende nach so etwas erkundigt haben, nehme ich an, dass es Leute gibt, die das interessieren könnte.)
     
    Das Modul "Wissenschaftliches Arbeiten" ist seit März 2017 Pflicht für Studierende im Studiengang WMI und WI. Für Studierende, die noch nach der alten Studienordnung studieren, ist es nicht verpflichtend, die Belegung wird aber dringend empfohlen. Die Erfahrung hat gezeigt, dass dieses Modul insbesondere für das Schreiben der Bachelorarbeit sehr nützlich ist.
     
    Top-FAQs aus dem Studienbüro:
    - Das Studienbüro unterstützt bei der Suche nach Betreuern für Projekt- und Bachelorarbeiten. Wenn man seine Projektarbeit im eigenen beruflichen Umfeld schreiben kann, wäre ein weiterer Betreuer dort ideal. Solche Rahmenbedingungen hat aber nicht jeder Studierende.
    - Notenspiegel und Leistungsübersichten kann man über das Studienbüro anfordern. (Manche Studierende, die von ihrem Arbeitgeber finanziell unterstützt werden, müssen so etwas vorlegen.) Die Ausstellung geht normalerweise sehr schnell. Unmittelbar vor Präsenztagen soll man aber etwa eine Woche Vorlauf einplanen, denn zu diesen Zeiten ist das Team des Studienbüros sehr beschäftigt.
    - Ein Klassiker: Änderungen der Adresse, der Telefonnummer und der Kontonummer sollen dem Studienbüro bitte möglichst bald mitgeteilt werden. Eigentlich sollte das offensichtlich sein. Es wird aber de facto immer wieder vergessen und führt dann zu Problemen.
    - Anmeldefristen für Prüfungen sind VERBINDLICH und somit für alle Studierende gleich. Offensichtlich gibt es immer wieder den Wunsch, so etwas Einzelfallbezogen anders zu handhaben. Das ist aber nicht möglich.
    - Klausuren sollen innerhalb von 6 Wochen korrigiert werden. Eine deutlich kürzere Zeitspanne ist natürlich sehr wünschenswert. (Aus eigener Erfahrung kann ich sagen, dass 3-4 Wochen üblich sind.) Im letzten Jahr kam es bei bestimmten Modulen gelegentlich vor, dass die 6-Wochen-Frist überschritten wurde. Das hat z.B. mit besonderen Lebenslagen der Korrektoren zu tun. Das Studienbüro arbeitet daran, dass Fristüberschreitungen die Ausnahme bleiben.
     
    Frau Kreissig weist auf die Online-Dienste für Studierende (ODS) der FH Dortmund hin, die Studierenden von Springer Campus zur Verfügung stehen. Dazu ist die FH-Kennung nötig, die man zu Beginn des Studiums erhält. Unter anderem kann man sich über ODS Software von Microsoft herunterladen. Eine Verlängerung der FH-Card antragt man direkt per Mail an der FH Dortmund.
     
    Verleihung der Hochschulzertifikate
     
    Statt sich für einen kompletten Bachelorstudiengang einzuschreiben, kann man bei Springer Campus auch für Hochschulzertifikate studieren. Dazu belegt man bestimmte Modulkombinationen. Angebotene Zertifikate sind z.B. Anwendungs-Programmierer, Web-Entwickler oder Software-Architekt. Auch Studierende im Bachelorstudiengang erhalten diese Zertifkate, wenn sie die entsprechenden Modulkombinationen abgeschlossen haben. Die Zertifikate können als Meilensteine im Studium motivierend wirken. Manche Studierende legen sie auch Arbeitgebern vor und können so evtl. schon während ihres Studiums neue Aufgabenbereiche übernehmen. Die Zertifikate werden normalerweise automatisch per Post zugesendet. Die Zertifikate mit den besten Noten werden am Präsenztag persönlich übergeben. (Sofern die Studierenden anwesend sind.)
     
    Ein Absolvent stellt seine Bachelor-Arbeit vor
     
    Herr D. stellte auf dem Präsenztag seine Bachelor-Arbeit vor. Er hat eine Android-App zur Aquariendosierung entwickelt. Das Thema ergab sich bei ihm nicht im beruflichen Umfeld sondern im Privatleben. Er hatte damals mehrere Aquarien. In Aquarien muss man fortlaufend verschiedene Düngemittel zusetzen, damit z.B. Pflanzen gut wachsen: Natrium, Eisen, Nitrat und Kalium. Dazu müssen regelmäßig Messwerte ermittelt werden und dann entsprechende Dosierungen berechnet werden. Herr D. hatte das bislang mit Excel-Tabellen gemacht. Seine Idee war, eine Android-Software zu entwickeln, die auf dem Handy die Messwerthistorie erfasst, die aktuelle Situation bewertet und eine Handlungsempfehlung in natürlicher Sprache gibt. Das Empfehlungssystem ist das pfiffige an der App. Ein wesentlicher Teil seiner Bachelorarbeit drehte sich um Möglichkeiten, ein solches Empfehlungssystem zu implementieren. Herr D. nannte hier:
    - regelbasierte Filter
    - inhaltsbasierte Filter
    - wissensbasierte Filter
    - demographische Filter
    - kollaborative Filter
    - hybride Filter
     
    Herr D. hatte sich für Expertensystem entschieden, also für einen wissensbasierten Filter.
     
    Die Umsetzung ging durch die klassischen drei Schritte:
    - objektorientierte Analyse (OOA)
    - objektorientiertes Design (OOD)
    - objektorientierte Programmierung (OOP)
     
    Zu seiner Bachelorarbeit gehörte natürlich auch, die Spezifizierung von funktionalen und nicht-funktionalen Anforderungen und dynamische Modellierung, z.B. durch Ablaufdiagramme. Herr D. verwendete (android-üblich) das MVP-Muster. Er zeigte Mock-ups der Oberfläche, die Paketstruktur und ging kurz auf das Datenbankmodell ein. Wichtig im Rahmen seiner Bachelorarbeit war auch eine Testphase und eine Bewertung, wie die zu Beginn spezifizierten Anforderungen umgesetzt wurden. Interessant war am Ende auch eine Gegenüberstellung von UI Mock-ups und dem Aussehen der tatsächlichen App.
     
    Die App heißt AquaCalc, ist aber leider bei GooglePlay noch nicht verfügbar. Sie ist fertig, hat aber noch Bugs, die ausbessert werden müssten. Außerdem müsste das UI noch ein bisschen "aufpoliert" werden. Herr D. konnte sich durch sein Studium beruflich verändern und findet aktuell leider nicht die Zeit, die App fertig zu machen. Für Herrn D. war es seine erste Android-App überhaupt.
     
    Dieser Vortrag war für mich aus mehreren Gründen interessant:
    - Die Themen Projektarbeit und Bachelorarbeit rücken auch für mich langsam näher.
    - Ich hatte bisher angenommen, eine Projektarbeit in einem betrieblichen Umfeld anfertigen zu müssen. Da ich keine einschlägige Beschäftigung habe, war es eine der noch offenen Fragen in meiner Studienplanung, wie und wo ich eine Projektarbeit anfertigen könnte. Herr D. realisierte seine Projektarbeit und die darauf aufbauende Bachelorarbeit aus einem privaten Interesse heraus. Er berichtete uns, dies sei valide. Das Studienbüro hatte ihm einen Betreuer vermittelt, der sein Thema interessant fand und begleiten wollte. Für mich ist das deswegen sehr interessant, weil ich so die Möglichkeit habe, eine Projektidee nicht allein im beruflichen Umfeld zu suchen.
    - Das von ihm gewählte Thema ist kein reines IT-Thema. Für die Aquariendosierung muss man etwas über Chemie und Physiologie wissen. In der Bachelorarbeit musste dieser Teil aber möglichst knapp behandelt werden, weil die Informatik im Vordergrund stehen musste. Dies gelang ihm z.B. durch die Diskussion der verschiedenen Bewertungssysteme und eine begründete Entscheidung für einen bestimmten Ansatz. Auch das ist für mich relevant. Ich könnte im Prinzip in einem beliebigen Problembereich arbeiten, solange ich das aus einer Softwareperspektive tue.
    - Der Studiengang heißt Web- und Medieninformatik und die Programmierung von Web-Anwendungen ist ein inhaltlicher Schwerpunkt. Man ist aber für die Projekt- und auch für die Bachelorarbeit nicht darauf festgelegt. Offensichtlich war im Fall von Herrn D. eine Android-App ein valides Projekt. Auch eine Desktop-Anwendung wäre denkbar. Vermutlich wäre Software-Entwicklung für ein eingebettetes System mit einer maschinennahen Sprache ein wenig zu weit weg von den Schwerpunkten dieses Studienganges, aber insgesamt scheint es eine große Bandbreite an Möglichkeiten zu geben, die Studienanforderungen Projekt- und Bachelorarbeit zu erfüllen.
    - Die App von Herrn D. hatte am Ende noch Bugs. Es war nicht der Anspruch, dass am Ende ein fehlerfreies Produkt steht. Wichtig war, dass es prinzipiell funktionierte und dass eine professionelle Vorgehensweise erkennbar war. Eine perfekt ausgearbeitete App wäre nach Einschätzung von Herrn D. im vorgegebenen Zeitrahmen nicht machbar gewesen. In Anbetracht der vielen Artefakte, die in der Präsentation von Herrn D. gezeigt wurden, ist mir noch einmal klar geworden, dass die Anfertigung der Bachelor-Arbeit innerhalb der Frist ein sehr gutes Zeitmanagement erfordern wird. Dafür werde ich mir rechtzeitig eine gute Strategie zurechtlegen müssen.
    - Herr D. konnte Vorerfahrungen nutzen. Es war zwar seine erste Android-App aber er entwickelt beruflich mit Java und IntelliJ. Die Hürde zu Android und AndroidStudio war aus seiner Sicht vergleichsweise gering. Vermutlich ist es auch für mich sinnvoll, mir ein Projekt zu überlegen, bei dem ich an vorhandenem Wissen anknüpfen kann.
     
    Am Ende seines Vortrages bekam Herr D. nicht nur seine Bachelorurkunde sondern auch die Absolv-Ente verliehen, eine Ente mit Doktorhut, die bei unseren Studierenden sehr beliebt ist. Frau Kreissig wies darauf hin, dass die Absolv-Ente nur bekommt, weil seine Bachelorurkunde persönlich abholt und den Studierenden seine Bachelorarbeit vorstellt.
     
    Herr D. hat übrigens einen ausführlichen Blog über den Verlauf seines Studiums geschrieben, im dem ich schon häufiger mit Gewinn gelesen habe. Da er über seine Erfahrungen mit den einzelnen Modulen recht ausführlich berichtet hat, konnte ich oft sinnvolle Modulkombinationen besser auswählen und planen. Wer eimal reinschauen möchte, hier ist der Link:
    https://wmifernstudium.wordpress.com/
     
    Fragerunde und Feedback
     
    - Einzelne Studierende klagen, dass die Korrekturzeiten in bestimmten Modulen ungewohnt lang ausfallen können, so dass es schwierig wird, rechtzeitig zu einem anvisierten Prüfungstermin fertig zu werden. Frau Kreissig rät, sich in solchen Fällen ans Studienbüro zu wenden. Die Mitarbeiter dort gehen solchen Hinweisen nach. (Ich möchte hier ergänzen, dass Tutoren auf der Online-Plattform Abwesenheiten üblicherweise ankündigen und auch entsprechende E-Mail-Benachrichtigungen einrichten. Nach meiner Erfahrung ist es nützlich, seinen Tutor über die eigene Zeitplanung zu informieren.)
    - Studierende anderer Fernhochschulen können EBooks des Springer Verlags über ihre jeweiligen Lernplattformen nutzen. Warum geht das (ausgerechnet) bei Springer Campus nicht? Tatsächlich geht es! Aber nicht über die Lernplattform sondern über die Uni-Bibliothek der FH Dortmund.
    - Manche Studierende möchten gerne im Vorfeld informiert werden, welche Module bald in neuer Auflage erscheinen werden, um sie gegebenenfalls später zu belegen. Fr. Kreissig berichtete, dass Autoren oft zu optimistisch einschätzen, wie schnell sie ein Lehrbuch überarbeiten können. Geplante Termine können oft nicht eingehalten werden. Aus diesem Grund ist die Kommunikation mit Studierenden in diesem Punkt bislang zurückhaltend.
    - Manche Studierende erkundigten sich nach der neuen Plattform. Bei der Einführung gab es ja Schwierigkeiten, so dass viele Studierende lieber wieder zur alten Plattform wechselten. Fr. Kreissig berichtete, dass es inzwischen Wochen ohne Tickets gibt. Die neue Plattform funktioniere nun recht gut. Die Suchfunktion wolle man noch verbessern. Die Studierenden äußerten Verbesserungsvorschläge, z.B. zur Verlinkung zwischen Tests und den Wissensbausteinen, auf die sich die Aufgaben beziehen, um z.B. bei falschen Lösungen schneller zu den relevanten Kapiteln navigieren zu können.
     
    Eine persönlicheEmpfehlung zum Schluss
     
    Die Präsenztage in Dortmund sind überlicherweise zugleich auch Informationstage für Studieninteressierte. Auf Anfrage teilte mir das Studienbüro mit, dass es bei Voranmeldung durchaus möglich sei, an den angebotenen Fach-Vorträgen und Mathe-Tutorien teilzunehmen. Insbesondere den letzten Punkt halte ich für sehr interessant. Vor Aufnahme meines Studiums habe ich mir nämlich große Sorgen gemacht, ob ich die Anforderungen in Mathematik würde bewältigen können. Zwar hatte ich im Abitur einen Mathe-LK und war damit auch gut zurecht gekommen, aber der Schulstoff lag eben viele Jahre zurück. Ich war mir keinesfalls sicher, ob mir der Wiedereinstieg ins Thema gelingen würde. Ich glaube, wer einmal in so ein Mathe-Tutorium reinschnuppert, gewinnt einen guten Eindruck, worum es im Modul Mathe2 geht, dass von vielen Studierenden als der "Knackpunkt" des Studium empfunden wird. Wer das bewältigt, sollte am Rest nicht scheitern. Insofern möchte ich dazu ermuntern, bei Studieninteresse Kontakt mit dem Studienbüro aufzunehmen und die Möglichkeit zu nutzen, sich am Präsenztag selbst ein Bild zu machen. Gerade der informelle Austausch mit anderen Studierenden kann für eine fundierte Studienentscheidung sehr wichtig sein.
     
    Weitere Infos zum Verlauf des Präsenztages folgen.
  19. kurtchen
    5. Semester - Wintersemester 2018
    - Geschäftsprozessmanagement
    - BWL2
     
    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)
     
    Aktuell in Bearbeitung bei Springer Campus
    - Text-Mining
    - Präsentieren
    - Aktuelle Webtechniken
     
    Danach noch fehlende Pflichtmodule:
    - Software-Management
    - Software-Testen
    - Multimedia
    - IT-Recht
    - Wissenschaftliches Arbeiten
    - Projektarbeit
    - Bachelorarbeit
  20. kurtchen
    Das Modul "Angewandte Mathematik" ist das dritte von insgesamt vier Mathematik-Modulen im Studiengang "Web- und Medieninformatik". Studierende der Wirtschaftsinformatik müssen es nicht machen, dürfen es aber als Vertiefungsfach belegen. Auch wenn es formal - wie bei der W3L üblich -  keine Teilnahmevoraussetzungen gibt, gelten Mathe2 (Analysis und lineare Algebra), GdI1 (strukturierte und prozedurale Programmierung) und GdI2 (objektorientierte Programmierung) als inhaltliche Voraussetzungen. Meiner Meinung nach braucht man auf jeden Fall die Kenntnisse in linearer Algebra und Analysis, die Mathe2 vermittelt. Die Programmierkurse wären aus meiner Sicht weniger wichtig.
     
    Kursautor von Mathe3 ist wieder Professor Lenze, der schon die Lehrbücher zu Mathe2 geschrieben hat. Die beiden Kurse bauen schön aufeinander auf. Man kann die Bände aus Mathe2 gut zum Nachschlagen nutzen, wenn man bei der Lektüre von Mathe3 merkt, das einem etwas entfallen ist. Auch in diesem Kurs gibt es die hervorragenden PDF-Tools, mit denen man sich zu allen Kapiteln des Buches selbst beliebig viele Übungsaufgaben mit Lösungen generieren kann.
     
    Angewandte Mathematik ist natürlich ein Sammelbegriff, der ganz verschiedene Teilgebiete zusammenfasst, die in unterschiedlichen Anwendungssituationen von Bedeutung sind. Herr Lenze hat für diesen Kurs drei Gebiete ausgewählt, die für einen Informatiker interessant sein sollten: Numerik, Grafik und Kryptik.
     
    Das Buch beginnt allerdings mit einem Kapitel über Zahldarstellungen und Maschinenzahlen und über charakteristische Rechen- und Rundungsfehler, die beim Rechnen mit Maschinenzahlen auftreten können. Das ist interessant und für manche Anwendungen relevant. Es ist letztlich eine Auffrischung von Stoff, der den Studierenden schon aus GdI1 bekannt sein sollte, wo dieses Thema bereits behandelt wurde. Dieses einführende Kapitel ist nicht klausurrelevant.
     
    Teil 1 - Numerik
     
    Das Kapitel Numerik fasst verschiedene Näherungsverfahren zusammen. Ausgangspunkt ist der Banachsche Fixpunktsatz. Hier geht es um sogenannte kontrahierende Selbstabbildungen. Das sind Funktionen, bei denen ich mein f(x) wieder neu als x in die Funktion einspeisen kann; die generierten Werte nähern sich dabei von Schritt zu Schritt einem Fixpunkt. Letztlich geht es in der Numerik darum, Funktionen zu finden, die bestimmte Probleme durch schrittweise Näherung lösen. Das ist dann nützlicht, wenn eine exakte Lösung schwierig, unbekannt oder aufwendig ist.
     
    Das Kapitel zur Numerik zerfällt in zwei Teile. Im ersten Teil geht es um Anwendungen in der Analysis, im zweiten um Anwendungen in der linearen Algebra. Relevant für die Präsenzklausur ist nur der erste Teil. Aber Achtung: In der Online-Klausur und in den Online-Tests kann - wie schon in Mathe2 - alles drankommen.
     
    Die Inhalte zur Analysis:
    - Mit dem Newton-Verfahren kann man näherungsweise die Nullstelle einer differenzierbaren Funktion in einem Intervall finden, indem man an den Graphen Tangenten anlegt.
    - Mit dem Heronverfahren kann man Quadratwurzeln reeler Zahlen näherungsweise berechnen.
    - Das Sekanten-Verfahren ist ein weiteres Verfahren zur Näherung von Nullstellen.
    - Mit dem Abstieg-Verfahren kann man das Minimum einer Funktion in einem Intervall finden.
    - Das Dividierte-Differenzen-Verfahren liefert Näherungen für Ableitungen einer Funktion.
    - Die Trapez- und Simpson-Regel nähern Integrale.
    - Die iterierte Trapez- und Simpson-Regel machen das gleiche mit verbesserter Genauigkeit.
     
    Die Inhalte zur lineare Algebra:
    - Gesamtschrittverfahren,
    - Einzelschrittverfahren und
    - SOR-Verfahren. Damit kann man lineare Gleichungsssysteme näherungsweise lösen, die durch eine reguläre Matrix und einen Vektor gegeben sind.
    - von Mises-Geiringer Verfahren. Damit kann man Eigenwerte und Eigenvektoren näherungsweise berechnen.
     
    Numerik war für mich schon recht interessant. Die Verfahren laufen mechanisch ab und lassen sich gut als Algorithmen implementieren. Im Kurs finden sich dafür auch Code-Schnipsel in Java. Aus dieser Perspektive macht Mathematik auch dem angehenden Informatiker Spaß.
     
    Teil 2 - Grafik
     
    Auch das Kapitel Grafik zerfällt wieder in zwei Teile. Im ersten Teil geht es um polynomiale Interpolation und Approximation. Das ist eigentlich eine ziemlich interessante Sache. Aus Schulzeiten kennen wir ja noch die Situation: Man bekommt eine Funktionsvorschrift und soll nun eine Reihe von Funktionswerten berechnen, die man in ein Koordinatensystem einzeichnet. Und wenn man genug Koordinaten hat, verbindet man die Punkte zu einem Graphen. Bei der polynomialen Interpolation geht man nun den umgekehrten Weg. Bekannt sind ein paar Koordinaten. Gesucht ist eine Funktionsvorschrift für ein Polynom, das genau durch diese Punkte verläuft. Bei der polynomialen Approximation sucht man ein Polynom, das nur ungefähr durch die gegebenen Punkte läuft, dafür aber einen glatteren Kurvenverlauf aufweist.
     
    Man lernt:
    - polynomiale Interpolation mit Monomen
    - polynomiale Interpolation nach Lagrange
    - polynomiale Interpolation nach Newton
    Gerade die letztere ist ziemlich interessant. Hier kann man nämlich das aus der Numerik bekannte Dividierte-Differenzen-Verfahren anwenden, um sogenannte Newton-Koeffizienten zu bestimmen. Die kann man nutzen, um mit dem Newton-Horner-Schema das Interpolationspolynom effizient auswerten zu können. Man kann also schnell weitere Funktionswerte berechnen, ohne sich die Mühe zu machen, die Funktionsvorschrift explizit zu bestimmen. Auch diese Verfahren lassen sich gut in Code implementieren.
     
    Ferner lernt man:
    - Interpolation nach Aitken-Neville
    - nach de Casteljau
    - interpolierende Subdivision nach Dubuc
    - und schließlich approximierende Subdivision nach Chaikin
     
    In diesem Kursabschnitt werden auch Bernstein-Grundpolynome wichtig, die in Mathe2 noch nicht klausurrelevant waren. Für Mathe3 muss man die unbedingt drauf haben.
     
    Den zweiten Teil des Grafik-Kapitels bilden Verfahren der Interpolation über Rechtecken und Dreiecken, die in der 3D-Grafik zum Einsatz kommen können. Hier geht es auch um Verfahren zur Schattierung, z.B. um die Gouraud oder die Phong-Schattierung. Dieser recht interessante Teil ist nicht relevant für die Präsenzklausur, kann aber in der Online-Klausur drankommen.
     
    Ich vermute, die Einschränkungen des Stoffes haben auch damit zu tun, dass viele der Verfahren eine hohe Zahl einfacher Rechenschritte erfordern. Dies gilt umso mehr für Verfahren, die mit linearer Algebra zu tun haben, weil man da mit Matrizen hantiert. Würde man so etwas in der Präsenzklausur machen, könnte man in der Zeit nur wenige Aufgaben stellen und nur wenig Stoff abprüfen. Das merkt man, wenn man die Einsendeaufgaben zu diesem Kapitel bearbeitet. Da hat man es zum Teil Gleichungen zu tun, die sich über viele Zeilen erstrecken. Das ist zeitaufwendig, die Schritt für Schritt umzuformen. Und man braucht viel Konzentration, um keinen Flüchtigkeitsfehler zu machen.
     
    Teil 3 - Kryptik
     
    Kryptik ist der letzte Teil des Kurses. Hier geht es um mathematische Grundlagen für Verschlüsselung und Schlüsseltausch. Diesen Teil kann ich nicht so detailliert beschreiben. Der Stoff war nicht unbedingt schwierig aber sehr fremdartig und neu. Man benutzt Primzahlen und ihre sogenannten Restklassenkörper. Außerdem beschäftigt man sich mit sogeannten Galois-Feldern. Die bestehen aus Polynomen, die lediglich 0 und 1 als Koeffizienten aufweisen und sich daher gut als Bitfolge darstellen lassen. Man lernt Addition und Multiplikation neu und wendet nun diese neuen Kenntnisse an, um im Restklassenkörper oder in Galois-Feldern z.B. Determinanten oder inverse Matrizen zu berechnen, Gleichungssysteme zu lösen und so weiter. Nichts davon ist wirklich schwierig, aber das Kapitel war trotzdem eine Herausforderung, weil man beim Rechnen leicht vergisst, dass man es nicht mit normalen Zahlen zu tun hat, auch wenn es so aussieht. Da schleichen sich leicht Fehler ein.
     
    Eine weitere Schwierigkeit ist, dass man zu Beginn nicht begreift, was das alles denn mit Verschlüsselung zu tun haben könnte. Man ist schon fast am Ende des Kapitels, wenn auf wenigen Seiten das Diffie-Hellman-Verfahren und das Vernam-Verfahren, AES, DES und RSA erklärt werden. Und auf einmal passt alles zusammen und man versteht den Sinn des ganzen. Hier lohnt es sich also wieder einmal, am Ball zu bleiben und sich erst mal die nötigen Grundlagen zu erarbeiten. Natürlich hätte ich mir gewünscht, gleich zu Beginn erklärt zu bekommen, wozu ich das Rechnen im Galois-Feld lernen soll. Aber man kann das "wozu" wohl erst verstehen, wenn man die Grundlagen beherrscht.
     
    Nach Mathe2 wird es leichter
     
    Im Vergleich zu Mathe2 war Mathe3 leichter. Weil es um recht praktische Verfahren geht, mit denen man etwas berechnen oder nähern kann. Weil diese Verfahren sich gut in Code überführen lassen. Weil man sich gut vorstellen kann, dass es für diese Verfahren Anwendungen gibt, auch wenn man die wahrscheinlich später nicht selbst in Code implementieren wird. Weil man für vieles, was hier geschieht, auch gute graphische Veranschaulichungen finden kann.
     
    Im Online-Test kann wieder alles drankommen. Meiner Meinung nach, bereitet man sich auf den Online-Test am besten vor, indem man die Tests des Moduls intensiv wiederholt. Auch in der Online-Klausur kann alles drankommen. Die Aufgaben werden anscheinend vom Zufallsgenerator ausgewählt. Ich hatte fast nur Aufgaben aus dem Kapitel Grafik und ein bisschen Kryptik. Und es war vor allem Stoff, der in der Präsenzklausur NICHT vorkommen sollte. Wer also in den Genuss von Bonuspunkten kommen möchte, muss zuschauen, dass er sich den ganzen Stoff erarbeitet. Zumindest muss man sich soweit auskennen, dass man im Online-Test die 70% holen kann, die man für die Klausurzulassung braucht.
     
    Die Betreuung durch Herrn Lenze war wieder einmal hervorragend. Sehr schnelle Rückmeldungen, gute Hinweise zur Prüfungsvorbereitung.
     
    In der Präsenzklausur war der Stoff sehr gleichmäßig über die drei Kapitel verteilt. Man darf keinen Taschenrechner benutzen. Es ist trotzdem schaffbar, weil die Werte so gewählt sind, dass sie sich gut für Handrechnung eigenen. Das Problem ist wieder einmal der Faktor Zeit. Man darf das Lehrbuch und sogar gerechnete Einsendeaufgaben mitnehmen. Aber das nützt nur bedingt, weil man die Aufgaben in der Zeit nicht schaffen wird, wenn man ständig nachschlagen muss. Es muss schon ein Grundstock Wissen im Kopf sein, dann kann ein gelegentlicher Blick ins Buch bestätigen, dass man sich an diese oder jene Formel richtig erinnert.
     
    Auch in Mathe3 habe ich noch kein Ergebnis, bin aber zuversichtlich, dass ich diese Klausur nicht nochmal schreiben muss.
     
    Nachtrag: Ergebnis
     
    Nach nicht einmal 2 Wochen habe ich für Mathe3 schon ein Prüfungsergebnis. Es ist ziemlich gut gelaufen. Die gründliche Vorbereitung hat sich gelohnt.
     
    Für diese Klausur habe ich im Urlaub oft bei brütender Hitze Übungsaufgaben gerechnet, während meine Familie sich im Pool verlustiert hat. Und sich gewundert hat, wie ich mich dazu überwinden konnte, im Urlaub und bei so schönem Wetter zu lernen. Nun freue ich mich sehr. Es ist schön, zu erleben, wie man innere Fortschritte macht. Wie sich Mühe auszahlt, weil man plötzlich Dinge begreift, die einem anfangs so schwierig erschienen. Es ist aber auch schön, wenn diese innere Entwicklung sich am Ende als äußerer Erfolg manifestiert. Das motiviert mich gerade im Fernstudium, wo es ja keinen äußeren sozialen Rahmen gibt, der mich trägt.
  21. kurtchen
    Mein letztes Modul im ersten Semester sollte "Webprogrammierung" werden. Für Studierende im Studiengang "Web- und Medieninformatik" wird es als erstes Modul in diesem Fachgebiet empfohlen. Es ist zugleich Pflichtmodul im Studiengang "Wirtschaftsinformatik", wo es dem Fachgebiet Softwaretechnik zugeordnet ist. Für die Wirtschaftsinformatiker bleibt es das einzige Pflichtmodul, dass sich speziell mit Webtechnologien beschäftigt. (Sie belegen allerdings noch ein Modul zu Content Management Systemen.) Für die Webinformatiker ist es der Auftakt zu vertiefenden Modulen in HTML und CSS, in Multimedia, XML, Webdesign und serverseitiger Programmierung mit Java Server Pages. Der Wahlpflichtbereich bietet dann weitere Möglichkeiten, sich in diesem Bereich zu entwickeln, auch für die Wirtschaftsinformatiker.
     
    Doch zurück zum Modul "Webprogrammierung". Es handel von folgenden Themen:
    - XHTML
    - CSS
    - Javascript
    - XML
    - PHP
    - Java Server Pages
    - ASP.Net
    - und eine sehr knappe Einführung in Ajax
     
    Der Kurs beschäftigt sich also mit semantischem Markup, Styling und Layout, clientseitiger Programmierung und serverseitiger Programmierung.
     
    Das erste Kapitel behandelt XHTML. HTML5 war anscheinend bei der letzten Überarbeitung noch nicht so weit, auch wenn es im einführenden Kapitel kurz vorgestellt wird. Für die Bearbeitung der Aufgaben ist die XHTML-Syntax verbindlich, die in verschiedenen Punkten ein bisschen strenger ist.
    Inhalte hier sind z.B.:
    - Grundlegender Aufbau eines XHTML-Dokumentes
    - Links
    - Bilder
    - Bereiche
    - Tabellen
    - Formulare
     
    Im Grunde keine schlechte Einführung, die aber für meinen Geschmack ein wenig knapp ausgefallen ist. Möglicherweise ging man bei der Konzipierung des Moduls davon aus, dass viele Studierende in diesem Gebiet Vorkenntnisse haben. Dies trifft auch für viele meiner Kommilitonen zu, die z.B. als PHP-Entwickler arbeiten. Mit solch einem Hintergrund sollte das Kapitel zu XHTML tatsächlich recht leicht fallen. Ich ging mit wenig Vorkenntnissen in den Kurs, hatte keine Schwierigkeiten, die vorgestellten Konzepte zu verstehen, merkte aber bei den Übungen, dass ich in der Anwendung nicht richtig sicher wurde.
     
    Ein Besonderheit in diesem Kurs: Es gibt vergleichsweise wenige Einsendeaufgaben; in der Regel zu jedem Kapitel eine. Vor Bearbeitung jeder Einsendeaufgabe wird die Bearbeitung einiger Übungsaufgaben vorgeschlagen, zu denen man sich Musterlösungen runterladen kann. So kann man selbst vergleichen und schauen, ob die eigene Lösung sinnvoll und richtig war. Natürlich kann man so eine Menge lernen und ich fand die Übungen auch didaktisch gut gewählt und erkannte einen sinnvollen Aufbau. Ein wenig mehr Tutorinteraktion hätte mir aber besser gefallen, zumal das in anderen Modulen ja auch möglich ist. Die Einsendeaufgaben fassten aber meist ganz gut die einzelnen Fähigkeiten aus den vorangegangenen Übungen zu einer komplexeren Gesamtaufgabe zusammen.
     
    Im nächsten Kapitel ging es um CSS. Themen waren hier zum Beispiel:
    - Vererbung, Kaskadierung
    - Tabellengestaltung
    - Layoutgestaltung mit float
    - Absolutes Layout

    Responsive Webdesign spielte in diesem Modul keine Rolle.
     
    Weiter ging es mit Javascript als clientseitige Programmiersprache. Hier ging es ums DOM, um Event Handler und um die Validierung von Formularen. Auch dieses Kapitel war für meinen Geschmack recht knapp. Ich hatte keine Schwierigkeiten, den Stoff nachzuvollziehen, merkte aber bei den Übungen, dass es einfach zu schnell gegangen war, um eine gewisse Sicherheit im Umgang mit der Sprache zu entwickeln. Auch merkte ich, dass mir die solide Grundlage in HTML und CSS fehlte, so dass ich immer wieder im Lehrtext zurückgehen musste.
     
    Javascript sieht Java auf den ersten Blick ähnlich, hat aber ein anderes Sprachkonzept. Bei den Übungen hatte ich oft das Problem, die gewohnte Java-Syntax und die noch ungewohnte Javascript-Syntax zu mischen, was dazu führte, dass ich immer wieder viel Zeit für Fehlersuche aufbringen musste. Diese Verwirrung sollte sich um Laufe des Kurses noch steigern, wenn ähnliche Anwendungsbeispiele in verschieden Sprachen gezeigt wurden. So merkte man einerseits gut die Unterschiede zwischen den Sprachen, aber zugleich fiel es mir schwer, die Codebeispiele in meiner Erinnerung auseinander zu halten.
     
    Im folgenden Kapitel über XML ging es um:
    - den grundlegenden Aufbau einer XML-Datei
    - XML-Parser
    - die DTD
    - das XML-Schema
    - um XSL-Stylesheets

    Außerdem lernte man die Vorzüge eines XML-Editors kennen. Hier möchte ich erwähnen, dass die W3L ein eigenes Modul "XML" hat, dass wesentlich tiefer geht und das im Studiengang "Web- und Medieninformatik" Pflicht ist. Als Einführung ins Thema XML fand ich dieses Kapitel sehr gelungen.
     
    In den folgenden Kapiteln sollte es um serverseitige Sprachen gehen. Hier folgten im Schnelldurchgang:
    - PHP
    - Java Server Pages
    - ASP.Net
     
    Im PHP-Kapitel ging es natürlich um die Anbindung an MySQL, aber auch um einfache Dateiverarbeitung und die Realisierung eines Gästebuches.
     
    Eine Herausforderung im JSP-Kapitel ist, dass die Syntax häufig wechselt, denn auch EL, JSTL und JSF werden kurz angerissen. Das soll wohl einen Überblick über verfügbare Techniken vermitteln, stiftet aber aus meiner Sicht in dieser knappen Form eher Verwirrung. JSP hat nur einen geringen Marktanteil. Trotzdem lohnt es sich, dieses Kapitel gründlich zu bearbeiten, denn das Pflicht-Modul "Web-Anwendungen 2" behandelt ausführlich JSP. Auch im Wahlpflichtbereich kann man sich weiter mit Java als serverseitiger Sprache befassen, während es zum Beispiel zu PHP keine weiteren Module gibt.
     
    Sehr gelungen fand ich dafür das Kapitel zu ASP.Net. Hier ging es unter anderem um das Konzept der code behind Technik, die eine saubere Arbeitsteilung zwischen Front-End- und Back-End-Entwicklern ermöglichen soll. Hier habe ich gemerkt, dass die Einführung in C# aus dem Modul "Grundlagen der Informatik 2" doch recht knapp war. Mit meinen Java-Kenntnissen fand ich mich zwar schnell zurecht, aber an Details blieb ich doch oft hängen und verbrachte viel Zeit mit Fehlersuche. Gleichwohl hat mir besonders dieses Kapitel gut gefallen, weil ich dabei den Net-Framework als ein schönes Stück Technik schätzen gelernt habe. Schade, dass weder ASP noch C# im weiteren Curriculum der W3L eine Rolle spielen.
     
    Das letzte Kapitel stellte in sehr knapper Form die Möglichkeiten von Ajax vor. Hier habe ich definitiv nichts mehr mitnehmen können. Ich war einfach übersättigt von den rasch wechselnden Themen und hatte zu viel neue Syntax in zu kurzer Zeit verdauen müssen. Bei der Bearbeitung der Aufgaben merkte ich das daran, dass ich immer wieder die verschiedenen Sprachen mischte und verwechselte.
     
    Zusätzlich hatte ich in diesem Modul das Problem, dass meine Tutorin länger für die Korrektur meiner Aufgaben brauchte, als ich das bislang von der W3L gewohnt war. Wenn Feedback kam, war ich oft schon 2 Kapitel weiter, was es mir schwerer machte, die durchaus guten Tipps zu verwerten. Auch die Korrektur der Online-Klausur dauerte ein wenig länger, so dass ich beim Schreiben der Präsenzklausur noch nicht wusste, wieviele Bonuspunkte ich hatte.
     
    Für mich war es das erste Modul mit dem ich insgesamt unzufrieden war. Für meinen Geschmack wollte man hier zu viel auf einmal. Die Intention, einen Überblick über gängige Webtechnologien zu geben, die Themen semantisches Markup, Styling, client- und serverseitige Programmierung in einem Modul vorzustellen, war für mich nachvollziehbar. Aber nach der Bearbeitung hatte ich den Eindruck, dass weniger mehr gewesen wäre. Lieber hätte ich zunächst eine gründlichere Einführung in HTML und CSS erhalten. Diese Grundlage bringen natürlich viele Studierende schon mit, weshalb dieses Modul von vielen meiner Kommilitonen als eines der leichteren beschrieben wird.
     
    Für die Präsenzklausur hatte meine Tutorin mir den wertvollen Tipp gegeben, ein paar Aufgaben noch einmal mit Stift und Papier zu bearbeiten. Das hat mir tatsächlich geholfen, ein paar syntaktische Grundstrukturen "in die Finger" zu kriegen, wodurch ich in der Klausur etwas schneller war. Die Note war für mich zwar erfreulich, aber das gute Gefühl, sich den Stoff richtig angeeignet zu haben, blieb in diesem Modul für mich aus. Die Klausur deckte die Themen des Kurses recht breit ab, so dass ich anderen Studierenden empfehlen würde, alle Kapitel zu wiederholen. 
     
    Meine Tutorin hat mir übrigens am Ende erklärt, warum die Bearbeitung in meinem Fall etwas länger gedauert hat als üblich, und das war für mich auch gut nachvollziehbar. Da ich bald das Modul "Web-Anwendungen 1" belegen wollte, das ebenfalls von ihr betreut wurde, plante ich eine etwas längere Bearbeitungszeit ein und belegte parallel GdI3 "Anwendungsprogrammierung". Rückblickend muss ich sagen, dass es hilfreich war, das Thema der längeren Korrekturzeiten anzusprechen. Das Problem ließ sich dadurch zwar nicht sofort lösen, aber immerhin habe ich so einen guten Workaround finden können. Ich nehme daraus mit, dass es sich lohnt, sich mit den Tutoren über die eigenen Lernziele auszutauschen, auch und gerade was Klausurtermine und die angepeilte Bearbeitungszeit angeht. Wenn man rechtzeitig weiß, was einen erwartet - z.B. vorrübergehend etwas längere Korrekturzeiten - kann man einen Plan B machen.
     
    Rückblickend betrachtet, hätte ich lieber das Modul "Webanwendungen 1" als erstes bearbeitet. Hier erhält man die sehr gründliche Einführung in HTML5 und CSS, die ich mir von einem einführenden Modul in Webtechologien erhofft hätte. Dieser Kurs orientiert sich außerdem an Fallbeispielen, was für mich sehr zum Verständnis beigetragen hat. Aus meiner Sicht sollte "Web-Anwendungen 1" das erste Modul zu Webtechnologien sein. Doch darüber schreibe ich zu einem anderen Zeitpunkt mehr.
     
    Ich meine, das Modul leidet etwas unter seiner Doppelfunktion: Für die Wirtschaftsinformatiker ist es sozusagen die eierlegende Wollmilchsau. Es verschafft ihnen einen Überblick über verschiedene Webtechnologien, ohne allzu sehr in die Tiefe zu gehen. Für die Webinformatiker soll es zugleich eine Einführung sein, auf die umfangreiche Vertiefungsmodule folgen. Das erfordert ein paar didaktische Kompromisse.
     
    Als Sekundärliteratur für dieses Modul habe ich "HTML & CSS: Design and Build Websites" und "Javascript & JQuery: Interactive Front-End Web Development" verwendet. Beide Titel sind von Jon Ducket. Sie glänzen durch ein sehr aufgeräumtes Layout. Der Stoff wird in appetitlichen, kleinen Häppchen serviert und man hat eine schöne Gegenüberstellung von Code und grafischer Darstellung. Ich habe diese Bücher parallel zum Kurs gelesen und empfand die besonders ästhetische Form der Darstellung als ideale Ergänzung zum sachlichen und systematischen Stil des im Kurs verwendeten Lehrbuches.
  22. kurtchen
    Mein zweites Modul bei der W3L war "Rechnerstrukturen und Betriebssysteme". Es ist eines von 4 Pflichtmodulen im Studienbereich IT-Systeme. Ich hatte es früh belegt, weil ich wusste, dass es dort auch um Digitalelektronik geht. Da hatte ich ein bisschen Vorkenntnisse, weil ich in der 9. und 10. Klasse einen Differenzierungskurs Mathematik belegt hatte, und da hatten wir uns ein halbes Jahr lang mit Digitalelektronik beschäftigt und z.B. Serienaddierer gebaut. Insofern hatte ich gehofft, dass mir dieses Modul etwas leichter fallen würde, was für den Einstieg ins Studium ja nicht schlecht gewesen wäre. Ein bisschen Zweifel an dieser Entscheidung kamen auf, als beim Präsenztag mehrere Kommilitonen meinten, dieses Modul habe es in sich. Aber da hatte ich schon gebucht und musste die Sache angehen.
     
    Inhalte des Moduls waren:
    - Codierung von Zahlen.
    - Boolesche Algebra:  Ausdrücke, Funktionen, Normalformen
    - Umformung und Minimierung boolescher Ausdrücke
    - darauf aufbauend Schaltnetze: Das sind zustandslose Schaltungen, die bei einem bestimmten Eingangsvektor immer den gleichen Ausgangsvektor liefern.
    - und Schaltwerke: Die haben einen inneren Zustand, der mit dem Eingangsvektor verknüpft wird. Und darum liefern die nicht immer den gleichen Ausgangsvektor bei gleichem Eingangsvektor.
    - Rückkopplungselemente, Flip-Flops, Steuerwerke
     
    Bis  hierhin kam ich mit meinem Schulwissen ziemlich gut mit.
     
    Aber nun ging es weiter mit:
    - Grundstruktur des Prozessors
    - Rechenwerk des Prozessors
    - Steuerwerk des Prozessors
    - Prozessorarchitekturen
    - Befehls- und Programmabarbeitung
    - Koprozessoren
    - Optimierungskonzepte
    - Multiprozessorsysteme
    - Prozessorcaches
    - Ein-/Ausgabe-Komponenten
     
    Da hatte ich weniger Vorkenntnisse und das fiel mir schon schwerer.
     
    Nun kam der Schwenk zur Software also zu Betriebssystemen. Hier ging es vor allem um:
    - Prozessverwaltung
    - Speicherverwaltung
    - Dateiverwaltung
     
    Einsendeaufgaben waren z.B. einen Fehler in einem Schaltwerk finden, ein Schaltnetz vereinfachen, die Vorzüge verschiedenen Prozessorarchitekturen gegeneinander abwägen, virtuelle Speicheradressen berechnen.
     
    Eine Herausforderung bei diesem Kurs war, dass das Lehrbuch sehr dicht geschrieben war. Es hatte nur an die 200 Seiten, was mir zunächst sehr wenig vorkam. Aber die hatten es in sich. Jeder Satz zählte. Am Anfang hatte ich mit diesem Stil meine Schwierigkeiten. Ich hatte mir viel Sekundärliteratur aus der Uni-Bibliothek besorgt, um alles noch einmal und ausführlicher zu lesen. Nach einer Weile merkte ich jedoch: Das knappe Buch der W3L enthält alles was man braucht. Man muss nur sehr genau lesen und sich klar machen, dass jeder Satz wichtige Informationen enthält. Nachdem ich  das begriffen hatte, war ich von dem  Buch sogar ziemlich begeistert. Wegen der knappen Form konnte man es sehr gut zum Nachschlagen benutzen. Es dauerte nie lange, etwas zu finden.
     
    Sehr hilfreich war auch bei diesem Kurs die recht intensive Betreuung durch meinen Tutor, der viele weitergehende Fragen von meiner Seite in kurzer Zeit beantwortete und auch mal auf Nachfrage zusätzliches Material per PDF schickte. So bekam ich im Laufe der Zeit doch ziemlich viel Spaß an der Auseinandersetzung mit den Themen des Kurses.
     
    Die Klausur lief dann auch  ganz gut. Ich hatte sogar Zeit, vieles noch einmal gründlich zu checken. Geholfen hat mir hier, dass ich die Einsendeaufgaben in der Vorbereitung noch einmal  gründlich durchgegangen war und auch die Online-Klausur geschrieben hatte. Das gab schon einen ganz guten Eindruck von dem, was einen erwartete.
     
    Nach dem Kurs hätte ich Lust gehabt, vertiefende Kurse mit Hardwarebezug zu buchen. Internet of things ist ja ein aktuelles Schlagwort und es gibt auch immer mehr embedded systems, die in irgendeiner Weise vernetzt sind. Leider hat die W3L hierzu bislang nichts im Angebot. Das Studium heißt "Web- und Medieninformatik", insofern spielen Web-Technologien die entscheidende Rolle. Hardware ist eher ein Grundlagenthema, mit dem man sich einmal auseinander gesetzt haben sollte. Um mehr  davon zu bekommen, hätte ich wohl eher  technische  Informatik studieren müssen. Vielleicht kommt ja später einmal eine Gelegenheit, mich mit solchen Themen vertieft zu beschäftigen.
     
×
  • Neu erstellen...