Курс Основы программирования на C++. Уровень 1 [2022]
level up
Михаил, Евгений, Давид
Курс Основы программирования на C++. Уровень 1 рассчитан на участников, не знакомых с программированием, и является введением в программирование, алгоритмизацию и структуры данных.
Данный курс C++ предназначен для того, что бы заложить основы, которые обязательны для старта в профессию любому начинающему С++ разработчику.
В курсе участники познакомятся с такими инструментами разработчика, как:
- Integrated Development Environment — система программных средств, используемая программистами для разработки программного обеспечения.
- Code review (gerrit) — система рецензирования кода. Cистематическая проверка исходного кода программы с целью обнаружения и исправления ошибок, которые остались незамеченными в начальной фазе разработки.
- Unit testing (Google mock) — модульное тестирование. Тестирование отдельного модуля программы с целью проверки ее работоспособности.
- Системы контроля версий (Git) — система позволяющая хранить несколько версий одного и того же документа, при необходимости возвращаться к более ранним версиям, определять, кто и когда сделал то или иное изменение, и многое другое.
- Сборка проекта (GNU make) — утилита использующая информацию о зависимостях файлов друг от друга и правил их удовлетворения, для формирования исполняемой программы.
- Возможности языка.
- Выражения.
- Операторы.
- Массивы.
- Указатели.
- Функции.
- Структуры данных.
- Препроцессор.
- Вектор.
- Список.
- Стек.
- Очередь.
- Дерево.
- Сложность алгоритмов.
- Алгоритмы сортировки.
- Алгоритмы поиска.
По завершению курса у участников будут знания и умения для того, что бы писать программы практически любой сложности на языке Си начиная от идеи и заканчивая реализацией.
Практика:
В течение курса на практике, а также в качестве домашнего задания, решаются как академические задачи, так и простые задачи, прикладного уровня.
Занятие 1
- Краткая история С++
- Назначения языка программирования
- Компиляторы, интерпретаторы, линковщики
- Знакомство с IDE
- Структура программы на языке С++
- Полезная литература
- Практика:
- Установка IDE
- Пишем 1-ю программу на С++
- Домашнее задание
- Системы контроля версий
- Review кода
- Системы счисления
- Представление информации в компьютере
- Базовые типы данных
- Переменные
- Операции
- Выражения
- Практика:
- Регистрация на GinHub
- Выкладывание кода в gerrit
- Написание программ, выполняющих операции ветвления
- Домашнее задание
- Отладка программ, gdb
- Преобразование типов
- Условные операторы
- Циклы
- Блок операторов
- Практика:
- Написание программ вычисления математических рядов
- Домашнее задание
- Функции
- Рекурсия
- Функции ввода и вывода данных
- Практика:
- Написание функций, выполняющих логические операции и вычисления математических рядов
- Написание программы «Ханойские башни», решение через рекурсию
- Домашнее задание
- Введение в тестирование
- Модульное тестирование Gtest
- Указатели. Операции работы с указателями
- Массивы
- Строки
- Практика:
- Установка и наладка Gtest
- Написание программ преобразования матриц
- Написание программ преобразования строк
- Домашнее задание
- Динамическое выделение памяти.
- Перечисления, Объединения, Битовые
- Структуры данных
- Работа с файлами
- Практика:
- Разработка программы работы с фалами и записью и чтением данных - «База данных»
- Домашнее задание
- Контрольная работа
- Препроцессор, макросы
- #define
- #include
- #ifdef
- #endif
- #pragma
- #line
- #, ##
- #error
- #warning
- GNU make
- Знакомство с make-файлами.
- Создание make-файлов.
- Составление правил.
- Написание команд.
- Использование переменных.
- Запуск make.
- Кроссплатформенная компиляция
- Практика:
- Сборка программы «База данных» для разных операционных систем
- Домашнее задание
- Сложность алгоритмов
- Сортировка
- Поиск
- Структуры данных
- Практика:
- Реализация вектора на языке Си.
- Реализация дерева на языке Си.
- Домашнее задание
- Ссылки
- Понятие ООП
- Понятие класса
- Спецификаторы доступа
- Конструкторы, деструкторы
- Практика:
- Реализация списка на языке Си.
- Реализация очереди на языке Си.
- Домашнее задание
- Методы класса
- Операторы класса
- Move семантика
- Практика:
- Реализация строки на языке С++
- Домашнее задание
- Сдача курсового проекта
- Подведение итогов
- Куда двигаться дальше?
Продажник