На цьому курсі починають з розуміння, що таке алгоритм та як оцінювати його ефективність. Вивчають O-нотацію - це спосіб описувати швидкість роботи алгоритмів. Розглядають різні типи структур даних та операції, які вони підтримують.
Далі курс показує масив як одну з основних структур даних. Розбирають три способи пошуку в масиві: лінійний, бінарний та інтерполяційний. Кожен метод має різну швидкість роботи - це важливо розуміти при виборі алгоритму.
Тут переходять до алгоритмів сортування. Спочатку розглядають прості методи: бульбашкове сортування, сортування вибором та вставками. Потім переходять до складніших логарифмічних алгоритмів: сортування злиттям та швидке сортування. Кожен метод має свої переваги в різних ситуаціях.
На цьому етапі курс вчить працювати з рекурсією - коли функція викликає саму себе. Розглядають різні види рекурсії та способи її реалізації. Показують, як прискорити рекурсивні алгоритми за допомогою мемоїзації - це техніка збереження проміжних результатів.
Цей блок присвячений основним лінійним структурам даних. Розглядають однозв'язні та двозв'язні списки, їх методи реалізації та основні операції. Також вивчають стек та чергу - структури, які працюють за принципом "першим прийшов - першим пішов" та "останнім прийшов - першим пішов".
Тут курс пояснює, як працюють хеш-функції та хеш-таблиці. Це структури, які дозволяють швидко знаходити дані за ключем. Асоціативні масиви на основі хеш-таблиць - це потужний інструмент для ефективного зберігання інформації.
На цьому етапі курс вводить поняття графів - структур, що складаються з вершин та ребер. Розглядають типи графів та основну термінологію. Показують три способи представлення графів у комп'ютері: матриця суміжності, матриця інцидентності та список суміжності. Вивчають два ключові алгоритми пошуку: у глибину та у ширину.
Цей блок присвячений спеціальним видам графів. Дерева - це графи без циклів, а бінарні дерева пошуку дозволяють швидко знаходити елементи. Піраміди - це особливі дерева, які використовують для пірамідального сортування. Обидві структури мають практичне застосування в реальних задачах.
В кінці курсу розглядають елементи динамічного програмування. Це метод розв'язання складних задач шляхом розбиття їх на простіші підзадачі. Техніка особливо корисна для оптимізаційних задач, де потрібно знайти найкращий розв'язок.
Курс включає 16 онлайн занять у групі з можливістю перегляду записів. Учасники мають доступ до чату з тренером та групою, отримують перевірку домашніх завдань. Додатково проводяться 4 заняття IT English Speaking Club для розвитку професійних мовних навичок.
Доступний пакет Plus, який містить все зі стандартного пакету, а також авторський курс з основ програмування на Java у записі, 60 хвилин індивідуальних консультацій з викладачем та безлімітний доступ до IT English Speaking Club протягом навчання.