Kvanta
cat cat Підтримати проект

Програмування

Програма занять з програмування протягом 4 років проведе вас шляхом від вступу до програмування в інтерактивному середовищі та першого знайомства з мовою С++ та базовими алгоритмами до складних структур даних, алгоритмів та концепцій, які розвивають алгоритмічне й логічне мислення та закладають базу для подальшого вивчення комп'ютерних наук.

1 рік

Для кого ці заняття

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

Починати можна з нуля: перша група не вимагає жодного досвіду програмування, лише базову шкільну математику й уміння користуватися комп'ютером.

Групу ви обираєте за реальними навичками

У кожної групи — свій список необхідних навичок, і мова програмування, якою ви їх здобули, значення не має. Подивіться на «Очікувані знання» кожної групи й оберіть ту, що відповідає вашій підготовці.

Важливо також працювати за межами занять. У програмуванні вміє той, хто пише код сам, а не той, хто дивиться, як пишуть інші.

Наші групи

Кожна група — це один навчальний рік. Групи вибудувані послідовно, від Електроніків до Термінаторів, і кожна наступна спирається на навички попередньої. Саме за розділом «Очікувані знання» ви обираєте самостійно групу. Якщо група не підійде пізніше буде можливість змінити її.

Електроніки

1 рік навчання
Очікувані знання
  • Математична база на рівні 4-5 класу
  • Базове вміння користуватися комп'ютером
  • Уміння створювати файли та папки — буде плюсом

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

Ключові теми
  • Змінні
  • Цикли
  • Умовні та логічні оператори
  • Масиви (одно- та двовимірні)
  • Функції та процедури
  • Анімації, події та прості ігри

Дроїди

1 рік навчання
Очікувані знання
  • Уміння працювати зі змінними та масивами
  • Розуміння поняття функції (процедури) та вміння застосувати її для розв'язання найпростішої задачі
  • Мова програмування, якою здобуті ці навички, значення не має

На здобутих в Електроніках навичках група переходить на C++ і починає освоювати базу олімпіадного програмування: розв'язувати задачі, здавати рішення на перевірку та вивчати перші алгоритми — від сортування й бінарного пошуку до перших задач на графах.

Ключові теми
  • C++ та основи мови
  • Асимптотична складність алгоритмів
  • Бінарний пошук
  • Сортування та рекурсія
  • STL
  • Графи: перші кроки (DFS, BFS)

Кіборги

1 рік навчання
Очікувані знання
  • Впевнене володіння базовими конструкціями програмування: змінні, масиви, цикли, умови, функції
  • Знання основ STL
  • Розуміння основ алгоритмів: бінарний пошук, сортування, рекурсія, прості задачі на масиви
  • Бажано: знайомство з динамічним програмуванням, префіксними сумами, методом двох вказівників та базовими алгоритмами на графах

Поглиблений рівень алгоритмів і структур даних: просунуте динамічне програмування, алгоритми на графах, комбінаторика й теорія чисел, а також структури даних на кшталт дерева відрізків і DSU.

Ключові теми
  • Динамічне програмування
  • Графи: DFS, BFS, найкоротші шляхи
  • Дерево відрізків та DSU
  • Комбінаторика
  • Теорія ігор
  • База Дроїдів

Термінатори

1 рік навчання
Очікувані знання
  • Впевнене володіння всіма темами програми Кіборгів: STL, сортування та пошук, рекурсія, динамічне програмування
  • Базові структури даних: DSU, sparse table, дерево відрізків
  • Досвід роботи з графами: DFS, BFS, найкоротші шляхи

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

Ключові теми
  • Складніші алгоритми на графах (алгоритм Дейкстри, LCA)
  • Просунуті техніки на деревах (HLD, центроїдна декомпозиція)
  • Дерево відрізків та дерево Фенвіка
  • Складніші техніки динамічного програмування
  • Коренева декомпозиція: алгоритм Мо
  • База Кіборгів

Готові спробувати?

Приєднуйтесь — і зробіть свій перший крок у програмуванні разом з нами. Найпрацьовитіші учні навчаються у нас зовсім безкоштовно.