zhChinese    enEnglish
  ПМ-ПУ  » Образование  » Программы курсов » Технология программирования » Кафедра КТС

Технология программирования

Общий курс
Составители: к.ф.-м.н., доц. Коровкин М.В., к.ф.-м.н., доц. Мисенов Б.А., к.ф.-м.н., доц. Погожев С.В.

Основы работы на ПК

  1. Знакомство с устройством компьютера. Назначение и взаимосвязь его основных устройств. BIOS. Загрузка. Понятие операционной системы. Системы счисления. Байт как единица текстовой информации. Разрядность.
  2. Операционная система MSDOS.
  3. Операционная система Linux. Многопользовательность. Понятие учетной записи (account).
  4. Семейство операционных систем Windows. Cтруктура реестра. Драйверы устройств. Многопользовательность. Сетевые ресурсы, их именование, права доступа. Однозадачность, многозадачность, процессы и потоки.
  5. Примеры программ и некоторые навыки работы с ними (архиваторы, графические приложения, офисные, утилиты, средства разработки, браузеры).
  6. Представление текстовой информации. Кодировки (8, 16, 32-х разрядные, Unicode). Способы хранения текстовой информации (простой текст, форматированный текст, гипертекст). Понятие о языках HTML, XML, TeX, RTF. Подготовка документов к публикации, форматы Postscript, PDF.

Программирование

  1. Среда разработки. Понятие проекта. Компиляция программы. Запуск программы.
  2. Структура программы (C++). Базовые типы данных, их машинное представление и операции над ними (присваивание, сложение, умножение и т.д.). Базовый ввод, вывод.
  3. Операторы выбора. Операторы цикла.
  4. Массивы. Инициализация массивов.
  5. Указатели. Указатели и массивы.
  6. Сортировка и поиск в массивах.
  7. Работа с файловыми потоками.
  8. Способы распределения памяти. Динамическое распределение памяти. Динамические массивы.
  9. Функции. Способы передачи параметров. Рекурсия. Функции и массивы. Перегрузка. Значения по умолчанию. Const. Static. Локальные и глобальные переменные.
  10. Перегрузка стандартных операций.
  11. Разбиение программы на файлы. Многофайловые проекты. Компиляция, этапы компиляции. Компиляция в промежуточный код

Объектно-ориентированное программирование

  1. Структуры. Объединения. Классы.
  2. Конструкторы, деструкторы.
  3. Доступность компонентов класса.
  4. Статические компоненты класса.
  5. Друзья классов.
  6. Наследование.
  7. Контейнеры. Массив. Односвязные списки. Двусвязные списки. Деревья. Типовые алгоритмы поиска и сортировки.
  8. Шаблоны классов.
  9. Стандартная библиотека шаблонов (STL).
  10. Программирование под Windows. Создание пользовательского интерфейса. Использование библиотеки визуальных компонентов (Borland VCL, MFC, Microsoft .NET Forms).

Компьютерные сети

  1. История развития компьютерных сетей. Интернет. Стандартизация сетевых технологий
  2. Общие принципы построения сетей. Локальные и глобальные сети. Топология сети. Пакетная и канальная передача данных
  3. Понятие сетевого протокола. Многоуровневость сетевых протоколов. Модель OSI. Понятие стека протоколов.
  4. Физический уровень. Сети Ethernet. Повторители, концентраторы. Коллизии
  5. Канальный уровень на примере Ethernet. Адресация. Структура фрейма. Мосты, концентраторы. Виртуальные сети (VLAN).
  6. Сетевой уровень. IP-адресация. Типы адресов (unicast, broadcast, multicast). Address Resolution Protocol (ARP). Передача данных внутри локальной сети
  7. Маршрутизация. Таблицы маршрутизации. Статическая и динамическая маршрутизация. Внутренняя и внешняя маршрутизация.
  8. ICMP: назначение и применение. Обмен данными между программами. Датаграммная и потоковая передача. User Datagram Protocol (UDP). Transmission Control Protocol (TCP). Этапы жизни TCP-соединения.
  9. Протоколы верхних уровней. Технология клиент-сервер. Стандартные службы на основе UDP и TCP. Примеры стандартных служб на основе UDP. Система доменных имен (DNS): структура, типы записей, принцип работы. Система имен Netbios. Dynamic Host Configuration Protocol (DHCP).
  10. Примеры стандартных служб на основе TCP. Протоколы для удаленных теминалов. Telnet, SSH. Telnet как средство отладки. Электронная почта. Адресация в электронной почте. Классификация почтовых программ. Протоколы SMTP, POP3, IMAP. Стандарты MIME. Протоколы передачи файлов. FTP, HTTP.
  11. Программирование сетевых приложений. Программный интерфейс сокетов, особенности его применения в Linux, Windows.
  12. Основы безопасности компьютерных сетей. Брандмауэры (firewall), их типы. Прокси-серверы. Network Address Translation (NAT).
  13. Криптография в компьютерных сетях. Симметричные алгоритмы, примеры. Алгоритмы с открытым ключом, примеры. Сценарии применения. Электронная подпись. Сертификаты X.509.
  14. World Wide Web. Статические и динамические данные. Common Gateway Interface (CGI). Веб-приложения, обзор технологий и языков. Веб-сервисы. Протоколы XML-RPC, SOAP.

Базы данных

  1. Понятие базы данных. Виды БД, требования к БД, общая структура БД.
  2. Проектирование БД. Диаграмма Entity-Relationship. Типы связей. Диаграмма классов.
  3. Реляционные базы данных. Структура базы. SQL DDL
  4. Поддержание целостности в реляционных БД. Внутренние и внешние ключи
  5. Операторы реляционной алгебры. Операторы SQL
  6. Функциональные зависимости. Нормализация реляционной БД
  7. Нормальные формы высших порядков
  8. Проектирование реляционных баз данных. Переход от ER-диаграмм к системе отношений.
  9. Особенности работы в условиях многопользовательности. Права доступа. Транзакции
  10. Подходы OLTP и OLAP
  11. Иерархические базы данных. XML как способ хранения иерархической БД. XPath, XQuery.
  12. Объектно-ориентированные базы данных

Список рекомендуемой литературы:

  1. Кнут Д. Е. Искусство программирования на ЭВМ. Т. 1-3.- М., 1990.
  2. Страуструп Б. Язык программирования С++: Пер.с англ. - Спец. изд. - М.: Бином, 2001. - 1114 с.
  3. Липпман С.Б. Основы программирования на C++. - М.: Вильямс, 2002. - 256 с.
  4. Ахо А.В., Хопкрофт Д., Ульман Д.Д. Структуры данных и алгоритмы: Пер. с англ.: М.: Издательский дом "Вильямс", 2003.- 384 с.
  5. Олифер В.Г., Олифер Н.А. Компьютерные сети. - 3-е изд. - М.: Питер, 2005. - 960 с.
  6. Стивенс У. Р. Протоколы TCP/IP. - СПб.: Нев. диалект, 2003. - 672 с.
  7. Стивенс У. Р. UNIX: разработка сетевых приложений. - М.: Питер, 2004. - 1086 с.
  8. Дейт К. Дж. Введение в системы баз данных. - 8-е изд. - М.: Вильямс, 2005. - 1328 с.
  9. Ролланд Ф. Основные концепции баз данных. - М.: Вильямс, 2002. - 256 с.