Курс на Stepik
Обложка курса «Алгоритмы: теория и практика. Методы. МНМЦ СПбГУ» на Stepik
Бесплатно

Алгоритмы: теория и практика. Методы. МНМЦ СПбГУ 5.000

Открыть на
STEPIK.ORG

Курс создан в рамках программы переподготовки МНМЦ СПбГУ «Разработка программного обеспечения и анализ данных». В курсе будут разобраны основные алгоритмические методы: жадные алгоритмы, «разделяй и властвуй», динамическое программирование. Помимо теоретических основ, будут рассмотрены тонкости реализации рассмотренных алгоритмов на языках C++, Java и Python. Слушателям будет предложено реализовать большинство разобранных в курсе алгоритмов. Решения будут проверяться тестирующей системой на тщательно подобранных тестах.

Показатель Текущие показатели Рост
Значение 🏆 Рейтинг 3 дн 7 дн 30 дн
Количество учеников на курсе «Алгоритмы: теория и практика. Методы. МНМЦ СПбГУ»Учеников на курсе 3 758
Сертификаты, выданные на курсе «Алгоритмы: теория и практика. Методы. МНМЦ СПбГУ»Сертификатов выдано 0
Отзывы о курсе «Алгоритмы: теория и практика. Методы. МНМЦ СПбГУ»Отзывов получено 3
Рейтинг курса «Алгоритмы: теория и практика. Методы. МНМЦ СПбГУ»Рейтинг курса 5.000
Уроки в курсе «Алгоритмы: теория и практика. Методы. МНМЦ СПбГУ»Количество уроков 47
Тесты в курсе «Алгоритмы: теория и практика. Методы. МНМЦ СПбГУ»Количество квизов 9
Задачи с кодом в курсе «Алгоритмы: теория и практика. Методы. МНМЦ СПбГУ»Количество задач с кодом 23
Время прохождения курса «Алгоритмы: теория и практика. Методы. МНМЦ СПбГУ»Время прохождения курса
Обновления курса «Алгоритмы: теория и практика. Методы. МНМЦ СПбГУ»Обновления курса
Дата публикации курса «Алгоритмы: теория и практика. Методы. МНМЦ СПбГУ»Дата публикации курса
Последнее обновление курса «Алгоритмы: теория и практика. Методы. МНМЦ СПбГУ»Последнее обновление
https://player.vimeo.com/video/137224404

Чему вы научитесь

Алгоритмы — важнейший раздел computer science и программирования. Благодаря развитию информационных технологий и алгоритмам мы сегодня имеем возможность быстро находить информацию в интернете (в частности, искать по картинкам), находить кратчайшие пути, анализировать геномы и так далее. Алгоритмы используются практически во всех областях computer science — в анализе изображений, в интернет-поиске, в машинном обучении, в биоинформатике, в криптографии, в кодировании, в сетях, в распределённых системах, в компиляторах.

В курсе будут подробно разобраны базовые алгоритмические методы: жадные алгоритмы, метод «разделяй и властвуй», динамическое программирование. Для всех алгоритмов будут математически строго доказаны корректность и оценки на время работы. Мы постарались изложить материал так, чтобы были понятны и сами алгоритмы, и то, как можно было бы догадаться до их основных идей. Помимо теоретических основ, будут рассказаны тонкости реализации алгоритмов на языках программирования C++, Java и Python. В частности, будет рассказано, какие есть общие практики написания кода, позволяющие минимизировать вероятность ошибки, как писать и тестировать код, где стоит использовать стандартные методы, а не изобретать колесо.

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

О курсе

Курс создан в рамках программы переподготовки МНМЦ СПбГУ «Разработка программного обеспечения и анализ данных». В курсе будут разобраны основные алгоритмические методы: жадные алгоритмы, «разделяй и властвуй», динамическое программирование. Помимо теоретических основ, будут рассмотрены тонкости реализации рассмотренных алгоритмов на языках C++, Java и Python. Слушателям будет предложено реализовать большинство разобранных в курсе алгоритмов. Решения будут проверяться тестирующей системой на тщательно подобранных тестах.

Для кого этот курс

Научно-педагогические работники и аспиранты российских образовательных организаций.

Начальные требования

Знание одного из распространённых языков программирования (C++, Java, Python, Octave, Haskell) на базовом уровне: циклы, массивы, списки, очереди. Базовые знания математики: доказательство от противного, доказательство по индукции, логарифм, экспонента. Для освежения математических знаний рекомендуется прочесть брошюры Александра Шеня: «Математическая индукция», «Логарифм и экспонента» (тексты которых легко находятся в интернете).

Преподаватели курса

Формат курса

Видео-лекции, задачи на программирование, задачи на доказательство.

Нагрузка

5-7 часов в неделю

Расскажите о курсе друзьям