Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программа спецкурсов кафедры ФТИ.doc
Скачиваний:
8
Добавлен:
06.06.2015
Размер:
593.92 Кб
Скачать

Литература

  1. Принципы работы системы IBM/370. / Под ред. Л. Д. Райкова. М.: Мир, 1975.

  2. Компьютеры: Справочное руководство:В 3 т. / Под ред. Г. Хелмса. М.: Мир, 1986. Т.1.

  3. Супер-ЭВМ. Аппаратная и программная реализация. / Под ред. С. Фернбаха. М.: Радио и связь, 1991.

  4. Р. Хокни, К. Джессхоуп. Параллельные ЭВМ. Архитектура, программирование и алгоритмы. М.: Радио и связь, 1986.

  5. Э. Клингман. Проектирование микропроцессорных систем. М.: Мир, 1983.

  6. Э. Клингман. Проектирование специализированных микропроцессорных систем. М.: Мир, 1985.

  7. В. В. Сташин, А. В. Урусов, О. Ф. Молокогонцева. Проектирование цифровых устройств на однокристальных микроконтроллерах. М.: Энергоатомиздат, 1990.

  8. Б. Л. Толстых и др. Мини- и микро-ЭВМ семейства "Электроника": Производственное издание. М.: Радио и связь, 1987.

  9. М. Сингер. Мини-ЭВМ PDP-11: программирование на языке ассемблера и организация машины. Серия "Математическое обеспечение ЭВМ". М.: Мир, 1984.

  10. Центральный процессор М2. ТО и инструкция по эксплуатации. ЦНИИ "Электроника", 1982.

  11. Ю-Чжень Лю, Г. Гибсон. Микропроцессоры семейства 8086/8088. М.: Радио и связь, 1987.

  12. С. П. Морс, Д. Д. Алберт. Архитектура микропроцессора 80286. М.: Радио и связь, 1990.

  13. В. Л. Григорьев. Архитектура микропроцессора 80486: в 4 т.М.: ГРАНАЛ, 1993.

  14. П.М.Коуги. Архитектура конвейерных ЭВМ. М.: Радио и связь, 1985.

  15. Ч.Кэпс, Р.Стаффорд. VAX: программирование на языке ассемблера и архитектура. М.: Радио и связь, 1991.

  16. Г.Майерс. Архитектура современных ЭВМ: в 2 т. М.: Мир, 1985.

  17. Э. Таненбаум. Многоуровневая организация ЭВМ. М.: Мир, 1979.

  18. Э. Таненбаум. Архитектура компьютера. 4-е изд. СПб.: Питер, 2002.

  19. К. Хамахер, З. Вранешич, С. Заки. Организация ЭВМ. 5-е изд. СПб.: Питер, 2003.

Обьектно‑ориентированное программирование(2-й курс, 3-й сем., 72 ч., диф. Зачёт) Программа курса лекций(36 ч.)

Старший преподаватель Всеволод Юрьевич Рылов

Объектно-ориентированная модель

  1. Основные принципы объектно-ориентированного программирования (4 часа).

    1. Эволюция методологий программирования.

      1. Начало начал, или первое поколение языков программирования.

      2. Развитие алгоритмических абстракций, или второе поколение языков программирования.

      3. Модуль как единица построения программных систем, третье поколение языков программирования.

      4. Зарождение объектной модели, четвертое поколение языков программирования.

      5. Объектные языки программирования, объектно-ориентированные языки программирования, объектно-ориентированный анализ, дизайн и проектирование.

      6. Парадигмы программирования.

    2. Составные части объектного подход.

      1. Абстрагирование.

      2. Инкапсуляция.

      3. Модульность.

      4. Иерархия.

      5. Типизация.

      6. Параллелизм.

      7. Сохраняемость.

  1. Объектно-ориентированная модель (2 часа).

    1. Понятие объекта.

      1. Свойства, присущие объектам.

      2. Состояние.

      3. Поведение.

      4. Идентичность.

    2. Отношения между объектами.

      1. Типы отношений.

      2. Связь (ассоциация).

      3. Агрегация.

  1. Классы (2 часа).

    1. Природа классов.

    2. UML – унифицированный язык моделирования. Четырехуровневая метамодель MOF.

    3. Отношения между классами.

      1. Типы отношений.

      2. Ассоциация.

      3. Агрегация, композиция.

      4. Использование.

      5. Наследование.

      6. Инстанцирование.

    4. Отношения между классами и объектами.

