Zum Inhalt springen

  • Beiträge
    72
  • Kommentare
    239
  • Aufrufe
    12.696

Modul: Mathematisch-logische Grundlagen der Informatik


kurtchen

945 Aufrufe

Das Modul Mathe1 - "Mathematisch-logische Grundlagen der Informatik" hat drei Autoren. Man bearbeitet ein Lehrbuch von etwa 300 Seiten. Da die Mathematik als Wissenschaftsdisziplin eine sehr komprimierte formale Ausdrucksform entwickelt hat, kann man auf wenigen Seiten viel sagen. Im Vergleich zu anderen Lehrbüchern auf FH-Niveau, die mir bekannt sind, beschränkt sich dieses Buch nicht allein auf die knappe formale Darstellung, z.B. bei Beweisen. Es hat auch viele ausführliche, beschreibende, kommentierende und informierende Passagen. Man kommt also beim Lesen stellenweise recht fix voran und hält sich dann wieder längere Zeit an wenigen Seiten, manchmal sogar an wenigen Zeilen auf. Ich nehme an, dies liegt in der Natur der Sache.

 

Wie bei der W3L üblich, ist der gesamte Lehrtext in der Lernplattform aufbereitet verfügbar. Dort steht er im Mix mit Online-Tests, Einsendeaufgaben und natürlich Abschlusstest und Online-Klausur. Ich finde es entspannter und effektiver, mit dem Buch zu arbeiten. Mit Stift und Papier daneben, um Beispiele und Beweise gleich aktiv nachvollziehen zu können. Die Lernplattform rufe ich dann für Tests und Aufgaben auf. (Dies hat den Nachteil, dass die automatisch erstellte Statistik zur Bearbeitungszeit des Moduls nichts aussagt.)

 

Das Buch soll erkennbar einen sanften Einstieg in das Thema Mathematik bieten, das für Informatik-Studiengänge unumgänglich aber auch bei vielen Studierenden unbeliebt und zum Teil sogar gefürchtet ist. Zunächst geht es um:
- Aussagenlogik
- Prädikatenlogik


Hier gibt es inhaltliche Bezüge zum Modul "Rechnerstrukturen und Betriebssysteme", wo man z.B. Schaltnetze und Schaltwerke aufbaut. Dort ist sozusagen die Aussagenlogik in Hardware realisiert. Hier nähert man sich dem Thema auf formale Weise, arbeitet mit Stift und Papier. Dieser Abschnitt des Kurses fiel mir recht leicht, weil ich einmal an der Uni meiner Heimatstadt mehrere Kurse in formaler Logik belegt hatte. Das war an der philosophischen Fakultät, die auch einen Schwerpunkt in analytischer Philosophie hatte und darum viele Veranstaltungen zum Thema Logik und formale Sprachen anbot. Bei mir war es das Interesse an den Arbeiten von Ludwig Wittgenstein, das mich in diese Veranstaltungen getrieben hat. Dort haben wir zum Beispiel Vollständigkeitsbeweise geführt. Im Modul der W3L wird vergleichsweise weniger verlangt, gerade im Bereich der Prädikatenlogik.

 

Für Leser, die im Bereich der Logik noch wenig Vorkenntnisse haben: In der Aussagenlogik ist die kleinstmögliche Einheit, die betrachtet werden kann, die Aussage. Sie kann wahr oder falsch sein. Einfache Aussagen werden nun mit Verknüpfungen wie "und" und "oder" oder auch der "Implikation" verknüpft zu komplexeren Aussagen und man möchte untersuchen, welche Wahrheitswerte diese komplexeren Aussagen in Abhängigkeit von den Wahrheitswerten der einfachen Aussagen annehmen. Elektronisch kann man die Verknüpfungen in Formen von Logik-Bausteinen realisieren und Spannung oder keine Spannung steht für wahr oder falsch. In der Programmierung begegnet einem die Aussagenlogik vor allem bei bedingten Verzweigungen im Programm, wenn verschiedene Bedingungen mit logischen Operatoren verknüpft werden, in Java z.B. mit "!","&&","||".

 

