Онлайн-курс «Алгоритми та структури даних» | robot_dreams
  • онлайн-курс
  • 40 годин
  • mock-інтерв'ю

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

Опануйте алгоритми, щоб побудувати фундамент для ефективнішої роботи з даними, машинного навчання й моделювання.

Артем Верещака

Platform Software Engineer у

Speechify

 

former Tech Lead у Bolt

ЦЕЙ КУРС ДЛЯ ВАС, ЯКЩО ВИ ХОЧЕТЕ:

скорочувати час виконання програм та створювати елегантніші рішення

реалізовувати класичні алгоритми та розробляти власні з нуля

навчитися розв’язувати складні задачі на LeetCode і набути цінного досвіду реального технічного інтерв’ю

здобути конкурентну перевагу, вийти на новий рівень кар’єри та зарплатних очікувань

 

про курс

  • Тривалість:

    10 тижнів

  • Мови для практики:

    JavaScript, Java та Python

Комплексний курс про те, як знаходити нестандартні рішення у складних робочих завданнях, оптимізувати рядки програмного коду й масштабувати ІТ-системи, спираючись на знання з алгоритміки.

ДО ПРОГРАМИ КУРСУ ВХОДЯТЬ

КОНТЕНТ

Ви опануєте алгоритми сортування, бінарні та збалансовані дерева, графи, хеш-функції та хеш-таблиці. Розв’язуватимете одновимірні та двовимірні завдання динамічного програмування та навчитеся розв’язувати робочі завдання за допомогою класичних методів алгоритміки.

ПРАКТИКА

Ви розбиратимете алгоритми мовами Python, Java, JavaScript. Однією з цих мов на ваш вибір писатимете домашні завдання, а лектор даватиме фідбек щодо вашого коду. Після цього ви отримуватимете повний розбір задач і зможете відстежувати свої помилки.

КАР'ЄРА

Ви закриєте прогалини в знаннях та підготуєтеся до problem solving interview у великій IT-компанії. Для 3 найуспішніших студентів лектор проведе тестове технічне інтерв’ю чи особисту консультацію.

 

