4

Я собираюсь начать свой последний год в университете в сентябре этого года, поэтому мне нужно сделать проект для моей диссертации. Я просмотрел список с проектами, предложенными uni в прошлом году, и я не нахожу их никого интересным. Это, в сочетании с моей «любовью» к «теоретической» информатике в целом, заставило меня подумать, что было бы неплохо провести последний месяц моих летних каникул, исследуя некоторые поля cs более подробно. До сих пор в университете, в отношении более «теоретической» стороны информатики, мы в основном рассматривали алгоритмы поиска и сортировки, сопоставление строк, теорию игр, шаблоны проектирования для разработки программного обеспечения и алгоритмов решения лабиринта. В следующем году программа включает в себя биоинформатику, компиляторы и машинное обучение. У меня есть идея обо всех этих, но ничего невероятно детализированного (т. Е. Мы вообще не разрабатывали алгоритмы). Итак, я думал, вместо того, чтобы либо выбрать проект из списка, либо выбрать проект, который мог бы сделать любитель, почему бы не изучить некоторые области информатики и мозговой штурм в этом процессе?Ресурсы о различных областях компьютерных наук

Я был бы очень признателен, если бы вы могли указать мне на доступные ресурсы (книги, электронные книги, pdf-файлы, онлайн-сообщества и т. Д.) О полях ниже или даже предложить новые поля для изучения.

Обратите внимание, что я только хочу понять, что они собой представляют, а не путаться с техническими проблемами.

Поля:

  • Web Семантика

  • Алгоритмы (анализ, проектирование и т.д.)

  • Machine Learning

  • Эволюционная Исчисление

  • Теория игр

  • Другое (???)

+0

Хорошие варианты тем. Теория игр и эволюционные системы - мои личные фавориты списка. –

+0

Добавить распределенные системы в список тоже, что я делаю для своего проекта в прошлом году, и, кажется, почти неограниченные возможности для исследований – Martin

ответ

1

http://ocw.mit.edu невероятно хороший ресурс для всех вещей ученого, особенно информатики связаны между собой. У них есть тонны замечательных лекций, ссылок на чтения, предложения книг, видеоролики и проблемы на большинстве компьютерных и научных тем. Это в основном программы и курсовые работы MIT, размещенные на веб-сайте, доступном для широкой публики. Кроме того, внимание MIT в его классах CS довольно теоретично, так что это плюс.

В качестве дополнительного бонуса «открытая курсовая работа» исходит из философии открытого исходного кода.

Я также хотел бы добавить предложение к существующему списку тем: криптография.

1

Это не совсем ответ на ваш вопрос, но вот мои два цента:

Идеальная тема будет один у вас есть:.

  • Интерес к
  • Мнение о.
  • Уже знаете немного, но еще не успели исследовать более подробно.

Например, предположим, что вы считаете, что:

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

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

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

Опять же, предположим, что Parsec просто не режет. Возможно, вы ничего не можете найти, чтобы упростить работу с пользовательскими текстовыми форматами (возможно, все слишком сложно для чего-то, что должно быть так просто). В этом случае вам может понадобиться разработать структуру, упрощающую вашу задачу. Не начинайте с этого сразу, но делайте некоторые исследования. Посмотрите на другие системы, посмотрите на подход, который они приняли, и придумайте некоторые веские причины, по которым они не оправдались. Изучите новый язык программирования или API, который может приблизить вас к вашей цели. Возможно, даже прочитал несколько статей, относящихся к вашей теме. Тогда ваш проект будет основываться на большой части существующей работы, но поможет исправить проблемы, которые вы видели.

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

+0

Я полностью согласен с тем, что вы делаете, и именно по этой причине я хочу изучить конкретные областях информатики более подробно, прежде чем я действительно начну работать над своим проектом. – 2010-07-27 12:19:46

0

Ключевой навык в области компьютерных наук является написание кода. Но чтобы стать отличным кодером, сначала нужно научиться читать код. (Хемингуэй сначала научился читать, прежде чем освоил его сочинение). Сжатие кода быстро является одним из решающих навыков в CS. Я написал небольшую веб-страницу, посвященную пониманию кода, решая головоломки кода на уровне сложности пользователя: Finxter. В качестве побочного эффекта вы узнаете о наиболее важных алгоритмах и алгоритмических методах: QuickSort, MergeSort, Scheduling, вычислительной сложности и т. Д.

 Смежные вопросы

  • Нет связанных вопросов^_^