Wie fange ich mit theoretischem CS an?

35

Ich bin ein Neuling, der Informatik studiert, und ich weiß bereits, dass ich mit dem Schwerpunkt theoretische Informatik studieren möchte. Ich habe bereits einige Artikel gelesen, auf die in dieser Frage verwiesen wird, und diese Frage hat mich weiter überzeugt.

Was sollte ich jetzt als Student tun , um mich auf dem Gebiet zu engagieren? Was kann ich tun, um mich auf die Forschung in diesem Bereich vorzubereiten?

Good Person
quelle
7
Dies ist nicht wirklich aussagekräftig genug, um eine Antwort zu verfassen, aber Sie sollten auch eine Kopie von Michael Sipsers "Einführung in die Theorie der Berechnung" in Erwägung ziehen. Auch wenn Sie mit diesem Buch keine Zeit zum Selbststudium haben, ist es eine gute Referenz, wenn Sie nach etwas suchen müssen, das in Wikipedia nicht klar erklärt ist.
Philip White
2
Ich weiß nicht, wie die Prozedur funktioniert, aber ich würde das gerne als Community-Wiki ansehen.
Chazisop
3
Wenn Sie die Frage für die Aufmerksamkeit des Moderators markieren, werden wir sie behandeln.
Suresh Venkat
2
@ Gute Person: OP kann keine Frage stellen CW, nur Moderatoren können.
Kaveh
2
@Gute Person: Wie Kaveh erwähnt, können Originalposter keine Posts mehr in CW erstellen (und auch niemand mit Bearbeitungsrechten kann dies tun). Das können nur Mods. es war keine Beleidigung beabsichtigt.
Suresh Venkat

Antworten:

29

Lassen Sie mich eine Antwort von der anderen Seite geben. Ich hatte ein paar studentische Forscher, die mit mir arbeiteten. Die Erfahrung ist gemischt: Bei einigen habe ich Artikel veröffentlicht und arbeite gerade daran, und bei anderen haben wir nie wirklich angefangen.

Schön, dass Sie wissen, was Sie tun wollen. Als Student sollten Sie sich auf Folgendes konzentrieren:

  • Bauen Sie die mathematischen "Muskeln" auf, die Ihnen helfen, wenn Sie anfangen, ernsthaft an Problemen zu arbeiten
  • Erforschen Sie verschiedene Aspekte des theoretischen Lernens, um einen Eindruck von dem Gebiet zu bekommen und herauszufinden, welche Arten von Problemen / Gebieten Sie interessant finden
  • (abhängig vom Gebiet) Lösen von Rätseln, Lösen von Übungen und Aufarbeiten einer Forschungsfrage.

Finden Sie einen Professor, der Sie führt, und geben Sie die Zeit ein! Das Schwierigste, dem Sie begegnen, ist es, die offene Zeit zu schaffen, um über Probleme inmitten von Unterricht, Aufgaben und Prüfungen nachzudenken. Sie müssen jedoch Zeitblöcke für Ihr unabhängiges Studium und Ihre Forschung reservieren, da es sonst sehr schwierig wird, Fortschritte zu erzielen. Wie Sie dies tun, liegt ganz bei Ihnen: Vielleicht können Sie einmal pro Woche einen Professor finden, der sich mit Ihnen trifft, um Zwischenziele für Sie festzulegen, oder Sie können sich ein langfristiges Ziel setzen (durcharbeiten von X Übungen aus einem Text) und stetig daran arbeiten Das.

Suresh Venkat
quelle
4
Gute Antwort! "Sie müssen Zeitblöcke für Ihr unabhängiges Studium reservieren": Dies erinnert mich an meine eigenen Erfahrungen. Ich war ein fauler Mathe-Student, dann entdeckte ich im Master ein nettes TCS-Problem (das sich um die beschäftigte Biber-Funktion dreht). Ich begann meine Freizeit damit zu gestalten, unter Anleitung eines meiner Profis. Ich fand nie etwas Interessantes an dem Problem, aber 12 Jahre später schrieb ich mehr als 15 Artikel mit ihm (aber er war nie mein Doktor- / Master-Berater, nur ein "externer" Mentor).
Sylvain Peyronnet
1
Sureshs Antwort ist großartig! Zum OP: Mathematische "Muskeln" aufbauen bedeutet, sich an die Sprache und Werkzeuge der Mathematik (Kombinatorik, Graphentheorie, Analyse usw.) zu gewöhnen und sich auch daran zu gewöhnen, Theoreme zu beweisen ! (Und das ist der wirklich aufregende Teil! :-)
Jay
19

