Як розпочати роботу в теоретичному КС?


35

Я першокурсник, який вивчає інформатику, і я вже знаю, що хочу вступити в академічні центри з фокусом теоретичних наук. Я вже прочитав деякі статті, на які посилалося в цьому питанні, і це питання мене ще більше переконало.

Що я повинен робити зараз , як малогранник, щоб долучитися до цього поля? Що я можу зробити, щоб підготуватися до досліджень у цій галузі?


7
Це насправді недостатньо важливо, щоб опублікувати як відповідь, але розглянути можливість отримання копії "Введення в теорію обчислення" Майкла Сіпсера. Навіть якщо у вас немає часу на самонавчання з цією книгою, це чудова посилання, якщо вам потрібно щось шукати, що не чітко пояснено у Вікіпедії.
Філіп Уайт

2
Я не знаю, як працює процедура, але я хотів би розглянути це як вікі спільноти.
chazisop

3
позначте питання для уваги модератора, і ми його вирішимо.
Суреш Венкат

2
@Good Person: OP не може ставити питання CW, можуть лише модератори.
Каве

2
@Good Person: як згадує Kaveh, оригінальні плакати більше не можуть публікувати публікації CW (і ніхто не може мати права редагування). Тільки модники можуть це зробити. жодних злочинів не передбачалося.
Суреш Венкат

Відповіді:


29

Дозвольте надати відповідь з іншого боку. У мене було кілька дослідників студентів, які працюють зі мною. Досвід неоднозначний: з одними я опублікував документи і продовжую роботу, а з іншими ми ніколи насправді не виходили на який-небудь початок.

Чудово, що ти знаєш, що ти хочеш робити. Як студент, ось на що слід зосередитись:

  • Побудова математичних «м’язів», які допоможуть вам, коли ви серйозно почнете працювати над проблемами
  • Вивчіть різні аспекти теоретичного КС, щоб зрозуміти область і з’ясувати, які види проблем / напрямів вам цікаві
  • (залежно від району) опрацювання загадок, можливо, розв’язування деяких вправ та опрацювання шляху до дослідницького питання.

Знайдіть професора, який буде вести вас, і НАДАЙТЕ В ЧАС! Найважче, з чим ви зіткнетесь, - це створити відкритий час для роздумів над проблемами в середині занять, завдань та іспитів. Але вам потрібно зарезервувати багато часу для самостійного вивчення та дослідження, інакше дуже важко буде досягти будь-якого прогресу. Як це зробити - це до вас: можливо, ви зможете знайти професора, який буде зустрічатися з вами раз на тиждень, і встановити для вас проміжні цілі, а може, ви можете встановити довгострокову мету (працюючи через X вправи з тексту) і стабільно працювати над що.


4
Гарна відповідь! "вам потрібно зарезервувати блоки часу для самостійного вивчення": це пам'ятає мене з мого власного досвіду. Раніше я був ледачим учнем з математики, потім у майстра я виявив приємну проблему TCS (зосереджена навколо функції зайнятого бобра). Я почав працювати над своїм вільним часом над цим керівництвом одного з моїх проф. Я ніколи не знайшов у цій проблемі щось цікаве, але через 12 років я написав з ним понад 15 робіт (але він ніколи не був моїм радником з питань Phd / Master, лише «зовнішнім» наставником).
Сільвен Пейроннет

1
Відповідь Суреша чудова! Для ОП: Побудова математичних "м'язів" означає звикання до мови та інструментів математики (комбінаторика, теорія графів, аналіз тощо), а також звикання до доведення теорем! (І це справді захоплююча частина !:-)
Джей

19

Зараз я аспірант, а не професор, тому моя пропозиція випливає з мого (обмеженого) особистого досвіду як аспіранта.

Коли я був студентом бакалаврату, я завжди працював асистентом влітку з різними профілями на моєму відділі. Я особисто вважаю, що єдиний спосіб з’ясувати, чи справді TCS для вас чи ні - це працювати над конкретними проблемами і бачити, що вам найбільше сподобається. Мені знадобилося досить багато часу, щоб знайти професора та тему, яка мені сподобалась. У дослідженні також є "соціальний" аспект, і різні професори мають різні звички в роботі та нагляді, і, таким чином, ці літні дослідницькі завдання дадуть вам краще уявлення про те, якої якості ви хочете найбільше від керівника в майбутньому.

У галузі інформатики є багато цікавих галузей, і TCS - лише одна з них. Тому завжди краще тримати свої варіанти відкритими та спілкуватися з різними професорами. Дуже важливо спеціалізуватися на докторантурі, але, як студент, я вважаю , що поради Марка Бравермана є надзвичайно актуальними:

"Спробуйте навчитися стільки, скільки зможете. [...] Згодом складніше!"

[Марк намагався записатись на багато курсів (набагато вище межі) та вивчити різні напрямки математики та інформатики, коли він був недоградарем.] Спробуйте відвідувати лекції та семінари на різні теми у вашому кафедрі. Коли ви перебуваєте у своїх старших роках, вам слід також попросити дозволу на аудит випускних курсів, пов’язаних із вашим інтересом.

