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.