Po co chodzić na informatykę / badania teoretyczne?

36

Obecnie rozpoczynam naukę na uniwersytecie [informatyka] i tam mamy wiele możliwości, aby zacząć od badań. Przed znalezieniem tej witryny nie miałem zamiaru iść tą drogą [chciałem pracować z AI, prawdopodobnie twórcą gry], ale teraz mogę [lub muszę] dokonać wyboru.

Czy możesz mnie przekonać do przyłączenia się do tego „świata”? Jakie „segmenty” mogę śledzić? Czy jest coś na temat rodzajów tematów, nad którymi pracuje informatyk lub badacz?

JulioC
źródło
18
Jesteśmy zaszczyceni, że strona zainspirowała Cię do myślenia o teorii! I trafiłeś we właściwe miejsce, jeśli chcesz wiedzieć, nad czym pracuje teoretyczny informatyk ... po prostu czytaj dalej, a dowiesz się!
Ryan Williams
6
To powinna być wiki społeczności.
Dave Clarke
Właśnie dołączyłem dzisiaj i miałem to samo pytanie ... Zrobiłem inżynierię elektroniki, ale kiedy na studiach poczułem skłonność do CS ... Nigdy nie miałem formalnego wstępu do teorii, ale teraz cieszę się, że znalazłem tę stronę ... I @ Júlio Souza dziękuje za zadanie tego pytania. Mam zamiar to monitorować od dzisiaj :)
Alan Turing
@supercooldave zmienił ją na wiki społeczności.
JulioC,
Epilog: JulioC został programistą.
domotorp

Odpowiedzi:

32

Mogę przedstawić swoje powody, dla których jestem studentem ubiegającym się o przyjęcie na studia dla absolwentów TCS w nadchodzącą zimę (tak mało czasu!).

  • To jest piękno. To nie jest coś, co mogę wyjaśnić (i byłem świadkiem, że inni matematycy nie wyjaśnili). To jest jak „żółty”. Jeśli tego nie widziałeś, nie jestem pewien, czy mógłbym ci powiedzieć, co to jest. Ale odkąd zainteresowałeś się teorią, przypuszczam, że możesz jej doświadczyć.
  • Istnieje uniwersalność. Uniwersalność wykraczająca poza teorię Turinga . TCS w swoim rdzeniu bada zjawiska wysokiego i niskiego poziomu w informacji - to „fizyka” informacji. A ponieważ informacje są jakościowo atomowe , teoria informacji ma wiele do powiedzenia na temat fizyki (mój profesor QM specjalnie powiedział mi, że uwielbia teorię informacji). Biorąc to wszystko pod uwagę, jest to gdzieś pomiędzy czystą matematyką a inżynierią. Ma zdolność i elastyczność, aby przyczyniać się bezpośrednio do obu, a także przyczyniać się bezpośrednio do nich obu. Mimo to walczy na własnej granicy.
  • Jest zakres. Wskazano na to w poprzednim punkcie. Informatyka trafia do wielu różnych zastosowań - rzeczy każdy z DHD do startupów są zainteresowani nie znajdzie się. Jak głodny finansowania jak czysta matematyka. (Nadal zawsze głoduje ci finansowanie).
  • Jest wyzwanie. Spójrz na listę otwartych problemów w informatyce teoretycznej (i staraj się je zrozumieć do końca zapytania). Są one bardzo trudne - oto kilka powodów, dlaczego . Naprawdę nie rozumiemy TCS - większość naszych dowodów sprowadza się do rosnącej liczby dowodów. Zostało jeszcze tyle pracy!
Ross Snider
źródło
19

Rzeczywiście, czy zdecydujesz się na badania w dziedzinie informatyki teoretycznej, jest kwestią wyboru. Ale nawet przejrzenie pytań na tej stronie (jak zapewne zrobiłeś) daje nadzieję, że poczujesz szerokość, rozkoszujesz się pięknem pola. Nie wiem nawet, od czego zacząć od wskazywania źródeł, które możesz przeczytać, aby docenić pracę, jaką wykonują teoretycy, ale na tej stronie jest jedno pytanie, które moim zdaniem może cię zainteresować.

