Kognitive Informatik Revolutions

Bereits nachdem ersten und zweiten Semester hatte ich über meinen Studiengang Kognitive Informatik berichtet. Nun ist das dritte Semester vorüber und auch über die Veranstaltungen dieses Semesters möchte ich wieder berichten.

  1. Mein Stundenplan
  2. Grundlagen der Theoretischen Informatik
  3. Methoden der künstlichen Intelligenz
  4. Computerlinguistik und Sprachtechnologie
  5. Seminar: Repräsentation sprachlichen Wissens: Vagheit
  6. Softwaremodellierung, UML, Projektanalyse, -präsentation
  7. Grundlagen der Projektentwicklung
  8. Betriebssysteme
  9. Journal Club "Artificial Intelligence"
  10. Kognitive Neurowissenschaft
  11. Japanisch für Anfänger mit geringen Vorkenntnissen
  12. Fazit und Ausblick
  13. Nützliche Links

Mein Stundenplan

Den Anfang macht wieder mein Stundenplan. Da ich diesmal einige Veranstaltungen belegt habe, die nicht Pflicht sind, habe ich alle Pflichtveranstaltungen fett hervorgehoben. Womit ich mit Pflichtveranstaltung nicht meine, dass diese besucht werden muss, sondern dass diese für einen Abschluss des Studiengangs belegt und bestanden werden muss. In der Regel gilt für Vorlesungen keine Anwesenheitspflicht; für alle anderen Veranstaltung aber schon.

Eine zweiwöchentlich stattfindende Veranstaltungen ist zudem kursiv.

MontagDienstagMittwochDonnerstagFreitag
8:00–9:00Übungen: Computerlinguistik und Sprachtechnologie
9:00–10:00
10:00–11:00Seminar: Repräsentation sprachlichen Wissens: VagheitGrundlagen der Theoretischen Informatik
11:00–12:00
12:00–13:00Computerlinguistik und SprachtechnologieGrundlagen der Theoretischen InformatikSeminar: Kognitive NeurowissenschaftMethoden der künstlichen Intelligenz
13:00–14:00
14:00–15:00Methoden der künstlichen IntelligenzSeminar: Softwaremodellierung, UML, Projektanalyse, -präsentationSeminar: Journal Club "Artificial Intelligence"
15:00–16:00
16:00–17:00Übungen: Grundlagen der Theoretischen InformatikÜbungen: Softwaremodellierung, UML, Projektanalyse, -präsentation
17:00–18:00
18:00–19:00Seminar: Japanisch für Anfänger mit geringen Vorkenntnissen Teil II Niveau A1.2Grundlagen der Projektentwicklung
19:00–20:00

In der Tat hatte ich den Freitag komplett frei. Davon sollte man sich aber nicht täuschen lassen, denn meine Arbeitsbelastung war sehr hoch. Das lag zum einen natürlich an den zusätzlichen freiwillig belegten Veranstaltungen und zum anderen an meinem Nebenjob bei Miaplaza, wo ich seit letztem Semester voll involviert bin. Die zusätzlich belegten Veranstaltungen kann ich mir übrigens für die Individuelle Ergänzung anrechnen lassen. In diesem Bereich muss man 18 Leistungspunktesammeln und kann dafür jede beliebige Veranstaltung belegen.

Im folgenden werde ich die belegten Veranstaltungen wie gewohnt vorstellen.

Grundlagen der Theoretischen Informatik

In dieser Vorlesung wurden in etwa folgende Themen behandelt:

  1. Grundzüge der Logik (Aussagenlogik, Prädikatenlogik erster Stufe, Resolutionsverfahren)
  2. Formale Sprachen und Grammatiken (reguläre Ausdrücke/Sprachen, kontextfreie Sprachen, kontextsensitive Sprachen, allgemeine Regelsprachen, Chomsky-Hierarchie)
  3. Formale Sprachen und Automaten (deterministische und nichtdeterministische endliche Automaten, Kellerautomaten, Turing-Maschinen)
  4. Berechenbarkeit, Entscheidbarkeit und Komplexität (Church-Turing-These, Registermaschinen, P und NP, NP-Vollständigkeit)