Ich bin derzeit ein Doktorand und kein Professor. Mein Vorschlag stammt daher aus meiner (begrenzten) persönlichen Erfahrung als Doktorand.

Als Student arbeitete ich im Sommer immer als wissenschaftlicher Mitarbeiter mit verschiedenen Professoren in meiner Abteilung. Ich persönlich glaube, dass der einzige Weg herauszufinden, ob TCS wirklich für Sie ist oder nicht, darin besteht, an konkreten Problemen zu arbeiten und herauszufinden, was Sie am meisten genießen können. Es hat eine Weile gedauert, bis ich einen Profi und ein Thema gefunden hatte, das mir gefiel. Es gibt auch einen "sozialen" Aspekt in der Forschung, und verschiedene Profis haben unterschiedliche Arbeits- und Aufsichtsgewohnheiten, und daher geben Ihnen diese Sommerforschungsjobs eine bessere Vorstellung davon, welche Qualität Sie in Zukunft am meisten von einem Vorgesetzten erwarten.

Es gibt viele interessante Gebiete in der Informatik, und TCS ist nur eines davon. Es ist also immer am besten, Ihre Optionen offen zu halten und mit verschiedenen Profis zu sprechen. Es ist sehr wichtig, sich zu spezialisieren, wenn Sie promovieren, aber als Student halte ich den Rat von Mark Braverman für äußerst relevant:

"Versuche so viel wie möglich zu lernen. [...] Es ist später schwieriger!"

[Mark hat versucht, sich in vielen Kursen (weit über dem Limit) einzuschreiben und während seines Studiums verschiedene Bereiche der Mathematik und Informatik zu erkunden.] Versuchen Sie, Vorlesungen und Seminare zu verschiedenen Themen in Ihrer Abteilung zu besuchen. Wenn Sie in den oberen Jahren sind, sollten Sie auch die Erlaubnis einholen, Graduiertenkurse in Bezug auf Ihr Interesse zu prüfen.

Abhängig davon, ob Sie ein Hauptfach in Mathematik oder CS haben, müssen Sie auch Kurse planen, die Sie belegen sollten, um eine solide Basisgrundlage zu schaffen. Wenn Sie ein Mathematik-Student sind, sollten Sie mehr CS-Kurse in Algorithmen und Komplexität belegen, die Ihnen einen "algorithmischeren" Verstand vermitteln. Wenn Sie ein CS- oder Ingenieurstudium absolvieren, ist es immer eine gute Idee, einige Grundkurse in Mathematik zu lernen:

  • Kombinatorik
  • Wahrscheinlichkeit und Statistik
  • Fortgeschrittene lineare Algebra
  • Abstrakte Algebra
  • Analyse

Es ist wahr, dass Sie nie genug Mathematik lernen können und dass Sie lernen sollten, neue Mathematik / Methoden / Techniken bei Bedarf schnell zu erlernen. Aber ein solider Hintergrund erleichtert Ihnen auf jeden Fall den Einstieg in TCS.

Ich wünsche Ihnen viel Glück und Erfolg!

Dai Le
quelle
6
+1: nette Antwort. Ich füge hinzu, dass es auch gut ist, nicht-theoretische CS- oder Nicht-CS-Kurse zu belegen / zu auditieren. Es öffnet Ihren Verstand für mögliche Probleme, an denen Sie arbeiten können. Sie wissen nie, wo eine schöne Theoriefrage auftaucht . :)
Kaveh
Würden Sie "Advanced Linear Algebra" von Steve Roman für das Selbststudium empfehlen?
Jacob
2
@Jacob: Roman's Buch wird sicherlich von vielen Leuten empfohlen. Es ist wirklich fortgeschritten und deckt schöne Themen wie Module, Konvexität, affine Geometrie, Tensorprodukte usw. ab. Aber unter dem Strich sollten Sie immer etwas wählen, das Ihrem Geschmack und Hintergrund entspricht! Daher ist es immer eine gute Idee (zumindest für mich), ein paar Bücher in der Bibliothek zu durchsuchen, bevor Sie sich entscheiden.
Dai Le
11

Als Studienanfänger ist es am besten, wenn Sie Ihren Professoren in der CS-Abteilung dieses Interesse ausdrücken, die Ihnen helfen können (und diese Hilfe zu einem großen Teil ihrer Arbeit leisten!). Ich würde davon ausgehen, dass sich die meisten von ihnen freuen würden, einem Studenten zu helfen, der sich für die gleichen Dinge interessiert, die sie sind. Zumindest können sie Ihnen gute Ratschläge geben, welche Kurse an Ihrer Institution zu besuchen sind, und Ratschläge, die auf Ihre Situation zugeschnitten sind.

