34 Punkte von GN⁺ 2024-03-17 | 2 Kommentare | Auf WhatsApp teilen
  • Der CS251-Kurs von CMU behandelt die rigorose Untersuchung von Berechnung, einem grundlegenden Element des Universums, der Gesellschaft, neuer Technologien und unseres Geistes, mit dem wir all dies verstehen.
  • Es ist wichtig, über die geeignete Sprache und die passenden Werkzeuge zu verfügen, um Berechnung zu untersuchen.
  • In diesem Kurs werden zentrale Ergebnisse und Fragestellungen zum Wesen der Berechnung untersucht.

Formalisierung der Berechnung

Modul 1: Einführung

  • Das Hauptziel ist es, auf einer übergeordneten Ebene zu erklären, was theoretische Informatik ist, und einen passenden Kontext für die folgenden Inhalte zu schaffen.
  • Begonnen wird mit der formalen Darstellung von Daten und der formalen Definition des Konzepts eines Berechnungsproblems.

Modul 2: Endliche Automaten

  • Ziel ist die Einführung deterministischer endlicher Automaten (DFA), eines einfachen und eingeschränkten Berechnungsmodells.
  • DFAs sind für sich genommen interessant und haben nützliche Anwendungen, werden hier aber auch als erster Schritt verwendet, um den Begriff eines Algorithmus formal zu definieren.

Modul 3: Formalisierung der Berechnung

  • Das Hauptziel ist die Einführung der Definition der Turing-Maschine, des mathematischen Standardmodells für alle Arten von Rechengeräten.
  • Die rigorose Untersuchung von Turing-Maschinen liefert Einsichten nicht nur darüber, was ein Laptop leisten kann, sondern auch darüber, was das Universum rechnerisch leisten kann und was nicht.

Modul 4: Grenzen der Berechnung

  • Es wird bewiesen, dass die meisten Probleme unentscheidbar sind, und es werden konkrete Beispiele unentscheidbarer Probleme vorgestellt.
  • Dabei kommen zwei Schlüsseltechniken zum Einsatz: Diagonalisierung und Reduktion.

Modul 5: Grenzen des menschlichen Denkens

  • Es war notwendig, mathematisches Schlussfolgern selbst mathematisch zu formalisieren, was auch die Formalisierung von „Algorithmus“ oder „Berechnung“ einschloss.
  • Mithilfe der Sprache der theoretischen Informatik werden wichtige Fragen zu den Grundlagen der Mathematik wirkungsvoll beantwortet.

Komplexität der Berechnung

Modul 6: Zeitkomplexität

  • Viele Probleme sind zwar tatsächlich entscheidbar, aber wenn selbst der effizienteste Algorithmus sehr viele Rechenschritte benötigt, ist das Problem praktisch unentscheidbar.
  • Untersucht wird die Berechnungskomplexität in Bezug auf verschiedene Ressourcen, darunter die Zeitkomplexität, wobei der Schwerpunkt auf der Zeitkomplexität liegt.

Modul 7: Graphentheorie

  • Graphen spielen eine sehr grundlegende Rolle bei der Abstraktion von Berechnungsproblemen, die in der Informatik auftreten.
  • Durch die Nutzung der umfangreichen Literatur zur Graphentheorie lässt sich die Berechnungskomplexität von Graphproblemen besser verstehen.

Modul 8: P versus NP

  • Es wird die Komplexitätsklasse NP eingeführt und das wichtigste ungelöste Problem der Informatik diskutiert: P versus NP.
  • Wenn viele natürliche und gut untersuchte Sprachen in NP in polynomieller Zeit entschieden werden könnten, wären erstaunliche Anwendungen möglich.

Modul 9: Randomisierte Algorithmen

  • Zufälligkeit ist ein unverzichtbares Konzept und Werkzeug, um die Natur zu modellieren und zu analysieren.
  • Randomisierte Algorithmen sind Algorithmen mit Zugriff auf eine Zufallsquelle wie einen Zufallszahlengenerator und können mit sehr kleiner Fehlerwahrscheinlichkeit Fehler machen.

Modul 10: Kryptographie

  • Mit der Revolution der Informatik begann das Gebiet der Kryptographie stark zu florieren.
  • Die Erforschung der Berechnungskomplexität hat die Kryptographie vollständig revolutioniert.

Highlights der theoretischen Informatik

Modul 11: Weitere Themen

  • Es werden ausgewählte Highlights der theoretischen Informatik vorgestellt.

Meinung von GN⁺

  • Dieser Kurs vermittelt ein tiefes Verständnis der theoretischen Seite der Informatik und bietet Studierenden die Möglichkeit, das Wesen der Berechnung zu erforschen und wichtige Themen wie Komplexitätstheorie und Kryptographie zu lernen.
  • Besonders die Diskussion ungelöster Probleme wie P versus NP gibt Studierenden Einblicke in die Forschung an der vordersten Front der Informatik.
  • Der Kurs spielt eine wichtige Rolle beim Aufbau der Grundlagen der Informatik und vermittelt unverzichtbares Wissen, um Software Engineer mit starkem theoretischem Hintergrund zu werden.
  • Das Kryptographie-Modul betont die Bedeutung von Datensicherheit und Datenschutz in der modernen Gesellschaft und legt die Grundlage dafür, auf diesem Gebiet Experte zu werden.
  • Der Kurs ist äußerst wertvoll, weil er Studierenden, die eine Karriere in der Informatik anstreben, die unverzichtbaren theoretischen Grundlagen und Problemlösungsfähigkeiten vermittelt.

