algorithms in practice
Solve problems at the speed of thought.
старт:
6 січ. 2025 р.
32 заняття + 12 QA сесій
290 $/міс
10% донатимо ЗСУ
про курс
Принципи, що лежать в основі алгоритмів та структур даних, є актуальними для будь-якого стеку технологій. Якщо ви їх розумієте, ваш код стає більш надійним, швидким та якісним, ви починаєте бачити різні варіанти вирішення проблеми та можете обрати найкращий.
Ми дізнаємося як алгоритми використовуються продакшені, виведемо з нуля основні ідеї, вирішимо безліч задач та побачимо з якими труднощами стикалися автори популярних бібліотек.
Увага: даний курс є викликом. Налаштуйтеся на серйозну роботу, адже результати, яких ви досягнете, перевершать всі очікування.
навчальний план
буде гаряче
Аналіз швидкодії типового API WEB-серверу
Heavy Hitters для DevOps
Асимптотика ітеративних та рекурсивних програм
Ймовірнісний аналіз алгоритмів
Analysis of algorithms
Від аналізу роботи API веб-сервера до ймовірнісних алгоритмів.
Техніка написання стрес-тестів
Ітеративний перебір або як вирішити задачу "в лоб"
Клас задач, що покриваються методом двох вказівників
Префікс-суми на масиві та матриці
Brute-force and Two pointers technique
Що спільного між запитами в DB та ML-алгоритмами?
Як писати код без помилок використовуючи інваріанти
Лінійний пошук для гри Minesweeper та Run-length encoding
Коренева ідея як техніка до пришвидшення коду
Jump search та Galloping search
Binary search в продакшн системах та на невідсортованих даних
Нижня оцінка на задачу пошуку
Searching and Sqrt decomposition
Бінарний пошук у продакшені, а не просто на масиві.
External sort для сортування гігабайтів даних
Задача Convex Hull або як оптимально оточити русню стіною
Quick sort та Quick select. Задача Dutch National Flag
Звязок між Selection sort та Heap sort
Не асимптотичні оптимізації Merge sort
Radix sort або як швидше за Quick sort відсортувати 1.000.000 чисел
Метод Scanline
Sorting and Divide& Conquer
Сортування гігабайтів даних, що перевищують об'єм RAM.
Find most similar websites
Як реалізувати підтримку TTL в Redis
Top-K найпопулярніших елементів
Ефективна реалізація динамічних масивів
Linked list та його варіації для використання в MemSQL
Monotonic Stack. Circular Queue
Перевірка XML на коректність. RPN for expression evaluation
Heap and Linear data structures
Як знайти сайти, що найбільш схожі, або реалізувати підтримку TTL в Redis.
LRU cache та оптимальний cache eviction алгоритм
Huffman coding або як стискати дані?
Задача планування розпорядку подій
Minimum spanning tree
Greedy algorithms
Все про найефективніші алгоритми кешування та стискання даних.
Реалізація regular expressions
Комбінаторні об'єкти та їх перебір
Backtracking або як заповнити Sudoku
Хвостова рекурсія. Tail call оптимізація
Recursion
Від хвостової рекурсії до регулярних виразів. І, так, з бектрекінгом теж розберемося.
Reservoir sampling на MapReduce
Як компактно представити хеш-таблицю в пам'яті
Вирішення колізій. Chaining та Linear Probing
Bloom filter або що роботи якщо дані не влазять в пам'ять?
Алгоритм Рабіна-Карпа для задачі Pattern matching
Probabilistic algorithms and data structures
Реалізуємо свою хеш-таблицю та представимо її компактно в пам'яті.
The algorithm behind spell checkers
Як LaTeX та Microsoft Word вирівнюють текст
Git diff та причому тут обчислювальна біологія?
Як виграти в Blackjack та "красиво" зменшити розмір картинки
Knapsack та оптимальний шлях робота в лабіринті
Dynamic programming
Як працюють текстові редактори та фотошоп?
Розберемо DFS та BFS і реалізуємо Web Crawler та PSTree Linux cmd
Circular dependencies errors і при чому тут Topological sort?
Знаходження найкоротших шляхів: Dijkstra, Bellman-Ford
Binary search tree та як їх легко балансувати? AVL, Treap
Ефективна реалізація auto-complete system на Ternary search tree
Graphs and Trees
Про реалізацію Web Crawler та автодоповнення тексту на сайті.
читає
Іван Петрушенко
Engineering Lead y Squad, Founder в CS Osvita.
Former: Dell Software Engineer, Fiverr Senior Software Engineer, Ring Machine Learning Engineer.
Реєстрація. Перший крок за вами
реєстрація
перший крок за вами
Вітаємо, перший крок до курсу зроблено!
Я приймаю умови Публічної оферти та надаю згоду на обробку своїх персональних даних відповідно до Політики конфіденційності.
відгуки
що говорять випускники
Software Engineer @Spotify
Олександра Кулик
Курс дуже потужний. Буде корисним і новачкам, і тим, хто має більше досвіду — за рахунок поступового ускладнення задач та алгоритмів, а також опцій для додаткового опрацювання. Зможете відточити комплексний підхід до розв'язання задач будь-якої складності. Раджу на всі 100%
Software Engineer @Apple
Дмитро Пащенко
Cаме тут я знайшов відсутню частину пазла, яка заповнила прогалину в моїх знаннях. Це дозволило мені отримувати більш глибоке розуміння технологій, з якими я працюю. Для мене пройти курси було справжнім викликом, але зусилля того вартували.
Senior Software Engineer @Netflix
Дмитро Коваленко
Після місяців підготовки і пари невдалих співбесід, вирішив ґрунтовно зайнятись базою. Потрапив в школу - це було саме те, чого мені не вистачало. Результат не забарився - я в компанії своєї мрії. Раджу пройти навчання щоб виробити звичку освоювати нові теми і вирішувати все складніші задачі, що дуже допоможе у роботі.
Software Engineer @Grammarly
Олексій Згурський
Крутий курс, раджу. Дав чітке розуміння ключових тем та багато практичних навичок.
Senior Java Developer @UKEESS
Андрій Забурянний
Що одразу кидається в очі, так це нереально круто структурована подача матеріалу від Івана. До курсу я думав, що осягнути алгоритми майже неможливо, але під час лекцій все ніби прояснялося на ходу. Вважаю, що кожен розробник зможе закрити якусь прогалину в знаннях завдяки цьому курсу. Окремий респект за домашні завдання та лекційні нотатки. Надзвичайно кайфанув від цього крутого курсу.
Senior Software Engineer @Coursera
Олександр Шень
Чудовий курс! Дуже сподобалося розв'язувати непрості домашні завдання та працювати над задачами аналогічними до продакшену - це чудово доповнює теорію й дає змогу краще зрозуміти пройдений матеріал.
Frontend Lead @Wix
Максим Крамаренко
Мені екстремально сподобалось. Я точно дізнався багато нового і згадав круті штуки, які були забуті у вирі роботи над буденними задачами. Складність була доволі високою, щоб кайфувати від кожного вирішенного завдання. Ми охопили всі теми, які мене цікавили і навіть більше!
Software Engineer @Google
Тимур Пірієв
Структурована, оригінальна та весела подача складних тем. Дуже якісні матеріали, що доповнюють основні лекції. Продумані домашні завдання. Моя рекомендація всім.
Software Engineer @Booking.com
Олександр Верболоз
Алгоритмічний курс перевершив мої очікування! Викладач відмінно мотивує і пропонує матеріал у захопливій формі, що значно полегшує навчання. Завдяки курсу я нарешті отримав базу якої мені не вистачало. Рекомендую CS osvita як початківцям так і професіоналам.
Vice President Software Engineer @JPMorgan
Ігор Хлапонін
Дуже методичний і структурований підхід, який дозволив зрозуміти алгоритми загалом і чому саме той чи інший використовується у конкретному випадку. Це було інтерактивно та дуже цікаво, а не нудно, як на звичайних лекціях в університеті. Також сподобався елемент контесту — це мотивувало займатися більше, щоб отримати кращий результат.
Senior Software Development Engineer @Amazon
Дмитро Космаков
Найкращий курс з Алгоритмів і крапка.
що на вас чекає
have fun and dive deep
Пояснення особливо складних моментів з лекцій. Code review та коментарі до домашніх робіт.
І, так, третя ітерація — це ок.
Панує атмосфера відкритості, доброзичливості, дисциплінованості та русофобії.
цінності
Понеділок, четвер о 18:30, тривалість 1.5 години. Окрім вебінарів, щотижневі зустрічі з куратором. Маєте запитання? Отримуєте відповіді. Мова викладання — українська. Додаткові матеріали — англійською.
зустрічі в Zoom двічі на тиждень
Ком'юніті для обговорення лекцій та обміну хитрими тестами до задач. У кожного ДЗ дедлайн. Коду доведеться написати багато. Мова програмування на ваш вибір.