EMBER_CLI_FASTBOOT_BODY

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


Данный курс перезапускаться не будет. Вместо него мы подготовили улучшенную версию — курс «Алгоритмы: теория и практика. Методы».


Курс знакомит слушателей с базовыми алгоритмами (метод «разделяй и властвуй», поиск в массиве, сортировка массива, алгоритмы на графах) и структурами данных (расширяющийся массив,…
5-7 часов в неделю
Certificate Stepik

About this course

Данный курс — это модификация первой части базового курса «Алгоритмы и структуры данных», читающегося в Computer Science Center.

Раз вы уже здесь, нет смысла подробно объяснять, почему важно знать алгоритмы. И всё же в двух словах: без алгоритмов был бы невозможен технологический прогресс; алгоритмы используются практически во всех областях computer science (например, в криптографии, анализе текстов, изображений и видео, биоинформатике); каждый уважающий себя программист должен знать базовые алгоритмы и структуры данных, чтобы писать эффективные программы.

Мы попытались изложить материал максимально доступно — не слишком углубляясь в формальности, но и не жертвуя при этом строгостью. Большинство алгоритмов в курсе снабжено наглядными примерами и визуализациями. Каждый раз приводятся математические доказательства корректности рассматриваемых алгоритмов и оценок на их время работы.

Мы тщательно подобрали задачи для закрепления материала. Большинство алгоритмов, которые вы узнаете, вам нужно будет запрограммировать. Это лучший способ убедиться, что вы разобрались во всех деталях. Вас также ждут тесты (где нужно выбрать правильные ответы из предложенных) и теоретические задачи (в них нужно доказать математическое утверждение). Наконец, в курсе есть также задачи повышенной сложности — менее стандартные задачи, которые не являются обязательными для прохождения курса. Получить удовольствие от решения этих задач смогут и те, кто уже знаком с базовыми алгоритмами.

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

Мы благодарны компании JetBrains, при поддержке которой подготовлен данный курс, а также команде Стэпика и Сергею Аганезову за помощь в подготовке.

Who is this course for

Студенты младших курсов и школьники.

Часть задач курса состоит в реализации изученных алгоритмов. Для этого можно использовать один их следующих языков программирования: C++, Java, Python, Octave, Haskell.

Meet the Instructors

User picture
Александр Куликов
ПОМИ РАН, Computer Science Center

Доктор физико-математических наук. Старший научный сотрудник Математического института Стеклова в Санкт-Петербурге (ПОМИ РАН), координатор и преподаватель Computer Science центра и Computer Science клуба при ПОМИ РАН. Научные интересы: алгоритмы для NP-трудных задач,…

User picture
Сергей Поромов
Яндекс, НИУ ИТМО
Преподаватель НИУ ИТМО, разработчик в компании Яндекс.

Course content

Введение
  1. Обзор
  2. Числа Фибоначчи
  3. O-символика
  4.  
     
Метод «разделяй и властвуй»
Структуры данных
Сортировка
Декомпозиция графов
Пути в графах

Certificate

Computer Science Center

Learners' reviews

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

Share this course