Рейтинг@Mail.ru
Авторские курсы
Авторские онлайн-курсы от ведущих IT-разработчиков

Пройдите лучшие авторские курсы, разработанные экспертами Mail.Ru Group для студентов образовательных проектов Технопарк (МГТУ им. Н.Э. Баумана), Техносфера (МГУ им. М.В. Ломоносова) и Технотрек (МФТИ).

Мы постарались учесть все особенности онлайн обучения, разработав вместе с нашим партнером Stepic.org системы автоматизированной проверки домашних заданий и рубежных контролей. Набор авторских курсов постоянно пополняется, следите за анонсами!

4 модуля 22+ акад. часа видеоматериалов плюс самостоятельная работа 17 апреля 2017 - 28 мая 2017
Алексей Петров, Преподаватель курса "Углубленное программирование на языке C / C++" проектов "Технопарк@Mail.Ru" и "Техносфера@Mail.Ru", Дмитрий Исайкин

Онлайн-курс «Углубленное программирование на C / C++» является «репликой» очных курсов для студентов 1-го семестра обучения в рамках проектов «Технопарк@Mail.Ru» в МГТУ им. Н.Э. Баумана и «Техносфера@Mail.Ru» в МГУ им. М.В. Ломоносова.

  • Углубленное программирование на языке C
    • Вводный урок курса
    • Организация и использование оперативной памяти. Часть 1
    • Организация и использование оперативной памяти. Часть 2
    • Основы многопоточного программирования. Вопросы качества кода
  • Объектная модель языка C++. Обобщенное программирование
    • Объектно-ориентированное программирование. Часть 1
    • Объектно-ориентированное программирование. Часть 2
    • Шаблоны классов Обобщенное и безопасное программирование
  • Библиотеки промышленной разработки
    • Практическое введение в STL
    • Функциональное программирование. Практическое введение в Boost
  • Шаблоны проектирования. Основы промышленной разработки
    • Принципы и шаблоны объектно-ориентированного проектирования
    • Идиоматика C++. Основы рефакторинга и качество исходного кода. С
    • Заключительный урок
Сертификат
Mail.Ru
Формат курса
Видеолекции, самостоятельная практическая работа
Язык
Русский
Целевая аудитория
Начинающие программисты, владеющие основами языков C и C++
Создано
Mail.Ru Group
SHARE
Требования

Успешное прохождение курса предполагает уверенное знание основ процедурного программирования на языке C и объектно-ориентированного программирования на языке C++. Полезными также будут опыт применения компилятора семейства gcc 4 / 5 / 6 и умение работать с одной из распространенных систем контроля версий и управления исходным кодом.

Описание

Курс формирует практические умения и навыки разработки программных систем среднего уровня сложности на языке C++ с применением стандартной библиотеки языка, а также типовых приемов (шаблонов) объектно-ориентированного проектирования.

В курсе рассматриваются ключевые аспекты эффективной работы с памятью, безопасного программирования, асинхронных вычислений, делается краткий экскурс в возможности диалектов C++11/C++14.

3 модуля 4 часа в неделю
Дмитрий Смаль, Web Developer, Динар Сабитов

Курс посвящен разработке серверной части web-приложений, их архитектуре и протоколу HTTP. По итогам курса вы научитесь: разрабатывать приложения на языке python, использовать MVC фреймворки, изучите верстку HTML страниц, погрузитесь в тематику web разработки и сможете выбирать конкретные технологии.

  • Статический сайт
    • Вводный урок курса
    • Архитектура Web приложений
    • Web-клиенты
    • Язык разметки HTML
    • CSS - язык описания стилей
    • Сетевые протоколы
    • Протокол HTTP
    • Web-сервера
    • Архитектура frontend-backend
  • Динамический сайт
    • MVC фреймворки
    • MVC фреймворки (продолжение)
    • Работа с СУБД
    • Django модели
    • Отображение данных
    • Обработка форм
    • Сессии и авторизация
  • Дополнительные темы
    • Технология AJAX
    • Real-Time сообщения
    • Заключительный урок
Сертификат
Mail.Ru
Формат курса
Видео-лекции + практические задания
Язык
Русский
Целевая аудитория
Начинающие программисты и web-мастера
Создано
Mail.Ru Group
SHARE
Требования

Базовые знания языка Python, Linux на уровне пользователя (работа в командной строке), Базовые знания Git