2 Kommentare

 
quack337 2024-03-19

Ach … ich erinnere mich noch daran, wie ich mich als Student damit herumgequält und mir die Haare gerauft habe.
Wahrscheinlich verstehe ich es immer noch nicht, aber ich sollte es mir trotzdem aufmerksam anhören.

 
GN⁺ 2024-03-17

Hacker-News-Kommentare

  • Dieser Kurs führt in verschiedene Konzepte ein und legt besonderen Wert darauf, die Fähigkeit zur Problemlösung zu verbessern.

    • Die Lehrmethode besteht darin, den Studierenden jede Woche nur grundlegende Definitionen zu einem neuen Thema zu geben und dann von ihnen zu verlangen, Probleme zu lösen, die man normalerweise erst in der dritten Woche eines Kurses bearbeiten könnte, der das Thema fachlich behandelt.
    • Dieser Ansatz wird wiederholt angewendet und kann sehr frustrierend sein, ist aber beabsichtigt.
    • Indem man immer wieder versucht, schwer erreichbare Probleme zu lösen, entwickelt man bessere Strategien, um über ein gegebenes Problem nachzudenken.
  • Theoretische Informatik kann Spaß machen, manchmal aber auch sehr unerquicklich sein.

  • Ich habe auf Reddit einen Beitrag gesehen, in dem gefragt wurde, wie man ein Problem aus der theoretischen Informatik löst, und es stellte sich heraus, dass es ein Versuch war, die Hausaufgabe für COMS 331 (Theory of Computing) an der Iowa State University durch Schummeln zu lösen.

    • Niemand hat geholfen, und der Verfasser hat den Beitrag gelöscht.
    • Das Problem sah interessant aus, also habe ich es als unterhaltsame kurze Herausforderung selbst versucht.
    • Ich war Mathematikstudent, habe aber alle grundständigen Veranstaltungen in theoretischer Informatik belegt, und obwohl seitdem etwa 35 Jahre vergangen sind und ich vieles vergessen habe, erwartete ich, mich an die Grundlagen zu erinnern, da das Problem aus dem ersten Aufgabenblatt von COMS 331 stammte.
    • Ich habe mehrere Tage damit verbracht, ohne überhaupt voranzukommen, und seitdem ist mir das Problem mehrfach wieder eingefallen; ich habe jeweils Stunden oder einen ganzen Tag darüber nachgedacht und bin trotzdem immer wieder gescheitert.
  • Wenn man diese Ideen direkt durch Programmierung lernen möchte, empfehle ich Tom Stuarts "Understanding Computation From Simple Machines to Impossible Programs".

  • Eine vollständigere Version dieses Kurses kann man in einer YouTube-Playlist ansehen.

  • Es gibt auch eine andere Version dieses Kurses, die die "probabilistische Methode" einschließt, und ohne die moderne Denkweise über ontologische (nicht konstruktive) Beweise kann ich mir keinen Beweis für Hindernisse in topologischen Lösungsräumen vorstellen.

  • Wenn dich dieses Thema interessiert, kannst du dir Boaz Baraks Website und das dort als PDF verfügbare Lehrbuch ansehen.

  • Die zwei wichtigsten Ideen der theoretischen Informatik:

    1. Move-to-front-Listen können bei der Suchzeit höchstens um den Faktor 2 schlechter sein als die optimale Listenordnung, sind aber oft deutlich besser als eine statische Listenordnung.
    2. Randomisierte Algorithmen (z. B. Quicksort) brauchen oft selbst im Worst Case genauso viel Zeit wie nicht randomisierte Algorithmen, sind in der Praxis aber viel schneller als ihre nicht randomisierten Varianten.
  • Wie würden Versionen dieses Kurses in anderen Fachgebieten aussehen?

    • Man kann sich Kurse über "großartige Ideen" in theoretischer Physik, Experimentalphysik, Ökonomie usw. vorstellen.
    • Ich habe einmal einen Kurs namens "Inventions of the Information Age" unterrichtet, in dem wir alle Erfindungen und Ideen besprochen haben, die eine Zivilisation braucht, um unser Informationszeitalter nachzubilden – vom Schreiben bis hin zur modernen Computing-Infrastruktur. Das hat mehr Spaß gemacht, weil es kein Kurs in nur einem einzelnen Fachgebiet war.
  • Ich erinnere mich an eine Vorlesung über Zeitkomplexität aus meiner Studienzeit. Der Professor rief zufällig Studierende auf und fragte nach der Zeitkomplexität komplexer Algorithmen; wenn die Antwort falsch war, nahm er den nächsten Studierenden dran.

  • Wie lässt sich Berechnung als fundamentale Eigenschaft des Universums verstehen? Wie führen Pflanzen und Tiere Berechnungen aus?