Щодо тем
Існують різні типи питань, які можна вважати
теоретичними інформатикою. Тут важливим є слово " теоретичне " (оскільки ми всі маємо уявлення про те, чим займається інформатика). Розуміння слова теоретичне не так очевидно. Довгий час я вважав це математичним, на відміну, наприклад, "злому". Я краще вчився у людей лінгвістиці:
теоретичнійдля них явно не означає математичне, але засноване на теорії, яка може бути дещо неформальною (хоча це може бути і математичною), і є організованим набором знань та понять, які структурують розуміння спостережуваних явищ і, сподіваємось, дозволяють дедуктивно та прогнозувати використання здобутих знань. Це також зменшує суму для навчання та навчання шляхом зменшення кількості примітивних понять, з яких можна вивести решту.
Теоретичне можна протиставити практичному , саме таким чином ці знання використовуються для роботи в обчислювальних двигунах, для побудови систем тощо. Я також можу протиставитись застосуванню, яке полягає в використанні цих знань для вирішення проблем в інших галузях науки та людини діяльності.
Але я сумніваюся, що є чіткі межі.
Сказане, теоретична комп'ютерна наука охоплює різні сфери, і я спробую дати деякі, хоча я впевнений, що забуду інші, а також, що інші люди можуть не погодитися з цією організацією.
Один домен - це обчислюваність , яка вивчає, що можна обчислити, і як у досить абстрактному сенсі: багато в чому те, що описано у відповіді Суреша Венката.
інша - алгоритміка , яка знаходить ефективні засоби для обчислення відповідей на конкретні проблеми із конкретними обмеженнями. Обчислюваність є теоретичним контекстом для алгоритміки.
семантика (на користь кращої назви) аналізує концептуальну організацію обчислювальних задач та алгоритмів на поняття вищого рівня, щоб розподілити методи, які виявилися корисними та часто використовуються, наприклад, концепція підпрограми, структури, модулі, приховування інформації. Він включає розробку математичних інструментів, які адекватно формалізують ці поняття, щоб забезпечити міркування високого рівня (наприклад, семантика Скотта). Він також торкається того, як це виражається, таким чином, про розділення та співвідношення між синтаксисом та семантикою. Концепції мов програмування є її частиною (хоча мовна конструкція, ймовірно, є практичним застосуванням цих знань). Він також може включати співвідношення між теорією доказів та теорією обчислень та сучасною роллю типних систем.
Інша тема, яка могла б розвинутися більше, ніж це було до цього часу, - це співвідношення між обчисленням та фундаментальною фізикою. Наприклад. чи існує залежність між обмеженнями обчислень та властивостями фізичного світу, такими як щільність фізичної інформації або закони термодинаміки. Квантові обчислення можуть трохи покращити нашу обчислювальну майстерність; ми могли б сподіватися на більше? Деякі можуть заперечити, що це все ще TCS, хоча є дослідження TCS щодо гіперкомп'ютації .
Щодо конкретної діяльності
Я пропускаю очевидну діяльність, яку вимагає академічне життя. або наукове життя в промисловості: викладання, публікація, рецензування робіт, написання заявок на гранти, прийняття академічних обов'язків, управління людьми, консультування студентів або політиків. Але навіть тоді не існує простої відповіді на ваше запитання. Тут я лише накреслю декілька аспектів, які приходять на думку, але я впевнений, що можна сказати ще багато. І я не впевнений, що відповідаю тобі. Деякі найкращі вчені написали книги про свою роботу, і це може дати вам підказки про наукову діяльність.
Дослідження в теорії можуть включати різні речі, залежно від ваших навичок та інтересів, які сильно різняться від вченого до вченого. Про це дещо важко говорити, оскільки кожна людина сприймає більше власну діяльність та інтереси, ніж інтереси інших. Більшість досліджень потребують широких знань, оскільки цікаві та справді оригінальні результати часто виникають від приведення речей у співвідношення чи перенесення техніки з одного (під) поля на інше або отримання різних технічних поглядів на ту саму проблему. Тож важливо навчитися якнайбільше на глибині та глибині. Пам’ятайте, що, хоча у вас є час і можливості для цього, як студент, або як молодший викладач / науковець, вони будуть згодом зменшені через обов'язки та життя в цілому. Викладання того, на чому ви не спеціалізуєтесь, може бути способом продовжити навчання.
Вид роботи, яку виконують люди, може сильно відрізнятися, оскільки люди, на щастя, дуже різні, мають велику різноманітність інтересів та технічних здібностей, таким чином доповнюючи один одного. Деякі люди вирішують проблеми. Вони дивляться на теоретичні чи практичні питання, поставлені іншими людьми, або самі собою, і намагаються їх вирішити, або наблизиться до повного чи часткового вирішення. Іншим людям буде краще структурувати наявні знання та ставити щось у співвідношення, а потім знаходити нові запитання. І те, й інше є важливим.
Важливо знайти більш прості докази технічних результатів, або простіші презентації теорій або об'єднання понять. Це узагальнює результати, зменшує кількість речей, які слід вивчити, підкреслює основні ідеї та, можливо, приносить нове розуміння. Оскільки наш час навчання обмежений, прогрес можливий лише тоді, коли ми конденсуємо знання.
Простий приклад - вивчення абстрактних сімей формальних мов. Коли теорія мови вперше розроблялася, властивості закриття в різних операціях доводилися знову і знову для кожної сімейства мов (регулярні, без контексту, RE, ...), використовуючи спеціальні методи в залежності від родини. Тоді вийшло так, що ці властивості закриття мали внутрішні відносини незалежно від зацікавлених сімей, і вони були вивчені як такі. Сьогодні нам залишається лише перевірити кілька найпростіших властивостей закриття для даної родини, і ми отримуємо «безкоштовно» цілий набір інших властивостей.
Ще одним важливим моментом є те, що між теоретичною, практичною чи експериментальною роботою немає такого чіткого розрізнення. Хороша теорія може призвести до впровадження систем, які можуть механізувати вирішення проблем. І для впровадження такої системи знадобиться хороший теоретик із поєднанням теоретичних і практичних робіт, включаючи впровадження системи або мовне проектування. На думку багатьох прикладів, таких як системи синтезу доказів та / або програм, спеціалізована мова для синхронних паралельних систем, обмежена алгоритмічна мова, для якої обчислювальну складність можна систематично виводити. Не тільки важливо вміти виробляти такі тактичні системи, які роблять теоретичні результати більш доступними та зручними для використання, але для теоретика часто дуже важливо або використовувати ці системи, якщо тільки вивантажити нині менш творчі частини його працювати або сприяти розвитку та розширенню цієї системи.
Іншим аспектом є можливість порівнювати теоретичні підходи шляхом практичного експерименту. Тут питання полягає в порівнянні різних методик для досягнення тієї ж мети. Порівнювати реалізацію часто безглуздо, оскільки їх ефективність часто залежить від мови програмування або навичок програмування реалізатора. Але якщо їх можна виразити всіма загальними теоретичними рамками, то іноді можна порівнювати їх експериментально в рамках. Тут теорія та практика підтримують одна одну, як це часто робиться в науці. Чистого теоретичного аналізу досягти не завжди легко. Крім того, експериментальний аналіз, якщо добре проведений, може виявляти несподівану поведінку, що може мотивувати кращий теоретичний аналіз.
Світ не простий чи чіткий. Ось чому це може бути весело, маючи місце для всіляких навичок. Розпитувати власні знання та будь-якими способами відповідати на питання інших.
Дві речі, про які часто забувають: етика науки та пояснення її людям. І те, і інше є важливим і важким.