Peter Boothe
quelle
10

Viele andere Leute scheinen verschiedene gute Ratschläge zu geben. Um die Weisheit zu erweitern, lassen Sie mich Folgendes sagen: Es gibt keine Möglichkeit, zu viel Mathe zu wissen (es sei denn, Sie möchten stattdessen reine Mathe durchführen). Im Ernst, kennen Sie Ihre Analyse, Kombinatorik, Algebra, vielleicht eine Wiederholungstheorie, Algentop usw. Es macht es viel einfacher, in allen Bereichen der CS-Theorie umfassend gelesen zu werden :)

Carter Tazio Schonwald
quelle
2
exzellente Beratung. Das erzähle ich auch allen Studenten, die zu mir kommen und mit mir reden.
Suresh Venkat
7

Du hast einen großartigen ersten Schritt gemacht! Ich werde kurz darüber sprechen, mit einem Professor in Ihrer Abteilung zu sprechen. Wenn Sie sich für Theorie interessieren, suchen Sie sich jemanden, der die Theoriekurse unterrichtet, und sprechen Sie mit ihm. Sie haben möglicherweise einige Probleme, die nicht zu viel Hintergrund erfordern, um loszulegen. Nach meiner persönlichen Erfahrung gibt es mehr Probleme in der Graphentheorie und Kombinatorik, die zugänglicher sind als die Theorie, aber dennoch dieselben Forschungsfähigkeiten aufbauen. Fürchte dich nicht vor deiner Mathe-Abteilung!

Es kann auch hilfreich sein, sich in der Community zu engagieren, insbesondere indem Sie hier Fragen stellen und beantworten. Es wäre hilfreich, wenn Ihr Benutzername Ihr eigener Name wäre, damit wir wissen, wer Sie sind.

Derrick Stolee
quelle
6

Ich bin fast ein Doktorand. Die Antworten auf Ihre Frage sind also auch für mich interessant, aber vielleicht kann meine kleine persönliche Erfahrung helfen.

Hier ist meine Liste (in zufälliger Reihenfolge) von Vorschlägen, was Sie tun können:

  • Lesen Sie zunächst so viele Artikel / Bücher / Vorlesungsunterlagen, wie Sie finden können. Es ist aber auch wichtig, dass Sie Ihr Wissen auf Übungen und später auf offene Probleme anwenden! Einige meiner Nachhilfelehrer sagen immer: Nicht nur deine Muskeln brauchen ein kontinuierliches Training :)
  • Das Lesen / Stellen / Beantworten von Fragen auf dieser Site (oder einer anderen verwandten SE-Site) ist eine gute Möglichkeit, den Umgang mit Forschungsthemen in TCS oder Mathematik zu erlernen.
  • Ich versuche, viele TCS-Blogs von bekannten Forschern zu lesen. Die Themen umfassen sowohl aktuelle als auch historische Ergebnisse.
Marc Bury
quelle
Hätten Sie Links zu diesen Blogs?
SH7890
2

Ich denke, das Wichtigste ist, so weit wie möglich zu erforschen, welche Aspekte von TCS Sie wirklich begeistern. Im Verlauf dieser Untersuchung stellen Sie möglicherweise fest, dass die Probleme, die Sie am meisten beschäftigen, die Schnittstellen von TCS mit anderen Bereichen (E-Economics) oder Anwendungen von TCS (z. B. auf Computernetzwerke) oder TCS-Themen sind, die auch Teil anderer Bereiche von CS sind wie rechnerische oder statistische Lerntheorie. Es ist sogar möglich, dass Sie Ihr Hauptfach in Mathematik oder Physik oder etwas Ähnliches ändern, wenn Ihre Interessen Sie in diese Richtung lenken.

Mein Punkt ist, dass Sie als Neuling wirklich die Möglichkeit haben, mit weniger Druck als als Doktorand oder Professor weit zu erforschen. Und nicht beunruhigt zu sein, wenn Sie nicht in den "üblichen verdächtigen" TCS-Themen landen.

Natürlich wäre es ideal, wenn Sie in einem Bereich "tief" gehen, solide Techniken erlernen und großartige Ergebnisse veröffentlichen.

Und wenn Sie am Ende ein Experte in einem heißen neuen Bereich werden, bevor es zum Mainstream wird, ist das wahrscheinlich eine großartige Sache für Ihre Karriere.

Mugizi Rwebangira
quelle