Dies sind in meinen Augen alles nicht ganz unwichtige und größtenteils interessante Themen. Insbesondere Logik ist wichtig, wenn man sich mit künstlicher Intelligenz beschäftigt, da die klassische KI im Grunde komplett auf formaler Logik aufbaut. Ansonsten ist die praktische Anwendbarkeit der Themen wohl eher etwas beschränkt. Es handelt sich halt um Theoretische Informatik. Aber trotzdem halte ich es, wie bereits gesagt, für wichtiges Hintergrundwissen.

Gehalten wurde die Vorlesung von Dr.-Ing. Stefan Kopp und ich muss sagen, dass er den Stoff wirklich gut vermittelt hat. Ganz spaßig waren auch die Quizes am Ende jedes Themenblocks. Da wurden kleine Funksender verteilt, mit denen man für eine Antwort abstimmen konnte und nachher sah man dann die prozentuale Verteilung der gewählten Antworten.

Das dazugehörige Tutorium hatte ich bei Falk Altheide besucht. Wie in Tutorium mit eher mathematischen Stoff wurden die Aufgaben vorgerechnet (jeder musste ein oder zwei Aufgaben im Semester für die Klausurzulassung vorstellen) und Fragen vom Tutor beantwortet. Oft waren wir bereits nach weniger Zeit als für das Tutorium vorgesehen fertig.

Neben dem Vorrechnen von Aufgaben musste man für die Klausurzulassung mindestens 60% in den Übungsaufgaben erreichen. Bearbeitet wurden die Übungsaufgaben zu zweit. Die benotete Klausur am Ende des Semesters war schon etwas anspruchsvoller, aber durchaus machbar (wenn man genug lernt). Allerdings ist sie nicht besonders gut ausgefallen mit einem Schnitt von ca. 3,5 und einem Drittel Durchfallquote.

Zu der Vorlesung gab es ein gedrucktes Skript. (Dank Studiengebühren sind gedruckte Skripte an der Technischen Fakultät der Uni Bielefeld kostenlos.) Eine digitale Version zum Runterladen gab es aber leider nicht, was ich etwas unpraktisch fand, denn mein Notebook habe ich meistens dabei. Aber ein gedrucktes Skript will ich oft nicht extra mitschleppen.

Methoden der künstlichen Intelligenz

Der Stoff dieser Vorlesung war nicht extrem tief gehend, aber hat einen Überblick über die wichtigsten Methoden und Techniken der klassischen künstlichen Intelligenz gegeben. Klassische KI meint die auf Logik basierende, symbolverarbeitende KI im Gegensatz zu neueren Ansätzen wie neuronalen Netzen. Die Themen umfassten unter anderem:

  1. Symbolische Repräsentation von Wissen
  2. Problemlösen und Suche (Tiefen- und Breitensuche, heuristische Suche, Goal Trees, Constraint Satisfaction)
  3. Logik und Inferenz (Skolemisierung, Resolution, Unifikation)
  4. Spezielle Schlussverfahren (Abduktion, Induktion, probabilistisches Schließen, nicht-monotones Schließen, temporales Schließen)
  5. Kommunizierende Agenten

Die Vorlesung wurde gehalten von Prof. Ipke Wachsmuth ("International Person Knowing Everyone"), welcher seinen Studenten auch schonmal das "Du" anbietet. In seinen Vorlesungen (und auch sonst) schafft Herr Wachsmuth es oft ziemlich weit in Geschichten von eigenen Erlebnissen abzuschweifen, um dann aber doch wieder den Bogen zu kriegen und einen Bezug zum ursprünglichen Thema herzustellen.

