
r_d
< школа наступившего будущего >
Оперативно найти и выгрузить необходимую информацию, сжать данные без потерь или работать с высоконагруженными системами разработчику помогают алгоритмы, то есть уже готовые последовательности операций. Как применять алгоритмы и находить концептуально правильные решения ― узнайте на курсе.
Алгоритмы
и структуры
данных
Находите наиболее эффективные решения для повышения производительности кода Кому подходит курс 5 основных видов алгоритмов для решения задач по программированию работа с разными структурами данных и оптимизация программного кода на практике тестовое техническое интервью OR индивидуальная консультация по рабочим задачам от лектора для 3-х лучших студентов курса
Как развернуть строку без использования дополнительной памяти ― узнайте на курсе.
После курса вы сможете:
- работать с разными структурами данных
- реализовывать классические алгоритмы и выбирать алгоритм исходя из задачи
- изобретать новые решения и писать собственные алгоритмы
- находить данные в отсортированном массиве и решать задачи балансировки дерева
- строить хэш-таблицы, жадные алгоритмы и алгоритмы на строках
- оценивать программный код и находить способы его оптимизации
- применять алгоритмы для динамического программирования
- устроиться на работу в компанию, которая фокусируется на problem solving interview
Кому будет полезен курс
Подать заявку
- Junior Web/Software Developers
Вы будете тратить ≈10 часов в неделю на самостоятельную практику и решать сложные задачи с использованием 5 основных видов алгоритмов. Научитесь одинаково эффективно работать с рекурсией и пузырьковой сортировкой и сможете выбирать наиболее эффективный алгоритм под свои задачи.
- В результате ― заложите фундамент алгоритмического мышления и сможете пройти problem solving interview на позицию Junior Web/Software Developer в большой международной корпорации.
- Web/Software Developers
За 9 недель вы решите большое количество задач разными методами и научитесь оптимизировать существующие алгоритмы под свои рабочие задачи. Вас ждет объемная и сложная самостоятельная практика, но в результате ― вы получите фундаментальные знания по программированию и закроете пробелы в знаниях.
- С навыками, приобретенными на курсе, вы сможете претендовать на должность Web/Software Developer в международной корпорации и будете изобретать эффективные решения тогда, когда другие специалисты тратят несколько часов, чтобы нагуглить готовый код.
Необходимые знания:
Python, Java, JavaScript, С++
базовые операции, работа с переменными и функциями
Математика
хорошо помните линейную алгебру и умеете применять математические формулы
Пока не обладаете нужными навыками? Обратите внимание на наш курс:
Лектор
Мария Скрягина Algorithm Development Engineer for Automated Driving в ZF TRW