Pytanie brzmi:

Paul Erdos mówił o „Księdze”, w której Bóg przechowuje najbardziej elegancki dowód każdego twierdzenia matematycznego. To nawet zainspirowało książkę (która, jak sądzę, jest teraz w czwartym wydaniu): Dowody z książki.

Gdyby Bóg miał podobną książkę na temat algorytmów, jaki według ciebie algorytm byłby kandydatem (kandydatami)?

Obecnie istnieje 64 odpowiedzi na to pytanie, obejmujące algorytmy dla małych problemów, dużych problemów, zagadek i głębokiej matematyki. Mocno wierzę, że gdyby wszystko, co zrobiłeś, to przejrzałeś tę listę i przeczytałeś więcej o każdym z algorytmów, które przyciągają twoją uwagę, dowiesz się wiele o tym, co robią informatycy teoretyczni i dlaczego to robimy.

Powodzenia !

Suresh Venkat
źródło
16

Powodem, dla którego wielu z nas poszło na badania, jest przesuwanie granic tego, co znane jest zarówno pod względem intelektualnym, jak i satysfakcjonującym. Prowadzenie badań daje nam prawie niespotykaną swobodę w pracy nad problemami, które uważamy za znaczące i interesujące, i wciąż stanowi dla nas wyzwanie (co sprawia nam przyjemność).

TCS (w przeciwieństwie do innych dziedzin) to matematyczne studium informatyki. Możesz pracować nad aspektem teorii wielu różnych dziedzin, od systemów rozproszonych po uczenie maszynowe. Wybór między TCS i innymi dziedzinami informatyki zależy od tego, gdzie leżą twoje gusta i umiejętności. Jeśli twoje naturalne zainteresowania i umiejętności leżą bardziej w programowaniu lub projektowaniu systemu niż w analizie matematycznej, być może nie powinieneś iść do TCS. Z drugiej strony, jeśli twoje umiejętności i zainteresowania są bardziej związane z matematyką, powinieneś rozważyć TCS.

Ponadto nie zawsze musisz wybierać jeden obszar spośród wszystkich innych. Wiele osób pracuje nad problemami zarówno od strony teoretycznej, jak i praktycznej. Jest to powszechne na przykład w uczeniu maszynowym, gdzie najpierw projektujemy i analizujemy algorytmy (często teorię), a następnie testujemy je w świecie rzeczywistym (projektowanie eksperymentalne, aplikacje itp.).

Dobrym sposobem, aby dowiedzieć się, co chcesz zrobić, jest wzięcie udziału w zajęciach w wielu różnych obszarach, a być może wypróbowanie zarówno przemysłu, jak i badań w okresie letnim. Pod koniec studiów prawdopodobnie będziesz miał dobre pojęcie o tym, co chcesz zrobić.

Lew Reyzin
źródło
Naprawdę lubię matematykę, ale uwielbiam programować. Może mógłbym znaleźć sposób na pracę z obiema „stronami” w tym samym czasie, na przykład uczenie maszynowe [które jest w obszarze sztucznej inteligencji, prawda?]. W przyszłym roku będę aplikować na niektóre zajęcia na mojej uczelni, takie jak AI i analiza algorytmów, które mogą mi pomóc.
JulioC,
Uczenie maszynowe (przynajmniej z mojej perspektywy) nie jest podobszarem sztucznej inteligencji, nawet jeśli pewne elementy się pokrywają. Z grubsza mówiąc, AI koncentruje się na rozwiązywaniu problemów, które normalnie rozwiązują ludzie. Uczenie maszynowe koncentruje się na opracowywaniu algorytmów i systemów, które zmieniają zachowanie, gdy widzą dane. Tak więc oba pola wyraźnie się pokrywają, ale są one dalekie od siebie. Uczenie maszynowe wyraźnie daje ludziom możliwość zrobienia zarówno teorii, jak i programowania, ale jestem pewien, że nie jest to jedyne podpole CS, dla którego jest to prawda.
Lew Reyzin
11