Описание

Курс Web-технологии посвящен разработке web-приложений среднего масштаба, иначе говоря сайтов. Курс является в большой мере обзорным и знакомит будущих web-разработчиков с широким спектром технологий и общими принципами работы web-приложений.

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

12 модулей 2-4 часа в неделю
Дмитрий Безуглый, Делать правильные проекты и продукты, делать продукты и проекты правильно

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

  • Основные понятия и принципы
    • Вводный урок курса
    • Сложность. Законы развития
    • Что такое система ?
    • Проекты. Как создаются системы
    • Проектирование требований
    • Анализ заинтересованных сторон
    • Определение контекста и границ системы
  • Бизнес требования и бизнес анализ
    • Введение в бизнес анализ
    • Обзор техник сбора требований
    • Интервью для сбора потребностей
    • Формирование Глоссария
    • Анализ проблемы
    • Формулирование проблемы
    • Определение возможностей решения
    • Документирование Бизнес требований
  • Определение поведения системы (Функциональные требования)
    • Модель использования системы
    • Оптимизация модели использования системы
    • Документирование сценария/варианта использования системы
  • Требования к качеству (Не функциональные требования)
    • Качество программных продуктов
    • Категории нефункциональных требований
    • Сценарии атрибутов качества
  • Управление требованиями
    • Система управления требованиями
    • Прослеживаемость требований
    • Приоритизация требований
    • Управление изменениями
  • Подведение Итогов
    • Что дальше ?
    • Заключительный урок
Сертификат
Mail.Ru
Формат курса
Видео-лекции + решение практических заданий
Язык
Русский
Целевая аудитория
Постановщики задачи, Начинающие бизнес и системные аналитики, Начинающие, ведущие разработчики и будущие архитекторы программного обеспечения.
Создано
Mail.Ru Group
SHARE
Требования

Общие навыки работы с прикладным программным обеспечением и создания диаграмм.

Описание

Благодарности

  1. Компании Mail.Ru за частичное финансирование работ по этому курсу :-)
  2. Команде Mail.Ru за посильную помощь в добавлении стандартных частей курса и помощь в определении чего еще не сделано и мотивации на завершение работы
  3. Команде Stepik.org - за терпение и быструю реакцию в ответ на заданные вопросы. Знать бы еще что спрашивать :-)
  4. Максим Павлов  - За пытливость ума в качестве студента, реальную помощь оказанную при работе над курсом :-)
О перезапуске курса

Мы задумали (https://www.facebook.com/dmitry.bezuglyy" title="Link: https://www.facebook.com/dmitry.bezuglyy">Дмитрий Безуглый, https://alexfreelancer.wordpress.com/">Алексей Петров, https://www.facebook.com/sergey.nuzhnenko">Сергей Нужненко, https://www.facebook.com/victoria.kholmanova">Виктория Холманова) книгу расширение и углубление этого курса. 

Книга предназначается для широкой аудитории,стихийных и начинающих аналитиков.


Суть проекта:

1) Если соберем только указанную сумму – публикуем книгу ( получится в ноль или коммерческий минус)

2) Если соберем 450+ книга и перезапускаем курс с правками замечаний

3) Если соберем 750+ перезапускаем курс на качественно другом уровне  :-)

Подробнее по ссылке https://goo.gl/rDY91C">https://goo.gl/rDY91C


4 модуля 4-8 часов в неделю
Виталий Чибриков, Старший программист backend и web backend проекта SkyForge в Allods Team компании Mail.Ru Group. Преподаватель в Технопарк Mail.Ru.

Изучение Java, на примере разработки веб-сервера. Первая часть курса: основы разработки серверной части веб-приложений. Пройдя курс, вы получите: основные навыки разработки веб-приложений на Java, глубже поймете затронутые в курсе темы ООП и проектирования, попробуете себя в роли разработчиков серверной части веб-приложений.

  • Создание веб сервиса
    • Вводный урок курса
    • Java: Знакомство
    • Java: Платформа
    • Java: Запуск сервера
  • Авторизация
    • Постановка задачи, генерики
    • Коллекции и карты
    • "Углубленные" основы языка
  • Работа с базами данных
    • JDBC
    • ORM и Hibernate
  • Асинхронное клиент-серверное взаимодействие
    • Базовые паттерны и исключения
    • Инструменты
    • Заключительный урок
