Алгоритмы и структуры данных, часть 1

Санкт-Петербург, осень 2021

Описание

О курсе

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

Мы будем решать теоретические задачи на доказательство и изобретение своих простых алгоритмов, мы будем программировать изученные алгоритмы и структуры данных, применять их в заданных вам ситуациях. Поговорим о том, какие алгоритмы используются в индустрии, а какие имеют большое теоретическое значение для развития науки и области.

Начнем мы курс с понятия алгоритма и как оценивать скорость алгоритмов, с методов сортировок и поиска данных, познакомимся с методами динамического программирования и многое другое.

Продолжим структурами данных, алгоритмами на графах и другими не менее интересными темами.

Домашние задания

Будут состоять из двух типов задач:

  1. Задачи на программирование будут приниматься в автоматическом режиме на системе для контестов.
  2. Задачи на доказательство будет приниматься через сайт центра.

Критерии оценки

Оценка будет выставляться по результатам решения домашних заданий. Теоретические домашние задания составляют 50% от общей оценки, задачи на программирование — 50%.

За 90% решённых задач выставляется оценка отлично,

за 75% — хорошо,

за 60% — зачёт.

Преподаватели