Geekbrains

Алгоритмы и структуры данных. Базовый курс.

  • Начальный уровень
  • Наставник: Нет
  • Сертификат: Нет
  • Формат: Online
  • Рассрочка: Нет
  • Язык: Русский
  • Осталось мест: Неограничено
Записаться

Алгоритмы и структуры данных. Базовый курс.

Фундаментальный курс «прокачивает» базовые знания computer science. Дает понимание, как работает язык программирования и действуют применяемые в коде команды и решения. На примере языка С студенты смогут «пощупать» механизмы, которые лежат в основе современных фреймворков. Курс дает знания, отличающие программиста от «юзера», пишущего код

Программа обучения
  • Урок 1. Простые алгоритмы
    Введение в C. Структуры. Алгоритмы.
  • Урок 2. Асимптотическая сложность алгоритма. Рекурсия
    Асимптотическая сложность алгоритма. Рекурсивный перебор. Ханойская башня.
  • Урок 3. Поиск в массиве. Простые сортировки
    Поиск в одномерном массиве. Интерполяционный поиск. Сортировка массива.
  • Урок 4. Динамическое программирование. Поиск возвратом
    Наибольшая общая подпоследовательность. Динамическое программирование. Поиск с возвратом. Задача о восьми ферзях.
  • Урок 5. Динамические структуры данных
    Стек, очередь. Создание стека с использованием массива. Динамические структуры данных.
  • Урок 6. Деревья
    Двоичные деревья поиска. Хеш-функция. MD5. Хеш-таблицы.
  • Урок 7. Графы. Алгоритмы на графах.
    Графы, обход графа в ширину и глубину. Волновой алгоритм. «Жадные алгоритмы».
  • Урок 8. Сложные сортировки
    Сортировка Хоара (Quick sort). Пирамидальная сортировка (Heap sort) Сортировка слиянием (Merge sort). Сортировка подсчетом (CountingSort). Алгоритм со списком (pigeonhole sorting). Блочная сортировка.
Преимущества
  • Видеозаписи всех онлайнзанятий
  • Методички и практические задания
  • Общение с одногруппниками
  • Сертификат об окончании обучения
Знания и навыки, которые приобретете
  • Владеть основами программирования на языке C
  • Знать структуры данных и алгоритмы, которые лежат в основе их работы
  • Владеть общими подходами и полезными методиками для решения сложных задач
  • Использовать инструменты оценки сложности решаемых задач
  • Создавать консольные программы на языке C в среде разработки QT
  • Создавать программы, используя собственные алгоритмы
  • Оценивать производительность программ
  • Использовать «незащищенный» режим работы с памятью, основанный на указателях
  • Динамически выделять и освобождать память
  • Использовать рекурсию

Преподаватели

  • Geek Brains

  • Дмитрий Анзин

    Руководил проектами Инновационно-технологического центра. Стаж программирования — около 10 лет, знаком с C#, Java, JavaScript, HTML, CSS, PHP, ActionScript, C++

  • Сергей Камянецкий

    Опубликовал 6 приложений в Windows Phone Store, в двух из них был руководителем проекта. Разработал и зарегистрировал систему упрощения и автоматизации составления частотных словарей, занимается научной работой.

  • Иван Овчинников

    Ведущий специалист центра разработки информационных систем в АО «Российские космические системы». Писал прошивки микроконтроллеров для телеметрических систем, которые входят в состав космических аппаратов, находящихся на орбите нашей планеты.

  • Андрей Заярный

    Программист С#, учитель информатики в Одинцовском лицее МГИМО им. А. М. Горчакова (МИД России). Создавал программы для автоматизации работы учителя, мини-игры на языке C# с использованием библиотеки XNA, сайт для автоматизированной системы проверки правильности написания программ.

  • Максим Горозий

  • Ярослав Меньшиков

  • Татьяна Жданова

  • Михаил Цуканов