In der Prädikatenlogik wird die Aussage logisch weiter zerlegt. "Der Ball ist rot." wäre in der Aussagenlogik eine atomare  (also nicht weiter zerlegbare) Aussage. In der Prädikatenlogik wird hier von einem Objekt behauptet, dass es eine Eigenschaft hat. Genauer gesagt, behauptet man von einem Objekt, dass es einer Klasse zugehörig ist. "Das Objekt Ball ist der Klasse der roten Dinge zugehörig." Interessant wird es, wenn man solche Aussagen mit sogenannten Quantoren verknüpft. Diese entsprechen dem natürlich-sprachlichen "es gibt ein..." und "für alle ... gilt ...". Hier kann man vielleicht schon ahnen, dass das schon eine Menge mit Mathematik und mathematischen Beweisen zu tun hat. Es ist auch der Stoff, aus dem viele Logikrätsel in Zeitschriften sind.

 

Den Abschluss des Kapitels bietet ein kurzer Überblick über Thema Vollständigkeit, Konsistenz, Entscheidbarkeit. Gödels Unvollständigkeitssatz wird erwähnt, auch seine Bezüge zum Halteproblem in der Informatik. Erwähnt wird auch, dass sich für die Aussagenlogik und Prädikatenlogik sowohl die Widerspruchsfreiheit als auch die Vollständigkeit beweisen lässt. Geführt wird dieser Beweis im Lehrbuch allerdings nicht. Hier wird von Philosophiestudenten der ersten Semester mehr erwartet als von angehenden FH-Informatikern. Schön finde ich trotzdem, dass das Thema vorgestellt wurde, denn es hat interessante erkenntnistheoretische Implikationen, auch wenn es für die Programmierung nicht direkt relevant ist. Wer Lust hat, sich diesem Thema einmal auf recht amüsante und gut verdauliche Weise zu nähern, dem möchte ich gerne das Comic "Logicomix: Eine epische Suche nach Wahrheit" von Apostolos Doxiadis und Christos Papadimitriou empfehlen. Es handelt vom Leben Bertrand Russells und dem Projekt des logischen Positivismus. Gödel, Wittgenstein und Frege treten als Nebenfiguren auf. Es macht viel Spaß.

 

Im nächsten Kapitel werden zwei Anwendungen der klassischen Logik vorgestellt:
- Boolesche-Netze
- Expertensysteme
Expertensysteme sind ja vielen im Zusammenhang mit dem Thema klassische KI geläufig. Von booleschen Netzen hatte ich noch nicht gehört. Sie sind letztlich eine Dynamisierung der Aussagenlogik. Es gibt ein Netz aus Knoten, die miteinander verbunden sein können. Jeder Knoten hat einen von 2 Zuständen - wahr oder falsch. Insofern entsprechen die Knoten Aussagen. Das Netz hat zu jedem Zeitpunkt einen Zustand - die Wahrheitswerte der Knoten. Das interessante ist nun, dass Knoten im Booleschen Netz ihren Zustand an verknüpfte Knoten senden und deren Zustand empfangen. Es sind logische Verknüpfungen (Junktoren) definiert, wie sich der Zustand jedes Knotens in Abhängigkeit vom Zustand  der verknüpften Knoten ändert. Das ist die Dynamik. Nun untersucht man, ob wie das System in einen stabilen Zustand (Attraktor) hineinläuft. Man kann zeigen, dass boolesche Netze äquivalent zu Turingmaschinen sind. Aber keine Angst, das ist dann nicht  mehr Gegenstand dieses Moduls. Für die Klausur  erwartet wird lediglich, dass man in einem gegebenen booleschen Netz Folgezustände aus einem Anfangszustand berechnen kann und etwas über Attraktoren und nach welcher Vorperiode sie erreicht werden sagen kann.

 

Es folgt ein kleiner Ausflug in die Modallogik, eine Erweiterung der klassischen Logik. Sie ermöglicht Aussagen über das MÖGLICHE und das NOTWENDIGE. Philosophisch betrachtet kann man sich  vorstellen, dass es etwas, das falsch ist, in einer alternativen Welt war sein könnte. (Möglichkeit) Oder dass etwas, das wahr  ist, in jeder alternativen Welt wahr sein muss. (Notwendigkeit) Dieses Kapitel ist NICHT klausurrelevant. Ich erwähne das, weil es im Modul immer wieder kleinere Ausflüge in benachbarte Themengebiete gibt, um Bezüge zwischen Mathematik/Logik und anderen Wissensgebieten zu zeigen. Die Modallogik ist z.B. vor allem für Philosophen interessant. Wer möchte, kann sich hier ein bisschen breitere Bildung holen. Wer nur auf Bestehen der Klausur aus ist, könnte hier auch ein paar Seiten überspringen, würde aber etwas verpassen. Insgesamt bemühen sich die Autoren sehr, immer wieder Verknüpfungen zwischen der Mathematik, praktischen Anwendungen und anderen Wissenschaftsdisziplinen herzustellen, was diesen Kurs für mich auch zu einem ästhetischen Erlebnis gemacht hat.

 

