Введение в программирование С/С++

О чём курс

Курс представляет собой фундаментальную программу обучения программированию на языках Си и С++, разработанную Тимофеем Федоровичем Хирьяновым, преподавателем кафедры информатики МФТИ и опытным разработчиком системного ПО в компаниях Samsung Electronics и Parallels. Данная программа ориентирована на тех, кто стремится освоить системное программирование с нуля до уровня уверенного владения объектно-ориентированными концепциями и современными инструментами разработки. Обучение построено таким образом, чтобы студент не просто заучивал синтаксис, а глубоко понимал архитектуру вычислительных систем, принципы работы памяти, алгоритмические подходы и методологии проектирования программного обеспечения.

В первой части курса акцент сделан на языке Си, который является базой для понимания того, как именно компьютер исполняет код. Учащиеся проходят путь от основ — типов данных, циклов и ветвлений — до работы с динамической памятью, указателями, сложными структурами данных и файловым вводом-выводом. Важной частью программы является изучение алгоритмов сортировки, поиска и работы с графами вызовов, что позволяет сформировать сильное инженерное мышление. Особое внимание уделяется вопросам модульного программирования, принципам раздельной компиляции и использованию систем сборки, таких как cmake, что критически важно для реальной профессиональной деятельности.

Вторая часть курса посвящена переходу к объектно-ориентированному программированию (ООП) на языке С++. Здесь студенты изучают инкапсуляцию, наследование, полиморфизм, шаблоны (generics) и работу с библиотекой стандартных шаблонов (STL). Программа охватывает не только синтаксические конструкции, но и глубокие концепции, такие как RAII, управление ресурсами, умные указатели и обработка исключений. Курс также затрагивает практические аспекты разработки: создание графических интерфейсов с помощью библиотеки wxWidgets, проектирование архитектуры приложений, использование UML, основы разработки игрового ИИ и применение систем контроля версий.

Почему стоит выбрать этот курс? Во-первых, это системный подход, который дает понимание «подкапотной» работы программ. Во-вторых, курс сочетает академическую строгость МФТИ с практическими навыками, востребованными в индустрии. В-третьих, программа включает в себя темы, которые часто упускаются в базовых курсах: отладочные техники, юнит-тестирование, баг-тракинг и лицензирование ПО. На выходе студент получает не только теоретические знания, но и практический опыт реализации сложных структур данных, алгоритмов и полноценных приложений, что делает этот курс отличным стартом для карьеры системного программиста или разработчика высокопроизводительных систем.

Программа обучения

