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

Эффективные решения вычислительных задач

Без знаний алгоритмов начинающий программист часто изобретает велосипед вместо того, чтобы решать задачу уже проверенными способами. Современные языки программирования всячески облегчают жизнь разработчикам, выполняя множество “грязной” работы. С одной стороны, это хорошо, но с другой - многие программисты перестают понимать, как на самом деле работает компьютер, или имеют весьма поверхностное представление об алгоритмах и структурах данных, лежащих в основе используемых ими решений.

На курсе мы подробно исследуем язык C - это превосходная возможность “пощупать” механизмы, которые лежат в основе современных фреймворков.

Чему Вы научитесь

  • Основам программирования на языке C;
  • Структурам данных и алгоритмам, которые лежат в основе их работы;
  • Общим подходам и полезным методикам для решения сложных задач;
  • Инструментам оценки сложности решаемых задач;
  • Создавать консольные программы на языке C в среде разработки QT;
  • Создавать программы, используя собственные алгоритмы;
  • Создавать собственные структуры данных: стеки, списки, деревья и др.;
  • Оценивать производительность программ;
  • Использовать “незащищённый” режим работы с памятью, основанный на указателях;
  • Динамически выделять и освобождать память;
  • Использовать рекурсию.

Что Вы получите

Видеозаписи всех онлайн-занятий
Методички и домашние задания
Общение с одногруппниками
Сертификат об окончании обучения

Средние оценки

4.2 / 5
Программа
4.6 / 5
Преподаватель

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

  • 1
    Урок 1. Управляющие конструкции языка программирования С
    Язык программирования C; переменные; типы данных; простая программа; управляющие конструкции - часть 1.
  • 2
    Урок 2. Простые алгоритмы с использованием циклов и функций
    Управляющие конструкции - часть 2; функции; генератор псевдослучайных чисел; простые алгоритмы.
  • 3
    Урок 3. Работа с функциями; анализ производительности
    Передача аргументов по значению и по ссылке; прототипы функции; заголовочные файлы; подсчёт времени выполнения программы; структуры.
  • 4
    Урок 4. Работа с массивами и файловой системой
    Массивы; директивы; строки; двумерные массивы; арифметика указателей; файлы.
  • 5
    Урок 5. Алгоритмы поиска и сортировок; сложность алгоритмов
    Алгоритмы; поиск в одномерном массиве; сортировки; анализ качества алгоритма; производительность; количество маршрутов.
  • 6
    Урок 6. Работа со строками и динамическими массивами
    Строки; динамическое выделение памяти; основные сведения о символах и строках; массив строк; функции преобразования строк; динамические массивы; массивы массивов.
  • 7
    Урок 7. Рекурсия
    Рекурсивные алгоритмы; поиск с возвратом.
  • 8
    Урок 8. Динамические структуры данных. Часть 1
    Динамические структуры; списки; реализация стека на односвязном списке; двухсвязные списки.
  • 9
    Урок 9. Динамические структуры данных. Часть 2
    Деревья; рекурсивный обход двоичного дерева; использование динамических структур данных; хеш-таблицы.
  • Нажимая на кнопку "Оплатить участие", Вы принимаете условия договора оферты.

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