Nun kommt ein - für mich eher trockenes - Kapitel über Beweistechniken. Die größte Herausforderung für Studierende ohne Abitur dürfte hier das Prinzip der vollständigen Induktion sein, dass einem in diesem Modul immer wieder begegnet und auch in den Modulen Mathe2 und Mathe3 immer wieder aufblitzt. Wenn ich mich recht erinnere, tauchte das Thema bei mir auch in der Abschlussklausur auf. Wer also gerne richtig gut abschneiden möchte, sollte hier die praktischen Übungen (kleinere Beweise) nicht überspringen. Wer nur bestehen möchte, kann sich durchaus eine Lücke erlauben, aber seid vorgewarnt: Das Thema vollständige Induktion ist grundlegend und ihr werdet es so schnell nicht los.

 

Weiter geht es mit  Mengenlehre, die manchen älteren Semestern vielleicht noch aus der Schule bekannt sein dürfte. Unmögliches wird hier nicht verlangt. Die Mengenlehre war ja früher Teil des Schulcurriculums und war vor allem bei Eltern sehr unbeliebt, die nicht verstanden haben, warum man "so einen Blödsinn" lernt, statt im Mathematik-Unterricht anständig zu rechnen. Für Mathematiker ist Mengenlehre ein ungeheuer mächtiges Ausdrucksmittel und ein Werkzeug, mit dem sich viele Beweise führen lassen. Darum ist es gut, sich damit einmal auseinander zu setzen, auch im Hinblick auf spätere Module. Für die Klausur wichtig sind auch Betrachtungen zur Kombinatorik, also wie viele Kombinationen von a Elementen kann ich aus einer Auswahl von b Elementen bilden, je nachdem ob das gleiche Element mehrfach vorkommen darf oder auch nicht. Hier treten Begriffe wie Fakultät oder auch Binomialkoeffizient auf. Auch das wird in späteren Modulen wichtig, wenn es zum Beispiel um Bernstein-Grundpolynome geht.

 

Bis hierhin bin ich gut zurechtgekommen, aber nun kam das Kapitel "Relationen". Und spätestens beim Thema "Ordnungsrelationen" wurde die Darstellung dann schon recht formal. Im Grunde beschreiben Ordnungsrelationen etwas einfaches. Sie stellen in einer Menge eine Rangfolge von Elementen her. Zum ordnet die Relation "x ist größer als y" die Menge der natürlichen Zahlen. Es gibt aber z.B. auch Ordnungen, in denen ein Element  mehrere verschiedenen Nachfolger oder Vorgänger haben kann. Und dann kann es auch Elemente geben, die ich nicht paarweise vergleichen kann. Hier waren bei den Übungen durchaus Nüsse dabei, die ich nicht mehr knacken konnte. Und das bringt mich zu einem wichtigen Thema für Leute, die dieses Modul bearbeiten und auf Schwierigkeiten stoßen: Die Autoren EMPFEHLEN sehr viele Übungen und VERLANGEN die Bearbeitung von Online-Tests und Einsende-Aufgaben. Der Schwierigkeitsgrad der Übungen ist zum Teil viel höher als der der Einsendeaufgaben und Tests. Lasst euch also nicht entmutigen, wenn ihr nicht alle vorgeschlagenen Übungen schafft. In der Klausur werden vor allem die grundlegenden Konzepte aus den Themengebieten abgeprüft, keine Spitzfindigkeiten und Spezialfälle. Die Übungen sind eine Einladung, sich einmal herauszufordern und sich wesentlich gründlicher für die Prüfung vorzubereiten.

 

Im Kapitel Relationen ging es dann auch um die sehr grundlegenden Begriffe der Abbildungen und Funktionen. Hier muss man z.B. prüfen, ob eine gegebene Funktion injektiv, surjektiv oder sogar beides (also bijektiv) ist. Außerdem geht es um Komposition von Abbildungen oder auch ihre Umkehrbarkeit. Wirkt alles oft sehr theoretisch, aber Achtung: Diese Konzepte kommen in den höheren Modulen wieder. Schafft euch hier eine solide Grundlage und ihr habt es später leichter.

 