2 Типы целых чисел языка Си Coding Style Оператор цикла while в Си Операции сравнения чисел в Си Сумма последовательности чисел Двоичная система счисления Обработка цифр числа и схема Горнера Среда разработки Code::Blocks Функции в Си 3 Оператор цикла for в Си Числа Фибоначчи Генерация псевдослучайных чисел Операторы +=, -=, *= и /= в Си Массивы в Си Определение и инициализация массива в Си Обращение массива Циклический сдвиг в массиве Реализация скалярного умножения векторов на Си 4 Оператор ветвления if в Си Логические операции в Си Таблицы истинности Поиск числа в потоке данных на Си Поиск максимального числа в потоке на Си Алгоритм Евклида на Си Тест простоты Факторизация перебором делителей Переменные-счетчики Переменные-флаги 5 Парадигма структурного программирования Функции в программировании Преимущества структурного программирования Граф вызовов функций Стек вызовов Пошаговая отладка программы на Си Функции с параметрами в Си Передача массива в функцию и возврат из функции в Си Этапы компиляции Макросы препроцессора в Си 6 Математические функции в Си Подключение стандартных библиотек в Си Типы чисел с плавающей точкой в Си Стандарт IEEE 754 чисел с плавающей точкой Явное и неявное преобразование типов в Си Выражение элементарных функций на Си Поиск корня уравнения методом бисекции Двоичный поиск элемента в упорядоченном массиве на Python 7 Передача параметра по указателю в Си Структуры данных в Си Возврат значений из функции в Си Сортировка методом пузырька Сортировка выбором Сортировка связанных значений 8 Указатели в Си Адресная арифметика в Си Модель памяти приложения Локальные и глобальные переменные Системные вызовы malloc() и free() Работа с динамической памятью в Си и С++ Структуры и указатели в Си Преобразование типа указателя в Си 9 Линейные структуры данных Динамический односвязный список на Си Стек через динамический список на Си Обратная польская нотация Очередь Стек 10 Форматированный ввод-вывод в Си Двумерные массивы в Си Массивы указателей в Си Динамические двумерные массивы в Си Транспонирование матрицы Аргументы функции main() Сортировка связанных значений Сортировка подсчетом 11 Быстрая сортировка Хоара Сортировка слиянием Рекурсия в Си Быстрое возведение в степень Ханойские башни 12 Оператор ветвления switch в Си Перечислимый тип enum в Си Конечные автоматы Алгоритм поиска подстроки Регулярные выражения 13 Работа со строками в Си Файловый ввод-вывод в Си Строковые потоки в Си 14 Модульное программирование на Си Принцип раздельной компиляции Система сборки cmake Прототипы функций extern переменные Стражи включения заголовочных файлов в Си Рефакторинг 15 Введение в ООП на С++ Отличия языков программирования Си и С++ Пространства имен в С++ Перегрузка функций в С++ Аргументы функции по умолчанию в С++ Ссылки в С++ Логический тип в С++ Hello World на языке С++ Ввод-вывод в С++ 16 Понятие класса в С++ Инкапсуляция. Спецификаторы доступа к полям классов в С++ Конструктор и деструктор в С++ Указатель на объект Операторы new и delete Указатель this 17 Присваивание объектов в С++ Перегрузка операторов в С++ Передача объектов функциям Возврат объекта как значения функции Дружественные функции класса RAII — получение ресурса есть инициализация static члены класса в С++ 18 Наследование в C++ Перегрузка методов в С++ Перегрузка конструкторов в С++ Инициализация экземпляра вложенного класса в С++ Управление доступом к базовому классу Защищенные члены класса 19 Виртуальные функции в С++ Подстановочный критерий Барбары Лисков Примеры применения полиморфизма Динамическая идентификация типа данных 20 Обобщенное программирование: шаблоны С++ Линейные структуры данных в реализации на С++ Инстанцирование Шаблоны функций Шаблоны классов Параметры шаблонов 21 Введение в библиотеку стандартных шаблонов (STL) Понятие контейнера и итератора Контейнер vector Контейнер list Контейнер set Файловые потоки в C++ 22 Хеширование и хеш-функция Хеш-таблицы: открытая, закрытая Ассоциативный контейнер map 23 Библиотеки string, sstream Форматирование ввода-вывода в С++ Контроль состояния ввода-вывода в С++ Юнит-тестирование 24 Умные указатели в С++ Алгоритмы STL Контейнеры-адаптеры stack, queue, priority_queue 25 Куча (heap) Бинарное дерево поиска Рекурсия в С++ Исключения в С++ Пирамидальная сортировка 26 Событийная модель построения приложения Графическая библиотека wxWidgets Основные виджеты wxWidgets: окно, форма, кнопка, меню, radiobutton, checkbutton Проектирование и разработка UI Указатели на функции в Си и С++ Обратные вызовы 27 Проектирование приложения на С++ Введение в UML Введение в шаблоны проектирования 28 Разработка игры на С++ Программирование игрового AI 29 Вспомогательные средства разработчика Системы контроля версий 30 Повторение Планирование разработки ПО Баг-тракинг Лицензии на программное обеспечение

Складчина создана 15 мая 2014 г. · описание обновлено 23 мая 2026 г.

Теги курса

2 296 ₽ 7 395 ₽