№
|
Название темы
|
Краткое содержание темы
|
Итого
|
Организационная форма обучения
|
Самостоятельная работа
|
1
|
Современные технологии программирования
|
Современные технологии программирования (процедурное, функциональное, логическое, объектно-ориентированное).
Преимущества ООП. Эволюция языка JAVA. Концепции ООП в языке JAVA: инкапсуляция, наследование, полиморфизм.
|
2
|
НА
|
1
|
2
|
Классы
|
Инкапсулированные объекты в языке JAVA. Понятие класса. Объявление и определение элементов класса. Управление доступом к элементам класса. Создание объекта (экземпляра) класса. Указатель на объект класса. Структура как разновидность класса.
|
4
|
НА
|
2
|
3
|
Конструкторы и деструкторы объектов классов
|
Назначение конструкторов и деструкторов. Перегрузка конструкторов.
Виды конструкторов (конструктор копирования, конструктор по умолчанию). Правила объявления и определения конструкторов и деструкторов при создании классов.
|
4
|
НА
|
2
|
4
|
Дружественные функции и дружественные классы
|
Назначение дружественных функций и дружественных классов. Правила объявления и определения, примеры.
|
4
|
НА
|
2
|
5
|
Перегрузка операторов
|
Возможность переопределения операторов в языке JAVA. Синтаксис объявления и определения операторов в классах. Создание функций операторов сложения, присваивания, выделения элемента массива, new, delete и других.
|
4
|
НА
|
2
|
6
|
Наследование и полиморфизм.
|
Понятие наследования, его назначение. Базовые и производные классы, синтаксис определения производных классов. Единичное и множественное наследование. Особенности конструкторов производных классов, список инициализации в конструкторе.
Понятие полиморфизма. Виртуальные методы: назначение, правила использования. Чисто виртуальные методы и абстрактные классы.
|
6
|
НА
|
2
|
7
|
Шаблоны функций и классов
|
Назначение шаблонов, понятие параметрического полиморфизма.
Шаблоны функций: объявление шаблона, создание экземпляра шаблона.
Декларация и реализация шаблонов классов, примеры.
Использование шаблонов классов для построения родовых структур данных (массивов, списков, деревьев и т.п.). стандартная библиотека шаблонов в JAVA.
|
4
|
НА
|
2
|
8
|
Библиотека классов MFC
|
Иерархия классов библиотеки MFC, основные классы MFC, классы оконного интерфейса, меню, классы для работы с файловой системой, графические классы, классы для хранения информации в массивах, списках, словарях.
|
4
|
НА
|
2
|
9
|
Управление событиями в приложении, созданном на базе MFC
|
Механизм обработки сообщений, оконные сообщения, командные сообщения и др., таблица откликов на сообщения, обработка исключительных ситуаций.
|
4
|
НА
|
2
|
10
|
Разработка компонентов ООП в Microsoft Visual studio.
|
Возможности создания программных компонентов различного рода (интерфейсных, графических, для хранения данных и других) с использованием средств автоматизации. Процесс создания: проектирование ресурса, создание класса и объекта класса, переопределение виртуальных методов базового класса и разработка новых, отражающих свойства и поведение компонента.
|
4
|
НА
|
2
|
11
|
Транспортный уровень стека TCP/IP.
|
Протоколы TCP/IP: UDP, TCP, SCTP. Установка и завершение соединения TCP. Состояние
TIME_WAIT. Установка и завершение ассоциации SCTP. Номера портов. Размеры буфера и
ограничения. Протоколы сетевых служб.
|
6
|
НА
|
3
|
12
|
Введение в сокеты
|
Структуры адресов сокета IPv4 и IPv6. Управление порядком байтов. Функции inet_aton, inet_addr,
inet_ntoa. Функции inet_pton, inet_ntop. Чтение из сокета и запись в сокет
|
4
|
НА
|
2
|
13
|
Управление сокетами.
|
Создание сокета: функция socket. Соединение клиента с сервером: функция connect. Подготовка
сервера к сетевому соединению: функции bind, listen. Прием соединения: функция accept.
Распараллеливание работы сетевого сервера: функции exec и fork. Закрытие соединения: функция close.
|
4
|
НА
|
2
|
14
|
Разработка клиента и сервера TCP.
|
Разработка эхо-сервера: создание сокета и связывание с портом, запуск прослушивания порта,
блокирующее ожидание клиентского соединения, разблокировка сервера по получению соединения,
параллелизация сервера для обработки соединения, завершение соединения и возврат на блокирующее
ожидание в основном потоке, обработка соединения и завершение работы в дочернем потоке.
|
4
|
НА
|
2
|
15
|
Мультиплексирование ввода-вывода.
|
Модели ввода-вывода. Мультиплексирование ввода-вывода с помощью функции select.
Формирование множеств дескрипторов для select. Понятие готовности дескриптора. Вызов select.
Разработка эхо-сервера с использованием select. Защита сервера от DOS-атак. Функция pselect.
Мультиплексирование ввода-вывода с помощью функции pool.
|
4
|
НА
|
2
|
16
|
Разработка клиента и сервера UDP.
|
Модель взаимодействия клиента и сервера UDP. Функции sendto и recvfrom. Потеря дейтаграмм.
Валидация дейтаграмм. Мультиплексирование для UDP-сервера.
|
4
|
НА
|
2
|
17
|
Преобразования имен и адресов.
|
Система доменных имен DNS. Записи ресурсов. Распознаватели и серверы имен. Альтернативы
DNS. Ресолвинг имен: функции gethostbyname, gethostbyaddr. Ресолвинг служб: функции getservbyname,
getservbyport. Отличия ресолвинга для протоколов IPv4 и IPv6, функции getaddrinfo, getnameinfo.
Разработка TCP и UDP-клиентов даты и времени.
|
4
|
НА
|
2
|
18
|
Сетевые службы.
|
Принципы функционирования службы (демона) в Unix. Журналирование службы: демон syslogd,
функция syslog. Преобразование процесса в службу. Разработка службы даты и времени. Сервис inetd
(xinetd). Подготовка службы для функционирования совместно с inetd.
|
4
|
НА
|
2
|
19
|
Функции ввода-вывода.
|
Тайм-аут для ввода-вывода. Функции read и write, recv и send, recvfrom и sendto. Распределяющее
чтение: функция readv. Объединяющая запись: функция writev. Универсальные функции ввода-вывода:
recvmsg, sendmsg. Прием-передача вспомогательных данных. Использование для сокетов функций
стандартного ввода-вывода.
|
4
|
НА
|
2
|
20
|
Неблокируемый ввод-вывод.
Функции, вызывающие блокирование ввода-вывода.
|
Неблокируемые чтение и запись. Перевод
сокетов в неблокируемое состояние. Цикл обработки чтения или записи. Устранение блокировки с
помощью параллелизации процессов. Неблокируемые варианты функций connect, accept.
|
4
|
НА
|
2
|
21
|
Сетевые возможности системного интерфейса ioctl.
|
ioctl - назначение, области применения, параметры. Операции с сокетами. Операции с файлами,
применимые к сокетам. Конфигурация сетевых интерфейсов. Операции с сетевыми интерфейсами.
Операции с кэшем ARP. Операции с таблицей маршрутизации..
|
4
|
НА
|
2
|
22
|
Широковещательная передача.
|
Широковещательные адреса. Направленная и широковещательная передача. Фрагментация IP-пакетов при широковещательной передаче. Ситуация гонок и ее решение с помощью pselect, sigsetjmp и
siglongjmp
|
4
|
НА
|
2
|
23
|
Многоадресная передача
|
Адрес многоадресной передачи IPv4 и IPv6. Область действия адресов многоадресной передачи.
Многоадресная и широковещательная передачи. Многоадресная передача в глобальной сети.
Многоадресная передача от отправителя (SSM). Параметры сокетов многоадресной передачи.
Получение анонсов сигналов многоадресной передачи. Отправка и получение данных.
.
|
4
|
НА
|
2
|
24
|
Символьные (неструктурированные) сокеты.
|
Создание символьных сокетов. Вывод на символьном сокете. Ввод на символьном сокете.
Разработка программы ping на символьных сокетах. Разработка программы traceroute на символьных
сокетах
|
4
|
НА
|
2
|
Итого
|
100
|
|
50
|