Die Übungsaufgaben zur Vorlesung fand ich oft etwas nervig, da wir diese nur in Einzelarbeit bearbeiten durften. Die Bearbeitung dieser Aufgaben hat aber oft länger gedauert, als wenn man die Aufgaben zur Theoretischen Informatik in Einzelarbeit bearbeitet hat (welche ja zu zweit bearbeitet werden durften). Hin und wieder musste man selbst auch erst noch recherchieren, da einige Übungen (gewollt) über den Vorlesungsstoff hinausgingen.

Bei anderen Aufgaben dagegen konnte man 1:1 den Text aus den Vorlesungsfolien kopieren. Am stumpfsinnigsten fand ich aber eine Aufgabe, bei der man einen kompletten (recht großen) Suchbaum aufzeichnen sollte. Ich habe mir dafür ein Programm geschrieben. Zeitlich war das vermutlich etwas gleich aufwändig, aber so meine ich doch etwas mehr gelernt zu haben.

Während die Bearbeitung der Übungszettel oft einige Zeit in Anspruch genommen hat, waren wir in den Übungen mit dem Durchsprechen meist in weniger als 30–45 Minuten fertig.

Für die Klausurzulassung mussten in den Übungen auch wieder 60% der Punkte erreicht werden. Die Klausur war eigentlich ziemlich einfach – sofern man die Folien der Vorlesung auswendig gelernt hat. Anwendung der gelernten oder gar Übertragung war fast überhaupt nicht gefordert. Entweder Methoden der Künstlichen Intelligenz oder Computerlinguistik und Sprachtechnologie muss man benotet einbringen. Man kann aber zunächst beide Klausuren schreiben und wählt dann die bessere Note.

Ein richtiges Skript gab es zu der Vorlesung nicht. Aber die Folien konnte man herunterladen und zu jedem Teil gab es einen Kurztext in dem die wichtigsten Dinge nochmal zusammengefasst waren.

Computerlinguistik und Sprachtechnologie

Im Wesentlichen wurde in dieser Vorlesung nur eine Teilmenge des Stoffes der Theoretischen Informatik behandelt und zwar:

  1. Grundlagen von OCaML
  2. reguläre Ausdrücke
  3. Endliche Automaten und Transduktoren
  4. kontextfreie Sprachen

Allerdings kamen zum Schluss in Bezug auf kontextfreie Sprachen noch ein paar Begriffe, die wir in der Theoretischen Informatik nicht hatten, wie z.B. Konstituent oder transparent. Das war leider etwas unschön, weil die Stoff die ganze Zeit eigentlich bekannt und einfach war. Daher hat man eher weniger aufgepasst und plötzlich hatte man dann gerade diesen Teil verpasst. Das Skript war an der Stelle leider auch sehr undurchsichtig.

Prof. Dr. Marcus Kracht war sowohl für die Vorlesung als auch die (freiwilligen) Übungen der Dozent. Der Vortragsstil war recht gemächlich. Die Bearbeitung der Übungszettel war freiwillig. Allerdings konnte man, wenn man mit den Übungen eine gewisse Punktzahl erreicht hat, eine Note erhalten ohne die Klausur mit zuschreiben. Gemeinerweise hat Herr Kracht uns dies aber erst am Ende des Semesters mitgeteilt. Da ich glücklicherweise fast alle Übungszettel bearbeitet hatte, war ich einer der wenigen, die genug Punkte gesammelt hatten.

Die Übungen waren größtenteils recht einfach (im Vergleich zu denen zur Theoretischen Informatik). Allerdings gab es einige Übungen, bei denen man OCaML-Programme schreiben musste. Die Einführung in der Vorlesung war leider nur recht rudimentär, so dass man sich vieles zusammensuchen musste.

