Практический курс, который поможет развить алгоритмическое мышление и повысить производительность своих программ.
- Длительность: 5 месяцев, 4 академических часа в неделю (Пн 20:00, Ср 20:00), старт 28 июля
- Стоимость: 60 000 рублей
- Страница курса: https://otus.ru/lessons/algorithm/
- Что даст вам этот курс
- Для кого этот курс?
- Особенности курса
- Demo Day курса «Алгоритмы и структуры данных», 5 июля в 20:00
- Алгоритм сжатия данных — код Хаффмана. Создание Архиватора. День 1, 19 июля в 20:00
- Алгоритм сжатия данных — код Хаффмана. Создание Архиватора. День 2, 20 июля в 20:00
- Преподаватели
- Необходимые знания
- Процесс обучения
- Программа обучения
- Выпускной проект
- После обучения вы:
Что даст вам этот курс
Вы расширите кругозор и получите опыт реализации классических алгоритмов, который поможет вам при создании собственных алгоритмов для решения бизнес-задач. Именно понимание принципов работы алгоритмов и структур данных позволяет повысить производительность программ и улучшить качество кода.
В программу входят самые известные прикладные алгоритмы, знание которых, как правило, требуется от претендентов на Middle и Senior-должности в крупных IT-компаниях. А также разбираются способы решения задач олимпиадного уровня.
Для кого этот курс?
Для бэкенд-разработчиков и системных программистов, которые пишут софт и приложения, в т.ч. мобильные. В первую очередь курс призван помочь Junior-специалистам усилить свои фундаментальные навыки программирования.
Особенности курса
- Интерактивные вебинары. Преподаватели используют современные педагогические методики, чтобы вовлечь студентов в тему и помочь им лучше усвоить знания. Каждое занятие — это заряд алгоритмической энергии, который поможет вам в интенсивном обучении и выполнении самостоятельной работы, а разнообразие тем позволит сохранить запал до конца курса.
- Глубокое погружение в темы. Каждый алгоритм вы изучите «на пальцах», на конкретных визуальных примерах, исследуете разные способы его реализации. Существует тысячи и тысячи самых разных алгоритмов, на изучение которых можно потратить многие годы. Нет смысла изучать их все сразу, мы ценим ваше время, поэтому отобрали самые важные, интересные и популярные алгоритмы. Вы пройдете такие актуальные темы как битовая арифметика, рекурсия, динамическое программирование, теория графов и др. Модуль 9 посвящен продвинутым алгоритмическим трендам, которые рассчитаны на опытных специалистов.
- Можно проходить курс на любом языке программирования. На вебинарах преподаватели интерактивно рисуют и демонстрируют, как работает каждый алгоритм, некоторые из них пишем с нуля прямо на уроке, используя C#, Java или Python, после чего вы сможете самостоятельно написать этот алгоритм на вашем любимом языке программирования. Благодаря подробным объяснениям и визуализации, идея каждого алгоритма станет понятна.
- Свое приложение для автопроверки. Вы напишете свою простую систему тестирования, с помощью которой сможете проверять часть заданий по заготовленным преподавателями тестам.
- Проектная работа для портфолио. К концу курса вы напишете свое приложение и сможете представлять его на собеседовании. Многие студенты придумывают и реализуют интересные проекты: распознавание рукописных цифр, генерация прохождения лабиринтов, решение заданий судоку и так далее.
Demo Day курса «Алгоритмы и структуры данных», 5 июля в 20:00
Demo Day — отличная возможность задать все вопросы по алгоритмам и структурам данных, узнать подробнее о программе курса, особенностях онлайн-формата, навыках, компетенциях и перспективах, которые ждут выпускников после обучения.
Преподаватель-практик расскажет о себе, своём опыте, поделится карьерными инсайдами и лайфхаками по выгодной оплате курса.
Готовьте вопросы, сдавайте вступительный тест и присоединяйтесь!
Алгоритм сжатия данных — код Хаффмана. Создание Архиватора. День 1, 19 июля в 20:00
На первом занятии бесплатного 2-дневного интенсива мы:
- поговорим об алгоритмах сжатия данных различными способами,
- дадим определение префиксного кода,
- сформулируем правила создания дерева для кода Хаффмана,
- вручную с визуализацией создадим код для короткого текста,
- обговорим способы хранения частотной таблицы символов,
- а также потренируемся восстанавливать сжатую информацию.
Регистрируйтесь сейчас — напомним перед вебинаром!
Алгоритм сжатия данных — код Хаффмана. Создание Архиватора. День 2, 20 июля в 20:00
На втором занятии бесплатного 2-дневного интенсива мы:
- создадим полноценный архиватор с алгоритмами подсчёта и хранения частотного словаря, формирования кода Хаффмана,
- а также реализуем сжатие и распаковку файлов.
В конце интенсива мы протестируем работу созданного архиватора на файлах разного типа, сделаем выводы о преимуществах и недостатках префиксного кода Хаффмана.
Регистрируйтесь сейчас — напомним перед вебинаром!
Преподаватели
Михаил Горшков, Лаборатория Касперского
Работаю в Лаборатории Касперского, окончил курс по С++ в Otus и осваиваю область Data Science. Сейчас являюсь наставником на курсе С++. Специально для проекта OTUS создал программу «Алгоритмы для разработчиков». Программирую на С++ и Python в течение 18 лет, как хобби — играю на фортепиано.
Этот курс для тех, кто не проходил или пропустил алгоритмы в своем ВУЗе, а также для всех программистов, интересующихся данной темой: от любителей до профессионалов. Вы узнаете о популярных алгоритмах и структурах данных, научитесь их реализовывать и применять, сможете претендовать на вакансии в лучшие компании России и всего мира: Яндекс, Google, Facebook!
Присоединяйтесь, будет круто!
Евгений Волосатов
Профессиональный программист. Преподаватель языка Java в колледже.
Автор видеокурсов по C#, Java, PHP
20 лет опыта ведущим программистом в разных фирмах и опыта преподавания в университете, колледже. 6 лет опыта ведения вебинаров и создания видеокурсов.
Три самых крупных завершенных проекта:
PHP. Служба знакомств в интернете — PHP, MySQL, FreeBSD, C/C++
C#. Программа расчёта заработной платы на АЭС — C#, MS-SQL Server
Java. Видеокурс создания игры Сапёр на 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 году по специальности «Учитель профессии».
«В детстве меня вдохновила «Занимательная ***» серия книг Я. И. Перельмана. Считаю своим призванием создать занимательную методику обучения программированию.»
Александр Ключев, Zynga senior developer
Уже 10 лет в IT, 7 из которых посвящено C++
Начинал профессиональную карьеру c компании Motorola, область телекоммуникаций, позднее заинтересовался разработкой игр.
Поработал в разных российских и зарубежных игровых студиях над различными игровыми проектами
SocialQuantum: Megapolis, Wild West 3D, Ice age 3D
Keywords Studios: Mortal Kombat, Injustice, F1
В данный момент работаю в компании Zynga над мобильным движком
для всех игровых проектов компании.
Окончил Санкт-Петербургский Электротехнический Университет ЛЭТИ, факультет компьютерных технологий и информатики (ФКТИ)
После окончания университета, работал на кафедре автоматизированных систем управления (в качестве ассистента — вел лабораторные работы).
Андрей Иванов
Один из разработчиков academy.cppstudio.com — бесплатного интерактивного сервиса по обучению С++. Свыше 5 лет опыта разработки приложений на C++ и C#.
Используемые технологии и фрэймворки:
WPF, WinForms, EF6, ASP.NET MVC5, ASP.NET Core 2.
Михаил Степанов, Data Scientist Insilico Medicine
Сейчас занимается глубоким обучением для разработки новых лекарственных препаратов. Занимался проектами по агрегации отзывов, по анализу и оптимизации производства крупных промышленных компаний, в том числе проектами по face detection, face recognition, pose estimation. Оптимизировал модели для запуска на портативных или маломощных устройствах.
Ранее учил талантливых школьников программированию, машинному обучению и программированию учебных моделей спутников.
Владислав Родин, Руководитель разработки
В настоящее время занимает должность руководителя разработки, преподает в Московском Физико-Техническом Институте и на портале foxminded.
Выпускник МФТИ, начал программировать на С++, работал инженером-исследователем на проекте вычислительного программного комплекса МФТИ.
С 2017 года занимается Java Enterprise разработкой.
Работал Java-разработчиком в таких компаниях как НСПК и Яндекс. Занимался проблемами высокой нагрузки, работая как на Spring’овом (Spring Boot, Spring Core, Spring Data, Spring Batch и т.д.) так и на Java EE’шном стеках. Улучшал инфраструктуру проектов, внедряя CI/CD и отлаживая процесс миграции БД. Строил С4- архитектурные схемы для проектов, в которых принимал участие.
Является автором статей по backend-разработке на habr.com; спикер Рит++ 2020; обладатель сертификата Oracle Certified Assotiate Java SE 8 Programmer.
Необходимые знания
- Опыт программирования на любом языке программирования (начальный или средний уровень)
- Знание элементарной математики в объёме средней школы
- Минимальное знание алгоритмов и структур данных и желание развиваться в области их изучения
Процесс обучения
Обучение проходит онлайн, в формате вебинаров. Длительность этого курса составляет 5 месяцев, финальный месяц отводится для выполнения проектной работы и оттачивания полученных навыков.
Расписание занятий включает 2 вебинара в неделю по 2 академических часа и от 2 до 4 часов на домашнюю работу.
Во время обучения слушатель может задавать преподавателю уточняющие вопросы по материалам лекций, домашних заданий и выпускного проекта.
Программа обучения
В процессе обучения вы получите комплексные знания и навыки.
Модуль 1
Простые алгоритмы и базовые структуры данных
C 28 июля
Тема 1. Циклы и рекурсия
Тема 2. Как выполнять домашние задания
Тема 3. Алгебраические алгоритмы
Тема 4. Битовая арифметика
Тема 5. Базовые структуры данных
Модуль 2
Алгоритмы сортировки
C 18 августа
Тема 6. Простые сортировки
Тема 7. Пирамидальная сортировка
Тема 8. Быстрая и внешняя сортировка
Тема 9. Линейная сортировка
Модуль 3
Деревья поиска
C 1 сентября
Тема 10. Двоичные деревья поиска АВЛ
Тема 11. Красно-чёрные деревья
Тема 12. Другие варианты деревьев поиска
Модуль 4
Хеш-таблицы
C 13 сентября
Тема 13. Хэш-функции и хэш-таблицы
Тема 14. Разрешение коллизий
Тема 15. Универсальное и идеальное хэширование
Модуль 5
Теория графов
C 29 сентября
Тема 16. Определения и представления
Тема 17. Поиск и сортировка
Тема 18. Минимальный скелет
Тема 19. Кратчайший путь
Тема 20. Управление памятью
Тема 21. Задача коммивояжёра
Модуль 6
Алгоритмы на строках
C 20 октября
Тема 22. Алгоритм Бойера-Мура
Тема 23. Алгоритм Ахо-Корасика
Тема 24. Алгоритм Кнута-Морриса-Пратта
Тема 25. Алгоритмы сжатия
Тема 26. Шифрование данных
Модуль 7
Динамическое программирование
C 15 ноября
Тема 27. Алгоритмы кэширования
Тема 28. Динамическое программирование
Модуль 8
Олимпиадное программирование
C 22 ноября
Тема 29. Сложная задача
Тема 30. Dancing Links
Модуль 9
Вероятностные алгоритмы
C 29 ноября
Тема 31. Фильтр Блума
Тема 32. Алгоритмы MinHash, SimHash
Тема 33. Алгоритмы HyperLogLog, Count-Min Sketch
Модуль 10
Проектная работа
C 8 декабря
Тема 34. Выбор темы и организация проектной работы
Тема 35. Консультация по проектам и домашним заданиям
Тема 36. Защита проектных работ
Тема 37. Подведение итогов курса
Выпускной проект
В рамках курса предусмотрена защита проекта. Это отдельная работа, на выполнение которой отводится последний месяц обучения. Проект включает в себя имплементацию сложного алгоритма и/или сложной структуры данных. При подготовке проектной работы студент может рассчитывать на консультации преподавателя и его экспертные советы. Примеры тем выпускного проекта:
- написать кастомную хэш-таблицу
- реализовать свой менеджер памяти с garbage collector
- реализовать B-tree индекс для СУБД
- любая тема на выбор студента, связанная с продвинутыми алгоритмами и структурами данных
После обучения вы:
- получите материалы по всем пройденным занятиям (видеозаписи вебинаров, выполненные домашние задания, выпускной проект)
- сможете писать рациональный и хорошо структурированный код
- получите сертификат об окончании курса
- приобретёте навыки работы с алгоритмами и структурами данных, которые необходимы при реализации сложных проектов в крупных компаниях
- получите приглашение пройти собеседование в компаниях-партнёрах (в случае успешного обучения)
Дата выдачи сертификата: 1 февраля 2022 года.