Na czym polegają badania w dziedzinie informatyki teoretycznej?


11

Staram się zrozumieć, co jest zaangażowane w teoretyczne badania informatyczne. Czym zajmują się informatycy teoretyczni?

Wiem, że znaczna ilość czasu poświęcana jest na nauczanie, nadzorowanie doktorantów, ubieganie się o fundusze i obowiązki departamentalne. Odkładając je na bok, jak spędzasz czas na badaniach? Jakie są najważniejsze czynności, które zazwyczaj wykonujesz? Zgaduję, że czytasz gazety, myślisz, organizujesz spotkania i piszesz dokumenty. Czy są jeszcze jakieś?


4
„jak spędzasz czas na badaniach?” ... w obliczu problemów, których prawdopodobnie nigdy nie będę w stanie rozwiązać :-) :-)
Marzio De Biasi

7
To tak, jakby opisywać malarstwo jako „mieszanie farb, montowanie płótna, malowanie i czyszczenie instrumentów”. Innymi słowy, opisuje, jak mógłby wyglądać ktoś oglądający, ale nie ma związku z tym, o czym jest to pole :)
Suresh Venkat

1
Inne działania: sport, turystyka, działalność kulturalna i ogólnie życie. Robienie innych rzeczy pomaga w myśleniu (i zdrowiu).
babou

7
Myślę, że pytanie nie dotyczy filozofii badań TCS ani tego, co czyni cię lepszym badaczem, ale naprawdę, jakie konkretne działania wykonuje badacz TCS w godzinach pracy. Oprócz tego, co już pojawia się w pytaniu, dodałbym przygotowywanie rozmów, wygłaszanie rozmów, uczestniczenie w konferencjach, sprawdzanie własnych artykułów, recenzowanie artykułów innych.
Daniel Marx,

2
Dziękuję Ci. Mam pojęcie o rodzaju pytań badawczych, które studiujesz. Chcę wiedzieć więcej o twoich codziennych czynnościach. Badania w inżynierii oprogramowania obejmują opracowywanie programów komputerowych, przeprowadzanie eksperymentów, gromadzenie i analizę danych ... Chcę wiedzieć, co wiąże się z badaniami teoretycznymi. Jaki jest twój typowy dzień pracy?
student licencjata cs

Odpowiedzi:


12

Odnośnie tematów

Istnieją różne rodzaje zagadnień, które można uznać za informatykę teoretyczną . Ważnym słowem jest tutaj „ teoretyczny ” (ponieważ wszyscy wiemy, czym zajmuje się informatyka). Zrozumienie słowa teoretyczna nie jest tak oczywiste. Przez długi czas myślałem, że to matematyka, w przeciwieństwie do „hakowania”. Nauczyłem się lepiej od ludzi z językoznawstwa: teoretycznydla nich wyraźnie nie oznacza matematyki, ale opiera się na teorii, która może być nieco nieformalna (choć może być również matematyczna), i jest zorganizowanym zasobem wiedzy i pojęć, które konstruują rozumienie obserwowalnych zjawisk i, miejmy nadzieję, pozwalają na pewne dedukcyjne i predykcyjne zastosowanie nabytej wiedzy. Zmniejsza to również ilość uczenia się i nauczania poprzez zmniejszenie liczby prymitywnych pojęć, z których można wywnioskować resztę.

Teoretyczna może być przeciwna do praktycznej , czyli w jaki sposób ta wiedza jest wykorzystywana do faktycznego uruchamiania silników obliczeniowych, do budowania systemów itp. Mogę również być przeciwna stosowaniu, które polega na wykorzystaniu tej wiedzy do rozwiązywania problemów w innych dziedzinach nauki i ludzi zajęcia.

Wątpię jednak, czy istnieją wyraźne granice.

To powiedziawszy, teoretyczna informatyka obejmuje różne dziedziny i postaram się podać niektóre, a ja jestem pewien, że zapominam o innych, a także, że inni ludzie mogą nie zgadzać się z tą organizacją.

  • jedną domeną jest obliczalność , która bada, co można obliczyć i jak w raczej abstrakcyjnym sensie: w dużej mierze to, co opisano w odpowiedzi Suresha Venkata.

  • innym jest algorytm , który znajduje skuteczne sposoby obliczania odpowiedzi na określone problemy, z określonymi ograniczeniami. Obliczalność jest kontekstem teoretycznym dla algorytmiki.

  • semantyka (z powodu braku lepszej nazwy), analizuje konceptualną organizację problemów obliczeniowych i algorytmów, w koncepcje wyższego poziomu, w celu faktoryzacji technik, które okazały się przydatne i często są ponownie wykorzystywane, takich jak koncepcja podprogramu, danych struktury, moduły, ukrywanie informacji. Obejmuje rozwój narzędzi matematycznych, które odpowiednio sformalizują te pojęcia, aby umożliwić rozumowanie na wysokim poziomie (na przykład semantyka Scotta). Dotyka także sposobu, w jaki jest to wyrażane, a więc separacji i relacji między składnią a semantyką. Częścią koncepcji są języki programowania (choć projektowanie języka jest prawdopodobnie praktycznym zastosowaniem tej wiedzy). Może także obejmować związek między teorią dowodu i teorią obliczeń, a współczesną rolą systemów typów.

  • innym tematem, który mógłby rozwinąć się bardziej niż dotychczas, jest związek między obliczeniami a podstawową fizyką. Na przykład. czy istnieje związek między ograniczeniami obliczeniowymi a właściwościami świata fizycznego, takimi jak fizyczna gęstość informacji lub prawa termodynamiki. Obliczenia kwantowe mogą nieco poprawić naszą wydajność obliczeniową; czy możemy mieć nadzieję na więcej? Niektórzy mogą kwestionować fakt, że nadal jest to TCS, chociaż istnieją badania TCS dotyczące hiper-obliczeń .

