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

Александр Куликов Кандидат физико-математических наук. Научный сотрудник лаборатории математической логики ПОМИ РАН, координатор и преподаватель Computer Science центра и Computer Science клуба при ПОМИ РАН, преподаватель Академического университета. Научные интересы: алгоритмы для NP-трудных задач, схемная сложность. Домашняя страница: http://logic.pdmi.ras.ru/~kulikov/

Computer Science Center

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

Syllabus

1 Базовые структуры данных
1.1 Базовые структуры данных
1.2 Задачи
2 Очереди с приоритетом и системы непересекающихся множеств
2.1 Очереди с приоритетом
2.2 Системы непересекающихся множеств
2.3 Задачи
3 Хеш-таблицы
3.1 Хеш-таблицы
3.2 Задачи
4 Деревья поиска
4.1 АВЛ-деревья
4.2 Дополнительные операции
4.3 Сплей-деревья
4.4 Задачи

key words, tags

алгоритмы, структуры данных, программирование, хеш-таблицы


Course properties

Competition track
Science and engineering
Form of education
Informal
Formal education level
Professional development
Recommended age for informal learning
19-25, 25-45, 45-65, 65+
Learning language
Russian
Discipline
Information and Communication Technologies (ICTs)
Course authors
Александр Куликов Кандидат физико-математических наук. Научный сотрудник лаборатории математической логики ПОМИ РАН, координатор и преподаватель Computer Science центра и Computer Science клуба при ПОМИ РАН, преподаватель Академического университета. Научные интересы: алгоритмы для NP-трудных задач, схемная сложность. Домашняя страница: http://logic.pdmi.ras.ru/~kulikov/
Organization
Computer Science Center
Knowledge level entrance requirements
Знание одного из распространённых языков программирования (C++, Java, Python, Octave, Haskell) на базовом уровне: циклы, массивы, списки, очереди. Базовые знания математики: доказательство от противного, доказательство по индукции, логарифм, экспонента.
Entrance test
Groups formation by readiness level
Teachers presence
Tutors presence
Facilitators presence
Training materials forms
texts, multimedia, video lecture, presentation, synchronous video
Interactivity in training materials
Collaborative learning presence
Discussions, forums presence
Webinars, video conferences presence
meetup presence
LMS integration
Learning Analytics
Certification presence
Certification types
Электронный сертификат
Certificate name
Сертификат Stepik
Certificate levels
Обычный сертификат Сертификат с отличием
Course time limits
Duration
4 (weeks)
Learning types (sync/async)
asynchronous
Course modules number
4
Personal learning path possibility, course individualization
Operating System
Windows (начиная с версии 7), Linux, Ubuntu, Debian, MacOS, iOS, Android (начиная с версии 4.0)
Supported browsers
Минимальные версии поддерживаемых браузеров: IE / Edge 10 Firefox 38 Chrome 31 Safari 8 Opera 30 iOS Safari 9 Android Browser 4.4 Chrome for Android 44
Learner’s devices
Компьютер, ноутбук, планшет, телефон
Special needs support

Comments


lutra-lo@ya.ru | 21-09-2017
Замечательный курс для всех продолжающих учиться программировать. Я занимаюсь биоинформатикой и использую алгоритмы для анализа данных. Вчера оставила код на середине, не могла сообразить, как отсортировать результаты BLAST. Сегодня с утра поняла, что это аналог одной из пройденных на курсе задач, и все получилось))