Es folgt das sehr ästhetische Kapitel  über Graphentheorie, ein Thema, von dem die meisten Schulabgänger nie gehört haben. Graphen begegnen einem in der Informatik tatsächlich ständig. Viele Strukturen in der realen Welt lassen sich damit sehr schön und kompakt beschreiben. Das ist ein Kapitel, das mir Spaß gemacht hat, weil man auch immer wieder viel zeichnet und es überhaupt recht graphisch zugeht. Hier lernt man als kleinen Nebenschauplatz das berühmte "Königsberger Brückenproblem" kennen, das man in verschiedenen Variationen aus Rätselbüchern kennen könnte. Graphenalgorithmen spielen keine Rolle. Hier geht es um die begrifflichen Grundlagen. Die sind auch der klausurrelevante Stoff. Die Inhalte dieses Kapitels werden euch wieder begegnen in Modulen wie "Softwaretechnik", "XML", "Web-Anwendungen", "Algorithmen und Datenstrukturen" oder "Computernetze". Haltet den Stoff nicht für irrelevant, bloß weil hier Formeln eine weniger dominante Rolle spielen.

 

Das Kapitel über Topologie hat mich intellektuell zum Teil überfordert. Zum Glück ist es nicht klausurrelevant.

 

Nun kam das sehr wichtige Kapitel über algebraische Strukturen. Wichtig, weil es zum Beispiel im Modul Mathe3 "Angewandte Mathematik" wieder auftaucht, und zwar in den Kapiteln zur Kryptik. Dort wird zwar alles noch mal schnell wiederholt, aber arbeitet lieber hier gründlich, dann habt ihr es später leichter. Knapp gesagt geht es um Gruppen, Ringe, Körper und Vektorräume. Für die Klausur bekommt man zum Beispiel eine Menge und Verknüpfungen und muss dannuntersuchen, ob man es mit einem Körper zu tun hat. Macht das gründlich, auch wenn es euch zunächst sehr abstrakt vorkommt, und ihr nicht seht, wofür man es brauchen kann. Ihr werdet es brauchen, nicht nur für die Abschluss-Klausur.

 

Im nächsten Kapitel geht es um Rekursivität. Die Konzepte und Begriffe, die ihr hier lernt, tauchen z.B. in den Programmiermodulen wieder auf, und zwar durchaus in sehr praxisrelevanter Form. Zur Auflockerung gibt es hier einen kleinen Ausflug in die fraktale Geometrie, der nicht klausurrelevant ist. Wenn ihr schon immer mal wissen wolltet, was es mit dem schönen "Apfelmännchen" auf sich hat, das ja zwischenzeitlich mal zur populären Ikone wurde, dann gönnt euch den Spaß. Sonst könntet ihr hier auch ein paar Seiten überspringen.


Wichtiger für den angehenden Informatiker ist der Ausflug in die theoretische Informatik. Hier geht es um Zustandsautomaten und formale Sprachen. Das ganze wird nur angerissen und hier bedauere ich ein wenig, dass ein eigenes Modul "Theoretische Informatik" im Curriculum der W3L NICHT vorgesehen ist. Ein paar Themen tauchen in "Softwaretechnik 1" noch einmal vertiefter auf. Wer mehr "Appetit" auf so etwas hat, muss sich sein "Futter" woanders suchen.

 

Erwähnt wird in diesem Kapitel auch die ungewöhnliche deklarative Programmiersprache PROLOG, mit der man logische Beziehungen gut ausdrücken kann. Leider viel zu knapp, um wirklich etwas damit anfangen zu können, aber immerhin schön, dass hier ein wenig Neugierde geweckt wurde. Praxisrelevanter sind die Abschnitte über "Wege aus endlosen Schleifen". Konkret geht es darum, dass Programme in der Regel irgendwann halten sollten, statt unendlich weiter zu laufen, und wie man das sicherstellen kann.

 

Im folgenden Kapitel geht es um eine interessante Erweiterung der klassischen Logik - die sogenannte Fuzzy Logic, die eigentlich eher ein Fuzzy Set Theory ist. In der klassischen Mengenlehre ist ein "Ding" Element einer Menge oder nicht. In der Fuzzy Set Theory, kann es unterschiedliche Grade der Zugehörigkeit geben. Eine Schwalbe wäre dann "vogeliger" als ein "Pinguin" und eine Fledermaus, die in der klassischen Mengenlehre kein Vogel ist, könnte doch ein bisschen "vogelig" sein. Der Grad der Zugehörigkeit wird in der Regel als Zahl zwischen 0 und 1 ausgedrückt. Verknüpfe ich nun Aussagen über diese unscharfe Zugehörigkeit, bin ich bei der unscharfen Logik. Die kann man tatsächlich praktisch anwenden, zum Beispiel in der Steuerung. Klassisches Beispiel ist das Beschleunigen und Bremsen eines Portalkrans mit einer darunter hängenden Nutzlast. Das schöne an der Fuzzy Logic ist, dass man damit gut Faustregeln von Praktikern oder Fachleuten in einem Gebiet modellieren kann, so dass ein technisches System mit Faustregeln arbeiten kann. Im Kurs geht es allerdings zunächst mal um die begrifflichen Grundlagen, nicht um das, was der Ingenieur macht. Die Fuzzy Set Theory ist klausurrelevant.

 