Инструментальные средства ООП языка программирования C++

  1. Основные алгоритмические отличия C++ от C (2 часа).

    1. Использование ссылок. Передача аргументов функции по ссылке.

    2. Использование констант.

    3. Логические тип и перечисления.

    4. Операторы управления динамической памятью, инициализация массивов.

    5. Структура программы, раздельная компиляция и особенности использования статической памяти.

    6. Функциональный полиморфизм.

    7. Пространства имен и исключения (краткий обзор).

    8. Библиотека ввода вывода (краткий обзор iostream).

  1. Средства объектного программирования языка C++ (6 часов).

    1. Представление объектов и классов.

      1. Реализация поведения объектов на примере добавления функций-членов в структуры. Структура как вырожденный класс.

      2. Структура объявления класса.

      3. Доступ к членам класса.

      4. Поля данных класса как механизм реализации состояния объекта.

      5. Функции члены класса как механизм реализации поведения объекта.

      6. Спецификаторы доступа для обеспечения инкапсуляции.

      7. Средства управления жизнью объекта. Конструирование и уничтожение объектов и массивов объектов.

      8. Особенности использования конструктора копии, конструктора по умолчанию, оператора присваивания.

      9. Описание селекторов и модификаторов.

      10. Перегрузка операторов C++ как реализация поведения с предопределенным смыслом.

      11. Дружественность как механизм нарушения инкапсуляции. Достоинства и недостатки механизма дружественности.

      12. Статические поля и методы классов. Инициализация статических полей.

    2. Реализация отношений между объектами и классами.

      1. Ассоциация и агрегация объектов и классов. Зависимость по времени жизни.

      2. Использование и зависимость от интерфейсов.

      3. Объекты при передаче параметров и возврате из методов.

      4. Варианты реализации отношения клиент-сервер.

      5. Внутренние классы.

  1. Средства объектно-ориентированного программирования С++ (7 часов).

    1. Наследование как средство организации иерархий классов. Принцип замещения Лисковой.

    2. Одиночное наследование.

      1. Понятие производного класса.

      2. Управление доступом в производных классах.

      3. Конструкторы и деструкторы, совмещение имен методов при наследовании, иерархии.

      4. Абстрактные классы и виртуальные функции.

      5. Виртуальный полиморфизм.

      6. Информация о типе на этапе выполнения. RTTI.

    3. Множественное наследование.

      1. Проблема множественного наследования. Виртуальное наследование как средство разрешения коллизий.

      2. Порядок вызовов конструкторов и деструкторов при множественном наследовании.

      3. Чистые виртуальные классы, понятие интерфейса.

      4. Принципы дизайна иерархий классов. OCP, DIP, ISP.

    4. Пространства имен.

      1. Пространства имен как средство реализации модульности.

      2. Поиск имен и разрешение конфликтов.

      3. Объединение пространств имен.

      4. Принципы дизайна пакетов.

    5. Обработка исключений.

      1. Обработка ошибок.

      2. Группировка и перехват исключений.

      3. Управление ресурсами.

      4. Исключения и эффективность.

      5. Альтернативные методы обработки ошибок.

      6. Стандартные исключения.

  1. Обобщенное программирование (3 часа).

    1. Шаблоны классов.

      1. Определение шаблона.

      2. Инстанцирование.

      3. Параметры шаблонов и проверка типов.

    2. Шаблоны функций.

    3. Специализация.

    4. Наследование и шаблоны.

  1. Стандартная библиотека С++ (6 часов).

    1. Библиотека стандартных шаблонов.

      1. Общие сведения (понятия контейнеров, итераторов и объектов-функций).

      2. Контейнеры (виды контейнеров, последовательные и ассоциативные контейнеры, адаптеры).

      3. Итераторы (итератор как обобщение указателя, классы итераторов).

      4. Алгоритмы (примеры алгоритмов с использованием итераторов: алгоритмы сортировки, алгоритмы, не изменяющие содержание контейнера, алгоритмы, изменяющие содержание контейнера).

    2. Библиотека ввода-вывода.

      1. Потоки вывода. Вывод типов определяемых пользователем.

      2. Потоки ввода. Ввод типов определяемых пользователем.

      3. Форматирование в потоках ввода-вывода.

      4. Буферизация.