Odnośnie konkretnych działań

Pomijam oczywiste czynności wymagane w życiu akademickim. lub życie naukowe w przemyśle: nauczanie, publikowanie, recenzowanie artykułów, pisanie wniosków o granty, przyjmowanie obowiązków akademickich, zarządzanie ludźmi, doradzanie studentom lub decydentom politycznym. Ale nawet wtedy nie ma prostej odpowiedzi na twoje pytanie. Tutaj szkicuję tylko kilka aspektów, które przychodzą mi do głowy, ale jestem pewien, że jest o wiele więcej do powiedzenia. I nie jestem pewien, czy odpowiadam na ciebie. Niektórzy z najlepszych naukowców napisali książki o swojej pracy, co może dać ci wskazówki na temat działalności naukowej.

Teoretyczne badania mogą obejmować różne rzeczy, w zależności od twoich umiejętności i zainteresowań, które różnią się bardzo między naukowcami. Trudno o tym mówić, ponieważ każda osoba postrzega swoją działalność i zainteresowania bardziej niż inne. Większość badań wymaga szerokiej wiedzy, ponieważ ciekawe i naprawdę oryginalne wyniki często wynikają z powiązania rzeczy, przeniesienia techniki z jednego (pod) pola do drugiego lub uzyskania różnych technicznych poglądów na ten sam problem. Dlatego ważne jest, aby uczyć się jak najwięcej, jak najgłębiej. Pamiętaj, że o ile masz na to czas i umiejętności jako student lub młodszy wykładowca / naukowiec, oba zostaną zmniejszone później z powodu obowiązków i życia w ogóle. Nauczanie tego, w czym nie specjalizujesz się, może być sposobem na kontynuowanie nauki.

Rodzaj pracy, którą wykonują ludzie, może się bardzo różnić, ponieważ ludzie są na szczęście bardzo różni, z dużą różnorodnością zainteresowań i umiejętności technicznych, uzupełniając się w ten sposób. Niektórzy ludzie rozwiązują problemy. Patrzą na teoretyczne lub praktyczne pytania postawione przez innych ludzi lub przez nich samych i starają się je rozwiązać lub zbliżyć się do pełnego lub częściowego rozwiązania. Inni ludzie będą lepiej ustrukturyzować istniejącą wiedzę i zorientować się, a następnie znaleźć nowe pytania. Oba są niezbędne.

Ważne jest znalezienie prostszych dowodów wyników technicznych lub prostszych prezentacji teorii lub połączenie koncepcji. Uogólnia wyniki, zmniejsza liczbę rzeczy do nauczenia się, podkreśla podstawowe idee i być może przynosi nowe zrozumienie. Ponieważ nasz czas nauki jest ograniczony, postęp jest możliwy tylko wtedy, gdy gromadzimy wiedzę.

Prostym przykładem jest badanie abstrakcyjnych rodzin języków formalnych. Kiedy po raz pierwszy opracowano teorię języka, właściwości zamykania w różnych operacjach były wielokrotnie sprawdzane dla każdej rodziny języków (zwykły, bezkontekstowy, RE, ...), z technikami ad hoc w zależności od rodziny. Potem okazało się, że te właściwości zamknięcia miały wewnętrzne powiązania niezależnie od zainteresowanych rodzin, i jako takie zostały zbadane. Dziś musimy tylko sprawdzić kilka prostszych właściwości zamknięcia dla danej rodziny i otrzymujemy „za darmo” cały zestaw innych właściwości.

