Алгоритмы и структуры данных
Развивайте алгоритмическое мышление, увеличивайте производительность программ
26 февраля 2025
5 месяцев
Онлайн
Пн/Ср 20:00 Мск
Для кого этот курс?
- Для junior-программистов: сможете усовершенствовать фундаментальные навыки программирования и претендовать на позиции уровня middle в крупных компаниях
- Для бэкенд- и фронтенд-разработчиков на любых языках программирования: прокачаете алгоритмическое мышление, узнаете, как увеличивать производительность программ, сможете претендовать на позиции уровня senior
Необходимые знания
- Начальный или средний уровень программирования на любом языке
- Элементарная математика на уровне средней школы
- Минимальное знание алгоритмов и структур данных
Что вам даст этот курс?
В программу курса «Алгоритмы и структуры данных» входят самые известные прикладные алгоритмы (например, жадные алгоритмы и бинарный поиск): их должны знать все претенденты на позиции middle и senior в крупных IT-компаниях. Также мы разберём способы решения задач по программированию олимпиадного уровня.
Вы изучите:
- простые алгоритмы и базовые структуры данных
- алгоритмы сортировки
- деревья поиска
- хеш-таблицы
- теорию графов
- алгоритмы на строках
- динамическое программирование
- олимпиадное программирование
- вероятностные алгоритмы
После обучения
- сможете повысить производительность программ и улучшить качество кода
- приобретёте опыт реализации классических алгоритмов
- поймёте, как создавать собственные алгоритмы для решения бизнес-задач
Учитесь с интересом
Мы используем новейшие методики педагогического дизайна, чтобы студенты быстро и с интересом усваивали знания. Вы сохраните энтузиазм до конца курса
Процесс обучения
У нас нет предзаписанных уроков.
Занятия в OTUS – это онлайн-вебинары. Преподаватели-практики помогут погрузиться в теорию, обучат на реальных примерах, расскажут о необходимых в работе инструментах. Вы всегда сможете задать вопрос и получить обратную связь.
И самое главное – сможете практиковаться!
Обучайтесь на любом ЯП
Преподаватели показывают работу алгоритмов с помощью C#, Java и Python
Создайте систему тестирования
Разработайте приложение для автопроверки и проверяйте задания
Изучайте тему со всех сторон
Узнайте на конкретных примерах, как реализуются и работают алгоритмы
Партнеры
- Разместите резюме в базе OTUS: так наши партнёры смогут пригласить вас на интервью
- Участвуйте в карьерных мероприятиях: там мы разбираемся, как составить резюме
Программист со знанием алгоритмов
Работодатели курса
Формат обучения
Интерактивные вебинары
2 занятия по 2 ак.ч. в неделю. Доступ к записям и учебным материалам – навсегда
Практика
Итоговая проектная работа усилит знания, а её успешная защита – откроет новые карьерные возможности
Активное комьюнити
Общайтесь с преподавателями на вебинарах, в закрытом телеграм-чате, при проверке домашних заданий
Программа
Простые алгоритмы и базовые структуры данных
В первом модуле мы научимся решать комбинаторные задачи полным перебором с использованием вложенных циклов и рекурсии, сравним эффективности различных алгебраических алгоритмов, поработаем с битовой арифметикой на примере шахматной доски, а также напишем реализацию базовых структур данных, которые вы будете использовать при составлении программ в рамках этого курса.
Тема 1: Циклы и рекурсия / ДЗ
Тема 2: Как выполнять домашние задания / ДЗ
Тема 3: Алгебраические алгоритмы / ДЗ
Тема 4: Базовые структуры данных / ДЗ
Тема 5: Битовая арифметика / ДЗ
Алгоритмы сортировки
В этом модуле мы рассмотрим самые разные алгоритмы сортировки данных, начиная самыми медленными и заканчивая эффективными алгоритмами, которые работают за линейное время, также мы напишем алгоритм внешней сортировки, когда все данные не могут быть загружены в память программы. На последнем занятии мы рассмотрим алгоритм нахождения порядковых статистик за линейное время.
Тема 1: Простые сортировки / ДЗ
Тема 2: Пирамидальная сортировка / ДЗ
Тема 3: Быстрая и внешняя сортировка / ДЗ
Тема 4: Линейная сортировка / ДЗ
Деревья поиска
В этом модуле мы окажемся в заповеднике деревьев поиска, познакомимся с их разновидностями, особенностями, правилами добавления и удаления элементов, методами балансировки на больших и малых поворотах. Вы узнаете про АВЛ и красно-чёрные деревья, расширяющиеся и рандомизированные деревья, о сильноветвящихся В-деревьях и про дерево отрезков, которое помогает быстро и просто вычислять ассоциативную функцию на любом отрезке массива.
Тема 1: Двоичные деревья поиска / ДЗ
Тема 2: Сбалансированные двоичные деревья поиска / ДЗ
Тема 3: N-ричные B и В+ деревья поиска
Тема 4: Красно-чёрные деревья
Хеш-таблицы
В этом модуле мы познакомимся с хэшированием, научимся создавать хэш-функции, вычислять хэш-значения для разных ключей-объектов, добавлять и удалять элементы в хэш-таблицу, рассмотрим различные способы разрешения коллизий. Мы также узнаем, что такое универсальное хэширование и как сэкономить время и место, используя идеальное хэширование для статического набора ключей.
Тема 1: Хэш-функции и хэш-таблицы / ДЗ
Тема 2: Разрешение коллизий
Тема 3: Универсальное и идеальное хэширование
Тема 4: Префиксное дерево / ДЗ
Тема 5: Зачётный англо-русский словарь
Теория графов
В этом модуле мы повторим основные понятия и принципы теории графов, разберём алгоритмы поиска вширь и вглубь, топологической сортировки вершин и поиск минимального скелета, изучим несколько алгоритмов поиска кратчайшего пути и решения задачи коммивояжера. На отдельном занятии мы рассмотрим алгоритмы работы с виртуальной памятью.
Тема 1: Определения и представления / ДЗ
Тема 2: Поиск и сортировка / ДЗ
Тема 3: Минимальный скелет / ДЗ
Тема 4: Кратчайший путь / ДЗ
Тема 5: Задача коммивояжёра
Тема 6: Управление памятью
Алгоритмы на строках
В этом модуле мы рассмотрим разные алгоритмы поиска шаблона в тексте, от самых примитивных до более сложных с построением бора для конечного недетерминированного автомата с возможностью поиска нескольких шаблонов за один подход. В конце модуля мы рассмотрим три алгоритма сжатия данных, а также введение в теорию криптоанализа на конкретных примерах де/шифрования, обмена ключами, подбора паролей.
Тема 1: Алгоритм Бойера-Мура / ДЗ
Тема 2: Алгоритм Ахо-Корасика
Тема 3: Алгоритм Кнута-Морриса-Пратта / ДЗ
Тема 4: Алгоритмы сжатия / ДЗ
Тема 5: Шифрование данных
Динамическое программирование
В этом модуле мы рассмотрим различные способы кэширования в некоторых языках программирования, познакомимся с методом динамического программирования и решим несколько задач.
Тема 1: Алгоритмы кэширования
Тема 2: Динамическое программирование / ДЗ
Олимпиадное программирование
В этом модуле мы решим несколько задач различной сложности на сайте leetcode.com. Задачи решаем разными способами, на нескольких языках программирования.
Тема 1: Сложная задача
Тема 2: Dancing Links
Вероятностные алгоритмы
Рассматриваем и решаем задачи из области больших данных вероятностными методами с использованием различных структур данных.
Тема 1: Фильтр Блума
Тема 2: Алгоритмы MinHash, SimHash
Тема 3: Алгоритмы HyperLogLog, Count-Min Sketch / ДЗ
Проектная работа
Заключительный месяц курса посвящен проектной работе. Свой проект — это то, что интересно писать слушателю. То, что можно создать на основе знаний, полученных на курсе. При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей.
Тема 1: Выбор темы и организация проектной работы
Тема 2: Консультация по проектам и домашним заданиям
Тема 3: Защита проектных работ
Тема 4: Подведение итогов курса
Также вы можете получить полную программу, чтобы убедиться, что обучение вам подходит
Проектная работа
В конце курса вы напишете своё приложение. Выберите одну из предложенных преподавателем тем, воплотите собственную идею или возьмите настоящий проект, которым занимаетесь на работе
Примеры тем:
- Распознавание рукописных цифр
- Генерация прохождения лабиринтов
- Решение заданий судоку
Выпускной проект предстоит защитить перед руководителем и преподавателями курса.
Преподаватели
Эксперты-практики делятся опытом, разбирают кейсы студентов и дают развернутый фидбэк на домашние задания
Прошедшие
мероприятия
Возможность пройти вступительное тестирование повторно появится только через 3 дня
Результаты тестирования будут отправлены вам на email, указанный при регистрации.
Тест рассчитан на 30 минут, после начала тестирования отложить тестирование не получится!
Корпоративное обучение для ваших сотрудников
- Курсы OTUS верифицированы крупными игроками ИТ-рынка и предлагают инструменты и практики, актуальные на данный момент
- Студенты работают в группах, могут получить консультации не только преподавателей, но и профессионального сообщества
- OTUS проверяет знания студентов перед стартом обучения и после его завершения
- Простой и удобный личный кабинет компании, в котором можно видеть статистику по обучению сотрудников
- Сертификат нашего выпускника за 5 лет стал гарантом качества знаний в обществе
- OTUS создал в IT более 120 курсов по 7 направлениям, линейка которых расширяется по 40-50 курсов в год
Отзывы
Сертификат о прохождении курса
OTUS осуществляет лицензированную образовательную деятельность. В конце обучения вы получите сертификат OTUS о прохождении курса, а при выполнении проектной работы – удостоверение о повышении квалификации
После обучение вы:
- приобретёте навыки работы с алгоритмами и структурами данных
- сможете работать со сложными проектами в крупных компаниях
- научитесь писать рациональный и хорошо структурированный код
- получите доступ к полезным материалам
- пполучите удостоверение о повышении квалификации и сертификат OTUS
Алгоритмы и структуры данных
Полная стоимость
Стоимость указана для оплаты физическими лицами
вычета до 13% стоимости обучения. Пройдите тестирование и менеджер вас проконсультирует
+7 499 938-92-02 бесплатно