Сложность
Сложность
Продвинутый
Тип обучения
Тип обучения
Курс
Формат обучения
Формат обучения
С проверкой домашнего задания
Трудоустройство
Трудоустройство
Содействие
Сертификат
Сертификат
Да

Стоимость курса

96 600 ₽
есть рассрочка

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

Особенности курса

  • Интерактивные вебинары. Преподаватели используют современные педагогические методики, чтобы вовлечь студентов в тему и помочь им лучше усвоить знания. Каждое занятие — это заряд алгоритмической энергии, который поможет вам в интенсивном обучении и выполнении самостоятельной работы, а разнообразие тем позволит сохранить запал до конца курса.
  • Глубокое погружение в темы. Каждый алгоритм вы изучите «на пальцах», на конкретных визуальных примерах, исследуете разные способы его реализации. Существует тысячи и тысячи самых разных алгоритмов, на изучение которых можно потратить многие годы. Нет смысла изучать их все сразу, мы ценим ваше время, поэтому отобрали самые важные, интересные и популярные алгоритмы. Вы пройдете такие актуальные темы как битовая арифметика, рекурсия, динамическое программирование, теория графов и др. Модуль 9 посвящен продвинутым алгоритмическим трендам, которые рассчитаны на опытных специалистов.
  • Можно проходить курс на любом языке программирования. На вебинарах преподаватели интерактивно рисуют и демонстрируют, как работает каждый алгоритм, некоторые из них пишем с нуля прямо на уроке, используя C#, Java или Python, после чего вы сможете самостоятельно написать этот алгоритм на вашем любимом языке программирования. Благодаря подробным объяснениям и визуализации, идея каждого алгоритма станет понятна.
  • Свое приложение для автопроверки. Вы напишете свою простую систему тестирования, с помощью которой сможете проверять часть заданий по заготовленным преподавателями тестам.
  • Проектная работа для портфолио. К концу курса вы напишете свое приложение и сможете представлять его на собеседовании. Многие студенты придумывают и реализуют интересные проекты: распознавание рукописных цифр, генерация прохождения лабиринтов, решение заданий судоку и так далее.

Что вы получите после обучения

Приобретаемые навыки
1
C#
5
Хэш-функции
6
Хэш-таблицы
7
Графы
8
Динамическое программирование
9
Кеширование
10
Вероятностные алгоритмы
11
Фильтр Блума
12
MinHash
13
SimHash
14
HyperLogLog
15
Count-Min Sketch
Сертификат, ссылками на который можно делиться с другими людьми

Вас будут обучать

Работаю в Лаборатории Касперского, окончил курс по С++ в Otus и осваиваю область Data Science. Сейчас являюсь наставником на курсе С++. Специально для проекта OTUS создал программу «Алгоритмы для разработчиков»....
Работаю в Лаборатории Касперского, окончил курс по С++ в Otus и осваиваю область Data Science. Сейчас являюсь наставником на курсе С++. Специально для проекта OTUS создал программу «Алгоритмы для разработчиков». Программирую на С++ и Python в течение 18 лет, как хобби — играю на фортепиано. Этот курс для тех, кто не проходил или пропустил алгоритмы в своем ВУЗе, а также для всех программистов, интересующихся данной темой: от любителей до профессионалов. Вы узнаете о популярных алгоритмах и структурах данных, научитесь их реализовывать и применять, сможете претендовать на вакансии в лучшие компании России и всего мира: Яндекс, Google, Facebook!Присоединяйтесь, будет круто! Преподаватель
Сейчас занимается глубоким обучением для разработки новых лекарственных препаратов. Занимался проектами по агрегации отзывов, по анализу и оптимизации производства крупных промышленных компаний, в том числе проектами по face detection, face...
Сейчас занимается глубоким обучением для разработки новых лекарственных препаратов. Занимался проектами по агрегации отзывов, по анализу и оптимизации производства крупных промышленных компаний, в том числе проектами по face detection, face recognition, pose estimation. Оптимизировал модели для запуска на портативных или маломощных устройствах.Ранее учил талантливых школьников программированию, машинному обучению и программированию учебных моделей спутников.
Профессиональный программист. Преподаватель языка Java в колледже. Автор видеокурсов по C#, Java, PHP20 лет опыта ведущим программистом в разных фирмах и опыта преподавания в университете, колледже. 6 лет опыта ведения...
Профессиональный программист. Преподаватель языка Java в колледже. Автор видеокурсов по C#, Java, PHP20 лет опыта ведущим программистом в разных фирмах и опыта преподавания в университете, колледже. 6 лет опыта ведения вебинаров и создания видеокурсов.Три самых крупных завершенных проекта:PHP. Служба знакомств в интернете - PHP, MySQL, FreeBSD, C/C++C#. Программа расчёта заработной платы на АЭС - C#, MS-SQL ServerJava. Видеокурс создания игры Сапёр на Java: https://goo.gl/24DgBgСтатьи на Habrahabr:Как я создавал методику изучения C# - habr.com/post/239825/Об альтернативном образовании и про C# - habr.com/post/257957/Изучение C# — Практический подход - habr.com/post/304142/Участие в IT-конференциях в Литве, призовое место в конкурсе программирования InfoBalt, призовое место на республиканской олимпиаде по математике и информатикеС окончания школы в 1996 году постоянно преподавал информатику в университете, школе, на кружках, в ДДТ, на предприятиях, в колледже. С 2013 года ведет вебинары онлайн, записывает видеокурсы https://www.VideoSharp.info/В 2002 году закончил Вильнюсский государственный университет по специальности «Магистр математики и информатики», а в 2008 году по специальности «Учитель профессии». «В детстве меня вдохновила "Занимательная ***" серия книг Я. И. Перельмана. Считаю своим призванием создать занимательную методику обучения программированию.» Руководитель программы

Образовательная организация

Otus.ru - высокотехнологический стартап в области образования. Наша миссия - делать образование осмысленным, реализуя связь между работодателями, специалистами и преподавателями. Приходите к нам учиться!

OTUS сегодня – это более 80 авторских курсов для IT-специалистов из разных направлений таких как программирование, тестирование, инфраструктура, информационная безопасность, управление и Data Science. И что важно, у нас есть программы для разных уровней подготовки от новичков до профессионалов, которые хотят освоить продвинутые навыки.
Наша миссия — делать обучение осмысленным, реализуя взаимосвязь между ожиданиями работодателей, компетенциями специалистов и возможностями преподавателей.

Программа курса

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

Тема 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: Подведение итогов курса

Рейтинг курса

4.6
рейтинг
0
0
0
0
0

Может быть интересно

обновлено 21.02.2024 08:04
Алгоритмы и структуры данных

Алгоритмы и структуры данных

Оставить отзыв
Поделиться курсом с друзьями