=== [АРХИВ] Программирование (Весна 2024) ===
[[https://docs.google.com/document/d/1Vr_FJwblSiqm0Q8v6s1QkltftZQuytcT6uxb4sz47qs|Темы лекций, осень 2024]]
[[https://www.youtube.com/playlist?list=PL2_lbdWa5lfOxzcfQn1cnMkz_D71hf6o_|Записи лекций, осень 2023 + весна 2024]]
=== [АРХИВ] Программирование (Весна 2023) ===
План-проспект лекций:
== Выборочный обзор libc (09.02) ==
- Вспоминаем организационные моменты (лабораторные, курсы, рейтинговая система, экзамен)
- Подробное рассмотрение assert, errno, signal, stddef, stdlib, time, wchar с приближенными к реальности примерами
- Поверхностное рассмотрение остальных библиотек
- Повторение пройденного материала, вопросы по задачам 1 семестра.
== Структуры данных + остаточный обзор libc (02.03) ==
- Рассмотрение оставшихся после string.h библиотек
- Введение в структуры данных -- массивы, списки, деревья, графы, примеры работы со списком
== Списки (09.03) ==
- Разбор списков -- написать вместе со студентами за лекцию готовый код линейного списка (insert, remove, find, create, printList).
== Разбор стека и очереди (16.03) ==
- Разбор реализации стека и очереди на списке и на массиве, сравнение реализаций
== Введение в С++ (23.03) ==
- Что такое язык С++, его назначение
- Пространства имен, подключение библиотек
- Инкапсуляция на примере структур данных из прошлых занятий (список, стек)
- Классы, методы (конструктор, деструктор), спецификаторы доступа
== Рекурсия, работа с файлами, обход файлового дерева (30.03) ==
- Рекурсия, глубина рекурсии
- Файловый дескриптор -- что это такое, и зачем нужно. Сценарии: tail и ls -l /proc/.....; lsof и несколько tail-ов; fprintf и IO потоки;
- Базовые функции работы с файлами fopen, fclose, fread, fwrite, fseek, ftell и тп. Дескриптор в директории
- Рекурсивный обход файловой системы
- (optional) Getopt и аргументы командной строки
== Getopt, отладка в виртуальных машинах, С++ (06.04) ==
- Пара слов по контрольной -- какие задачи, какое выбрать время
- Разработка программ -- почему важно запускать и тестировать свои программы в виртуальных машинах
- С++ -- исключения, new/delete
- Getopt и аргументы командной строки
- Отладка программ в виртуальных машинах через IDE
- (optional) Системы сборки -- Makefile (вспомнить), Autotools
== Autotools, словари, инкапсуляция (как сломать, сделать в Си) (13.04) ==
- Системы сборки -- Makefile (вспомнить), Autotools
- Темы для контрольной + словари (от простой реализации до хэш-таблиц)
- Как сломать инкапсуляцию в С++
- Как сделать инкапсуляцию в Си
== Разбор контрольной (20.04) ==
- Примеры работ
- Разбор сложных задач
== Курсовая, BMP (27.04) ==
- Базовая задача курсовой -- как может выглядеть решение
- Поверхностный разбор структуры BMP (особое внимание на сложные поля, таблицу цветов)
- Sizeof struct, директива pragma
- Как создать BMP с нуля
- Пример, как считать, изменить и сохранить BMP файл. Как учесть все версии заголовков.
== Курсовая, libpng (03.05) ==
- Структура формата PNG -- сигнатура и чанки (критические/необязательные/пользовательские)
- Разбора примера READ/WRITE, как обработать пиксельные данные
== Курсовая, libpng (18.05) ==
- Shared-библиотеки -- как создать, как использовать
- Системы сборки -- Autotools, CMake
- C++ ссылки (объявления, копии, присваивание)
== Регулярные выражения (25.05) ==
- Как работать с libc и другими .so библиотеками в Python
- Doxygen, пример на стеке
- Регулярные выражения -- как использовать, примеры
== Регулярные выражения (01.06) ==
- Регулярные выражения -- Libc
- Полезные утилиты, которые стоит помнить: find, grep, ssh, gpg
- История терминала (history) -- как увеличить хранилище, где посмотреть (разные пользователи), reverse-search
- Valgrind (+ callgrind) -- анализ программы
- Программные каналы -- mkfifo
=== [АРХИВ] Программирование (Весна) ===
[[https://docs.google.com/document/d/e/2PACX-1vREUCMXjSkfCWTX92KUpUsrcjpnuiEifOgge-vGberr3OOVYM8EduVJWnRDEkzkzzEDL9R8nJoFqziU/pub|Список тем лекций]]
- [[https://youtu.be/2kA9JwnlEuw|Лекция 1 (07.02.22)]]
- [[https://youtu.be/YC3s_1szRGw|Лекция 2 (14.02.22)]]
- [[https://youtu.be/L2Mbmh6Nju4|Лекция 3 (21.02.22)]]
- [[https://youtu.be/YnL6mZIeCHc|Лекция 4 (28.02.22)]]
- [[https://youtu.be/2nvASmQuULw|Лекция 5 (05.03.22)]]
- [[https://youtu.be/QsiMkqlhb7A|Лекция 6 (14.03.22)]]
- [[https://youtu.be/x_VmX8g_0qs|Лекция 7 (28.03.22)]]
- [[https://youtu.be/fCQRboLFAbg|Лекция 8 (04.04.22)]]
- [[https://youtu.be/nMTRHeZwYMU|Лекция 9 (11.04.22)]]
- [[https://youtu.be/NKIKkBridks|Лекция 10 (25.04.22)]]
- [[https://youtu.be/hgHDPoeNomU|Лекция 11 (16.05.22)]]
- [[https://youtu.be/Ti8DNCCQHWg|Лекция 12 (23.05.22)]]
----
== Обзор стандартной библиотеки Си. Различие базового синтаксиса Си и Си++ ==
== Структуры. Объединения. Списки. Динамическая и статическая реализация ==
[[.:lectures:code2]]
== Практики проектирования, разработки, отладки, сопровождения. Стили кодирования ==
== Работа со строками. Алгоритмы на строках. Обработка текстов ==
== Регулярные выражения ==
== Рекурсия и циклы ==
== Ввод вывод. Файлы ==
[[.:lectures:code3| Пример.]]
== Разработка Command Line Interface (CLI) ==
== Хэширование и хэш-таблицы ==
== Алгоритмы обхода, концепция итератора. Использование текстовых форматов ==
* [[.:lectures:code4| Пример программы осуществляющей перебор атрибутов в xml.]]
* [[.:lectures:extra| Дополнительное задание по уроку]]
== Введение в синтаксис С++ ==
* [[.:lectures:code5]]
* [[.:lectures:code6]]
* [[.:lectures:code7]]
== Отладка. Обработка исключительных ситуаций и ошибок ==