Programowanie teorii języków to zabawa dla młodych i starszych. Stosuje logikę w prawdziwym świecie. Dołącz do parady !!

Mówiąc poważniej, teoria języka programowania jest interesująca z następujących powodów:

  • postrzegany wpływ na rzeczywisty świat: rozbudowana praca nad systemem typów w Haskell i innych językach funkcjonalnych, wywodząca się z czysto logicznych pomysłów (System F), znacząco wpływa na rozwój języków takich jak Java (jego okropne nazwy ogólne, zamknięcia) i Scala (nowoczesny dzień, w którym teoria spotyka się z placem ćwiczeń).

  • piękno: wiele narzędzi wykorzystywanych w teorii języków programowania opiera się na logice. Wiele z nich wynika z korespondencji Curry-Howarda, która pokazuje ścisły związek między logicznymi regułami dowodzenia i regułami pisania dla języków programowania oraz między eliminacją cięć w logice a oceną w języku programowania. Dwa ostatnie piękne przykłady zastosowania logiki w badaniach języka programowania to szeroko zakrojone prace nad logiką separacji w weryfikacji oraz zastosowanie pomysłów dowodowych koncentrujących się na zrozumieniu pojęć języka programowania, takich jak kolejność oceny i dopasowanie wzorców .

  • zabawa: możesz robić programowanie i teorię w tym samym czasie, zwłaszcza jeśli formalizujesz i weryfikujesz swoje teorie za pomocą asystenta dowodu, takiego jak Coq.

  • i wiele więcej.

Dave Clarke
źródło
11

Jednym z głównych powodów, dla których uważam teorię obliczeń („moją” gałąź teoretycznej informatyki) za fascynującą i wartą przestudiowania, jest następująca: zapewnia nam ona możliwość zbadania niektórych głębokich (i czasem zagadkowych) pytań filozoficznych.

Jeden z założycieli teorii obliczeń, Alan Turing, próbował określić znaczenie „obliczania funkcji” dla człowieka wyposażonego w kartkę papieru, podając matematyczny opis tego procesu. Nie tylko ja sądzę, że odniósł ogromny sukces, a maszyny Turinga okazały się dokładnym modelem wielu innych procesów obliczeniowych.

Teraz, gdy posiadamy klasę obiektów matematycznych opisujących obliczenia, możemy faktycznie udowodnić twierdzenia na ich temat, próbując w ten sposób odkryć, co można obliczyć i jak można je obliczyć; od razu okazało się, że wielu całkowicie uzasadnionych funkcji nie można w ogóle obliczyć i że można je sklasyfikować według stopnia niemożliwości obliczenia (niektóre funkcje są po prostu „bardziej nieobliczalne” niż inne).

Niektórzy inni faceci, pierwsi zwykle utożsamiani z Jurisem Hartmanisem i Richardem E. Stearns, próbowali matematycznie opisać, co to znaczy, że funkcja (odpowiednio, problem) jest trudna lub łatwa do obliczenia (odpowiednio. Do rozwiązania). Istnieje kilka miar złożoności, według których można opisać stopień trudności problemów; najczęstszym jest to, ile czasu potrzebujemy na ich rozwiązanie. Alan Cobham i Jack Edmonds z powodzeniem zidentyfikowali rozsądne pojęcie „wydajnego obliczenia”.

W ramach złożoności obliczeniowej możemy teraz udowodnić pewne wyniki, które są spójne z naszym intuicyjnym pojęciem obliczeń. Moim ulubionym przykładem jest twierdzenie o hierarchii czasu: jeśli mamy więcej czasu na obliczenia, możemy rozwiązać trudniejsze problemy.

Centralny otwarty problem teorii złożoności, P vs NP , jest po prostu sformalizowaniem innego istotnego filozoficznie pytania: czy naprawdę trudniej jest rozwiązać problem, niż sprawdzić, czy rzekome rozwiązanie jest rzeczywiście poprawne? Uważam, że warto zadać to pytanie i odpowiedzieć niezależnie od jego praktycznego znaczenia.

