Как начать работать в теоретической CS?


35

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

Что я должен делать сейчас , как студент, чтобы участвовать в этой области? Что я могу сделать, чтобы подготовиться к исследованиям в этой области?


7
Это не настолько важно, чтобы опубликовать ответ, но подумайте над тем, чтобы взять копию «Введение в теорию вычислений» Майкла Сипсера. Даже если у вас нет времени для самостоятельного изучения этой книги, это отличный справочник, если вам нужно найти что-то, что не совсем понятно в Википедии.
Филипп Уайт

2
Я не знаю, как работает эта процедура, но я бы хотел видеть это в вики сообщества.
Chazisop

3
пометьте вопрос для модератора и мы разберемся с ним.
Суреш Венкат

2
@ Хороший человек: ОП не может сделать вопрос CW, могут только модераторы.
Каве

2
@ Хороший человек: как упоминает Каве, оригинальные постеры больше не могут делать посты CW (и никто другой не имеет прав на редактирование). Только моды могут сделать это. не было обид.
Суреш Венкат

Ответы:


29

Позвольте мне дать ответ с другой стороны. У меня было несколько студентов-исследователей, работающих со мной. Опыт был неоднозначным: с некоторыми я публиковал статьи и продолжал работать, а с другими мы никогда не начинали.

Здорово, что ты знаешь, что хочешь делать. Как студент, вот что вы должны сосредоточиться на:

  • Наращивание математических «мышц», которые помогут вам, когда вы начнете серьезно заниматься проблемами
  • Изучение различных аспектов теоретической CS, чтобы получить представление о области и выяснить, какие проблемы / области вы находите интересными
  • (в зависимости от области) решая некоторые головоломки, возможно, решая некоторые упражнения, и продвигаясь к исследовательскому вопросу.

Найдите профессора, который будет направлять вас, и ОСТАВЬТЕ ВРЕМЯ! Самое сложное, с чем вы столкнетесь, - это создать свободное время для размышлений о проблемах в процессе занятий, заданий и экзаменов. Но вам нужно зарезервировать блоки времени для самостоятельной учебы и исследований, иначе будет очень трудно добиться какого-либо прогресса. То, как вы это делаете, зависит от вас: возможно, вы сможете найти профессора, который будет встречаться с вами один раз в неделю и ставить для вас промежуточные цели, или, может быть, вы можете установить долгосрочную цель (прорабатывая X упражнений из текста) и постоянно работать над что.


4
Хороший ответ! «Вы должны зарезервировать блоки времени для самостоятельной учебы»: это помнит мой собственный опыт. Раньше я был ленивым студентом по математике, а затем у мастера я обнаружил хорошую проблему с TCS (сосредоточенную вокруг функции занятого бобра). Я начал работать над этим в свободное время под руководством одного из моих проф. Я никогда не находил что-то интересное по этой проблеме, но 12 лет спустя я написал с ним более 15 статей (но он никогда не был моим доктором / главным советником, только «внешним» наставником).
Сильвен Пейроннет

1
Ответ Суреша великолепен! Для ОП: Построение математических «мышц» означает привыкание к языку и инструментам математики (комбинаторика, теория графов, анализ и т. Д.), А также привыкание доказывать теоремы! (И это действительно захватывающая часть! :-)
Jay

19

В настоящее время я аспирант, а не профессор, поэтому мое предложение исходит из моего (ограниченного) личного опыта аспиранта.

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

В области компьютерных наук есть много интересных областей, и TCS - только одна из них. Поэтому всегда лучше держать свои настройки открытыми и общаться с разными профессионалами. Очень важно специализироваться, когда вы занимаетесь докторской диссертацией, но как студент, я думаю, совет Марка Бравермана чрезвычайно актуален:

«Постарайся выучить как можно больше. [...] В дальнейшем это будет труднее!»

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

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

  • Комбинаторика
  • вероятность и статистика
  • Продвинутая линейная алгебра
  • Абстрактная алгебра
  • Анализ

Это правда, что вы никогда не сможете выучить достаточное количество математики и должны научиться быстро подбирать новые математики / методы / приемы, когда это необходимо. Но твердый фон определенно даст вам более легкий старт в TCS.

Желаю вам удачи и успехов!


6
+1: хороший ответ. Я добавлю, что посещение / аудит не теоретических курсов CS или не-CS - это тоже хорошо, это открывает ваш разум для возможных проблем, над которыми вы можете работать, вы никогда не знаете, где появляется хороший теоретический вопрос, так что держите глаза открытыми , :)
Каве

Вы бы порекомендовали «Продвинутую линейную алгебру» Стива Романа для самостоятельной работы выпускников?
Джейкоб

2
@Jacob: книга Романа, безусловно, рекомендуется многими людьми. Он действительно продвинутый и охватывает приятные темы, такие как модули, выпуклость, аффинная геометрия, тензорные произведения и т. Д. Но суть в том, что вы всегда должны выбирать то, что подходит для вашего вкуса и фона! Поэтому сканирование книг в библиотеке перед принятием решения - всегда хорошая идея (по крайней мере, для меня).
Дай Ле

11

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


10

Многие другие люди, похоже, дают разные полезные советы. Чтобы добавить к мудрости, позвольте мне сказать следующее: не существует такой вещи, как знание слишком большого количества математики (если только вы не решите, что вместо этого хотите заниматься чистой математикой). Серьезно, знайте свой анализ, комбинаторику, алгебру, возможно, некоторую теорию повторений, alg top и так далее. Это значительно облегчает чтение по областям теории CS :)


2
отличный совет. Я говорю это всем студентам, которые приходят поговорить со мной, а также.
Суреш Венкат

7

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

Это также может помочь начать участвовать в сообществе, особенно задавая и отвечая на вопросы здесь. Было бы полезно, чтобы ваше имя пользователя было вашим собственным именем, чтобы мы знали, кто вы.


6

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

Вот мой список (в случайном порядке) предложений, которые вы можете сделать:

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

Есть ли у вас ссылки на эти блоги?
SH7890

2

Я думаю, что самое важное - это изучить как можно шире, чтобы узнать, какие аспекты TCS действительно волнуют вас. В ходе этого исследования вы можете обнаружить, что проблемы, которые вас больше всего заинтриговали, - это пересечение TCS с другими областями (экономическая экономика) или приложения TCS (например, к компьютерным сетям) или темы TCS, которые также являются частью других областей в CS как вычислительная или статистическая теория обучения. Черт, даже возможно, что вы могли бы изменить свою специализацию на математику или физику или что-то связанное, если ваши интересы ведут вас в этом направлении.

Моя точка зрения заключается в том, что, будучи новичком, у вас действительно есть возможность широко исследовать с меньшим давлением, чем вы, будучи аспирантом или профессором. И не пугаться, если вы не попадаете в «обычные подозрительные» темы TCS.

Конечно, было бы идеально, если бы вы углубились в какую-то область, выучили надежные методы и опубликовали отличные результаты.

И если вы в конечном итоге станете экспертом в горячей новой области, прежде чем она станет мейнстримом, это, вероятно, будет отличным для вашей карьеры.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.