
- •Тема 1. Структурное программирование
- •Вопрос 1. Предпосылки структурного программирования. Проблемы неструктурированных программ. Структурный подход к программированию.
- •Вопрос 3. Структурное программирование. Базовые конструкции. Вложенность конструкций. Принцип модульности. Псевдокод.
- •Вопрос 24. Чисто виртуальные методы. Абстрактные классы. Конфликты при множественном наследовании. Виртуальные базовые классы.
- •Тема 7. Объектно-ориентированное программирование (окончание)
- •Вопрос 36. Динамические структуры данных. Деревья. Обход дерева. Графы. Обход графа.
- •Тема 11. Алгоритмы и структуры данных (окончание)
- •Вопрос 37. Задачи комбинаторной оптимизации. Задача коммивояжёра. Структура данных. Метод перебора «грубой силой». Метод ближайшего соседа. Метод ветвей и границ. Достоинства и недостатки.
- •Вопрос 38. Динамическое программирование. Принцип Беллмана. Эвристические алгоритмы.
Тема 1. Структурное программирование
Вопрос 1. Предпосылки структурного программирования. Проблемы неструктурированных программ. Структурный подход к программированию.
Слайд 1-02. На заре программирования...
Слайд 1-03. Что такое хорошая программа?
Слайд 1-04. Проблема "блюда спагетти"
Слайд 1-05. Разработка программ подчиняется законам Мэрфи
Слайд 1-06. Предпосылки структурного программирования
Слайд 1-07. Структурный подход к программированию
Вопрос 2. Нисходящая разработка. Модульность. Заглушки. Свойства модуля. Модульность в среде Borland C++ Builder.
Слайд 1-08. Нисходящая разработка
Слайд 1-09. Свойства модуля
Слайд 1-10. Модульность в среде Borland C++ Builder
Слайд 1-11. Пример нисходящей разработки приложения
Вопрос 3. Структурное программирование. Базовые конструкции. Вложенность конструкций. Принцип модульности. Псевдокод.
Слайд 1-12. Структурное программирование
Слайд 1-13. Комбинирование трёх конструкций
Слайд 1-14. Псевдокод
Слайд 1-15. Использование псевдокода
Вопрос 4. Пошаговая детализация. Использование псевдокода. Реализация программы на С++.
Слайд 1-16. Пошаговая детализация
Слайд 1-17. От пошаговой детализации к псевдокоду
Слайд 1-18. От псевдокода к программе на С++
Слайд 1-19. Оптимизация кода С++
Слайд 1-20. Некоторые приемы структурного программирования на С++
Слайд 1-21. Некоторые приемы структурного программирования на С++
Слайд 1-22. Некоторые приемы структурного программирования на С++
Слайд 1-23. Некоторые приемы структурного программирования на С++
Вопрос 5. Принципы сквозного структурного контроля. Верификация программного обеспечения. Тестирование. Проверка кода (peer review).
Слайд 1-24. Сквозной структурный контроль
Слайд 1-25. Верификация программного обеспечения
Тема 2. Разработка ПО. Модели процессов
Вопрос 6. Этапы разработки программного обеспечение. Постановка задачи. Описание процессов и объектов предметной области. Моделирование процессов.
Слайд 02-02. Этапы разработки программного обеспечения
Слайд 02-03. Постановка задачи
Слайд 02-04. Описание процессов и объектов предметной области
Слайд 02-05. Моделирование процессов предметной области
Вопрос 7. Понятие процесса. Контекстная модель процесса. Входы. Выход. Взаимодействие процессов. Декомпозиция процесса. Композиция процесса.
Слайд 02-06. Понятие процесса
Слайд 02-07. Контекстная модель процесса
Слайд 02-08. Взаимодействие процессов
Слайд 02-09. Декомпозиция процесса (анализ)
Слайд 02-10. Композиция процесса (синтез)
Слайд 02-11. Пример описания процесса
Слайд 02-12. Контекстная модель процесса
Слайд 02-13. Взаимодействие процессов
Слайд 02-14. Декомпозиция процесса
Слайд 02-15. Декомпозиция процесса (продолжение)
Слайд 02-16. Понятие информационного объекта
Слайд 02-17. Связь процессов с элементами программного обеспечения
Тема 3. Модели информационных объектов
Вопрос 8. Модель информационных объектов (ER-модель). Сущности и их атрибуты. Простые и сложные атрибуты. Экземпляры сущностей. Преобразование атрибута в сущность.
Слайд 03-02. Модель информационных объектов (ER-модель)
Слайд 03-03. Сущности и их атрибуты
Слайд 03-04. Простые и сложные атрибуты
Слайд 03-05. Экземпляры сущностей
Слайд 03-06. Атрибуты как потенциальные сущности
Вопрос 9. Связи. Кардинальность связи. Многозначные связи. Преобразование связи в сущность. Однозначные связи. Связь с моделью процессов.
Слайд 03-07. Связи между сущностями. Кардинальность связи
Слайд 03-08. Смысл понятий "один" и "много"
Слайд 03-09. Многозначные связи. Преобразование связи в сущность
Слайд 03-10. Однозначные связи. Связь с моделью процессов
Вопрос 10. Уникальные и неуникальные атрибуты. ER-модель и модель данных. Независимые и зависимые атрибуты. Атрибуты постоянные и темпоральные.
Слайд 03-11. Уникальные и неуникальные атрибуты
Слайд 03-12. ER-модель и модель данных
Слайд 03-13. Независимые и зависимые атрибуты
Слайд 03-14. Атрибуты постоянные и темпоральные
Вопрос 11. Зависимые атрибуты. Дублирование значений. Виртуальные атрибуты. Агрегативные атрибуты. Способы агрегации.
Слайд 03-15. Зависимые атрибуты. Дублирование значений
Слайд 03-16. Зависимые атрибуты. Виртуальные атрибуты
Слайд 03-17. Зависимые атрибуты. Агрегативные атрибуты
Слайд 03-18. Агрегативные атрибуты. Способы агрегации
Слайд 03-19. Выделение информационных объектов
Тема 4. Проектирование пользовательского интерфейса
Вопрос 12. Роль пользовательского интерфейса. Эволюция пользовательских интерфейсов. Способы организации человеко-машинного диалога.
Слайд 04-02. Роль пользовательского интерфейса
Слайд 04-03. Эволюция пользовательских интерфейсов
Слайд 04-04. Способы организации человеко-машинного диалога
Слайд 04-05. Способы организации человеко-машинного диалога
Вопрос 13. Современные пользовательские интерфейсы. Уровни пользовательского интерфейса. Внешний уровень интерфейса – метафора. Внешний уровень интерфейса – стиль.
Слайд 04-06. Современные пользовательские интерфейсы
Слайд 04-07. Уровни пользовательского интерфейса
Слайд 04-08. Внешний уровень интерфейса – метафора
Слайд 04-09. Внешний уровень интерфейса – стиль
Вопрос 14. Концептуальный уровень пользовательского интерфейса. Элементы для представления данных. Декоративные элементы. Управляющие элементы. Композиционные элементы.
Слайд 04-10. Концептуальный уровень пользовательского интерфейса
Слайд 04-11. Элементы для представления данных
Слайд 04-12. Элементы для представления данных (продолжение)
Слайд 04-13. Декоративные элементы
Слайд 04-14. Управляющие элементы
Слайд 04-15. Композиционные элементы
Вопрос 15. Геометрия элементов пользовательского интерфейса. Реакция элементов интерфейса на изменение размера. Выравнивание элементов. Использование выравнивания при компоновке экранов.
Слайд 04-16. Геометрия элементов пользовательского интерфейса
Слайд 04-17. Реакция элементов интерфейса на изменение размера
Слайд 04-18. Пример изменения размеров элементов
Слайд 04-19. Выравнивание элементов
Слайд 04-20. Использование выравнивания при компоновке экранов
Вопрос 16. Свойства элементов интерфейса. Видимость. Чувствительность. Реализация событийного принципа. Сценарии.
Слайд 04-21. Видимость элементов
Слайд 04-22. Чувствительность элементов
Слайд 04-23. Реализация событийного принципа. Сценарии
Тема 5. Объектно-ориентированное программирование
Вопрос 17. Принципы объектно-ориентированного программирования. Языки объектно-ориентированного программирования. Сравнение С и С++. Эквивалентные понятия С и C++.
Слайд 05-02. Объектно-ориентированное программирование
Слайд 05-03. Объектно-ориентированное программирование и C++
Слайд 05-04. Отличительные особенности С и C++
Слайд 05-05. Эквивалентные понятия С и C++
Вопрос 18. Инкапсуляция. Понятие класса в С++. Доступ к элементам класса. Определение методов класса.
Слайд 05-06. Инкапсуляция
Слайд 05-07. Понятие класса в С++
Слайд 05-08. Ограничение доступа к элементам класса
Слайд 05-09. Определение методов класса
Слайд 05-10. Доступ к элементам класса
Слайд 05-11. Пример ограничения доступа к элементам класса
Вопрос 19. Конструкторы и деструкторы, их свойства. Перегрузка конструктора. Конструктор копирования. Создание и разрушение объектов класса.
Слайд 05-12. Специальный метод класса - конструктор
Слайд 05-13. Свойства конструктора
Слайд 05-14. Перегрузка конструктора
Слайд 05-15. Конструктор копирования
Слайд 05-16. Создание объектов класса
Слайд 05-17. Специальный метод класса - деструктор
Слайд 05-18. Свойства деструктора
Слайд 05-19. Разрушение объектов класса
Слайд 05-20. Работа с памятью в конструкторах и деструкторах
Вопрос 20. Статические данные класса. Статические методы класса. Указатель на текущий объект класса.
Слайд 05-21. Статические элементы класса
Слайд 05-22. Использование статических элементов в методах класса
Слайд 05-23. Использование статических элементов класса
Слайд 05-24. Указатель на текущий объект класса
Слайд 05-25. Указатель на текущий объект класса
Тема 6. Объектно-ориентированное программирование (продолжение)
Вопрос 21. Абстракция. Классификация объектов. Иерархия абстрактного и конкретного. Понятие наследования. Простое и множественное наследования. Критерии «хорошей» иерархии классов.
Слайд 06-02. Понятие абстракции
Слайд 06-03. Классификация объектов по различным признакам
Слайд 06-04. Иерархия абстрактного и конкретного
Слайд 06-05. Понятие наследования
Слайд 06-06. Простое и множественное наследования
Слайд 06-07. Критерии «хорошей» иерархии классов
Вопрос 22. Наследование в С++. Ограничение доступа при наследовании. Наследование и конструкторы. Наследование и деструкторы.
Слайд 06-08. Наследование в С++
Слайд 06-09. Ограничение доступа при наследовании
Слайд 06-10. Наследование и конструкторы
Слайд 06-11. Пример наследования и использования конструкторов
Слайд 06-12. Пример наследования (продолжение)
Слайд 06-13. Пример наследования (продолжение)
Вопрос 23. Полиморфизм. Переопределение методов в С++. Раннее связывание. Позднее связывание.
Слайд 06-14. Полиморфизм
Слайд 06-15. Пример переопределения методов в С++
Слайд 06-16. Пример раннего связывания
Слайд 06-17. Пример раннего связывания
Слайд 06-18. Пример позднего связывания
Слайд 06-19. Пример позднего связывания