- последние 5 лет разрабатывает алгоритмы по принятию решений для беспилотников в компании ZF TRW и работает в Германии
- разрабатывала системы видения и GPS-определения месторасположения населенных пунктов во время учебы в магистратуре во Французском институте науки и технологий транспорта (IFSTTAR)
- разрабатывала алгоритмы информирования водителей о ситуации на дороге для японской компании по производству автомобилей
- разрабатывала алгоритм автоматической смены полосы для китайской компании по производству автомобилей
- получила грант на стажировку в Hyundai Motor Company и работала в Южной Корее
- знает 5 человеческих языков (русский, английский, немецкий, французский, корейский) и 4 языка программирования (C, C#, C++, Python)



16 онлайн-занятий 24 часа теории ⋃ практики 9 сентября - 2 ноября
Записаться Программа курса
(16 занятий)
01 занятие
09.09
19:00
Введение в алгоритмы и структуры данных
Разберитесь в том, что такое алгоритмы и структуры данных. Узнайте, в каких сферах используют алгоритмы и какие задачи они решают. На реальных примерах из жизни и технических примерах из практики лектора научитесь определять сложность алгоритмов.
02 занятие
14.09
19:00
Массивы как структура данных
Научитесь обрабатывать массивы и выполнять простые операции над ними [доступ, поиск, вставка, удаление]. Разберите несколько разных задач по работе с массивами. Научитесь определять временную сложность и сложность по памяти массивов.
03 занятие
16.09
19:00
Рекурсия
Узнайте, когда и зачем применять рекурсию. Разберите типичные рекурсивные задачи и научитесь реализовывать алгоритмы с применением рекурсии. Рассчитайте n-й элемент для последовательности Фибоначчи с помощью рекурсии.
04 занятие
21.09
19:00
Связный список
Научитесь проводить разные операции над связными списками. Разберите и решите типичные задачи на связные списки. Осуществите операции над связными списками и удалите дубликаты из связного списка.
05 занятие
23.09
19:00
Стеки и очереди
Узнайте, чем стек отличается от очереди. Разберите типичные задачи по стекам и очередям. Научитесь преобразовывать стеки в очереди и наоборот. Определите временную сложность и сложность по памяти стеков и очередей.
06 занятие
28.09
19:00
Алгоритмы по поиску и сортировке
Разберитесь в видах алгоритмов по поиску и сортировке. Узнайте, что такое бинарный поиск и научитесь реализовывать задачи по применению бинарного алгоритма.
07 занятие
30.09
19:00
Алгоритмы по сортировке. Part 1
Ознакомьтесь с пузырьковой сортировкой, сортировкой вставками и сортировкой выбором. Примените эти алгоритмы на практике и решите по ним задачи. Научитесь сортировать массивы данных.
08 занятие
05.10
19:00
Алгоритмы по сортировке. Part 2
Реализуйте сортировку слиянием и быструю сортировку. Научитесь выбирать вид алгоритма под конкретную задачу и находить наиболее оптимальный способ решения.
09 занятие
07.10
19:00
Деревья
Узнайте, как структура данных «дерево» помогает хранить иерархическую информацию. Разберитесь в видах древовидных структур данных. Поймите, чем бинарное дерево отличается от дерева общего вида. Научитесь находить общего предка, определять диаметр дерева и связи между узлами.
10 занятие
12.10
19:00
Бинарные деревья поиска
Детально изучите структуру бинарных деревьев поиска. Научитесь реализовывать поиск в ширину (BFS) и поиск в глубину (DFS). Напишите алгоритм нахождения k-го элемента в массиве. Узнайте, какие подходы можно применить для решения типичных задач по бинарным деревьям поиска.
11 занятие
14.10
19:00
Графы
Узнайте, какие бывают графы. Научитесь реализовывать матрицу смежности и основные алгоритмы обхода. Научитесь находить минимальное остовное дерево в неориентированном нагруженном графе. Реализуйте задачи по изученным методам разработки алгоритмов, например, определите количество одноцикловых компонентов на графике.
12 занятие
19.10
19:00
Хеш-функции
Узнайте, для каких задач применяют хеш-функции и разберите реальные кейсы. Решите задачу с применением хеш-функции.
13 занятие
21.10
19:00
Хеш-таблицы
Изучите структуру данных хеш-таблицы. Научитесь реализовывать схему для нахождения коллизий и предотвращения коллизий в хеш-таблицах и структурах данных. Проверьте, является ли один массив частью другого, и найдите первое повторение элемента массива.
14 занятие
26.10
19:00
Динамическое программирование [лекция]
Разберитесь в понятиях: динамический массив, двоичная куча и пирамидальная сортировка. Разберите на примерах одномерные и двумерные задачи динамического программирования.
15 занятие
28.10
19:00
Динамическое программирование [практика]
Узнайте, в чем суть динамического программирования и отличия этого метода разработки алгоритмов от остальных. Научитесь решать задачи методом динамического программирования по подотрезкам и динамического программирования по подмножествам. Разберитесь в алгоритмах кеширования. Научитесь оптимизировать алгоритмы.
16 занятие
02.11
19:00
Жадные алгоритмы
Узнайте, для чего применяют жадные алгоритмы. Научитесь оптимизировать алгоритмы по графам. Подберите лучший алгоритм для предложенной задачи, самостоятельно решите задачу, затем аргументируйте свой выбор и решение перед лектором.

Регистрация
Преимущества robot_dreams:
Обучаем в режиме live
Преподаватель объясняет материал в прямом эфире, отвечает на все вопросы. Если пропустили занятие – сохраняется запись. Все обучение проходит в удобном личном кабинете.Консультируем
Наши консультанты по карьерному росту помогут проанализировать ваши компетенции, очертят пути развития карьеры и порекомендуют дополнительные апгрейды для быстрого профессионального роста.Помогаем с резюме
Подскажем, как составить CV, чтобы на него точно обратили внимание работодатели. Вы выгодно презентуете свои навыки и выделитесь на фоне конкурентов.