Antonio E. Porreca
źródło
+1: polubiono :) ps: ktoś wyraził podobne opinie na blogu Scotta .
Kaveh
6

Nie możemy cię „przekonać”, ponieważ informatyka nie jest matematycznie lepsza niż sztuczna inteligencja czy jakakolwiek inna dziedzina. Nie możemy więc przeprowadzić dowodu jego dominacji! IMO, To bardziej kwestia gustu niż czegokolwiek innego.

Niesamowite
źródło
1
Zgadzam się z tobą, ale prawdopodobnie chce wiedzieć, dlaczego „ty” (lub wszyscy inni tutaj) wybraliście to pole.
MS Dousti
@ Júlio Souza: W tytule powinna być „teoretyczna”, a nie „teoretyczna”.
MS Dousti
Nie chcę wiedzieć, czy jest lepiej, ale chcę wiedzieć, dlaczego wybrałeś tę dziedzinę, jak powiedział Sadeq.
JulioC
6

Trudno jednoznacznie odpowiedzieć na to pytanie, ale należy pamiętać o kilku kwestiach.

Jeśli zrobisz karierę jako informatyk, Twoja praca prawdopodobnie będzie polegać nie tylko na przetwarzaniu i konstruowaniu danych w sposób, który czyni je użytecznym i wydajnym w użyciu, ale także na zastanawianiu się, jak i dlaczego to, co robisz, działa, a także w który ogranicza jego działanie (jeśli nie z innego powodu niż zrozumienie go wystarczająco, aby go wdrożyć). Jest to szczególnie ważne w przypadku AI / NLP / IR, które jest BARDZO intensywne w badaniach, nawet jeśli nie jesteś w środowisku akademickim. W rzeczywistości wejście w sztuczną inteligencję gwarantuje, że poradzisz sobie z problemami „teoretycznymi”, a znalezienie pracy bez tego tła może być trudne. Może to być jeden z ważnych powodów, dla których warto to rozważyć.

Nie tylko to, ale prawdopodobnie byłoby bardzo trudne do spędzają większość swojego życia w każdej dziedzinie CS, gdzie trzeba by utrzymać tak bliski kontakt z tak delikatnych i kapryśnych (nie wspominając trudne) procesów, przy jednoczesnym zachowaniu nie zainteresować się nawet podstawami, dlaczego rzeczy działają. Innymi słowy, przypuszczam, że mógłbyś skleić biblioteki do końca życia, ale jeśli to nie brzmi jak twoja sprawa, będziesz musiał przynajmniej przelotnie zapoznać się z podstawowymi problemami, z którymi masz do czynienia.

Chociaż czynny udział w badaniach TCS jest pytaniem, na które prawdopodobnie tylko Ty możesz odpowiedzieć, dobrym punktem wyjścia (IMO) jest rozpoczęcie od spojrzenia na problemy, na które chcesz spojrzeć, i przejście od tego. Możesz również nie mieć wystarczających informacji, aby odpowiedzieć na to pytanie, więc lepszym sposobem na kontynuację może być po prostu sprawdzenie, dokąd zaprowadzą Cię twoje zainteresowania.

apc
źródło
Dziękuję za odpowiedź. Całkowicie zgadzam się z twoim POV, pracuję nad czymś po prostu to robiąc, nie wiedząc, dlaczego to działa, jak działa i jeśli mógłbym to poprawić, to nie jest coś, czego chcę. Myślę, że mogę spróbować utrzymać swoje plany przy pomocy AI [lub czegoś innego, co bardziej przypomina „badania praktyczne”], ale nadal będę próbował uczyć się o innych tematach w TCS.
JulioC,
6

Najbardziej intryguje mnie umiejętność zastosowania teorii informatyki do innych dyscyplin, zwłaszcza biologii i biologii komórki. Jeśli ta koncepcja Cię również intryguje, proponuję spojrzeć na: esej Jeannette Wing na temat znaczenia myślenia obliczeniowego ; oraz raport NSF o zastosowaniu soczewki algorytmicznej do innych dyscyplin naukowych.

Aaron Sterling
źródło