Сертификат
Mail.Ru
Формат курса
Четыре модуля по два/три занятия в модуле. Практическая работа в конце каждого модуля. Для успешного завершения курса нужно выполнить все практически работы.
Язык
Русский
Целевая аудитория
Курс будет интересен всем, кто хочет изучить основы разработки серверных приложений на Java.
Создано
Mail.Ru Group
SHARE
Требования

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

Описание

Курс построен на основе практического опыта разработки серверов для онлайновых игр и опыта прочтения лекций в Технопарке Mail.Ru в МГТУ им. Баумана. В курсе я постарался достичь баланса между академической последовательностью и практической полезностью материала. Курс состоит из двух частей, разделенных на 4 и 3 модуля соответственно. В каждом модуле я разбираю одну большую тему:

  1. Работа веб сервера
  2. Авторизация пользователя
  3. Работа с базами
  4. Асинхронное взаимодействие с браузером
  5. Тестирование и нагрузка
  6. Работа с файлами
  7. Многопоточность
и задаю студентам задание на практическую разработку кода приложения использующего изученный материал. Успешное завершение курса даст вам: базовые основы разработки веб приложения на Java, углубленное понимание затронутых в курсе тем ООП и проектирования, позволит вам сформировать пакет приложений, который вы сможете использовать в промышленной разработке.

9 модулей 4-6 часов в неделю
Дмитрий Калугин-Балашов, Руководитель группы разработки поиска по почте в Mail.Ru Group и преподаватель в Техносфере.

В курсе принцип многопоточного программирования рассматривается в контексте разработки сетевых и высоконагруженных систем. Ядром курса является обучение межпроцессному взаимодействию (IPC) и синхронизации потоков. Пройдя курс, вы сможете разработать собственный веб-сервер, который позволит отработать полученные навыки.

  • Пролог
    • Вводный урок курса
    • Пролог
    • Диагностический экзамен
  • Контейнеры. Умные указатели. Аллокаторы
    • Контейнеры
    • Умные указатели
    • Аллокаторы
  • Сокеты Беркли. Мультиплексирование
    • Сокеты Беркли
    • Мультиплексирование
  • Асинхронная работа с сетью
    • Библиотека libevent
    • Библиотека libev
    • Библиотека libuv
    • Библиотека boost::asio
  • Процессы. Каналы. Сигналы
    • Процессы Unix
    • Сигналы
    • Файлы
    • Каналы
  • Очереди сообщений. Семафоры. Общая память
    • Классическое Unix IPC
    • Очереди сообщений
    • Семафоры
    • Общая память
  • Потоки. Средства синхронизации
    • Потоки POSIX
    • Мьютексы
    • Условные переменные. Барьеры
    • Потоки C++11
  • Параллельное программирование
    • OpenMP
    • Intel TBB
    • MPI
  • Эпилог
    • Финальный экзамен
    • Эпилог
    • Заключительный урок
Сертификат
Mail.Ru
Формат курса
Курс освещает следующие темы: контейнеры, умные указатели, аллокаторы, работа с сетью, межпроцессное взаимодействие, работа с потоками, параллельное программирование. Для получения сертификата надо набрать 900 баллов из 1000. Герои, набравшие 1000 баллов, получат сертификат с отличием.
Язык
Русский
Целевая аудитория
Студенты математических и технических специальностей ВУЗов.
Создано
Mail.Ru Group
SHARE
Требования

Знание C/C++. Умение обращаться с Unix-like операционными системами.

Описание

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

Курс состоит из семи двухнедельных учебных модулей:

  • Контейнеры. Умные указатели. Аллокаторы.
  • Сокеты Беркли. Мультиплексирование.
  • Асинхронная работа с сетью.
  • Процессы. Каналы. Сигналы.
  • Очереди сообщений. Семафоры. Общая память.
  • Потоки. Средства синхронизации.
  • Параллельное программирование.

Каждый модуль оценивается в 100 баллов.
Кроме того есть финальный "экзамен" - собственный проект - он оценивается в 300 баллов.

Чтобы получить сертификат, надо набрать 900. Для сертификата с отличием нужно 1000.

Евгений Чернов, Руководитель отдела анализа запросов в Поиск@Mail.ru, преподаватель Техносферы (проект МГУ и Mail.ru)