Zur Klausur kann ich nicht so viel sagen, da ich diese ja nicht mitgeschrieben habe. Aber obwohl es hieß, dass kein OCaML in der Klausur vorkommen würde, war dies wohl doch der Fall und mit den Übungen wäre es vermutlich einfacher gewesen ein gute Note zu erreichen.

Wie bereits bei Methoden der künstlichen Intelligenz muss man entweder diese Vorlesung oder Computerlinguistik benotet abschließen.

Seminar: Repräsentation sprachlichen Wissens: Vagheit

Nachdem Modulhandbuch ist das Seminar Repräsentation sprachlichen Wissens eigentlich erst für das Sommersemester vorgesehen. Da es aber auch im Wintersemester angeboten wurde, haben die meisten aus dem Studiengang es bereits belegt.

Genaugenomen zählt das Seminar mit zu dem Modul Computerlinguistik und Sprachtechnologie und es handelt sich nicht nur um ein Seminar. Stattdessen hat man die Auswahl aus verschiedenen Themen.

So gab es in diesem Semester zum einen das Seminar, das sich einfach nur "Repräsentation sprachlichen Wissens" nannte. Dort wurde aber wohl zu schätzungsweise 50% der Stoff der Theoretischen Informatik durch genommen. Zudem wurde in dem Seminar wohl eine Klausur geschrieben.

Ich habe allerdings "Repräsentation sprachlichen Wissens: Vagheit" besucht. Dort haben wir vor allem anhand des Buches "Theories of Vagueness" von Rosanna Keefe verschiedene Theorien zur Behandlung vager Ausdrücke wie beispielsweise "groß" in der Sprache behandelt.

Der Stoff war recht anspruchsvoll, wie ich fand, und die Lektüre der Texte hat einiges an Zeit gekostet. Für Kognitive Informatiker reicht in diesem Seminar wohl eine aktive Teilnahme, die man erhielt, wenn man nicht mehr als zweimal (egal, ob entschuldigt oder unentschuldigt) gefehlt hat. Zudem konnte man ein Referat (einzeln oder zu zweit) halten, das man sich auch benoten lassen konnte. In diesem Fall durfte man ganze 5x fehlen (wobei wir als Seminarteilnehmer diese Grenze bestimmen durften ^^).

Der Dozent war Hans-Christian Schmitz. Da er nur eine Vertretungsstelle hat, wird das Seminar zum Thema Vagheit vermutlich kein zweites Mal angeboten.

Softwaremodellierung, UML, Projektanalyse, -präsentation

Diese Veranstaltungen gehört zum Modul Techniken der Projektentwicklung (TdPe) dieser Name wird oft synonym verwendet.

In dem Seminar musste jede Woche ein Text zu den Themen, die aus dem Titel hervorgehen, gelesen werden. Manche davon waren besser, andere schlechter. Insbesondere einige Texte aus "Head First"-Büchern (zu Deutsch "Von Kopf bis Fuß") waren nicht mein Fall. Im Seminar musste man in der Lage sein vorher bekannte Fragen zu beantworten. Zudem gab es bei einigen Texten Aufgaben, die in einer Gruppe von 5–6 Personen, zu bearbeiten waren.

Teil von Techniken der Projektentwicklung war ein Einzelprojekt, bei dem wir ein kleines Netzwerkcomputerspiel entwickeln mussten (dieses werde ich wohl irgendwann nach dem letzten Abgabetermin veröffentlichen). In den Übungen wurden uns dazu entsprechende Techniken vermittelt, aber auch allgemeine Dinge zu Teammanagement. Die Programmiersprache für das Einzelprojekt war übrigens Java und es wurde mit Eclipse und SVN gearbeitet. Zudem musste eine Dokumentation mit LaTeX erstellt werden.

Grundlagen der Projektentwicklung

Diese Vorlesung gehört mit zum Modul Techniken der Projektentwicklung. Inhaltlich wurden folgendes behandelt:

  1. Projektentwicklung
  2. Produktentwicklung
  3. Projekt-Engineering
  4. Organisationsformen
  5. Risiken
  6. Qualitätssicherung
  7. Zielerhebung- und Zielfindung

