Пройшов курс "C++ для GameDev".
Куратор Богдан Левунець знає свою справу на 100%. Загалом курс дуже насичений і підійде як для тих, хто не знає C++, так і для досвідчених розробників. З іншого боку, я б додав ще десь 2-4 тижні на проходження курсу, оскільки матеріалу багато, і навчання потребує значних зусиль та часу.
В цілому курс дуже сподобався, і я раджу його до проходження!
Курси C / C++ розробник
- C / C++
- Gamedev / Unity / Game Design
Комплексний курс, який навчить кодити на C++ з нуля, дозволить опанувати принципи обʼєктно-орієнтованого програмування, ключові бібліотеки та інструменти для того, щоби створювати десктопні й мобільні ігри та розвиватися в геймдеві.
Програма курсу
Вступ та підготовка
- Дізнаєтеся, що таке мова програмування високого рівня і яке в неї призначення
- Розглянете парадигми та філософію мови С++
- Зрозумієте, чому С++ - найпоширеніша мова для геймдеву
- Завантажите та налаштуєте середовище розробки (IDE)
- Запустите програму Hello World на С++
Основи програмування на C++
- Дізнаєтесь про основні примітивні типи даних в С++: int, char, bool, singed/unsinged, float/double
- Зможете створювати тип даних з визначеними програмістом допустими значеннями
- Навчитеся виводити дані в консоль з простою обробкою виведення за допомогою маніпуляторів
- Будете перетворювати змінні до різних типів
Оператори
- Вивчите арифметичні оператори та навчитеся використовувати їх для числових розрахунків
- Дізнаєтесь, як працювати з операторами присвоєння
- Навчитеся порівнювати арифметичні типи даних
- Зрозумієте, який пріоритет виконання арифметичних та логічних операторів у складених виразах та які способи зміни пріоритетності існують
- Ознайомитеся з побітовими операціями
Розгалуження та умови
- Дізнаєтеся, навіщо та як створювати умовні оператори
- Навчитеся створювати логічні вирази для умовних операторів та поєднувати кілька умовних операторів в ієрархії виконання
- Дізнаєтеся, що таке тернарний оператор і як його використовувати
- Навчитеся використовувати switch як альтернативний набір if-else-if блоків
Система контролю версій Git
- Опануєте застосування систем контролю версій в програмуванні над власним кодом та в команді
- Зрозумієте принцип роботи Git та зможете використовувати його у проєктах
- Зареєструєте профіль на github для збереження проектів і домашніх завдань
- Дізнаєтесь про типи інших систем контролю версій, зокрема популярний у геймдев Perforce
Цикли
- Дізнаєтеся, що таке цикл та у яких випадках його застосовувати
- Навчитеся використовувати цикли 3 типів та детально розберете особливості кожного
- Дізнаєтесь, як створювати вкладені цикли
Воркшоп: задачі, цикли, умови
- Попрацюєте з типовими помилками й навчитеся їх фіксити
- На практиці ознайомитеся зі способами дебагу програми у Visual Studio IDE
Функції
- Зрозумієте, що таке функції та навіщо вони потрібні
- Розглянете область доступу функції
- Навчитеся створювати функції з довільним числом параметрів та вихідним значенням, а також викликати їх, коли вам це необхідно
- Навчитеся створювати глобальні змінні й константи та використовувати їх у довільних функціях
- Дізнаєтесь, як визначати кілька перезавантажень для функцій та додавати параметри за замовчуванням, як створювати хедер-файли та підключати їх у різних місцях програми
Строки і масиви
- Дізнаєтесь, як створити колекцію однорідних даних із використанням одно- та двовимірних масивів визначеного розміру
- Зрозумієте принципи, за якими масиви зберігаються в пам'яті
- Навчитеся модифікувати масиви
- Дізнаєтесь, як використовувати C-style рядки константного розміру
Посилання та вказівники
- Зрозумієте, що таке посилання, адреси змінних та вказівники
- Дізнаєтесь, як отримати дані з вказівника та адресу змінної
- Навчитеся передавати вихідні параметри та повертати з функції посилання
- Зрозумієте, навіщо передавати у функцію вказівники та посилання
Алгоритми. Робота з циклами та масивами
- Розглянете різні принципи роботи з індексами циклів і вкладеними циклами
- Вивчите підходи до пошуку даних залежно від стану масиву
- Розберете задачі сортування даних та базові алгоритми сортування
Алгоритми. Складність, пошук і сортування
- Ознайомитеся з підходами до оцінювання алгоритмів за різними параметрами
- Дізнаєтесь, як шукати дані в масиві
- Розберете алгоритми сортування даних
Воркшоп: робота з функціями, масивами, посиланнями та вказівниками
- Розберете реальні задачі на алгоритміку
- Реалізуєте алгоритми пошуку та сортування даних
Робота з динамічною пам'яттю
- Навчитеся виділяти та очищати довільну кількість пам'яті для різних типів даних із масиву
- Зрозумієте різницю між стеком та масивом
- Розглянете особливості створення спеціальних методів класу та їхню взаємозалежність у контексті роботи з динамічною пам'яттю
- Зрозумієте причини та наслідки витоків пам'яті, а також розглянете можливі способи розв'язання цієї проблеми
Структури даних
- Дізнаєтесь, як створювати нові типи даних, що агрегують в собі інші змінні
- Навчитеся передавати структури як вхідні та вихідні параметри функцій
- Навчитеся оперувати структурами в рамках масивів та складених структур
Знайомство з ООП. Класи
- Навчитеся створювати нові типи даних, об'єднувати поведінку та дані в одному об'єкті
- Розберете різницю між класом та об'єктом класу
- Вивчите поняття модифікаторів стосовно особливостей використання інстенсів класу
- Зрозумієте різницю між агрегацією та композицією під час додавання залежностей між класами
ООП. Оператори та статичні поля
- Зрозумієте вплив дружніх функцій на модифікатори доступу
- Навчитесь імплементувати та використовувати на практиці перевантажені оператори
ООП. Наслідування та поліморфізм
- Зрозумієте принцип реалізації наслідування, принцип поліморфізму, чистих абстрактних функцій та інкапсуляції даних
- Вивчите порядок виклику конструкторів в ієрархії класів
ООП. Приведення класів в ієрархії. Наслідування проти композиції
- Вивчите способи приведення класів відповідно до ієрархії та розберете принципові відмінності між статичним і динамічним приведенням
- Розберете типові випадки використання наслідування та композиції на практиці
- Навчитесь обирати підхід залежно від поставленої задачі
Воркшоп: побудова міні-гри у консолі з використанням поліморфізму, практика дизайну архітектури застосунків
Підготуєте власний проєкт "Настільна гра в Манчкін" і отримаєте фідбек від лектора.
Функціональні об'єкти
- Дізнаєтеся, що таке функціональні об'єкти, анонімні функції та лямбди
- Навчитеся передавати параметри в лямбду
- Навчитеся використовувати лямбди для стандартних алгоритмів STL-бібліотеки
Бібліотека стандартних функцій
- Ознайомитеся з бібліотекою std::string та її стандартними функціями
- Розберете відмінності різних структур даних та методи std::string
- Вивчите поняття ітераторів та зрозумієте, чому їх використовують замість контейнерів
- Навчитеся використовувати набір алгоритмів зі стандартної бібліотеки функцій STL
Шаблонне метапрограмування
- Дізнаєтеся, що таке шаблони програмування та навіщо їх використовують
- Навчитеся створювати шаблонні функції та класи
- Зрозумієте, як змінювати поведінку шаблонних функцій для окремо визначених типів
- Крок за кроком вивчите процес створення шаблонів на компайл-таймі
- Ознайомитеся з бібліотекою type-traits
Графи як структура даних для геймдеву
- Розберете поняття графа та його структури
- Розберете кейси, в яких використовують цю структуру, і зрозумієте, чому вона така популярна в геймдеві
- Вивчите способи представлення графів та можливу реалізацію на С++
- Вивчите базові алгоритми над графами, зокрема BFS і DFS
Вступ до лінійної алгебри в контексті геймдеву
- Згадаєте поняття вектора та матриці, дізнаєтесь, як ці поняття застосовуються на практиці в геймдеві
- Навчитеся виконувати прості операції над векторами, зокрема скалярне та векторне множення
- Дізнаєтеся про базові матричні перетворення векторів
Багатопотокове програмування
- Розберетеся в понятті багатопотоковості
- Зрозумієте, в чому різниця між паралельним і багатопотоковим програмуванням
- Навчитеся створювати треди для виконання операцій у багатопотоковому середовищі
- Дізнаєтесь, як синхронізувати доступ до спільного ресурсу
- Зрозумієте, як використовувати потоки в геймдеві
Подальші кроки в GameDev
- Зрозумієте, чому С++ широко використовується для розробки ігор різного ступеня складності
- Вивчите основні компоненти, які повинен надавати ігровий рушій для ефективного створення ігор
- Розберете цікаві проєкти на одному з ігрових рушіїв
- Зрозумієте переваги та можливості, які надає Unreal Engine для великих команд розробників ААА-проєктів та інді-ігор
Патерни проєктування в GameDev
- Дізнаєтеся, що таке патерни проєктування та навіщо використовувати їх під час розробки ігор
- Ознайомитеся з патернами проєктування GoF
- Вивчите специфіку патернів, властивих сфері геймдеву
Фінальний проєкт: видача курсового проєкту
- Ознайомитесь зі скелетом курсового проекту зі створеним ігровим циклом, набором простих ігрових об'єктів з текстурою, реакцією ігрового вікна та ігрових об'єктів на інпут з клавіатури та миші
- Отримаєте завдання для фінального проєкту
Фінальний проєкт
Сформуєте беклог ідей для 2D-гри відповідно до завдання.
Фінальний проєкт: представлення MVP лектору, задачам тощо
Підготуєте MVP власної гри та отримаєте фідбек від лектора.
Фінальний проєкт: презентація курсового проєкту
Допрацюєте гру та представите її лектору й колегам.
Розвиток кар'єри в ІТ
- Ознайомитеся з підходами до розвитку кар'єри
- Знайдете свої сильні та слабкі сторони, визначите зони для розвитку
- Дізнаєтесь, як junior-фахівцю отримати свій перший офер
- Ознайомитеся з організаційною структурою сучасних ІТ-компаній
Стратегія пошуку роботи
- Отримаєте overview ресурсів для пошуку роботи та замовників
- Дізнаєтесь, як розробити стратегію пошуку роботи під свої скіли
- Зрозумієте, навіщо вам профіль у LinkedIn, і дізнаєтесь, як правильно оформити акаунт у соціальних мережах так, щоби рекрутери його помічали
Резюме та супровідний лист
- Вивчите структуру резюме
- На прикладах розберете найпоширеніші помилки під час складання резюме
- Отримаєте рекомендації щодо написання супровідного листа і дізнаєтеся, чому іноді супровідний лист важливіший за резюме
Інтерв'ю з рекрутером та hiring-менеджером + воркшоп Q&A
- Дізнаєтеся, з яких етапів складається процес залучення нових співробітників до компанії
- Ознайомитеся зі структурою інтерв'ю
- Підготуєтеся до інтерв'ю з рекрутером
- Дізнаєтесь, які запитання необхідно поставити рекрутеру та hiring-менеджеру під час інтерв'ю
- Навчитеся вести переговори під час укладання job-офера
Особливості курсу
- Вивчення С++
- Кейс у портфоліо
- Кар'єрний буст
Викладачі курсу
Богдан Левунець - С++ Game Developer at Ubisoft
Більше інформації- C / C++
Програма курсу
Огляд C++
- Парадигми та ідеологія С++
- Поняття про роздільну компіляцію
- Препроцесор, компілятор, лінкер
Синтаксичні примітиви мови
- Система типів С++. Фундаментальні типи даних
- Оголошення та визначення, області видимості
- Структура оголошень сутностей програми
- Літерали
- Змінні та констант, їх ініціалізація
- Lvalue, rvalue
- Перерахування (enum)
- Огляд оголошення функцій, структур, об'єднань, класів
- Принцип роботи інструкцій (statements)
- Оператори С++
- Пріоритети та асоціативність операторів
- Інструкції керування потоком виконання. if, оператор вибору ?:, switch
- Цикли while, do-while, for, команди break та continue
- Goto
- Вказівники та масиви
- Типізовані вказівники та вказівники без типу
- Нульовий вказівник
- Арифметика вказівників
- C-стрічки
- Динамічна пам'ять
- New та delete
- Успадковані засоби С для роботи з пам'яттю - malloc, calloc, realloc, free
- Посилання
- Функції. Оголошення та визначення
- Формальні параметри та значення, що повертаються
- Способи передачі аргументів - за значенням, за вказівником, за посиланням
- Масиви, як аргументи функцій
- Рекурсивні функції
- Статичні локальні змінні
- Статичні функції
- Inline-функції
- Перевантаження функцій. Правила вибору функцій для перевантаження
- Заплутування імен, extern "C"
- Аргументи по замовчуванню
- Функції із змінною кількістю аргументів
- Вказівники на функції
- Int main(), доступ до аргументів командного рядка та змінних середовища
- Препроцесор
- Макроси (object-like macros)
- Макроси з аргументами (function-like macros)
- # та ##
- Умовна компіляція
- Стандартні та специфічні для платформи визначені наперед макроси
- #error, нестандартна директива #warning
- #pragma
- assert
Структури, об'єднання, класи, динамічне ООП
- Структури
- Об'єднання
- Поняття класу, поля даних та методи
- Конструктор, деструктор, конструктор по замовчуванню
- Вказівник this, константні методи
- Статичні дані та методи класу
- Інкапсуляція
- Друзі класу
- Успадкування, принцип підстановки
- Публічне (відкрите) успадкування, як реалізація принципу "нащадок є предком"
- Приватне успадкування - успадкування реалізації, з наданням іншого інтерфейсу
- Поліморфізм, віртуальні функції
- Абстрактні класи
- Принципи побудови ієрархії класів
- Паттерн проєктування NVI (Non-Virtual Interface)
- Ідіома "віртуального конструктора"
- Множинне успадкування, віртуальні базові класи
- Неявно створювані методи класу
- Узгодженість копіювання-створення-знищення-(переміщення для С++11)
- Перевантаження операторів. Синтаксис і правила застосування
- Конструктори з одним аргументом, explicit
- Оператори неявного приведення типів
Службові засоби
- Простори імен
- Комбінування просторів імен
- Анонімні простори імен
- Виключення
- Ієрархії виключень
- Стандартні виключення
- Приведення типів
- Приведення типів у стилі С++
- Успадковане приведення типів у стилі С
Шаблони
- Шаблони функцій та класів
- Інстанціювання
- Параметри шаблонів. Параметри по замовчуванню
- Перевантаження функцій із врахуванням шаблонів
- Спеціалізація
- Часткова спеціалізація
- Взаємодія шаблонів із рештою засобів мови
- Успадкування за участю шаблонів
- Методи-шаблони
- Статичні методи та дані шаблонів класів
- Друзі шаблонів
- Шаблони як параметри шаблонів
- Типи залежні від параметрів шаблонів, typename I template-"конкретизація"
- Явне інстанціювання
- Прості приклади мета-шаблонного програмування
- Шаблони як засоби статичного (часу компіляції) ООП
Стандартна бібліотека
- Потоки вводу-виводу
- Ієрархія потоків
- Класи ostream/istream та відповідні наперед створені потоки: cin/cout/cerr/clog
- Перевантажені оператори << та >>
- Низькорівневі операції виводу: puts, write
- Низькорівневі операції вводу: get, getline, ignore, peek, putback, unget, read, readsome, gcount
- Форматування виводу. Прапорці форматування, маніпулятори
- Стан потоку, прапорці good, fail, bad, eof; їхня спільна робота, перевірка стану потоку
- Виключення потоків
- Буфери потоків
- Файлові потоки
- Відкриття файлових потоків, режими відкриття
- Файлові вказівники
- Стрічкові потоки (stringstream)
- Std::string
- Засоби маніпуляції стрічками - створення, пошук, видалення, об'єднання, вставка, тощо
- Допоміжні засоби - numerical_limits, pair, min, max, swap, тощо
- STL - стандартна бібліотека шаблонів
- Контейнер std::vector
- Ітератори
- Класи ітераторів згідно їх потужності
- Інтервали
- Стандартні алгоритми
- Алгоритми, що не модифікують послідовність
- Алгоритми, які модифікують послідовність
- Об'єкти-функції, (лямбда-функції С++11)
- Адаптери
- Предикати
- Генератори ітераторів (back_inserter і компанія)
- Стандартні контейнери
- Ідіома remove-erase
- Послідовні контейнери: vector, deque, list
- Асоціативні контейнери: set, map, multiset, multimap
- Адаптери: queue, priority_queue, stack
C++11/C++14
- Покращення конструкцій, що вже існують
- Списки ініціалізації
- Універсальна ініціалізація
- Виведення типів, auto та decltype
- For для інтервалів (Range-based for)
- Лямбда-функції
- Альтернативний синтаксис оголошення функцій
- Делеговані конструктори
- Явні перевизначення віртуальних функцій, заборона перевизначення (override і final)
- Nullptr
- Типізовані перерахування
- Explicit для операторів перетворення типів
- Синоніми шаблонів (Template aliases)
- Узагальнені об'єднання
- Нові можливості ядра мови
- Нові види стрічкових літералів - "сирі" та Unicode-літерали
- Користувацькі літерали
- Керування методами, що генеруються автоматично --- default і delete
- Керування вирівнюванням
- Атрибути функцій
- static_assert
- Огляд шаблонів із змінною кількістю аргументів
- Зміни, пов'язані із продуктивністю
- Rvalue-посилання, move-конструктори
- Constexpr
- Модифікація та деталізація поняття POD
- Extern-шаблони
- Нове у стандартній бібліотеці
- Tuple
- Розумні вказівники
- Хешовані контейнери: unordered_set, unordered_multiset, unordered_map, unordered_multimap
- Масив фіксованого розміру std::array та однозв'язний список std::forward_list
- Нові алгоритми
- Обгортки для функцій (function wrappers)
- Регулярні вирази
- Просунуті генератори випадкових чисел
- Властивості типів (type traits)
- Багатопоточність
- Модель пам'яті С++, з врахуванням багато поточності
- std::thread
- Мютекси та умовні змінні
- Атомарні операції та змінні
- Std::future і std::promises для більш високорівневої багатопоточності. std::async
- Thread-local storage
Особливості курсу
- Робота з експертами
- Зворотній зв'язок
- Ефективне навчання
- Диплом
- Закритий телеграм-чат
- C / C++
Студенти ознайомляться з логікою програмування на базовому рівні, створять консольні програми та програми з графічним інтерфейсом мовою C++. Навчаться спрощувати та оптимізувати код, документувати проєкти. Напишуть базовий проєкт типу конвертер валют, банкомат тощо за зразком. Захистять індивідуальний підсумковий проект.
План курсу
Технічні навички
Базові принципи
Освоїмо принципи програмування та розробки програм. Навчимося створювати нескладні скрипти та алгоритми, використовуючи послідовності, оператори та цикли.
Синтаксис та ООП
Опануємо основи синтаксису мови С++, познайомимося з принципами об'єктно-орієнтованого програмування та попрактикуємося у написанні фрагментів коду.
Розробка
Пройдемо усі етапи створення і функціонування програми. Створимо декілька власних учбових проектів такі як калькулятор, конвертер, вікторина, програвач музики.
Проєктний підхід
Пройдемо повний цикл проектування та створення проєктів "по-дорослому": від ідеї та плану до взаємодії з командою та презентації власних проєктів батьками.
English
Освоїмо технічну термінологію та базову IT-лексику, а також навчимося працювати у програмах з англійським інтерфейсом.
Соціальні навички
Впевненість
Сформуємо впевненість у собі та своїх здібностях, навчимося бути проактивним, не бояться робити помилки, а аналізувати їх та швидко приймати рішення.
Самостійність
Освоїмо інструменти самоорганізації. Навчимося самостійно ставити цілі, планувати та керувати своїм часом.
Емоційний інтелект
Навчимося керувати своїми емоціями. Логічно та послідовно вибудовувати свою мову та аналізувати поведінку інших людей, робити правильні дії.
Самопрезентація
Зможемо впевнено та вільно виступати на публіці. Завойовувати довіру, цікаво та лаконічно презентувати себе чи свій проєкт.
Працювати в команді
Комунікувати з усіма членами команди, брати на себе відповідальність за результат, знаходити компроміси та позитивно вирішувати конфлікти.
Креативність
Розвинемо вміння генерувати безліч ідей з нестандартним підходом, навчимося бачити проблеми під іншим кутом і вирішувати їх унікальним способом.
Бізнесові навички
Бізнес мислення
Зрозуміємо, що таке бізнес та як він влаштований в інтернеті. Дізнаємося як формується бюджет проєкту і з чого він складається: пошук ідеї, формування бізнес-моделі та складання свого бізнес-плану.
Управління фінансами
Розберемося, що таке гроші та як ними користуватися. Навчимося розрізняти, планувати, контролювати свої доходи та витрати. Чи зможемо ефективно розпоряджатися засобами та розвивати в собі навички управлінця.
Стратегічне планування
Глобалізація економіки та автоматизація виробництва сприяють створенню нових бізнес-моделей. Дізнаємося, які напрями та професії будуть затребувані у найближчі 10 років: стратегія блакитного океану, штучний інтелект, кібербезпека та Meta-всесвіт.
Особливості курсу
- Навчання через практику
- Щотижневі лабораторії Skills Lab
- Фіксація результату
- Онлайн-підтримка викладача
- Онлайн-консультації
- Можливість офлайн навчання
- Захист випускного проєкту
- Гейміфікація
- Особистий кабінет
- Бонуси за активність на курсі
- Домашні завдання
- Звітність для батьків
- Невеликі групи
- C / C++
План курсу
Основні теми курсу
- Оператори введення - виведення: cin, cout. Поняття змінної і типу даних
- Оператори умови if i if-else
- Знайомство з циклами: for, while, do-while
- Статичні масиви і рядки
- Функції. Поняття функції
- Робота з файлами
- Види пам'яті комп'ютера
- Поняття покажчика. Динамічні масиви. Оператори new,delete. Ініціалізація масиву через покажчик. Модифікація попередніх програм під роботу з динамічною пам'яттю
- Подання пам'яті в "залозі". Різні системи числення. Рішення математичних задач. Реалізація виведення числа в будь-якій системі числення
- Арифметика покажчиків. Навігація по пам'яті. Розмір різних типів даних. Передача масивів у функцію через покажчик
- Поняття структури. Ініціалізація і доступ до елементів структури. Структура в структурі. Поняття інкапсуляції і абстракції
- Динамічні масиви
- Подання структур в пам'яті
- Алгоритми сортування
- Алгоритми пошуку
- Вступ до ООП
- Головні методи класу: конструктор і деконструктор. Модифікатори полів класу: private, protected, public. Перебір БД школи під роботу з класами
- Спадкування класів. Види наслідувань. Модифікація БД школи
- Поліморфізм C++. Virtual - функції. Використання поліморфізму в реальних проєктах. Написання тестового прикладу із застосуванням поліморфізму
- Бібліотека STL. Контейнер vector
- Структура даних linked list. Реалізація власного зв'язного списку
- Покажчик void*. Принципи реалізації універсального linked list
Результат навчання
Програми:
- Компілятори мови програмування C++: Microsoft i GNU/MinGW у середовищі Windows
- Середовища програмування: MicrosoftVisualStudio та CodeBlocks
- Графічна бібліотека TX Library
Освітній процес:
- Чітке розуміння завдань, що вирішуються програмуванням
- Впевнене знання основ мов C/C++
- Уміння раціонально організовувати робочий процес для ефективного досягнення поставлених цілей
- Навички написання анімованих графічних програм в середовищі Windows
- Програмування мережевих комп'ютерних ігор
- Досвід роботи в команді
- Отримання архітектурних навичок розробки великих програм
Особливості курсу
- Для дітей від 12 років
- Тривалість курсу 9 місяців
- Групові заняття в Zoom
- Зручний графік занять
- Не витрачаєте час на дорогу
- Можливість індивідуального навчання
- C / C++
Програма курсу
Теми:
- Короткий огляд С++. Структура програми
- Вбудовані типи даних, перетворення типів, змінні, масиви
- l-value та r-value посилання, вказівники, простір імен
- Вирази, оператори
- Цикли, цикли з передумовою і післяумовою
- Ввід/вивід даних, робота з командним рядком, файловий ввід/вивід
- Статичне і динамічне виділення пам'яті
- Функції, передача параметрів та повернення результату, функція main()
- Перевантаження функцій. Шаблони функцій
- Класи і структури. Оголошення класу. Інкапсуляція даних. Члени класу, конструктори/деструктори, оператори присвоєння, "Правило 5"
- Шаблони класів. Бібліотека STL, контейнери і базові алгоритми
- Наслідування, Поліморфізм, віртуальні функції. Перевизначення віртуальних функцій
- Чисто віртуальні функції. Абстрактні класи, інтерфейси. Множинне наслідування
- Знайомство з Qt. MVC. Основні класи
- Створення з'єднань в Qt
- Написання гри Змійка на Qt
- Додатковий проєкт і захист
Результат після проходження курсу:
- Чітке розуміння завдань, що вирішуються програмуванням
- Впевнене знання основ мови С ++
- Уміння раціонально організовувати робочий процес для ефективного досягнення поставлених цілей
- Отримання архітектурних навичок розробки великих програм
Особливості курсу
- Інноваційний підхід до колективного навчання
- Підтримка ментора
- Повна комунікація з ментором та одногрупниками
- Сертифікат після здачі іспиту і проєкту
- Можливість розділити платежі за навчання
Викладачі курсу
Тарас Обервенець - C++ розробник
Більше інформації- C / C++
- JavaScript
- Python
Учасники ознайомляться з основними принципами об'єктно-орієнтованого програмування, дізнаються про його складові, принципи та застосування. Курс буде корисний для тих, хто вже знайомий з кодом Python, C++ або Javascript.
Програма курсу
Теми:
- Парадигми програмування
- ООП. Проєктування
- Основи ООП
- Класи. Об'єкти. Властивості та методи
- Принципи ООП
- Конструктори
- Методи доступу
- Спадкування
- Відносини між класами
- Об'єктно-орієнтовані мови програмування
Опис курсу
Якщо ви вже можете написати код однією з мов програмування (Python, C++ або JavaScript), то саме час познайомитись з ООП. Що ж це таке і навіщо воно потрібно? ООП - об'єктно-орієнтоване програмування, яке дає можливість описати реальний світ як сукупність об'єктів, що взаємодіють між собою: персонажів в іграх, функцій в програмах, елементів в пристроях. Більшість проєктів написано саме з використанням ООП. Складно? Ні, реально і практично. Приєднуйтесь!
- тривалість заняття - 60 хвилин
- інтенсивність - 1 заняття 2 рази на тиждень
- повна тривалість курсу - 3 місяці, 24 заняття
- заняття проходять онлайн, що дає змогу вчитися в комфортній, безпечній обстановці та не пропускати зустрічі
Що необхідно для навчання?
Ноутбук або комп'ютер, під'єднаний до інтернету та оснащений необхідними гарнітурами (колонки або навушники, вебкамера, мікрофон).
Особливості курсу
- Авторська система освітніх курсів
- Унікальна команда тренерів
- Турбота й індивідуальний підхід
- Офіційний сертифікат
- Навчання в будь-який час і з будь-якого місця
- Комфортний освітній процес. Заняття проходять у мінігрупах
- Засновник - перша в Україні дистанційна школа "Оптіма"
- Корисні та потрібні знання. Максимум практики в кожному занятті
Викладачі курсу
Людмила Булигіна - Викладає курси "Старт програмування", "Старт програмування з мовою C/C++"
Більше інформації- C / C++
На курсі діти вивчатимуть дві різні мови програмування: C та C++. Вони навчаться основ алгоритмізації, програмування, напишуть свою першу програму і зрозуміють, чи варто їм розвиватися в цьому напрямі далі.
Програма курсу
Теми:
- Вступ до програмування C\C++
- Умови, логіка коду
- Робота з даними
- Блоки коду. Цикли. Алгоритми
- Створення ігрових стратегій
- Робота з бібліотеками
- Створення функцій
- Масиви. Робота із символами та словами
- Об'єктно-орієнтоване програмування
- Перший ООП проєкт. Розробка. Захист
Опис курсу
На курсі діти навчаться основ алгоритмізації та програмування, напишуть свою першу програму і зрозуміють, чи варто їм розвиватися в цьому напрямі далі. У навчальній програмі поєднані дві різні мови програмування - C та C++, і це дає комплексне розуміння принципів програмування цими та будь-якими іншими мовами.
- тривалість заняття - 60 хвилин
- інтенсивність - двічі на тиждень
- повна тривалість курсу - 3 місяці, 24 занять
- заняття проходять онлайн, що дає змогу вчитися в комфортній, безпечній обстановці та не пропускати зустрічі
Що необхідно для навчання?
Ноутбук або комп'ютер, під'єднаний до інтернету та оснащений необхідними гарнітурами (колонки або навушники, вебкамера, мікрофон).
Особливості курсу
- Авторська система освітніх курсів
- Унікальна команда тренерів
- Турбота й індивідуальний підхід
- Офіційний сертифікат
- Навчання в будь-який час і з будь-якого місця
- Комфортний освітній процес. Заняття проходять у мінігрупах
- Засновник - перша в Україні дистанційна школа "Оптіма"
- Корисні та потрібні знання. Максимум практики в кожному занятті
Викладачі курсу
Людмила Булигіна - Викладає курси "Старт програмування", "Старт програмування з мовою C/C++"
Більше інформації- C / C++
- JavaScript
- Python
Швидкий старт у код і поєднання hard/soft skills. Учасники отримають базові навички в IT, навчаться кодувати декількома мовами, працюватимуть із GUI та створять власні проєкти.
Програма курсу
Старт програмування 14+ років:
- Вступ. Поняття мови та парадигми програмування
- Інструменти розробника. Користувацький інтерфейс
- Цикли. Функції
- Структури даних
- Масиви vs Списки. Методи обробки масивів
- Модулі. Бібліотеки. Фреймворки
- Створення програм із GUI
- Базові алгоритми
- Математика та програмування. Олімпіадне програмування
- ООП. Класи та об'єкти
- Створюємо власний проєкт
Старт програмування 10-13 років:
- Як виникають мови програмування? Програмування життєвих ситуацій
- Швидкий старт у код на прикладі мов: C++, Python та JavaScript
- Програмування ігрових стратегій
- JavaScript. Front-end. Back-end
- Створення сайтів та практика web-розробки, основи html
- Структура коду
- Цикли
- Тестування програм
- Командний проєкт
Опис курсу
Старт програмування складається з двох курсів: для дітей 10-13 і 14+ років. Очікуваний результат:
- вміння кодувати 3 мовами на рівні алгоритмічних структур (C++, Python, JavaScript)
- опанування принципів навчання та базових навичок в IT-напрямі
- основи web-програмування
- робота з GUI
- можливість не лише орієнтуватись у мовах програмування, але й обрати свій напрям
- тривалість заняття - 60 хвилин
- інтенсивність - 1 заняття 2 рази на тиждень
- повна тривалість курсу - 3 місяці, 24 занять
- заняття проходять онлайн, що дає змогу вчитися в комфортній, безпечній обстановці та не пропускати зустрічі
Що необхідно для навчання?
Ноутбук або комп'ютер, під'єднаний до інтернету та оснащений необхідними гарнітурами (колонки або навушники, вебкамера, мікрофон).
Особливості курсу
- Авторська система освітніх курсів
- Унікальна команда тренерів
- Турбота й індивідуальний підхід
- Офіційний сертифікат
- Навчання в будь-який час і з будь-якого місця
- Комфортний освітній процес. Заняття проходять у мінігрупах
- Засновник - перша в Україні дистанційна школа "Оптіма"
- Корисні та потрібні знання. Максимум практики в кожному занятті
Викладачі курсу
- Людмила Булигіна - Викладає курси "Старт програмування", "Старт програмування мовою С/С++"
- Катерина Антоненко - Викладає комп'ютерні дисципліни понад 20 років
- C / C++
На цьому курсі учасники опанують основи алгоритмізації та програмування, напишуть власну програму й зрозуміють, чи бажають розвиватися в програмуванні й надалі. Заняття відбуваються на сучасній освітній платформі. Діти можуть самі обирати, в який час їм проходити завдання та скільки часу на це витратити. Навчанням керують досвідчені викладачі, які завжди допоможуть і нададуть відповідь на будь-яке питання.
Програма курсу
Теми:
- Абсолютні основи. Вступ до комп'ютерного програмування
- Розширений контроль потоку й типи даних. Оператори
- Функції
- Об'єкти як параметри. Ієрархії класів. Розробка проєктів
Процес навчання
- Ви вибираєте курс, який вас цікавить, і миттєво отримуєте доступ до всіх матеріалів курсу
- Проходите заняття й уроки за власним графіком. Курс складається з 68 уроків
- Кожне заняття містить відеоурок, презентацію, текстові матеріали, приклади коду, тести для самоаналізу та домашні завдання, які ви виконуєте самостійно
- Повна тривалість курсу - 6 місяців
- Один раз на тиждень учасники відвідують онлайн-консультацію й щодня можуть писати викладачу в текстовому чаті
- Тривалість заняття - 45 хвилин
- Інтенсивність 2-3 заняття на тиждень
- Повна тривалість курсу - 6 місяців, 68 занять на платформі, 24 онлайн-консультації
Після проходження курсу учасники матимуть
- Знання й навички алгоритмізації типових задач, втілення їх у програмний код і налагодження з використанням алгоритмічної мови програмування високого рівня С++
- Сертифікат Академії прикладної програмної інженерії Оптіма
Що необхідно для навчання?
Ноутбук або комп'ютер, під'єднаний до інтернету та оснащений необхідними гарнітурами (колонки або навушники, вебкамера, мікрофон).
Особливості курсу
- Авторська система освітніх курсів
- Унікальна команда тренерів
- Турбота й індивідуальний підхід
- Офіційний сертиікат
- Навчання в будь-який час і з будь-якого місця
- Комфортний освітній процес. Заняття проходять у мінігрупах
- Засновник - перша в Україні дистанційна школа "Оптіма"
- Корисні та потрібні знання. Максимум практики в кожному занятті
Викладачі курсу
Іван Нечипорук - Має досвід викладання HTML, CSS, JS, Front-end, Back-end та програмування мовами C++, Python
Більше інформації- C / C++
Навчання відбувається в онлайн-форматі: ви вивчаєте основи у своєму темпі, переглядаючи відео-лекції та виконуючи практичні завдання від автора курсу. Після проходження курсу C++ Start – ти володієш основами мови C++, які дозволять тобі розвиватися далі самостійно або на наших курсах менторингу Unreal Engine.
Програма курсу
Введення та налаштування
Теорія:
- Про що і навіщо курс, що в ньому буде, чого не буде
- Що пишуть на C++
Практика:
- Встановлення Visual Studio
- Створюємо проєкт із методом main
- Пишемо Hello World
Керуючі конструкції та типи даних
Теорія:
- Строкові змінні
- Конкатенація рядків
- Арифметичні операції
- Ключове слово const
- Логічні типи даних
- Конструкція switch-case
- Масиви, цикл for
- Цикли while і do-while
- Керуючі оператори
- Цикли break, continue, цикл while (true)
- Вказівники
Практика:
- Змінюємо "Hello, World" на "Hello, <name>"
- Читаємо прості формули
- Читаємо з консолі температуру води, говоримо, в якому вона стані
- Читаємо з консолі порядковий номер дня тижня, виводимо словами
- Створюємо const-змінну
- Створюємо масив
- Переписуємо цикли через while
- Зчитуємо числа з консолі
- Розіменовуємо вказівники
Основи функціонально-процедурного програмування
Теорія:
- Аргументи функції та значення, що повертається
- Процес складання програми в C++
Практика:
- Пишемо функцію
- Переносимо формули до функції
- Створюємо .h та .cpp файли
Класи та об'єкти
Теорія:
- Що це таке:
- Класи
- Об'єкти
- Поля
- Методи
- Статичний поліморфізм
- Динамічне виділення пам'яті
Практика:
- Створення класу та об'єкту класу
- Додавання атрибутів класу, геттерів/сеттерів до них + зчислення класу
- Додавання методів
- Визначення методів
- Написання конструктора та деструктора
- Використання операторів new та delete
Елементи ООП
Теорія:
- Спадкування
- Модифікатори під час спадкоємства
- Dynamic cast
- Перевизначення методів
- Поліморфізм і ключове слово virtual. Віртуальний деструктор
- Абстрактний клас і чисто віртуальні методи
- Передача об'єктів у методи за значенням і за посиланням
Практика:
- Створити:
- ієрархію успадкування
- у цій ієрархії створити поліморфну поведінку
- переобумовлений метод
- перевантаження методів
- абстрактний клас і імплементувати його
- інтерфейс і імплементувати його
- Використовуємо virtual. Робимо деструктор класу віртуальним
Попередні вимоги
- Вільне володіння комп'ютером
- Вміння читати англійський текст
Особливості курсу
- Онлайн курс
- Необмежений доступ до відео-лекцій і завдань
- Без перевірки
- Допомога в чаті Slack
Викладачі курсу
Олександр Басалкевич - Senior C++ Engineer
Більше інформації- C / C++
Курс охоплює всі основні теми: від знайомства із середовищем розробки, алгоритмів та написання першої програми до роботи з масивами, функціями та класами. Ти отримаєш та закріпиш на практиці необхідні навички для подальшого розвитку в програмуванні.
Програма курсу
Всупна лекція. Знайомство з Visual Studio. Написання першої програми
Це заняття — маленький крок у час, але великий з боку інформації. Ти нарешті дізнаєшся, що воно таке — програмування. Пройдеш етапи створення програм. А також встановиш Visual Studio (або іншої IDE) — і тут почнеться: знайомство з інтерфейсом, написання першої програми, знайомство зі структурою програми в С++, виконанням програми, поняттям алгоритму, введення та виведення інформації. Так, насичено. Але й необхідно!
Змінні та типи даних
На занятті ти познайомишся із синтаксисом С++ та розбереш усе про змінні в цій мові — дізнаєшся про їхнє іменування. Оглянеш типи даних, константи, системи числення та осягнеш одиниці інформації.
Види операцій
Тут ти дізнаєшся, які операції бувають — арифметичні, логічні, операції присвоєння. А також розглянеш такі теми як пріоритет операцій, зведення типів, математичні операції.
Алгоритми. Керуючі структури. Цикли
Після заняття ти точно будеш знати всю базову інформацію про алгоритми та розглянеш такі теми:
- Логічні вирази, порівняння
- Умовний оператор IF, IF-ELSE
- Тернарна умовна операція
- Операція вибору варіантів SWITCH CASE
- Циклічні алгоритми
- Цикли FOR
- Оператори циклу з передумовою WHILE та постумовою DO-WHILE, goto
- Вкладені цикли
Практичне заняття
А ось і практика! На занятті ти зможеш закріпити попередньо набуті знання й отримати практичні інсайти.
Масиви: одновимірні, двовимірні
На цьому занятті ти зрозумієш, як працюють масиви:
- Оголошення та ініціалізація масиву
- Введення-виведення масиву
- Доступ до елементів та їх зміна
- Генерація псевдовипадкових чисел
- Програмування базових алгоритмів (сортування, пошук мінімального/максимального елемента, тощо)
- Вектори
Покажчики. Динамічні масиви
На занятті ти знайдеш відповідь на запитання "Що таке покажчики та для чого вони потрібні?". А також розглянеш такі теми:
- Посилання
- Stack, heap
- Арифметичні дії з вказівниками
- Помилки, які можуть виникати при роботі з вказівниками
Функції
Заняття присвячено функціям, області видимості, рекурсивним функціям та перегрузці функцій — і все це ти зможеш додати до загалу своїх знань.
Практичне заняття
Знову час конвертувати свої теоретичні знання в практику — це корисно.
Налагодження програм
Після цього заняття ти матимеш знання, щоби без проблем відшукати помилки в програмі та швидко їх виправити.
Символи і рядки. Структури
Упродовж заняття ти поглинатимеш знання про функції для роботи з символами та рядками, структури, масиви структур.
Робота з файлами
На занятті ти дізнаєшся, що таке запис, читання і загалом робота з файлами.
Багатофайлові програми
І такі бувають. На занятті ти дізнаєшся про заголовні файли та бібліотеки функцій.
Введення в ООП. Частина 1
Через те, що С++ є об'єктно-орієнтованою мовою програмування, тобі необхідно знати й парадигму ООП. На занятті ти дізнаєшся про основи ООП, розглянеш класи та об'єкти.
Введення в парадигму ООП. Частина 2
Ти вже на фінішній прямій! А на занятті дізнаєшся про конструктори, деструктори та UML-діаграми.
Практичне заняття. Підведення підсумків
Тепер ти маєш базові знання мови програмування С++ та можеш рухатися далі й продовжувати розвиватися в цьому напрямку впевнено та повноцінно! Вітаємо.
Особливості курсу
- 16 онлайн-занять у зручний час доби — ввечері
- регулярний фідбек від викладача
- практичні заняття та домашні завдання для засвоєння теоретичного матеріалу
- допоміжні матеріали: записи лекцій, презентації, корисні посилання
- сертифікат, який дійсно доводить, що ти володієш необхідними знаннями
Викладачі курсу
Ляшенко Галина - 6 років досвіду викладання в ХНУРЕ
Більше інформації- C / C++
На курсі C++ Pro вивчатимуть просунуті аспекти програмування на мові C++, включаючи шаблони, багатопотокове програмування, оптимізацію коду, використання розширених можливостей мови, роботу зі стандартною бібліотекою та розробку високоефективного програмного забезпечення.
Програма курсу
Огляд стандартів C++ 11/14/17/20/23
- Оператор auto, range-based loops
- Робота з std::filesystem
- Використання розумних пойнтерів
- Робота з std::ranges
Написання lambda-функцій, move-семантика
- Створення lambda-функцій
- Захоплення об'єктів в lambdа
- Різниця між lvalue та rvaluе
- std::move та move-конструктори
Багатопотокове програмування на С++
- Створення потоків
- Синхронізація потоків
- Створення м'ютексів, семафорів
- Створення потокобезпечних структур даних
Динамічні та статичні бібліотеки
- Створення статичних бібліотек
- Створення динамічних бібліотек
- Робота з бібліотеками
- Робота з бібліотеками на різних ОС
Build-системи та інструменти контролю версій
- Знайомство з build-системами
- Робота з CMakе
- Робота з gn
- Робота з git
Інструменти для дебагінгу та профілювання
- Знайомство з gdb
- Знайомство з valgrind
- Знайомство з perf
- Знайомство з lldb
Фреймворк boost
- Знайомство з boost
- Робота з boost::asio
- Робота з boost::filesystem
- Робота з boost::thread
Фреймворк Qt
- Знайомство з Qt
- Робота з Qt Creator
- Робота з Qt Widgets
- Робота з Qt QML
Дипломна робота
Написання графічного десктоп-застосунку.
Особливості курсу
- Невеликі групи
- Система особистих кабінетів
- Доступ до відеозаписів занять
- Викладачі практики
- Оперативна служба підтримки студентів
- Практичні заняття
Викладачі курсу
- Микита Жаворонков - Linux C/C++ Engineer at GlobalLogic
- Наталія Ковальова - C++ Developer at Phonexa
- Максим Безуглий - Senior Software Engineer
- C / C++
Основи програмування на мові C++ надає студентам відмінну можливість оволодіти основами програмування та розробки однією з найпопулярніших мов. Учасники вивчатимуть синтаксис C++, розвиватимуть навички роботи зі змінними, вказівниками та класами.
Програма курсу
Знайомство з C++
- Коли треба писати на C++?
- Налаштування середовища розробки
- Написання і розбір першої програми
- Створення змінних
- Огляд базових типів даних
- Константи, статичні змінні
- Арифметичні оператори
- Бінарні оператори
- Інші оператори
Введення та виведення, обробка помилок
- Потоки вводу та виводу : stdout, stdin, stderr
- Читання користувацького вводу з консолі
- Робота з файлами
- Читання вводу з файлу
- try...catch блок
- Розбір типових помилок програми
Умовне виконання, цикли, функції
- Оператори if, else, switch
- Цикли for, while, do-while
- Створення простих функцій
- Повернення результату з функцій
- Аргументи функції
Вбудовані структури даних, посилання та пойнтери
- Огляд масивів та дій з ними
- Знайомство зі C-стрічками
- Використання C++ стрічок
- Знайомство з посиланнями
- Огляд пойнтерів та дій з ними
Статична та динамічна пам'ять, етапи побудови програми
- Вигляд програми в пам'яті комп'ютера
- Різниця між статичної та динамічною пам'яттю
- Створення об'єктів в динамічній пам'яті
- Етапи компіляції
ООП в C++
- Створення структур, класів
- Основні поняття OOP (encapsulation, inheritance, polymorphism)
- Значення конструкторів та деструкторів
- Віртуальні методи, наслідування
- Перевантаження операторів, методів
- friend класи
Шаблони та STL
- Знайомство з шаблонами
- Написання шаблонних функцій
- Огляд бібліотеки STL
- Основні контейнери бібліотеки STL
Структури даних, складність алгоритмів
- Розуміння основних структур даних (list, vector, dictionary, hashtable)
- Специфічні структури даних (stack, queue, single-linked list)
- Поняття складності алгоритму
- Складність операцій в структурах даних
- Написання власної реалізації структури даних
Дипломна робота
Створення власного шаблонного контейнера.
Особливості курсу
- Невеликі групи
- Система особистих кабінетів
- Доступ до відеозаписів занять
- Викладачі практики
- Оперативна служба підтримки студентів
- Практичні заняття
Викладачі курсу
- Микита Жаворонков - Linux C/C++ Engineer at GlobalLogic
- Наталія Ковальова - C++ Developer at Phonexa
- Ігор Конфедрат - Software Engineer at Onseo
- Максим Безуглий - C++ Senior Software Engineer
- Олексій Кшенський - Senior Software Developer at UA Tech People
- C / C++
- JavaScript
Курс модульний та базові основи мов програмування вивчаються послідовно - у першому модулі - Java Script, у другому модулі - С++. Після закінчення курсу у студентів буде кілька проектів, написаних за допомогою вивчених мов, розуміння та вміння використовувати базові основи Java Script та С++.
План курсу
Що вивчають на курсі
- Базові елементи JavaScript, включаючи різні види даних, умовних конструкцій, операторів циклів та функцій
- Ознайомлення з jQuerty, об'єктно-орієнтоване програмування
- Написання алгоритмів, структура програм мови С++
- Типи змінних, основні конструкції, зокрема цикли і керуюча структура мови С++
- Робота з файлами, а також з деякими особливостями мови С++
Що учень буде вміти
- Створювати прості HTML-сторінки, напише текстову версію гри "Шибениця"
- Викладати думки у зрозумілому для комп'ютера вигляді: чітко та послідовно
- Розбивати завдання на підзавдання, шукати та знаходити оптимальні шляхи вирішення
- Реалізувати як існуючі, так і власні алгоритми
Що учень матиме
- Самостійно створений сайт, написаний з використанням HTML, CSS та елементів Javascript
- Цілий ряд WEB-сторінок, написаних протягом навчання
- Навичка пошуку та аналізу інформації для розміщення на сайті
- Вміння використовувати графічний редактор Photoshop для підготовки зображень до сайту
Особливості курсу
- Групи до 10 осіб
- Програми розроблені з урахуванням віку дитини
- Заняття записуються і завжди є можливість повторити матеріал
- У кожного студента своє обладнане робоче місце
- В особистому кабінеті розміщені всі навчальні матеріали
- Заняття проводяться за розкладом як у буденні дні, так і у вихідні
- За потребою надаємо можливість комбінувати online/offline навчання
- Викладачі - практикуючі IT фахівці з досвідом роботи з дітьми понад 3 роки
- Сертифікат про проходження курсу
- C / C++
Мета курсу - вивчити найпопулярніші мови програмування C та C++, отримати знання сучасних методологій та технологій програмування, набути навички розробки програм для вирішення широкого кола типових завдань.
План курсу
Що вивчають на курсі
- До курсу входить навчання принципам:
- написання алгоритмів, структурі програм мови С++
- типів змінних, основним конструкціям, у тому числі циклам та керуючим структурам
- управління одновимірними та багатовимірними масивами даних, роботи з рядками
- створення підпрограм, роботи з динамічною пам'яттю, динамічним типом даних
- роботи з файлами, і навіть деяким особливостям мови C++
Що учень буде вміти
- Викладати думки у зрозумілому для комп'ютера вигляді: чітко та послідовно
- Розбивати завдання на підзавдання, шукати та знаходити оптимальні шляхи вирішення
- Писати консольні програми на С++
- Реалізувати як існуючі, так і власні алгоритми
- Створювати програми з графічним інтерфейсом
- Самостійно та швидко розібратися в основах більшості інших мов програмування
Що учень матиме
- Мислення в термінах Об'єктно-орієнтованого програмування
- Використання всіх операторів мови C
- Навички користування бібліотечними функціями
- Вміння працювати із масивами
- Вміння писати функції
- Використовувати класи пам'яті
- Застосовувати адресну арифметику
- Працювати із структурами даних
- Працювати із файлами
Особливості курсу
- Групи до 10 осіб
- Програми розроблені з урахуванням віку дитини
- Заняття записуються і завжди є можливість повторити матеріал
- Дається домашнє завдання для самостійної роботи
- В особистому кабінеті розміщені всі навчальні матеріали
- Заняття проводяться за розкладом як у будні дні, так і у вихідні
- Розклад та викладач протягом курсу навчання не змінюються
- Викладачі - практикуючі IT фахівці з досвідом роботи з дітьми понад 3 роки
- Сертифікат про проходження курсу
- C / C++
Ми навчимо вас всіх основ алгоритмічного мислення, навчимо користуватися прийомами структурного та об’єктного програмування. Ви зможете вирішувати типові задачі програмування та вміти розбиратися в чужому коді.
Програма курсу
Тема 1
- Порядок рішення всіх задач
- Створення проєкту C++ в IDE Visual Studio
- Мова програмування, її основні поняття
- Практика
Тема 2
- Програми C++ та їхнє створення
- Типи даних
- Оператори виведення та введення інформації
- Практика
Тема 3
- Функції математики в C++
- Рішення нескладних задач за використання C++
Тема 4
- Оператор розгалуження if/else, switch/case
- Математичні задачі в C++, їхнє рішення
Тема 5
- For - оператор циклу
- &&, || - логічні оператори
- Математичні задачі в C++, їхнє рішення
Тема 6
- While, for, dp/while - оператори циклу
- Математичні задачі в C++, їхнє рішення
Тема 7
- Робота з файлами: виведення з файлу, введення з файлу даних
- Практика
Тема 8
- Масиви, а також математичні дії над ними
- Практика
Тема 9
- Рішення різних задач, завдяки C++
- Практика
Тема 10
- Функції прототипи функцій
- Практика
Тема 11
- Процес роботи з файлами
- Практика
Тема 12
- Структури даних, масиви структур
- Практика
Тема 13
- Покажчики, процес роботи з покажчиками
- Практика
Тема 14
- Черга, список, стек. Динамічні структури
- Практика
Тема 15
- ООП - введення
- Практика
Тема 16
- Інкапсуляція в C++
- Практика
Тема 17
- Наслідування в C++
- Практика
Тема 18
- Поліморфізм в C++
- Практика
Тема 19
- Поняття та перезавантаження операторів
- Практика
Тема 20
- Бібліотека STL
- Практика
Тема 21
- Інтерфейс програми, можливості
- Практика
Тема 22
- Процес роботи з віконними додатками
- Практика
Особливості курсу
- Викладачі практики
- Корпоративне навчання
- Можливість навчатися у вихідні
- Можливість влаштуватися у провідні IT-компанії
- Індивідуальне навчання
Викладачі курсу
- Володимир - Програміст
- Ігор - Програміст
- Володимир - Програміст
- Ігор - Програміст
- C / C++
Наші слухачі пізнають центральні можливості самої бібліотеки Qt; попрацюють в розробці додатків GUI з використанням даної програми. Педагоги Навчального Центру надають для розгляду всю необхідну інформацію про адаптери, контейнери та алгоритми. Слухачі будуть мати можливість повноцінно розбиратися в базі даних та архітектурі додатків.
Програма курсу
Вивчаємо Qt. Програмування GUI за допомогою бібліотеки Qt
- Основні принципи роботи з бібліотекою Qt
- Об'єктна модель. Метаоб'єкти, властивості, сигнали і слоти. Типи, варіанти, посилання
- Огляд класів бібліотеки
- Програмування GUI за допомогою Qt. Віджети. Вікна, діалогові вікна, головні вікна. Меню. Призначені для користувача віджети. Обробка подій
- Створення GUI-додатків
- Основи роботи з 2D і 3D графікою
- Вилов помилок за допомогою QDebug
Зовнішній вигляд програми
- Робота зі стилями
- Робота із зображеннями
- Піктограма додатка
- Варіації кольорової гами
Бази даних
- Знайомство з SQL
- Знайомство з СУБД
- Драйвера БД
- З'єднання з базою. Виконання запитів. Обробка даних
- Представлення даних в табличній формі
- Стандартні операції CRUD на прикладі реального додатку
Робота з файлами в Qt
- Відкриття і вибір файлів за допомогою класу QFileDialog
- Створення нових файлів
- Збереження файлу
- Формати .txt й .rtf
Функціонал drag and drop
- Як реалізувати drag and drop
- Перетягуємо і фільтруємо текст
- Перетягуємо картинки
Особливості курсу
- Викладачі практики
- Корпоративне навчання
- Можливість навчання по вихідним
- Можливість влаштуватись у провідну IT-компанію
- Індивідуальне навчання
Викладачі курсу
- Володимир - Програміст
- Ігор - Програміст
- Володимир - Програміст
- Олексій - Програміст
- C / C++
Програма курсу
Структура бібліотеки шаблонів
- Ітератори. Ітератори введення. Ітератори виведення. Однонаправлені ітератори. Двонаправлені ітератори. Ітератори довільного доступу. Теги ітераторів. Операції з ітераторами
- Ітератори потоків. Ітератор вхідного потоку. Ітератор вихідного потоку
- Контейнери, алгоритми, адаптери
- Адаптери. Адаптери контейнерів. Адаптери ітераторів. Адаптери функцій
- Алгоритми, що не змінюють послідовність операції. Алгоритми, що змінюють послідовність операції. Операції сортування і відносини
Архітектури додатків
- Окремий додаток. Клієнт-сервер. Трирівнева архітектура. Багатошарова архітектура
- Архітектурні патерни MVP, MVC, MVVM
- Патерни проєктування
Робота з системою контролю версій
XML
- Формат документа XML. Стандарти. Схеми
- Використання XML
- Читання XML за допомогою інтерфейсів SAX і DOM
- Запис документів XML
- Серіалізация
- Патерн проєктування "Memento"
Робота з мережею
- Створення FTP і HTTP клієнтів
- Створення клієнт-серверних додатків на базі TCP
- Робота з протоколом UDP
Багатопоточність
- Створення потоків
- Синхронізація потоків
- Взаємодія з головним потоком
- Застосування класів Qt у вторинних потоках
Інтернаціоналізація
- Робота з Unicode
- Створення перекладного додатку. Переклад додатків і динамічне перемикання мов
Модульне тестування ПО (unittesting)
- Введення в модульне тестування
- Створення модульних тестів за допомогою Qt
Основи створення додатків Qt Quick
- QML для побудови призначеного для користувача інтерфейсу
- Огляд основних можливостей
- Створення програми на Qt Quick
Основи розробки Qt-додатків під Android
- Встановлення SDK. Налаштування Qt Creator для роботи з AndroidSDK
- Створення віртуального пристрою
- Збірка і запуск програми
Особливості курсу
- Викладачі практики
- Корпоративне навчання
- Можливе навчання у вихідні
- Можливість влаштуватися у провідні IT-компанії
- Індивідуальне навчання
Викладачі курсу
- Володимир - Програміст
- Ігор - Програміст
- Володимир - Програміст
- Олексій - Програміст
Читайте нас в Telegram, щоб не пропустити анонси нових курсів.
Відгуки про курси
Дитина навчається на напрямку Frontend вже другий рік в GoITeens. Цікаве навчання на гарний підхід до навчання, ми задоволені