Курс посвящен методам обработки больших объемов данных (BigData) с помощью системы Hadoop. После прохождения курса вы получите знания основных способов хранения и методов обработки больших объемов данных, поймете принципы работы распределенных систем в контексте фреймворка Hadoop и освоите практические навыки разработки приложений, используя программную модель MapReduce.

  • Введение
    • Вводный урок курса
    • Что такое Hadoop?
  • Распределенная файловая система HDFS
    • Архитектура HDFS
    • Shell-команды
    • Java API
  • MapReduce. Введение
    • Парадигма MapReduce
    • Фреймворк MapReduce
    • Java API. Введение
    • Java API. Продолжение
    • Hadoop Streaming
  • Решение задач с помощью MapReduce
    • Алгоритмы на MapReduce
    • Реляционные функции
    • Расчет TF-IDF
  • Алгоритмы на графах в MapReduce
    • Графы в MapReduce
    • Поиск кратчайшего пути в графе
    • PageRank
    • Проблемы MR-алгоритмов на графах
  • Pig и Hive
    • Pig
    • Основные операторы PigLatin
    • Hive
    • Pig vs Hive
  • NoSQL базы данных: HBase и Cassandra
    • Способы хранения данных
    • NoSQL
    • Введение в HBase
    • Архитектура HBase
    • Cassandra
  • Spark
    • Основные понятия Spark
    • Операторы Spark
    • Фреймворк Spark
  • YARN. MapReduce 2.0
    • Что такое YARN?
    • Компоненты YARN
    • MapReduce 2.0
    • Заключительный урок
Сертификат
Mail.Ru
Формат курса
Видео-лекции, решение проверочных заданий
Язык
Русский
Целевая аудитория
Студенты старших курсов, разработчики начального и среднего уровня. Также курс будет полезен тем, кто уже имеет небольшой опыт работы с Hadoop.
Создано
Mail.Ru Group
SHARE
Требования

Знание языков программирования не является обязательным, но очень желательно. В курсе есть примеры программ и в практических задачах нужно уметь читать и писать код. При этом используются Java и Python. Глубокого знания этих языков не требуется и проблем не будет, если вы знаете только С++. Нужно быть знакомым с Linux и уметь работать в командной строке. Желательно хотя бы немного знать английский язык, т.к. в курсе встречаются термины и надписи на английском.

Описание

BigData, MapReduce, облачные вычисления, NoSQL. Все эти понятия стали популярными в последние годы. И все они связаны с распределенной обработкой больших объемов данных. Hadoop - одна из самых популярных open-source систем для обработки больших объемов данных. Необходимость в таких системах растет с каждым годом - все больше компаний сталкиваются с проблемой растущего объема данных.

Facebook, Twitter, Yahoo!, Bing, Mail.ru - это далеко не полный список компаний, которые используют Hadoop. Многие из них, при этом, активно участвуют в его развитии. И это неслучайно, т.к. именно большие интернет-компании первыми столкнулись с проблемой обработки больших объемов данных: как их надежно хранить, как обрабатывать, как получать быстрый доступ на их изменение. Сейчас Hadoop используется не только в интернет-компаниях, но и во многих других сферах, где возникает проблема с объемом данных (экономика, астрономия, биология, физика и т.д.)

Записывайтесь на наш курс и вы узнаете современные методы хранения и обработки больших объемов данных на примере системы Hadoop.

5 модулей 3-4 часа в неделю
Ярослав Рабоволюк

Крэш-курс по техникам аудита безопасности веб-проектов. После прохождения курса вы освоите: общие знания относительно рисков, сопровождающих современные интернет-приложения; методики анализа безопасности клиент-серверных приложений; методики анализа кода; архитектурный анализ; практики разработки защищенных приложений.

  • Сбор информации
    • Знакомство со Stepik
    • Введение
    • Dns/whois
    • Search engines
    • Контент
    • Активный анализ: port scanning
  • Точки входа
    • Введение
    • HTTP-параметры
    • Инструменты - анализ запросов
    • Инструменты - создание запросов
    • Представление данных
  • Уязвимости веб
    • Цикл анализа
    • Раскрытие данных
    • Локальное включение файлов
    • Инъекция команд
    • SQL инъекции
  • Сlient side
    • Введение
    • Same-Origin Policy
    • CSRF
    • XSS
    • xss: использование
    • Headers, sessions
  • Пост-эксплуатация
    • Введение
    • Сбор информации: подбор паролей оффлайн
    • Окружение
    • Перманентный доступ
    • Перманентный доступ 2: backdoors
    • Заключительный урок