Gehalten wurde die Vorlesung dieses Semester zum ersten Mal von Dr.-Ing. Marko Tscherepanow. So richtig spannend war es größtenteils nicht. Aber das lag zum Teil sicherlich auch an der späten Uhrzeit.

Zu der Vorlesung gab es eine Prüfung in Form eines Kolloquiums. Das war ähnlich zu einer mündlichen Prüfung mit dem Unterschied, dass immer ca. 8 Personen in einer Gruppe gleichzeitig geprüft wurden – und das man praktisch nicht durchfallen kann. Jeder sollte nach Möglichkeit mal etwas sagen, was einigermaßen richtig ist. Da die Fragen aber nicht besonders schwer sind, sollte das jedem gelingen. Zudem wird bei der Gruppengröße eigentlich immer jemand etwas halbwegs richtigs sagen.

Betriebssysteme

Eigentlich ist die Vorlesung auch für dieses Semester vorgesehen gewesen. Aber ich hatte sich bereits letztes Semester belegt. Daher verweise ich auf meinen Bericht vom letzten Semester.

Journal Club "Artificial Intelligence"

Diese (freiwillige) Veranstaltung war eine der besten im ganzen Semester. Jede Woche wurde ein wegweisendes Paper zur künstlichen Intelligenz gelesen und diskutiert. Insgesamt waren wir in dem Seminar nur vier Studierende, so dass wirklich jeder zu Wort kommen konnte und auf unsere Wünsche eingegangen werden konnte.

Dazu kamen zwei Dozenten: Der bereits bei Methoden der Künstlichen Intelligenz erwähnte Prof. Ipke Wachsmuth und Dipl.-Inform. Nikita Mattar, wobei letzterer für die Auswahl der Paper zuständig war und im großen und ganze eine gute Wahl getroffen hat.

Wer dieses Seminar besucht sollte allerdings die Bereitschaft mitbringen auch längere – in Ausnahmefällen bis um die 100 Seiten – oder sehr mathematische Paper zu lesen. Wobei dafür andere Paper wiederum nichtmal 10 Seiten lang waren. Selbstverständlich waren alle Text auf Englisch. Die Diskussionen haben wir dann aber doch auf Deutsch geführt.

Jeder von uns Teilnehmern hat zudem mindestens einmal die Diskussion zu einem Paper moderiert und angeleitet. Dadurch das wir alle vier aber motiviert waren und die Paper immer gelesen haben, war das fast nicht nötig, da auch von selbst eine Diskussion entstand.

Kognitive Neurowissenschaft

In diesem (freiwilligen) Seminar der Fakultät für Biologie mit nur drei Studierenden haben wir jeweils einen etwa 20–30 Minütigen, oft englischen Vortag über ein eher neueres biologisches Paper gehört. Themenfelder waren die kognitiven Ontogenese, Epigenetik und Persönlichkeitsforschung.

Ein solcher Vortrag musste auch von jedem Teilnehmer gehalten werden. Dies war in Englisch oder Deutsch möglich. Wobei alle Teilnehmer sich für Englisch entschieden habe. Ich halte es auch durchaus für sinnvoll, ein solche Gelegenheit zum Üben eines englischen Vortrags zu nutzen, da kein Leistungsdruck bestand und man eher selten die Gelegenheit dazu hat.

Die Dozenten waren Dr. Kai Petra Stich und Dr. Moritz Haupt, wobei letzterer aber inzwischen die Uni Bielefeld verlassen hat.

Japanisch für Anfänger mit geringen Vorkenntnissen

Die Fakultät für Linguistik und Literaturwissenschaft bietet diverse kostenlose Sprachkurse an. Daher habe ich mich entschlossen doch noch eine weitere Fremdsprache zu lernen (zumindest die Grundlagen): Japanisch.