Крім того, залежно від того, якщо ви спеціалізуєтесь на математиці або CS, вам також доведеться планувати курси, які ви повинні пройти, щоб підготувати вам міцний базовий фундамент. Якщо ви недооцінений у математиці, то вам слід брати більше курсів CS з алгоритмами та складністю, які дають вам більше «алгоритмічний» розум. Якщо ви CS або інженер-технікум, то завжди корисно вивчити деякі основні курси з математики:

  • Комбінаторика
  • Імовірність та статистика
  • Розширена лінійна алгебра
  • Абстрактна алгебра
  • Аналіз

Це правда, що ти ніколи не можеш навчитися достатній кількості математики і що ти повинен навчитися швидко підбирати нові математичні / методи / методи, коли це потрібно. Але міцний фон, безумовно, дасть вам простіший початок використання TCS.

Бажаю удачі та успіху!


6
+1: приємна відповідь. Додам, що прийом / аудит нетеоретичних курсів CS або не-CS також є хорошою справою, це відкриває вам розум щодо можливих проблем, над якими можна працювати, ви ніколи не знаєте, де з’являється приємне теоретичне запитання, тому тримайте очі відкритими . :)
Kaveh

Чи порекомендували б ви «Лінійну лінійну алгебру» Стіва Романа для самостійного випускника?
Яків

2
@Jacob: Книгу Романа, безумовно, рекомендують багато людей. Це дійсно вдосконалено і охоплює приємні теми, такі як модулі, опуклість, витончена геометрія, тензорні вироби тощо. Але суть полягає в тому, що ви завжди повинні вибрати щось, що відповідає вашому смаку та фону! Тож сканування через купу книг у бібліотеці перед прийняттям рішення завжди є хорошою ідеєю (принаймні для мене).
Дай Ле

11

Як студент-першокурсник, найкраще висловити цей інтерес до викладачів кафедри CS, які можуть допомогти вам (надаючи цій допомозі велику частину своєї роботи!). Більшість із них, я би сподівався, із задоволенням допоможуть студентам, які цікавляться тими ж самими речами. Принаймні, вони можуть дати вам добру пораду щодо того, які заняття проходити у вашому закладі, та поради, які підходять до вашої ситуації.


10

Багато інших людей, здається, дають різні рекомендації. Щоб додати мудрості, дозвольте мені сказати так: Не існує такого поняття, як знати занадто багато математики (якщо ви не вирішите, що хочете займатися чистою математикою). Серйозно, знайте свій аналіз, комбінаторику, алгебру, можливо, якусь теорію реп., Верхню частину водоростей тощо. Це набагато простіше читати в різних областях теорії CS :)


2
відмінна порада. Я розповідаю про це всім малогранникам, які приходять поговорити зі мною.
Суреш Венкат

7

Ви зробили чудовий перший крок! Я другого розмови про розмову з професором на вашій кафедрі. Якщо вас цікавить теорія, знайдіть того, хто викладає курси теорії, і поговоріть з ними. У них можуть виникнути проблеми, які не потребують занадто багато фону, щоб розпочати роботу. В моєму особистому досвіді існує більше проблем в теорії графів і комбінаторики, які є більш доступними, ніж теорія, але все ж будують ті самі дослідницькі навички. Не бійтеся свого математичного відділу!

Це також може допомогти почати приєднуватися до спільноти, особливо, задаючи тут відповіді на питання. Це допоможе, щоб ваше ім’я користувача було ваше власне ім’я, щоб ми знали, хто ви.


6

Я майже аспірант. Тож відповіді на ваше запитання також цікаві для мене, але, можливо, мій маленький особистий досвід може допомогти.

Ось мій список (у випадковому порядку) пропозицій, що можна зробити:

  • Перш за все прочитайте стільки паперів / книг / конспектів лекцій, скільки зможете знайти. Але також важливо застосувати свої знання до вправ і пізніше, щоб відкрити проблеми! Хтось із мого вихователя завжди каже: Не тільки ваші м'язи потребують неперервного тренування :)
  • Читайте / задайте / відповідайте на питання на цьому веб-сайті (або іншому пов'язаному з цим веб-сайті) - це хороший спосіб навчитися працювати з науково-дослідними темами в TCS або математиці.
  • Я намагаюся читати багато блогів TCS від відомого дослідника. Теми охоплюють як поточні, так і історичні результати.

Чи хотіли б ви мати посилання на ці блоги?
SH7890

2

Я думаю, що найважливіше - вивчити якомога ширше, щоб дізнатися, які аспекти ТКС нас дійсно хвилюють. У ході цього дослідження ви можете виявити, що проблеми, які вас найбільше заінтригують, - це перетин TCS з іншими полями (egeconomics) або додатками TCS (наприклад, для комп'ютерних мереж) або теми TCS, які також є частиною інших областей у CS наприклад, обчислювальна чи статистична теорія навчання. Чорт забирай, цілком можливо, що ти можеш змінити свою основну математику чи фізику чи щось подібне, якщо твої інтереси сприйдуть тебе в цьому напрямку.

Моя думка полягає в тому, що як першокурсник ти справді маєш можливість широко досліджувати з меншим тиском, ніж ти як студент чи професор. І не турбуватися, якщо ви не опинитесь у "звичайній підозрілій" темі TCS.

Звичайно, було б ідеально, якщо ви пройдетеся "глибоко" в якійсь області, вивчите солідну техніку і опублікуєте чудові результати.

І якщо ви нарешті станете експертом у гарячій новій галузі, перш ніж вона стане мейнстрімом, це, ймовірно, буде чудово для вашої кар’єри.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.