-
Notifications
You must be signed in to change notification settings - Fork 1
/
course-1-sem-1.txt
113 lines (88 loc) · 7.17 KB
/
course-1-sem-1.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
0.
(факультативно)
Основы личной информационной безопасности.
Личные информационные объекты.
Требования к объектам: конфиденциальность, целостность, доступность.
Субъекты, риски и векторы.
Механизмы защиты и рекомендуемые практики.
1.
Устройство ЭВМ.
Принцип фон Неймана.
Такт, быстродействие и ограничивающие факторы.
Процессор, память, шины.
Классификация и характеристика шин и мостов (последовательные/параллельные, синхронные/асинхронные).
2.
Процесс.
Линейное (flat) адресное пространство.
Страницы и адресные таблицы.
Пейджинг (свопинг), сбои страничного обмена
Подгрузка данных из файлов в оперативную память.
3.
Операционная система.
Интерфейсы (UI, API, интерфейсы системных драйверов) и системные вызовы.
4. Многозадачность и многопоточность - реальная, кооперативная, с вытеснением. Разделение ресурсов.
5.
Представление целочисленных данных.
Размерность, знаковость, байтовый порядок.
Типичные ошибки и проблемы: переполнение целого типа, ошибки знаково-беззнаковых преобразований, деление на ноль.
6.
Представление чисел с плавающей точкой. Мантисса и экспонента.
Одинарная, двойная и расширенная точность.
Специальные значения и логика специальных значений.
Погрешность вычислений и накопление погрешности. Аппаратные механизмы снижения накопления погрешности. Алгоритмические механизмы снижения накопления погрешности.
Типичные ошибки и проблемы: сравнение без учета накопленой ошибки, некорректная обработка специальных значений, операции за пределами разрядности мантиссы.
7.
(факультативно)
Представление графических данных.
Представление звуковых данных.
Представление видео.
8. Статические структуры данных: массивы, структуры, объединения.
9. Динамические структуры данных: списки, стеки, очереди, (деревья, ассоциативные массивы - факультативно)
10.
Представление кода.
Компиляторы и интерпретаторы (код виртуальной машины, JIT - факультативно).
Функции (процедуры).
11.
Потоки выполнения.
Стек вызовов.
Передача аргументы и локальные переменные функции.
Типичные ошибки, проблемы и ограничения работы с локальными данными фунции (переполнение стека, возврат указателя внутрь стека, повреждение стека / переполнение стекового буфера).
12.
Статические и константные (read only) данные.
Типичные ошибки, проблемы и ограничения при работе со статическими данными (модификация константных данных, кратковременные условия)
13.
Динамические данные.
Куча. Классическая организация кучи, чанки, списки свободных чанков и выделение/освобождение чанков.
Типичные ошибки, проблемы и ограничения при работе со статическими данными (утечка памяти, двойное освобождение, использование после освобождения, повреждения кучи / переполнения динамического буфера).
Динамическая отладка работы с памятью.
14.
Файлы. Дисковые файловые структуры (древовидные, плоские), пути к файлам.
Работа с файлами, файловые дискрипторы (хэндлы). Прикладные файловые структуры и потоки (FILE *)
Открытие файла. Чтение файла, запись файла.
Низкоуровневый и буферизированный ввод/вывод.
Механизмы низкоуровневого и высокоуровневого кэширования
(отображение файла на память - факультативно).
15.
Компиляция.
Препроцессор и компилятор.
Объектные файлы.
Символы и таблицы импорта/экспорта объектных файлов
Статические библиотеки.
Ошибки во время компиляции.
16.
Статическая линковка.
Исполняемый файл.
Ошибки во время линковки.
17.
Динамическая линковка.
Линковка в момент создания процесса, символы и таблицы импорта/экспорта исполняемых файлов
Динамическая подгрузка модулей.
Ошибки времени выполнения.
18. Язык C. Переменные и константы. Встроенные типы данных. Области видимости. Структуры, массивы, указатели.
19. Язык С. Выражения. Одно, двух, трех, много-местные операторы.
20. Язык С. Законченные выражения (операции/высказываения). Блоки. Условные, цикловые, switch/case - конструкции.
21. IDE. Создание модульного приложения на C/C++.
22. IDE. Пошаговая отладка, точки останова
23. Коммандная строка. Базовые команды, перенаправления ввода/вывода.
24. (факультативно) Случайные и псевдо-случайные генераторы. Сбор энтропии.