Den Abschluss bildet ein sehr knappes Kapitel über Komplexitätstheorie. Das Thema taucht zum Beispiel im Modul "Algorithmen und Datenstrukturen" wieder auf, wenn man verschiedene Such- und Sortieralgorithmen vergleicht. Ein wenig beschäftigt man sich auch mit zellulären Automaten, aber das ist eher ein reinschnuppern und hier würde ich mir für spätere Module mehr "Futter" erwarten.

 

Insgesamt hat mir das Modul sehr viel Spaß gemacht. Ich kann mich noch gut an mein Heureka-Erlebnis  erinnern, als ich Cantors Diagonalverfahren begriffen habe und endlich verstanden habe, warum es zwar unendlich viele natürliche Zahlen, rationale Zahlen und reele Zahlen gibt, aber wieso es gleich viele rationale und natürliche Zahlen aber mehr reele Zahlen gibt. Für so etwas zahlt einem später niemand ein Gehalt, aber der Mensch lebt nicht vom Brot allein.

 

Zum Spaß am Modul hat auch die hervorragende Betreuung durch meinen Tutor beigetragen. Als ich mich ihm vorgestellt habe, habe ich gleich erwähnt, dass ich aus einem fachfremden Beruf komme und lange aus dem Thema Mathematik "raus" bin. Er hat mir ein wenig von seinem eigenen Werdegang erzählt, der ihn mehrmals über Fachgrenzen geführt hat, und mich sehr ermutigt, meinen Weg zu gehen. Wir hatten immer wieder einen interessanten fachlichen Austausch. In diesem Modul nicht allein zu konkreten Problemen mit Aufgaben, denn ich kam ganz gut zurecht. Ich hatte auch Fragen zu den vielen Ausflügen in benachbarte Themengebiete, die im Kurs skizziert waren. Hier merkte ich deutlich: Ich habe es mit einem Menschen zu tun, der gewohnt ist, über die Grenzen seines fachlichen Biotops hinaus zu denken und Wissensgebiete zu verknüpfen. So etwas gefällt mir grundsätzlich und so habe ich hier viele Anregungen für mich mitgenommen. Sehr spürbar war in diesem Modul auch ein aufrichtiges Bemühen, den Wieder- und Neueinsteigern ein bisschen mehr Begleitung zukommen zu lassen. Für das Modul Mathe1 aus meiner Sicht optimal. In den späteren Modulen ist die Betreuung auch sehr gut, aber die Atmosphäre ist ein bisschen sachlicher, der Ton etwas knapper und es wird schon mehr Selbstständigkeit erwartet. Das passt aus meiner Sicht alles gut zusammen.

2 Kommentare


Empfohlene Kommentare

Logik bzw. künstliche Intelligenz (KI) war bei mir im Studium auch ein Fach und fand ich recht interessant und logisch ? - zumindest bis zu einem gewissen Grad, dann wurde es doch recht komplex und kompliziert. Damals habe ich auch ein paar Erfahrungen mit PROLOG gemacht. Ist heute aber wohl nichts mehr an Wissen von da...

Link zu diesem Kommentar

Im Modul  GdI4 "Algorithmen und Datenstrukturen" wird ein Constraint Solver entwickelt. Das ist ein relativ komplexes Projekt, das ich leider nicht in allen Schritten nachvollziehen konnte.

 

Zu meinem großen Bedauern hat die W3L bislang kein eigenständiges Modul KI. Für dieses Thema interessiere ich mich sehr, sowohl für die klassische KI als auch für neuere Ansätze wie z.B. künstliche neuronale Netze.

 

Ich suche nach Möglichkeiten, hier zu gegebener Zeit ein Modul an einer anderen Hochschule zu belegen. Dafür brauche ich aber meiner Meinung nach noch ein paar Grundlagen.

Link zu diesem Kommentar

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden


×
  • Neu erstellen...