Inną ważną kwestią jest to, że nie ma tak wyraźnego rozróżnienia między pracą teoretyczną, praktyczną lub eksperymentalną. Dobra teoria może prowadzić do wdrożenia systemów, które mogą zmechanizować rozwiązywanie problemów. I dobry teoretyk zajmie się wdrożeniem takiego systemu, łącząc prace teoretyczne i praktyczne, w tym wdrożenie systemu lub projektowanie języka. Przychodzi na myśl wiele przykładów, takich jak systemy sprawdzania i / lub syntezy programów, język specjalistyczny dla synchronicznych systemów równoległych, ograniczony język algorytmiczny, dla którego można systematycznie uzyskiwać złożoność obliczeniową. Ważna jest nie tylko umiejętność wytwarzania takich praktycznych systemów, które sprawiają, że teoretyczne wyniki są bardziej dostępne i użyteczne, ale często bardzo ważne jest, aby teoretyk albo posługiwał się tymi systemami sprawnie, choćby po to, aby rozładować mniej kreatywne części swojego systemu. pracować lub przyczynić się do rozwoju i rozszerzenia tego systemu.

Innym aspektem jest możliwość porównania podejść teoretycznych poprzez praktyczne eksperymenty. Tutaj chodzi o porównanie różnych technik, aby osiągnąć ten sam cel. Porównywanie implementacji jest często bez znaczenia, ponieważ ich wydajność często zależy od języka programowania lub umiejętności programistycznych implementatora. Ale jeśli można je wyrazić we wszystkich ramach teoretycznych, czasami można je porównać eksperymentalnie w tych ramach. Tutaj teoria i praktyka wspierają się nawzajem, jak to często robią w nauce. Czysta analiza teoretyczna nie zawsze jest łatwa do osiągnięcia. Ponadto dobrze przeprowadzona analiza eksperymentalna może wykazywać nieoczekiwane zachowanie, które może motywować lepszą analizę teoretyczną.

Świat nie jest prosty ani jednoznaczny. Dlatego może być fajnie, z miejscem na wszelkiego rodzaju umiejętności. Kwestionowanie własnej wiedzy i odpowiadanie na pytania innych osób w jakikolwiek sposób.

Dwie rzeczy często zapominane: etyka nauki i wyjaśnianie jej ludziom. Oba są niezbędne i trudne.


jak odniesienie do teorii vs eksperyment, ale tak naprawdę wydaje się, że istnieje dość ścisły rozdział między pracą teoretyczną / eksperymentalną w TCS faworyzującą / podkreślającą poprzednią przynajmniej na tej stronie ... praca empiryczna nie jest duża w porównaniu i powoli staje się coraz bardziej akceptowana ....
od

8

W pewnym sensie, przeglądając tę ​​stronę, dowiesz się, jakie pytania teoretycznie myślą informatycy (na niskim poziomie). Na bardzo wysokim poziomie teoretycy informatyki zadają pytania na temat matematycznych podstaw obliczeń:

  • co możemy obliczyć?
  • jak możemy to obliczyć?
  • Jak szybko ?
  • co się stanie, gdy mamy ograniczone zasoby do obliczeń?
  • jakie są ograniczenia tego, co możemy obliczyć?

Zaczynając od tych pytań, pojawia się cała masa innych tematów, dotykających obszarów zastosowań, matematyki, innych dziedzin informatyki i tak dalej.


Wydają mi się to kluczowe pytania w „Teorii A” (obliczalność, złożoność, algorytmy), a nie w „Teorii B” (logika, semantyka, teoria języka programowania). (Patrz terminologia cstheory.stackexchange.com/q/1521/989 ).
Blaisorblade,

4

przyszło mi do głowy, że konta z pierwszej ręki mogą być pomocne, ale wydają się być nieco rzadkie w CS (w przeciwieństwie do np. matematyki, pisania biograficznego / przypominającego wspomnienia itp.). oto dwie referencje online, które dotyczą pytania i mogą być pomocne. są bardziej ukierunkowane na życie doktorantów i CS, ale większość przeniesie się na badania na poziomie profesora (inne niż nauczanie, ale także wielu doktorów). [i pod pewnymi względami profesorów można postrzegać jako ciągle / wielokrotnie piszących wiele „mini” doktoratów (prace badawcze) lub w niektórych przypadkach „super” doktoraty (książki) na temat ich kariery.] istnieje również kilka porządnych książek na temat temat doda kilka, jeśli wskażesz, że będą to akceptowalne odpowiedzi na twoje pytanie.

  • Jak przeprowadzać badania w MIT AI Lab „przez całą grupę obecnych, byłych i honorowych doktorantów MIT AI Lab” / David Chapman, redaktor

    Ten dokument zuchwale ma wyjaśnić, jak prowadzić badania. Zapewniamy heurystykę, która może być przydatna w podnoszeniu konkretnych umiejętności potrzebnych do badań (czytanie, pisanie, programowanie) oraz do zrozumienia i cieszenia się samym procesem (metodologia, wybór tematu i doradcy oraz czynniki emocjonalne).

  • Jak zostać odnoszącym sukcesy doktorantem (z informatyki) Mark Dredze (Johns Hopkins University), Hanna M. Wallach (University of Massachusetts Amherst)


również z codziennego życia naukowców można zapoznać się z blogami z informatyki napisanymi „
wyglądami
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.