Основы программирования на С
В модуле будет рассмотрено современное состояние языка С, его возможности и особенности в соответствии со стандартами. Будут разбираться базовые конструкции языка С, работа с наиболее распространёнными структурами данных, а так же основы практической разработки под Windows и UNIX-подобные ОС.
Тема 1: Инструментарии разработки
Тема 2: Основные конструкции
Тема 3: Типы данных
Тема 4: Типы данных (продолжение)
Тема 5: Динамические структуры данных
Тема 6: Алгоритмы поиска и сортировки
Тема 7: Препроцессор
Тема 8: Библиотеки
Тема 9: Основы ассемблера
Современный С
В модуле будут рассмотрены элементы сборки программы на языке С: статические и динамические библиотеки. Будут приведены примеры поиска, обнаружения и обработки ошибок в коде, а также методики ООП в языке C.
Тема 1: Стандарты C
Тема 2: Best practices программирования
Тема 3: История, философия и основы работы в UNIX
Тема 4: Стандарт POSIX и программирование под UNIX
Тема 5: Программирование под Windows, интерфейс WinAPI
Тема 6: ООП в C
Тема 7: Обработка ошибок
Тема 8: Консультация по вопросам ДЗ (Q&A)
Процессы в UNIX
Будут рассмотрены особенности программирования под UNIX подобные операционные системы и существующие для этого инструментальные средства. Будет разбираться понятие программ демонов и механизмы их создания.
Тема 1: Введение в процессы
Тема 2: Демоны UNIX
Тема 3: Взаимодействие между процессами
Тема 4: Разделяемая память
Механизмы многопоточности
В модуле рассматриваются принципы создания потоков, что это такое и для чего они нужны. Будут рассмотрены механизмы синхронизации для обеспечения целостности данных.
Тема 1: Введение в потоки
Тема 2: Механизмы синхронизации
Тема 3: Функции в многопоточных приложениях
Сетевое программирование
В модуле будут рассмотрены методы и технологии взаимодействия программ по сети с помощью кода на языке С. Будут показаны примеры создания серверных и клиентских приложений.
Тема 1: Сетевое взаимодействие
Тема 2: Асинхронные сетевые интерфейсы
Тема 3: Веб-сервисы
Микроконтроллеры
В модуле рассматриваются вопросы применения языка С для работы с микроконтроллерами. В качестве примера будет рассмотрена архитектура Ардуино и показаны примеры программирования на С с использованием микросхемы Ардуино.
Тема 1: Введение в микроконтроллеры
Тема 2: Введение в Ардуино
Тема 3: Разработка приложений на Ардуино
Базы данных
Познакомимся с основными направлениями развития современных СУБД и научимся писать запросы на С к базам данных, реализованным на СУБД PostgreSQL, MySQL и SQLite.
Тема 1: Современные СУБД
Тема 2: Работа с СУБД из C
Создание игр
В модуле представлены основные принципы разработки игр на С. Будут рассмотрены библиотеки DirectX и OpenGL для работы с графикой. Научимся создавать функции работы с устройствами ввода/вывода и создавать интерактивность в играх.
Тема 1: Графические интерфейсы
Тема 2: Игровые фреймворки на С
Тема 3: Современные паттерны
Проектная работа
Заключительный месяц курса посвящен проектной работе. Свой проект - это то, что интересно писать студенту. То, что можно создать на основе знаний, полученных на курсе. При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей.
Тема 1: Выбор темы и организация проектной работы
Тема 2: Консультация по проектам и домашним заданиям
Тема 3: Защита проектных работ
Тема 4: Подведение итогов курса