Bei den Japanisch-Kursen ist es so, dass diese aus zwei Teilen bestehen. Der eine hat 2 Semesterwochenstunden während der Vorlesungszeit und der andere ist eine Blockwoche, die vor oder nach der Vorlesungszeit liegt.

Leider sind die Sprachkurse recht überlaufen, so dass es recht unwahrscheinlich ist einen Platz zu kriegen. Insbesondere dann, wenn man den Sprachkurs nicht für das Studium braucht und in einem niedrigen Semester ist. Aber auch wenn man keinen Platz kriegt, sollte man auf jeden Fall zum ersten Termin erscheinen. Oft kommen nicht alle die einen Platz bekommen haben, so dass man dann doch noch rein rutscht. Zudem hat unser Dozent bis zu 30 Personen unterrichtet, obwohl die Beschränkung offiziell auf 25 Personen festgelegt war.

Das Vokabellernen hat nicht so viel Spaß gemacht, aber gehört natürlich dazu. Aber ansonsten war es doch ganz interessant und spaßig. Auch weil wir mit unserem Dozenten Masayoshi Tsuchiya (まさよし つちや) hin und wieder was Unternommen haben wie den Besuch des Weihnachtsmarkts in Bielefeld. Die Atmosphäre war auch ansonsten recht locker.

Die einzige Leistungsüberprüfung war am Ende ein Test, der gut machbar war. Wir mussten von Japanisch nach Deutsch und umgekehrt übersetzen, einen kurzen Text mit ca. fünf Sätzen auf Japanisch schreiben und ein paar gesprochene Zahlen verstehen.

Hier noch eine kurze Auflistung des behandelten Stoffes:

  • Hiragana und Katakana
  • Gegenwart und Vergangenheit
  • Verneinung
  • Fragen
  • Vorschläge machen
  • Adjektive

Fazit und Ausblick

Wie bereits erwähnt war es ein sehr anstrengendes Semester, was zum einem meinem Nebenjob zum anderen aber den leseintensiven Literaturseminaren geschuldet war. Wenn man von Computerlinguistik und Sprachtechnologie mal absieht, wo wir im Grunde nur Stoff aus Grundlagen der Theoretischen Informatik wiederholt haben, war es zugleich aber auch ein sehr interessantes Semester. Das lesen wegweisender Artikel zu KI im Journal Club war inspirierend und hat eine Grundlage für das weitere Studium gelegt. Zudem ging es jetzt endlich mit richtigen Stoff zur Künstlichen Intelligenz in Methoden der Künstlichen Intelligenz los. Der Stoff ist schließlich der Grund, warum ich mich für den Studiengang entschieden haben. Im Übrigen war es ganz angenehm, dass die Arbeitsbelastung durch Prüfungen mit zwei Klausuren, einem Test und einem Kolloquium nicht besonders hoch war.

Eine Sache über die man sich klar sein sollte, ist dass Englisch heutzutage sehr wichtig ist. Fast alle zu lesenden Text waren auf Englisch. Aber vermutlich gibt es inzwischen kaum noch einen Studiengang, in dem man ohne Englisch auskommt.

Nächstes Semester wollte ich aufgrund der Arbeitsbelastung eigentlich etwas weniger nehmen. Aber wie es aussieht werde ich noch mehr Wochenstunden haben. So wird z.B. ein Praktikum namens "Mind Controlled Avatars – Programmierung eines gedankengesteuerten Computerspiels" angeboten und das will man sich ja nicht entgehen lassen. Eine weitere wichtige Veranstaltung wird der zweite Teil von Techniken der Projektentwicklung sein, wo wir in Gruppen von um die 10 Personen ein etwas größeres Softwareprojekt verwirklichen müssen.

Bis dahin werde ich jetzt aber erstmal die freie Zeit genießen. :) Zum Abschluss habe ich noch ein paar nützliche Links.