Знакомство с Qt Creator – профессиональной средой разработки приложений на C++.
Базовые термины из области программирования: данные, алгоритм, программа, компиляция и запуск программного кода.
Первые операторы языка программирования: вывод данных, ввод данных, математические операции с данными.
Функция main. Алфавит языка, основные типы данных. Использование переменных. Условный оператор. Операторы цикла: цикл с предусловием, цикл с параметром, цикл с постусловием. Генератор псевдослучайных чисел.
Виды алгоритмов: следование, ветвление, цикл. Составление блок-схем для наглядного отображения алгоритмов.
Комбинирование нескольких алгоритмов в пределах одной программы. Решение задач, требующих реализации сложных алгоритмов.
Постановка цели в проектной деятельности. Разбиение больших задач на малые части. Реализация индивидуального проекта.
Применение обширного комплекса изученных инструментов в пределах одной задачи. Формирование понятийного аппарата, группировка инструментов по категориям.
Полезные фишки в разработке проектов: правила оформления кода, обеспечение лёгкой читаемости, резервное копирование файлов. Методы поиска и исправления ошибок кода.
Статические массивы, основные операции над массивами. Символьный и строковый типы данных. Операции над строками.
Работа с текстовыми файлами: запись данных в файл, чтение из файла.
Области видимости переменных. Локальные и глобальные переменные.
Функции. Передача данных в функцию. Получение результата работы функции.
Динамические массивы и их методы. Использование флагов и манипуляторов. Работа с потоком текстового ввода.
Основные конструкции языка C++. Переменные и типы данных. Ввод и вывод данных. Условный оператор, циклы, функции. Работа со строками и массивами. Генератор псевдослучайных чисел.
Основные термины: интерфейс, виджет, событие (сигнал), обработчик события (слот).
Стандартные виджеты Qt: кнопки, поля ввода данных, элементы для отображения данных. Изменение свойств виджетов.
Отслеживание и обработка различных событий: нажатие кнопки, ввод данных в поле, изменение значения ползунка и т.д.
Возможности различных виджетов. Ввод-вывод числовых и текстовых данных. Функции для преобразования данных.
Использование вспомогательных классов: шрифт, изображение, таймер и др.
Стилевой язык QSS. Настройка внешнего вида элементов программы: цвета, шрифты, границы, отзывчивость при наведении/нажатии мышью.
Основные приёмы дизайна интерфейсов: компоновка элементов, использование группировочных виджетов, обеспечение лёгкого восприятия пользователем.
Постановка цели в проектной деятельности. Разбиение больших задач на малые части. Реализация индивидуального проекта.
Применение обширного комплекса изученных инструментов в пределах одной задачи. Формирование понятийного аппарата, группировка инструментов по категориям.
Полезные фишки в разработке проектов: правила оформления кода, обеспечение лёгкой читаемости, резервное копирование файлов.
Создание многооконных приложений. Передача данных между окнами. Работа с файлами.
Статические и динамические массивы виджетов. Двумерные массивы.
Создание стандартных всплывающих окон: информирующее, предупреждающее, запрещающее, предлагающее выбор.
Синтаксис языка C++. Алгоритмы и алгоритмические конструкции. Области видимости переменных. Работа с функциями. Массивы, работа с массивами.
Понятие объекта и понятие класса. Свойства и методы. Конструктор класса. Сеттеры и геттеры.
Наследование, инкапсуляция, композиция, полиморфизм. Методология применения объектно-ориентированного программирования.
Графические библиотеки и их стандартые классы. Настройка холста для отрисовки объектов. Отрисовка графических примитивов.
Загрузка ассетов: шрифты, изображения, звуковые и прочие файлы. Отрисовка изображений и текста. Работа с координатами холста.
Обнаружение и обработка событий: нажатия мыши и клавиатуры, движение курсора, изменение размеров окна и др.
Стандартные игровые алгоритмы: нахождение точки в области, соприкосновение объектов, плавное движение, анимация.
Полезные фишки в разработке проектов: разбиение программы на отдельные классы, улучшение читаемости кода. Система управления версиями Git.
Реализация индивидуального/группового проекта.
Синтаксис языка C++. Принципы хранения, обработки и передачи данных. Алгоритмизация в программировании.
Парадигма событийно-ориентированное программирование. Разработка оконных приложений с помощью Qt Designer. Стандартные виджеты. Обработка событий.
Парадигма объектно-ориентированное программирование. Отрисовка графических объектов. Стандартные игровые алгоритмы. Разбиение программы на отдельные классы.
Понятие базы данных. Возможности в работе с БД: получение данных, запись данных, фильтрация и компоновка данных. Работа с таблицами.
Синтаксис языка SQL. Работа в СУБД. Библиотеки языка C++ для выполнения SQL-запросов.
Протоколы передачи данных. Сетевая модель. OSI. Семейство TCP/IP. Адресация в сети: IP-адрес, доменное имя, порт. Модель «клиент-сервер». Серверное приложение. «Тонкий» и «толстый клиент».
Сокетное соединение. Модуль QtNetwork. Протоколы TCP и UDP. Реализация сервера и клиента. Управление доступом к сети. Пакетная передача данных.
Постановка цели в проектной деятельности. Разбиение больших задач на малые части. Реализация группового проекта.
Распределение задач между участниками проектной деятельности. Взаимодействия в команде разработчиков.
Полезные фишки в разработке проектов: Система управления версиями Git. Разбиение проекта на модули, технологии модульной разработки.
Введение в QML. Визуальные элементы. Создание динамических элементов. Диалоговые окна. Управление размещением элементов.
Элементы графики. Цвета, градиенты, растровые изображения. Шейдеры и эффекты. Анимация.
Пользовательский ввод. Область мыши, сигналы. Ввод с клавиатуры. Мультитач. Состояния и переходы.
C++ — один из самых популярных и мощных языков программирования. Позволяет глубоко понять принципы работы с данными и создавать высокопроизводительные программы. Становится проводником в мир IT-технологий.
4 курса: Консольные приложения (алгоритмы, переменные, функции) → Графический интерфейс (Qt Creator, виджеты, события) → ООП и игры (классы, наследование, графика) → Сетевые приложения и БД (TCP/IP, SQL, Qt Quick).
Умение разрабатывать консольные и графические приложения, использовать объектно-ориентированное программирование, работать с сетями и базами данных. Навыки создания сложных приложений и легкой адаптации к другим языкам программирования.