Програма

  • 01 блок

    Вступ

    • Знайомство з курсом та лектором
    • Вступ до алгоритмів та структур даних

    Результати: дізнаєтеся, що таке структури даних та алгоритми. Зрозумієте, що таке складність алгоритмів та як її рахувати.

  • 02 блок

    Масиви даних

    • Статичні та динамічні масиви даних
    • LeetCode Problems Solving: масиви
    • Case Study: масиви

    Результати: дізнаєтеся, що таке масиви та як з ними працювати. Навчитеся реалізовувати типові завдання на масивах, застосовувати операції та дії над масивами, визначати часову та просторову складність під час роботи з масивами. Зможете розв’язувати алгоритмічні задачі різної складності.

  • 03 блок

    Списки, стеки, черги, рекурсія

    • Зв’язаний список
    • Створення стека та черги поверх масиву чи списку
    • Deque та ArrayDeque
    • LeetCode Problems Solving: списки, стеки, черги
    • Case Study: списки, стеки, черги
    • Основи рекурсії
    • Хвостова рекурсія
    • eetCode Problems Solving: список і рекурсія

    Результати: дізнаєтеся, що таке звʼязані списки, стеки, черги та як з ними працювати. Навчитеся здійснювати операції над ними, виконувати типові завдання зі звʼязаними списками, зі стеків та черг, а також алгоритмічні задачі різної складності.

  • 04 блок

    Алгоритми пошуку та сортування

    • Алгоритми пошуку
    • LeetCode Problems Solving: алгоритми пошуку
    • Алгоритми сортування
    • Сортування злиттям і швидке сортування
    • Сортування: гібридні підходи
    • LeetCode Problems Solving: алгоритми сортування
    • Case Study: алгоритми пошуку та сортування

    Результати: дізнаєтеся про основні алгоритми пошуку й сортування та їхню реалізацію. Ознайомитеся з бібліотеками сортування. Навчитеся реалізувати завдання щодо застосування бінарного алгоритму та сортувати масиви даних. Зможете визначити, який алгоритм краще підходить для розв’язання конкретного завдання.

  • 05 блок

    Дерева як структури даних

    • Дерево як структура даних
    • Бінарне дерево пошуку
    • LeetCode Problems Solving: дерева
    • Case Study: дерева
    • Збалансовані дерева
    • Heap як структура даних
    • Спеціальні дерева
    • LeetCode Problems Solving: Heap та спеціальні дерева
    • Case Study: дерева Advanced

    Результати: дізнаєтеся, які бувають дерева, і навчитеся знаходити спільного предка, діаметр дерева, глибину вузла та суму гілок. Попрацюєте із деревом пошуку. Навчитеся реалізовувати обхід дерева та пошук за ним. Дізнаєтеся про збалансовані дерева. Навчитеся працювати зі спеціальними деревами та розв’язувати класичні завдання з використанням дерев.

  • 06 блок

    Графи як структури даних

    • Графи. Part 1
    • Графи. Part 2
    • LeetCode Problems Solving: графи
    • Case Study: Графи

    Результати: дізнаєтеся, які бувають графи, як їх задавати у вигляді матриці чи списку суміжності. Навчитеся реалізовувати алгоритми обходу та пошуку, знаходження найкоротшого шляху. Зможете розв’язувати типові завдання на графи.

  • 07 блок

    Хеш-таблиця

    • Хеш-таблиця
    • LeetCode Problems Solving: хеш-таблиця
    • Case Study: хеш-таблиця

    Результати: дізнаєтеся про хеш-функції та їхнє призначення, хеш-таблиці та їхні властивості. Навчитеся застосовувати хеш-таблиці та хеш-функції для розв’язання завдань.

  • 08 блок

    Динамічне програмування та жадібні алгоритми

    • Динамічне програмування
    • LeetCode Problems Solving: динамічне програмування
    • Жадібні алгоритми
    • Case Study: динамічне програмування та жадібні алгоритми

    Результати: дізнаєтеся, що таке динамічне програмування, навчитеся визначати прості завдання на динаміку й знаходити розв’язання до них. Зможете застосовувати динамічне програмування, оптимізувати time and space complexity, визначати й виконувати завдання на динаміку з різними підходами. Дізнаєтеся, що таке жадібні алгоритми, та навчитеся розв’язувати проблеми з їхньою допомогою.

  • 09 блок

    Підготовка до технічного інтерв'ю

    • Підготовка до технічного інтерв’ю
    • Підсумки — Q&A

    Результати: дізнаєтеся, з яких етапів складається кодинг-інтервʼю та як до нього підготуватися. Навчитеся визначити класичні підходи та завдання на співбесіді, реалізовувати завдання під час інтерв’ю з обмеженими ресурсами та використовувати інформацію з опису для швидкого пошуку рішення. Зможете декомпозувати завдання.

лектор

Артем Верещака

Platform Software Engineer у Speechify, former Tech Lead у Bolt

  • провів більше 100 тех-інтерв'ю для інженерів і розробників у Bolt

  • протягом трьох років успішно випустив понад 250 студентів курсу «Алгоритми та структури даних»

  • брав участь у написанні бекенду з нуля для застосунку для оренди самокатів та велосипедів Bolt

  • розв'язав більше 1500 задач, щоб навчити вас найважливішим

  • працював над розробкою розширеної пошукової системи для ринку нерухомості Великої Британії в OneDome

  • розробляв вебзастосунок DB Compliance для внутрішнього використання аудиторами в Luxoft

реєстрація

Навчіться автоматизувати та пришвидшувати робочі завдання завдяки алгоритмам

 
 
 
Реєструючись, ви погоджуєтеся з умовами договору-оферти та політикою конфіденційності.