This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
start:prog2:lectures [2023/02/08 18:17] yaroslav.gosudarkin |
start:prog2:lectures [2023/06/01 10:36] yaroslav.gosudarkin |
||
---|---|---|---|
Line 3: | Line 3: | ||
План-проспект лекций: | План-проспект лекций: | ||
- | == Выборочный обзор libc == | + | == Выборочный обзор libc (09.02) == |
- Вспоминаем организационные моменты (лабораторные, курсы, рейтинговая система, экзамен) | - Вспоминаем организационные моменты (лабораторные, курсы, рейтинговая система, экзамен) | ||
- Подробное рассмотрение assert, errno, signal, stddef, stdlib, time, wchar с приближенными к реальности примерами | - Подробное рассмотрение assert, errno, signal, stddef, stdlib, time, wchar с приближенными к реальности примерами | ||
- Поверхностное рассмотрение остальных библиотек | - Поверхностное рассмотрение остальных библиотек | ||
- | - Повторение пройденного материала, вопросы по задачам 1 семестра. Анализ нескольких работ 1 семестра, основная задача -- "отучить студентов" изобретать велосипед без необходимости, побудить активно изучать инструментарий с которым они работают. | + | - Повторение пройденного материала, вопросы по задачам 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 | ||
=== [АРХИВ] Программирование (Весна) === | === [АРХИВ] Программирование (Весна) === |