Сертификат
Mail.Ru
Формат курса
Видеолекции, задачи на анализ целей в лабораторных условиях
Язык
Русский
Целевая аудитория
Веб-разработчики начального и среднего уровней
Создано
Mail.Ru Group
SHARE
Требования

Для успешного прохождения курса требуются общие знания в области веб-технологий: что из себя представляет язык гипертекстовой разметки, как реализуется клиент-серверное взаимодействие, что такое tcp/ip. Курс можно пройти только с помощью браузера, но, возможно, вам захочется выйти за пределы программы курса и поэкспериментировать. Для этого мы рекомендуем использовать настроенную в виртуальной среде лабораторию. Подробные инструкции по развертыванию лабораторного окружения мы приведем в соответствующем уроке, пока же можете установить и освоиться с виртуализацией на базе VirtualBox (взять можно с https://www.virtualbox.org/">https://www.virtualbox.org/ ) и скачать пару дистрибутивов, которые будут использованы для экспериментов: kali linux ( https://www.kali.org/downloads/">https://www.kali.org/downloads/ ) и образ metasploitable ( http://sourceforge.net/projects/metasploitable/">http://sourceforge.net/projects/metasploitable/ )

Описание

Курс "анализ безопасности веб-проектов" создан по мотивам существующего курса "анализ защищённости интернет-систем", который преподаётся студентам МГТУ им. Баумана в рамках совместного с компанией Mail.Ru образовательного проекта "Технопарк". Нашей целью было сделать простой,короткий, но тем не менее полезный курс, ориентированный в основном на молодых веб-разработчиков, которые хотят создавать не только красивые и интересные (мы в вас верим!) сервисы, но и достаточно защищенные. Для этого мы показываем проблему создания защищенного сервиса немного с другой стороны - со стороны злоумышленника.

3 модуля 4-8 часов в неделю
Виталий Чибриков, Старший программист backend и web backend проекта SkyForge в Allods Team компании Mail.Ru Group. Преподаватель в Технопарк Mail.Ru.

Изучение Java, на примере написания веб сервера. Вторая часть курса: углубленное изучение возможностей языка на примере доработки веб-сервера до промышленного уровня. Пройдя курс вы получите: глубокое понимание затронутых в курсе тем ООП и проектирования, что позволит вам сформировать набор приложений (библиотек), который вы сможете использовать в промышленной разработке.

  • Тестирование и нагрузка
    • Вводный урок курса
    • Unit tests
    • Load
  • Работа с файловой системой
    • Сериализация
    • Ресурсная система
  • Многопоточность
    • Потоки
    • Потокобезопасная разработка
    • Система обмена сообщениями
    • Заключительный урок
Сертификат
Mail.Ru
Формат курса
Три модуля по два/три занятия в модуле. Практическая работа в конце каждого модуля. Для успешного завершения курса нужно выполнить все практически работы.
Язык
Русский
Целевая аудитория
Учащиеся, прошедшие первую часть курса: "Разработка веб сервиса на Java".
Создано
Mail.Ru Group
SHARE
Требования

Все кто успешно завершил первую часть курса.

Описание

Курс построен на основе практического опыта разработки серверов для онлайновых игр и опыта прочтения лекций в Технопарке Mail.Ru в МГТУ им. Баумана. В курсе постарался достичь баланса между академической последовательностью и практической полезностью материала. Курс состоит из двух частей, разделенных на 4 и 3 модуля соответственно. В каждом модуле второй части я разбираю одну большую тему:

  1. Тестирование и нагрузка
  2. Работа с файлами
  3. Многопоточность
и задаю студентам задание на практическую разработку кода приложения использующего изученный материал. Успешное завершение курса даст вам: базовые основы разработки веб приложение на Java, углубленное понимание затронутых в курсе тем ООП и проектирования, позволит вам сформировать пакет приложений, который вы сможете использовать в промышленной разработке.

5 модулей 2-4 часа в неделю 10 марта 2016 - 21 апреля 2016
Валентина Глазкова, Окончила с отличием факультет Вычислительной математики и кибернетики МГУ им. М.В. Ломоносова (2006); кандидат физико-математических наук

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

  • Работа с памятью и динамическими структурами данных на языке С
    • Вводный урок курса
    • Основы работы с памятью в программах на языке С
    • Реализация структур данных на языке С
  • Объектная модель языка С++
    • Основные принципы объектной модели языка С++
    • Специальные вопросы наследования
  • Специальные вопросы полиморфизма и инкапсуляции
    • Специальные вопросы полиморфизма и инкапсуляции
  • Объектно-ориентированное и обобщенное программирование
    • Объектно-ориентированное программирование
    • Модульное программирование. Шаблоны классов и методов
  • Обработка исключительных ситуаций и библиотека шаблонов STL
    • Обработка исключительных ситуаций
    • Стандартная библиотека шаблонов STL
    • Заключительный урок
Сертификат
Mail.Ru
Формат курса
Видео-лекции + практические задания
Язык
Русский
Целевая аудитория
Данный курс подойдёт для слушателей, имеющих базовые знания основ программирования на языке С
Создано
Mail.Ru Group
SHARE
Описание

Курс посвящён изучению и реализации основных принципов объектно-ориентированного и обобщённого программирования на языке С++. В курсе будут рассмотрены следующие темы: основы работы с памятью в программах на языке С, реализация структур данных на языке С, объектная модель языка С++, специальные вопросы инкапсуляции, специальные вопросы наследования и полиморфизма, класс как область видимости, перегрузка, модульное программирование, шаблоны классов и методов, обработка исключительных ситуаций, стандартная библиотека шаблонов STL.

6 модулей 6-8 часов в неделю 8 декабря 2015 - 16 февраля 2016
Степан Мацкевич, Образование: мехмат МГУ, кандидат физ.-мат. наук. Место работы: ABBYY, ФИВТ МФТИ, Технопарк Mail.ru в МГТУ им. Баумана.

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

  • Базовые понятия и алгоритмы
    • Вводный урок курса
    • Обзор алгоритмов. Первые шаги. Сложность алгоритмов
    • Массивы. Линейный и бинарный поиск. Амортизационный анализ
  • Базовые структуры данных. Двоичная куча
    • Списки. Очередь, стек, дек
    • Двоичная куча. Очередь с приоритетом
  • Сортировки 1
    • Квадратичные сортировки
    • Сортировка кучей и сортировка слиянием
  • Сортировки 2. Порядковые статистики
    • Быстрая сортировка и порядковые статистики
    • Поразрядные сортировки
  • Хеширование
    • Хеш-функции
    • Хеш-таблицы
  • Деревья
    • Деревья. Реализации. Обходы деревьев
    • Двоичные деревья поиска и Декартовы деревья
    • АВЛ-деревья
    • Заключительный урок
Сертификат
Mail.Ru
Формат курса
Видео-уроки, задачи
Язык
Русский
Целевая аудитория
Старшеклассники, студенты, программисты с небольшим опытом работы
Создано
Mail.Ru Group
SHARE
Требования

Требуются базовые умения программировать. Знать какой-нибудь из популярных языков программирования, например, C или C++.

Описание

Курс содержит описание основных алгоритмов и структур данных. Вначале даются базовые понятия и оценка сложности, которые разбираются на примере следующих алгоритмов: "Вычисление чисел Фибоначчи", "Проверка числа на простоту", "Быстрое возведение в степень". Затем обсуждаются основные алгоритмы на массиве, линейный и бинарный поиск в массиве, структура данных "Динамический массив".
В следующем модуле разбираются структуры данных "Однонаправленные и двунаправленные списки", "Очередь", "Стек", "Дек", "Двоичная куча", "Очередь с приоритетом", операции с ними, способы реализации.
Много внимания уделяется сортировкам, им посвящено два модуля. Рассматриваются основные типы сортировок, их реализации, обсуждается, в каких случаях рекомендуется применять те или иные сортировки. Тема порядковых статистик также обсуждается в этом модуле, как идеологически близкая.
После сортировок ставится задача построения эффективного контейнера. В качестве решения разбираются различные виды хеш-таблиц и двоичных деревьев поиска. Всего за курс можно набрать 100 баллов. Сертификат выдается за 85 баллов. Сертификат с отличием за 95 баллов.

Раздел в стадии разработки, следите за нашими обновлениями!