Welche Mathematikkurse sollte ich belegen, um mich auf einen CS-Master oder eine Promotion vorzubereiten?

10

Ich bin ein autodidaktischer professioneller Programmierer. Ich bin ziemlich gut darin (Ruby, Unix, Clojure, Java, Objective-C), aber jetzt denke ich darüber nach, es auf die nächste Stufe zu bringen, indem ich mich vielleicht für ein Master- oder PhD-Programm in CS bewerbe. Welche Themen in Mathematik sollte ich studieren, um mich auf dieses Ziel vorzubereiten?

Dan
quelle
2
Siehe: cstheory.stackexchange.com/q/2571/1621
Dana Moshkovitz
1
Wenn Ihnen kalt wird und nur wenige oder gar keine Akademiker dahinter stehen, würde ich Ihnen raten, ein Programm auszuwählen, das einen Einstiegspfad für Nicht-CS-Personen bietet. Es ist nicht ungewöhnlich, dass Menschen mit EE, Physik, Mathematik oder ähnlichen BS-Abschlüssen eine berufliche Veränderung anstreben. Einige Universitäten haben Programme, die dies in ihren Kursstrukturen erleichtern sollen.
Novak

Antworten:

10

Am MIT OCW gibt es einen Kurs namens Mathematik für Informatik , in dem einige Themen aufgeführt sind, die Sie behandeln MÜSSEN .

Das Erlernen einer abstrakten Algebra wird ein großes Plus sein. Weil ich in der Literatur zu viele Hinweise auf Gruppentheorie sehe.

Pratik Deoghare
quelle
3
Mist. vergaß abstrakte Algebra in meiner Antwort - guter Anruf.
Suresh Venkat
1
In der oben verlinkten Version des Herbstes 2005 fehlt etwa 1/3 der Vorlesungsunterlagen. Die Versionen Frühjahr 2005 und Frühjahr 2010 enthalten vollständigere Hinweise.
Daniel Apon
13

Ein allgemein hoher Grad an mathematischer Reife erleichtert das Verständnis vieler formaler Aspekte der (nicht unbedingt theoretischen) Informatik. Ein Nebenfach in Mathematik zusammen mit Ihrem Hauptfach in Informatik würde also mehr nützen als schaden.

Dave Clarke
quelle
11

Lineare Algebra, Wahrscheinlichkeitstheorie, einige Graphentheorie / Kombinatorik auf ein Minimum.

Suresh Venkat
quelle
7

Einige Dinge, die Sie vielleicht brauchen, andere mehr, andere weniger:

  • Mathematische Logik
  • Wahrscheinlichkeitstheorie / Kombinatorik / Statistik
  • Lineare Algebra
  • Infinitesimalrechnung
  • Graphentheorie
  • Mengenlehre
  • Zahlentheorie
  • Vielleicht eine Optimierungstheorie

Natürlich wird (fast) alles nützlich sein, besonders wenn Sie in theoretische Informatikbereiche einsteigen.

George
quelle
4

Alle anderen Antworten + ...

Das wohl nützlichste, was Sie versuchen können, ist Forschung zu betreiben. Nach dem Stapelaustausch ist es möglicherweise am effektivsten, sich auf die Graduiertenschule vorzubereiten, Hintergrundmaterial / Papiere zu lesen und herauszufinden, was Sie vielleicht interessant finden.

Sariel Har-Peled
quelle
2

ausgezeichnete / breite Antworten bisher. Ich schlage einige Klassen vor, die bisher nicht erwähnt wurden. Insbesondere Klassen, die sich auf die Anwendung der Theorie stützen und vom Schüler verlangen, Code zu schreiben / zu debuggen und [Grafikergebnisse] als Teil von Aufgaben zu visualisieren. oder arbeitende Systeme erstellen / debuggen. etc.

  • Differentialgleichung. besonders die Beziehung zwischen ihm und diskreten Differentialgleichungen, z. B. Generierungsfunktionen.
  • numerische Methoden. Optimierung. Runge Kutta Diffeq Solver usw. Eine nette / sehr lehrreiche Übung besteht darin, die Lorentz-Wettergleichung zu lösen / grafisch darzustellen. Konzepte über Präzision / Genauigkeit in der Softwarearithmetik usw.
  • Es gibt eine MIT-Klasse "Modellierung und Simulation dynamischer Systeme". etwas Ähnliches wäre nicht an allen Universitäten verfügbar, aber vielleicht haben es einige.
  • Einige Universitäten haben Prinzipien / Dynamiken komplexer Systeme oder komplexer adaptiver Systeme usw.
  • alles, was mit der Modellierung oder Simulation von Systemen unter Verwendung von Software mit mathematischem Fokus zusammenhängt
  • fraktale Systeme & Mathematik
  • maschinelles Lernen (insbesondere mit Gradientenabstiegstechniken)
  • Quantencomputer (einige Klassen in diesem Bereich sind hochgradig oder größtenteils mathematisch)
vzn
quelle
1

Gute Frage. Ich habe erst kürzlich die Doktorandenprüfung bestanden, die teilweise eine Aufnahmeprüfung war - eine Mischung aus Themen für Studenten und Absolventen.

Um praktisch zu sein, hängt es von der Schule ab, die Sie besuchen möchten, von der Art der Aufnahmeprüfung, die sie möglicherweise benötigen, und von der Art des angebotenen Programms.

Einige erfordern GRE, daher ist die Vorbereitung auf die Registrierung nicht CS-spezifisch. Einige erfordern ein GRE-Fach, das 5-6 CS-Grundstudiengängen entspricht, und die Theorie wird behandelt (Automatentheorie, diskrete Mathematik usw.).

Um den grundlegendsten Hintergrund zu erhalten, würde ich Diskrete Mathematik, Algorithmen und Berechnungstheorie von Ad Uni nehmen .

Es gibt andere fantastische Quellen vom MIT und Stanford, aber diese drei Kurse, die von dem großartigen Shai Simonson präsentiert werden, sind eine hervorragende Grundlage.

Hoffe das hilft.

Edmon
quelle
Einer dieser Kurse wird auf YouTube gespiegelt: Theory of Computation . Leider sind die Spiegel für Algorithmen und Diskrete Mathematik unvollständig.
Jeffs
1

Ich unterstütze die obigen Antworten wirklich. Ich kann Folgendes hinzufügen, das für das Gesamtbild der Mathematik in CS nützlich sein kann:

Mathematik kann Teil des Ziels selbst sein; Algorithmusanalyse, Komplexitätsgrenzen, deterministische oder probabilistische Beweise, parallele Algorithmen und viele weitere Forschungsbereiche in Bezug auf Zeit und Raum der Berechnung.

Auf der anderen Seite kann Mathematik der eigentliche Weg für ein übergeordnetes Ziel sein. PDEs, Lichtgleichungen für Computergrafiken, das gesamte Forschungsgebiet der Computerphysik (dynamische Systeme, statistische Mechanik, Galaxienbildung), um nur einige zu nennen.

Unter den richtigen Umständen könnten beide Formen der Mathematik zusammenleben.

labotsirc
quelle