EMBER_CLI_FASTBOOT_BODY

Алгоритмы: теория и практика. Структуры данных

Play
To watch this video please visit https://stepik.org/lesson//step/

About the course

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

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

Данный курс является продолжением курса «Алгоритмы: теория и практика. Методы». Если вы не проходили этот курс, мы настоятельно рекомендуем вам пройти хотя бы его первую неделю.

Instructors

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

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

    Домашняя страница: http://logic.pdmi.ras.ru/~kulikov/

Reviews

Rated:  5
офигенный курс, но тесты порой такие серьезные, что последние 2 задачи до конца не решил..
Rated:  5
Очень хороший курс. Всё ясно, чётко. И задачи интересные.
Oleg Gromov June 27, 2018 link
Rated:  5
Классный курс, самое то, чтобы поразмять мозги. Единственный момент, в который я иногда упирался - не совсем сбалансированные таймлимиты: один и тот же алгоритм, написанный на питоне по времени не проходил, а на С++ принимался.
Play
To watch this video please visit https://stepik.org/lesson//step/
4.9 All reviews

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

Workload:
5–7 часов в неделю
Expected time to complete:
27 hours
Language:
Русский
Certificate:
Computer Science центр
Certificate details
Certificate condition: 9 points
With distinction: 12 points

About the course

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

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

Данный курс является продолжением курса «Алгоритмы: теория и практика. Методы». Если вы не проходили этот курс, мы настоятельно рекомендуем вам пройти хотя бы его первую неделю.

Requirements

Знание одного из распространённых языков программирования (C++, Java, Python, Octave, Haskell) на базовом уровне: циклы, массивы, списки, очереди. Базовые знания математики: доказательство от противного, доказательство по индукции, логарифм, экспонента.

Target audience

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

This course is entirely free. All content is available now.