Алгоритмы и структуры данных
31 июля
5 месяцев
Онлайн
Пн/Ср 20:00 Мск
Для кого этот курс?
- Для junior-программистов: сможете усовершенствовать фундаментальные навыки программирования и претендовать на позиции уровня middle в крупных компаниях
- Для бэкенд- и фронтенд-разработчиков на любых языках программирования: прокачаете алгоритмическое мышление, узнаете, как увеличивать производительность программ, сможете претендовать на позиции уровня senior
Необходимые знания
- Начальный или средний уровень программирования на любом языке
- Элементарная математика на уровне средней школы
- Минимальное знание алгоритмов и структур данных
Что вам даст этот курс?
В программу входят самые известные прикладные алгоритмы: их должны знать все претенденты на middle и senior-позиции в крупных IT-компаниях. Также мы разберём способы решения задач по программированию олимпиадного уровня.
Вы изучите:
- простые алгоритмы и базовые структуры данных
- алгоритмы сортировки
- деревья поиска
- хеш-таблицы
- теорию графов
- алгоритмы на строках
- динамическое программирование
- олимпиадное программирование
Интерактивные вебинары
Каждое занятие — это заряд алгоритмической энергии, который поможет вам в интенсивном обучении и выполнении самостоятельной работы, а разнообразие тем позволит сохранить запал до конца курсаПроцесс обучения
У нас нет предзаписанных уроков!
Занятия в OTUS – это онлайн-вебинары. Преподаватели-практики помогут погрузиться в теорию, обучат на реальных примерах, расскажут о необходимых в работе инструментах. Вы всегда сможете задать вопрос и получить обратную связь.
И самое главное – сможете практиковаться!
Обучайтесь на любом ЯП
Преподаватели демонстрируют, как работает каждый алгоритм, используя C#, Java или Python
Приложение для автопроверки
Вы напишете простую систему тестирования, и с её помощью будете проверять часть заданий
Изучайте тему со всех сторон
Каждый алгоритм вы изучите на конкретных примерах, исследуете способы реализации
Трудоустройство
Многие студенты еще во время прохождения первой части программы находят или меняют работу, а к концу обучения могут претендовать на повышение в должности.
- Разместите резюме в базе OTUS: так наши партнёры смогут пригласить вас на интервью
- Участвуйте в карьерных мероприятиях: там мы разбираемся, как составить резюме
- Проявите себя на занятиях и получите возможность пройти собеседование у партнёров OTUS
Программист со знанием алгоритмов
Работодатели курса
Формат обучения
Интерактивные вебинары
2 занятия по 2 ак.ч. в неделю. Доступ к записям и учебным материалам – навсегда
Практика
Итоговая проектная работа усилит знания, а её успешная защита – откроет новые карьерные возможности
Активное комьюнити
Общайтесь с преподавателями на вебинарах и в закрытом Telegram-чате, получайте развернутое ревью на ДЗ
Программа
Простые алгоритмы и базовые структуры данных
В первом модуле мы научимся решать комбинаторные задачи полным перебором с использованием вложенных циклов и рекурсии, сравним эффективности различных алгебраических алгоритмов, поработаем с битовой арифметикой на примере шахматной доски, а также напишем реализацию базовых структур данных, которые вы будете использовать при составлении программ в рамках этого курса.
Тема 1: Циклы и рекурсия / ДЗ
Тема 2: Как выполнять домашние задания / ДЗ
Тема 3: Алгебраические алгоритмы / ДЗ
Тема 4: Базовые структуры данных / ДЗ
Тема 5: Битовая арифметика / ДЗ
Алгоритмы сортировки
В этом модуле мы рассмотрим самые разные алгоритмы сортировки данных, начиная самыми медленными и заканчивая эффективными алгоритмами, которые работают за линейное время, также мы напишем алгоритм внешней сортировки, когда все данные не могут быть загружены в память программы. На последнем занятии мы рассмотрим алгоритм нахождения порядковых статистик за линейное время.
Тема 1: Простые сортировки / ДЗ
Тема 2: Пирамидальная сортировка / ДЗ
Тема 3: Быстрая и внешняя сортировка / ДЗ
Тема 4: Линейная сортировка / ДЗ
Деревья поиска
В этом модуле мы окажемся в заповеднике деревьев поиска, познакомимся с их разновидностями, особенностями, правилами добавления и удаления элементов, методами балансировки на больших и малых поворотах. Вы узнаете про АВЛ и красно-чёрные деревья, расширяющиеся и рандомизированные деревья, о сильноветвящихся В-деревьях и про дерево отрезков, которое помогает быстро и просто вычислять ассоциативную функцию на любом отрезке массива.
Тема 1: Двоичные деревья поиска АВЛ / ДЗ
Тема 2: Красно-чёрные деревья
Тема 3: Другие варианты деревьев поиска / ДЗ
Хеш-таблицы
В этом модуле мы познакомимся с хэшированием, научимся создавать хэш-функции, вычислять хэш-значения для разных ключей-объектов, добавлять и удалять элементы в хэш-таблицу, рассмотрим различные способы разрешения коллизий. Мы также узнаем, что такое универсальное хэширование и как сэкономить время и место, используя идеальное хэширование для статического набора ключей.
Тема 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 бесплатно