Содержание курса
1. Введение и базовые конструкции
5 уроков
67
42
5м
0
Закрытый
1.1
Установка среды разработки (текстовый редактор, компилятор GCC/C
↗
25
10
1м 27с
0
Закрытый
1.2
Первый C-проект: Hello, World!
↗
11
10
2м 41с
0
Закрытый
1.3
Жизненный цикл программы: редактирование → компиляция → запуск →
↗
13
7
1м 17с
0
Закрытый
1.4
Комментарии и стиль кода
↗
8
7
-
0
Закрытый
1.5
Практика
↗
10
8
0м 18с
0
2. Структура программы и функции
5 уроков
34
30
0м
0
Закрытый
2.1
Операторы и блоки кода
↗
8
8
-
0
Закрытый
2.2
Функции: определение, вызов, параметры, возврат значений
↗
8
7
-
0
Закрытый
2.3
Порядок выполнения программы
↗
5
5
-
0
Закрытый
2.4
Прототипы функций и объявления
↗
7
4
-
0
Закрытый
2.5
Практика
↗
6
6
-
0
3. Типы данных и переменные
5 уроков
21
15
0м
0
Закрытый
3.1
Базовые типы: int, char, float, double, _Bool
↗
3
3
-
0
Закрытый
3.2
Константы: литералы, #define, const
↗
5
2
-
0
Закрытый
3.3
Размеры типов: оператор sizeof()
↗
4
3
-
0
Закрытый
3.4
Инициализация и присваивание
↗
3
2
-
0
Закрытый
3.5
Практика
↗
6
5
-
0
4. Выражения и операторы
5 уроков
19
13
0м
0
Закрытый
4.1
Арифметические, логические и побитовые операторы
↗
3
2
-
0
Закрытый
4.2
Операторы присваивания и инкремента/декремента
↗
4
2
-
0
Закрытый
4.3
Приоритет операций и скобки
↗
4
2
-
0
Закрытый
4.4
Тернарный оператор
↗
3
2
-
0
Закрытый
4.5
Практика
↗
5
5
-
0
5. Условный поток управления
5 уроков
25
15
0м
0
Закрытый
5.1
Условные выражения и логика
↗
5
3
-
0
Закрытый
5.2
Конструкции if…else и вложенные условия
↗
5
2
-
0
Закрытый
5.3
Оператор switch
↗
5
3
-
0
Закрытый
5.4
Проблема «висячего else»
↗
5
3
-
0
Закрытый
5.5
Практика
↗
5
4
-
0
6. Циклы и повторение
5 уроков
21
14
0м
0
Закрытый
6.1
Циклы while, for, do…while
↗
4
2
-
0
Закрытый
6.2
Управление циклом: break, continue
↗
6
4
-
0
Закрытый
6.3
Бесконечные циклы и их применение
↗
3
2
-
0
Закрытый
6.4
Эквивалентность циклов
↗
5
3
-
0
Закрытый
6.5
Практика
↗
3
3
-
0
7. Перечисления и пользовательские типы
4 урока
17
11
0м
0
Закрытый
7.1
enum: определение и использование
↗
4
3
-
0
Закрытый
7.2
Объединение enum с switch
↗
4
2
-
0
Закрытый
7.3
typedef для упрощения типов
↗
3
3
-
0
Открытый
7.4
Практика
↗
6
3
-
0
8. Структуры и составные данные
5 уроков
23
16
0м
0
Закрытый
8.1
Определение и инициализация struct
↗
3
3
-
0
Закрытый
8.2
Доступ к полям, вложенные структуры
↗
4
4
-
0
Закрытый
8.3
Функции для работы со структурами
↗
5
3
-
0
Открытый
8.4
Переход к ООП-мышлению
↗
8
3
-
0
Закрытый
8.5
Практика
↗
3
3
-
0
9. Массивы
5 уроков
19
15
0м
0
Закрытый
9.1
Одномерные массивы: объявление, инициализация, доступ
↗
4
3
-
0
Закрытый
9.2
Передача массивов в функции
↗
4
3
-
0
Закрытый
9.3
Многомерные массивы
↗
3
3
-
0
Закрытый
9.4
Итерация по массивам
↗
4
3
-
0
Закрытый
9.5
Практика
↗
4
3
-
0
10. Указатели
5 уроков
24
16
62м
0
Закрытый
10.1
Что такое указатель? Адрес vs значение
↗
6
3
24м 37с
0
Закрытый
10.2
Операции с указателями: разыменование, арифметика
↗
5
3
16м 2с
0
Закрытый
10.3
Указатели и массивы
↗
4
3
10м 29с
0
Закрытый
10.4
Указатели на структуры (->)
↗
4
3
12м 17с
0
Закрытый
10.5
Практика
↗
5
4
-
0
11. Строки в C
5 уроков
17
16
0м
0
Закрытый
11.1
Строки как массивы символов
↗
4
3
-
0
Закрытый
11.2
Стандартные функции: strlen, strcpy, strcat, strcmp
↗
3
3
-
0
Закрытый
11.3
Безопасная работа со строками
↗
3
3
-
0
Закрытый
11.4
Массивы строк
↗
3
3
-
0
Закрытый
11.5
Практика
↗
4
4
-
0
12. Динамическое управление памятью
5 уроков
16
13
0м
0
Закрытый
12.1
malloc, calloc, realloc, free
↗
3
3
-
0
Закрытый
12.2
Динамические массивы
↗
3
3
-
0
Закрытый
12.3
Связные списки (введение)
↗
3
2
-
0
Закрытый
12.4
Утечки памяти и отладка (valgrind)
↗
3
1
-
0
Закрытый
12.5
Практика
↗
4
4
-
0
13. Работа с файлами
5 уроков
16
7
0м
0
Закрытый
13.1
Потоки ввода-вывода: stdin, stdout, stderr
↗
4
2
-
0
Закрытый
13.2
Открытие/закрытие файлов (fopen, fclose)
↗
3
1
-
0
Закрытый
13.3
Чтение и запись: fscanf, fprintf, fgets, fputs
↗
3
1
-
0
Закрытый
13.4
Текстовые и бинарные файлы
↗
3
0
-
0
Закрытый
13.5
Практика
↗
3
3
-
0
14. Многофайловые проекты и сборка
5 уроков
11
7
0м
0
Закрытый
14.1
Разделение кода на .c и .h
↗
2
2
-
0
Закрытый
14.2
Компиляция нескольких файлов
↗
2
1
-
0
Закрытый
14.3
Препроцессор: #include, #define, условная компиляция
↗
2
1
-
0
Закрытый
14.4
Основы Makefile
↗
2
0
-
0
Закрытый
14.5
Практика
↗
3
3
-
0
15. Продвинутые темы и завершение курса
5 уроков
8
4
0м
0
Закрытый
15.1
Область видимости и время жизни переменных
↗
2
1
-
0
Закрытый
15.2
Хранилища: auto, static, extern
↗
1
0
-
0
Закрытый
15.3
Безопасность и надёжность: защита от buffer overflow
↗
2
0
-
0
Закрытый
15.4
Обзор современных стандартов C (C99, C11, C18)
↗
1
1
-
0
Закрытый
15.5
Практика
↗
2
2
-
0
16. Системное программирование в Linux
1 урок
3
2
44м
0
Закрытый
16.1
Небуферизованный ввод/вывод
↗
3
2
44м 1с
0