Jakie kursy matematyczne należy podjąć, aby przygotować się do magistra lub doktora CS?

10

Jestem samoukiem, profesjonalnym programistą. Jestem w tym całkiem dobry (Ruby, Unix, Clojure, Java, Objective-C), ale teraz myślę o przeniesieniu go na wyższy poziom, być może ubiegając się o studia magisterskie lub doktoranckie w CS. Jakie tematy matematyczne powinienem studiować, aby przygotować się do tego celu?

dan
źródło
2
Zobacz: cstheory.stackexchange.com/q/2571/1621
Dana Moshkovitz
1
Jeśli idziesz na zimno, a za nim stoi niewiele naukowców lub nie ma ich wcale, radzę wybrać program zapewniający ścieżkę dostępu dla osób spoza CS. Często zdarza się, że ludzie z EE, fizyką, matematyką lub innymi podobnymi stopniami licencjackimi chcą zmienić karierę. Niektóre uniwersytety mają programy mające na celu ułatwienie tego w swoich strukturach kursów.
Novak

Odpowiedzi:

10

Na MIT OCW znajduje się kurs Matematyka dla informatyki , który zawiera listę tematów, które MUSISZ obejmować .

Nauka algebry abstrakcyjnej będzie dużym plusem. Ponieważ widzę w literaturze zbyt wiele odniesień do teorii grup.

Pratik Deoghare
źródło
3
cholera zapomniałem abstrakcyjnej algebry w mojej odpowiedzi - dobre połączenie.
Suresh Venkat
1
W powyższej wersji z jesieni 2005 r. Brakuje około 1/3 notatek z wykładu. Do wiosny 2005 i wiosną 2010 roku wersje mają bardziej kompletne notatki.
Daniel Apon,
13

Ogólnie wysoki stopień dojrzałości matematycznej znacznie ułatwia zrozumienie wielu formalnych aspektów (niekoniecznie teoretycznej) informatyki. Robienie nieletniej matematyki wraz z kierunkiem informatycznym przyniosłoby więcej korzyści niż szkody.

Dave Clarke
źródło
11

Algebra liniowa, teoria prawdopodobieństwa, niektóre teorie grafów / kombinatoryki na absolutnym minimum.

Suresh Venkat
źródło
7

Niektóre rzeczy, których możesz potrzebować, niektóre więcej, niektóre mniej:

  • Logika matematyczna
  • Teoria prawdopodobieństwa / kombinatoryka / statystyka
  • Algebra liniowa
  • Rachunek różniczkowy
  • Teoria grafów
  • Ustaw teorię
  • Teoria liczb
  • Może jakaś teoria optymalizacji

Oczywiście (prawie) wszystko będzie przydatne, szczególnie jeśli idziesz na teoretyczne dziedziny informatyki.

Jerzy
źródło
4

Wszystkie pozostałe odpowiedzi + ...

Prawdopodobnie najbardziej przydatną rzeczą, jaką możesz zrobić, jest zaangażowanie się w badania. Po wymianie stosów, przeczytanie niektórych materiałów / dokumentów w tle i ustalenie, co może Cię zainteresować, może być najskuteczniejszym sposobem przygotowania się do ukończenia szkoły.

Sariel Har-Peled
źródło
2

jak dotąd doskonałe / szerokie odpowiedzi. Proponuję niektóre klasy, o których dotychczas nie wspomniano. Zajęcia esp, które skłaniają się ku zastosowaniu teorii i wymagają od ucznia napisania / debugowania kodu i wizualizacji [wyników graficznych] jako części zadań. lub buduj / debuguj działające systemy. itp.

  • równania różniczkowe. szczególnie związek między nim a dyskretnymi równaniami różniczkowymi, np. funkcje generujące.
  • metody numeryczne. optymalizacja. Runge Kutta diffeq solver itp. Zgrabnym / wysoce edukacyjnym ćwiczeniem jest rozwiązanie / wykreślenie równania pogodowego Lorentza. koncepcje dotyczące precyzji / dokładności w arytmetyce oprogramowania itp.
  • istnieje klasa MIT „modelowanie i symulacja układów dynamicznych”. coś podobnego nie byłoby dostępne na wszystkich uniwersytetach, ale może niektóre będą to mieć.
  • niektóre uniwersytety będą miały zasady / dynamikę złożonych systemów lub złożonych systemów adaptacyjnych itp
  • wszystko, co dotyczy modelowania lub symulacji systemów za pomocą oprogramowania o matematycznym ukierunkowaniu
  • systemy fraktalne i matematyka
  • uczenie maszynowe (szczególnie w technikach opadania gradientu)
  • obliczenia kwantowe (niektóre klasy w tym są wysoce lub głównie matematyczne)
vzn
źródło
1

Świetne pytanie. Niedawno zdałem egzamin kwalifikacyjny doktora, który był częściowo egzaminem wstępnym - połączenie przedmiotów licencjackich i magisterskich.

Aby być praktycznym - zależy to od szkoły, do której planujesz uczęszczać, rodzaju wymaganego egzaminu wstępnego i rodzaju oferowanego programu.

Niektóre wymagają GRE, więc przygotowanie do rejestracji nie jest specyficzne dla CS. Niektóre wymagają przedmiotu GRE, który odpowiada 5-6 podstawowym kursom licencjackim CS, a teoria zostanie omówiona (teoria automatów, matematyka dyskretna itp.)

Aby uzyskać najbardziej podstawowe tło, wziąłbym Discrete Math, algorytmy i teorię obliczeń z Ad Uni .

Istnieją inne fantastyczne źródła z MIT i Stanford, ale te trzy kursy, przedstawione przez wielkiego Shai Simonsona, są doskonałym fundamentem.

Mam nadzieję że to pomoże.

Edmon
źródło
Jeden z tych kursów jest dublowany na YouTube: Teoria obliczeń . Niestety, mirrory algorytmów i dyskretnej matematyki są niepełne.
Jeffε
1

Naprawdę popieram powyższe odpowiedzi. Mogę dodać następujące, które mogą być przydatne do dużego obrazu matematyki w CS:

Matematyka może być częścią samego celu; analiza algorytmów, granice złożoności, dowody deterministyczne lub probabilistyczne, algorytmy równoległe i wiele innych obszarów badawczych związanych z czasem i przestrzenią obliczeniową.

Z drugiej strony matematyka może być faktyczną ścieżką dla celu na wyższym poziomie; PDE, równania świetlne dla grafiki komputerowej, cały obszar badań fizyki obliczeniowej (układy dynamiczne, mechanika statystyczna, tworzenie galaktyk), aby wymienić niektóre z nich.

W odpowiednich okolicznościach obie formy matematyki mogłyby żyć razem.

labotsirc
źródło