Учебно-методический комплекс «Высокоуровневые методы информатики и программирования» (для студентов отделения высшего профессионального образования специальности «Прикладная информатика (в экономике)») Рубцовск

Вид материалаУчебно-методический комплекс

Содержание


1.2. Содержание дисциплины «Высокоуровневые методы информатики и программирования» (дидактические единицы)
Самостоятельное изучение
Самостоятельное изучение
Самостоятельное изучение
ДЕ 2Тема 4. Методы проектирования алгоритмов и программ.
Самостоятельное изучение
Самостоятельное изучение
Самостоятельное изучение
Тема 7. Особенности программирования в средах современных информационных систем.
Самостоятельное изучение
Тема 8. Отладка и тестирование программ.
Самостоятельное изучение
Подобный материал:
1   2   3   4   5

1.2. Содержание дисциплины «Высокоуровневые методы информатики и программирования» (дидактические единицы)



ДЕ 1


Тема 1. Основные понятия из области программирования.

Аудиторное изучение:

Основные понятия и термины программирования. Программирование как вид деятельности. Взаимосвязь программирования и других областей знания.

Подразделы в программировании: теория программирования; методология и технология программирования; инженерия программирования; языки и системы программирования; операционные и архитектурные платформы. Краткая характеристика каждой группы.

Программа как формализованное описание процесса обработки данных. Программное средство. Жизненный цикл программного средства. Основная задача профессионального программирования. Понятие качества программного средства. Характеристики качества программного обеспечения.

Самостоятельное изучение:

Элементы теории программирования, основные понятия для решения задач на ЭВМ. Понятия алгоритм, исполнитель алгоритма. Пять важных свойств алгоритмов. Величины в алгоритмах. Базовые структуры алгоритмов: линейный алгоритм, разветвленный алгоритм, циклический алгоритм. Формы представления алгоритма: словесная, блок-схема, псевдокод, программная. ГОСТ 19.701-90. Схемы алгоритмов, программ, данных и систем. Термин задача. Решение задачи. Постановка задачи. Классификация задач: технологические, функциональные. Понятие вычислителя.

Технология подготовки и решения задач на ЭВМ. Этапы процесса разработки программ для структурного подхода и для объектно-ориентированного подхода. Краткая характеристика этапов создания программного обеспечения: постановка задачи, анализ и исследование задачи, проектирование программы (разработка алгоритма, структуры программы, разработка пользовательского интерфейса), реализация (написание кода программы на выбранном языке программирования, тестирование и отладка кода), составление документации, сопровождение программы, модификация программы.

Основные характеристики программ. Характерные особенности программного продукта.

Критерии качества программ. Рекомендации по созданию программ. Обеспечение качества программного средства. Общая характеристика процесса обеспечения качества. Обеспечение легкости применения программного средства. Обеспечение эффективности программного средства. Обеспечение сопровождаемости программного средства. Обеспечение мобильности программного средства. Оценка качества процесса разработки. Методы оценки качества программного средства.

Понятие архитектуры программного средства. Основные классы архитектур программных средств (цельная монолитная программа, комплекс автономно выполняемых программ, слоистая программная система, коллектив параллельно выполняемых программ). Структуры программных архитектур: логическая (концептуальная), модульная, процессная, физическая.


Тема 2. Основные методологии и технологии программирования.

Аудиторное изучение:

Основные методологии программирования. Атрибуты методологий. Ядра методологий: императивное программирование, объектно-ориентированное программирование, функциональное программирование, логическое программирование.

Введение в технологии программирования. Основные понятия и определения. Технология создания ПО. Процесс. Стадия. Технологический подход.

Группы технологических подходов: подходы со слабой формализацией – ранний технологический подход «кодирование и исправление»; строгие (классические, жесткие, предсказуемые) – каскадные технологические подходы (каскадный, каскадно-возвратный, каскадно-итерационный, спиральная модель), каркасные подходы, генетические подходы (синтезирующее программирование, сборочное программирование, конкретизирующее программирование), подходы на основе формальных преобразований (технология стерильного цеха, формальные генетические подходы); гибкие (адаптивные, легкие подходы) – технологические подходы быстрой разработки (эволюционное прототипирование, итеративная разработка, постадийная разработка), адаптивные подходы (экстремальное программирование, адаптивная разработка).

Стратегии конструирования программного обеспечения: водопадная, инкрементная, эволюционная. Тяжеловесные и облегченные процессы.

Технологические процессы основных этапов решения задач на ЭВМ. Классификация технологических процессов. XP-процесс.

Самостоятельное изучение:

Классификация видов программирования. Происхождение, история и эволюция методологий программирования. Методология параллельного программирования. Методология нейросетевого программирования.

История и эволюция технологий программирования. Классификация технологических подходов. Краткая характеристика каждого. Проблемы и перспективы развития технологических подходов. Современные тенденции в программной инженерии.

Классический набор технологических процессов: возникновение и исследование идеи, управление, анализ требований, проектирование, программирование, тестирование и отладка, ввод в действие, эксплуатация и сопровождение, завершение эксплуатации. Краткое описание каждого.

Стандартный набор технологических процессов, основанный на стандарте ISO 12207:1995. Основные процессы (приобретение, поставка, разработка, эксплуатация, сопровождение). Вспомогательные процессы (документирование, управление конфигурацией, обеспечение качества, верификация, аттестация, совместная оценка, аудит, разрешение проблем). Организационные процессы (управление, создание инфраструктуры, усовершенствование, обучение). Взаимосвязь между процессами.

Основные стадии технологических процессов. Фазы как временные рамки. Стадии как отражение классических процессов. Вариант подробного разбиения на стадии.

Инструментарий технологии программирования. Состав и назначение.


Тема 3. Языки и системы программирования.

Аудиторное изучение:

Основные понятия и определения. Языки и знаки. Способы задания языков. Функции языка. Элементы языка: алфавит, лексемы, синтаксис и семантика языка. Модель передачи сообщений. Языки, участвующие в создании программы. Особенности языков программирования. Характеристики языков программирования: уровень, мощность, концептуальная целостность, надежность, удобочитаемость, полнота, гибкость, мобильность, эффективность. Уровни языков программирования: машинный язык, язык ассемблера, язык высокого уровня. Взаимосвязь уровня и мощности языка.

Основные понятия и определение системы программирования. Структура современной системы программирования. Классификация систем программирования: по ориентации на поддержку технологических процессов, по категориям, по предоставляемому интерфейсу, по функциональной ориентации в технологическом процессе.

Инструментальные системы программирования (инструментальные среды программирования, средства автоматизации разработки программ, интегрированные среды).

Трансляция программ. Трансляторы: интерпретаторы, компиляторы. Компилируемые и интерпретируемые языки высокого уровня. Выбор языка программирования. Критерии и факторы выбора.

Интегрированная среда программирования Delphi. Среда разработки и ее составляющие. Система окон разработки. Система меню. Окно конструктора форм, окно кода программы, окно инспектора объектов. Свойства, события, методы.

Настройка интегрированной среды разработки Delphi. Проект. Характеристика проекта. Файл проекта. Файлы формы. Файлы модулей. Файл ресурсов. Параметры проекта. Создание и сохранение нового проекта. Особенности сохранения проектов.

Язык программирования Object Pascal. Элементы языка: алфавит, лексемы, лексические единицы, синтаксис, оформление. Константы и переменные, именование, объявление и использование. Данные и типы данных языка. Стандартные и определяемые пользователем. Простые и сложные типы данных. Организация действий над данными. Ввод/вывод данных. Обработка данных: операции, приоритеты операций, выражения. Операторы языка: классификация и форматы операторов.

Самостоятельное изучение:

История развития языков программирования. Поколения языков программирования. Обзор языков программирования высокого уровня. Классификация языков программирования: по поддерживаемым методологиям, по принадлежности к семействам, по ориентации на предметные области. Проблемы и перспективы развития языков.

История возникновения систем программирования. Принципы функционирования систем программирования: функции текстовых редакторов в системах программирования, компилятор как составная часть системы программирования, назначение и функции компоновщика, загрузчики и отладчики, библиотеки подпрограмм как составная часть систем программирования. Примеры современных систем программирования. Системы программирования компании Borland/Inprise (Turbo Pascal, Borland Delphi, Borland C++ Builder). Системы программирования фирмы Microsoft (Microsoft Visual Basic, Microsoft Visual C++). Концепция .NET. Разработка программного обеспечения для сети Интернет (Язык HTML, языки программирования Java и Java Script). Эволюция Delphi.

Разработка приложений. Компонентный подход системы Delphi. Палитра компонентов. Общая характеристика компонентов. Визуальные и невизуальные компоненты. Использование компонентов. Размещение компонентов. Элементы управления. Определение функциональности приложения.

Стиль программирования. Правила хорошего стиля программирования в Object Pascal. Комментарии.


ДЕ 2


Тема 4. Методы проектирования алгоритмов и программ.

Аудиторное изучение:

Классификация методов проектирования алгоритмов и программ. По степени автоматизации проектных работ: неавтоматизированное (традиционное) проектирование и автоматизированное проектирование (Сase-технология и ее элементы). По принятой методологии процесса разработки различают подходы к построению программ: метод функциональной декомпозиции (структурное проектирование программных средств), информационное моделирование предметной области и связанных с ней приложений, объектно-ориентированное проектирование программных средств. В зависимости от объекта структурирования различают: функционально-ориентированные методы (ориентированные на обработку), методы структурирования данных (ориентированные на данные). Методы, ориентированные на обработку: модульное программирование, функциональная декомпозиция, проектирование с использованием потока данных, технология структурного анализа проекта. Методы проектирования, основанные на использовании структур данных: методология Джексона, методология Уорнера, метод иерархических диаграмм, объектно-ориентированная методология.

Этапы проектирования и разработки программ: постановка задачи, проектирование программы, построение модели, разработка алгоритма, реализация алгоритма, анализ алгоритма и его сложности, тестирование программы, документирование. Краткая характеристика последовательности этапов и используемых методов. Самостоятельное изучение:

Концептуальная модель структурного подхода. Концептуальная модель объектного подхода.

Самостоятельное изучение:

Этапы создания программных продуктов при неавтоматизированной разработке программ. Структура программных продуктов. Проектирование интерфейса пользователя: диалоговый режим, графический интерфейс пользователя.

Типы абстракций в языках программирования. Понятие абстрагирования. Абстракция через параметризацию и через спецификацию. Абстракция данных. Данные и типы данных. Эволюция определения типа данных. Абстрактные типы данных. Абстракция модульности. Модульное программирование. 3 основные концепции модульного программирования: принцип утаивания информации, аксиома модульности Коуэна, сборочное программирование Цейтина. Абстракция управления. Структурное программирование. Историческое становление концепции структурного программирования. Классическая теорема Боэма и Джакопини. Оператор перехода. Оператор итерации. Оператор исключения. Зависимости по управлению и по данным.

Метод структурного проектирования и программирования: нисходящее проектирование, модульное программирование, структурное программирование.

Нисходящее проектирование. Функциональная структура алгоритма. Последовательность действий по разработке ФСА приложения.

Модульное программирование. Цель модульного программирования. Определение модуля и его примеры. Характеристики модульности и свойства модуля. Разновидности модулей. Модульная структура программы. Методы разработки структуры программы. Порядок разработки программного модуля. Методы контроля программного модуля: статическая проверка текста модуля, сквозное прослеживание, доказательство свойств программного модуля.

Структурное программирование и пошаговая детализация. Представление основных управляющих структур программирования.

Объектно-ориентированное проектирование программ. Основные понятия и методика ООП. Объект. Свойство. Метод. Событие. Класс. Соотношение основных понятий ООП.


Тема 5. Модульное программирование.

Аудиторное изучение:

Общая структура программы на языке Object Pascal. Подпрограммы. Процедуры и функции. Формальный параметр. Фактический параметр. Передача параметров. Организация и использование подпрограмм. События. Обработчики событий.

Самостоятельное изучение:

Набор стандартных подпрограмм: математические и статистические процедуры и функции, процедуры и функции для работы с датой/временем, процедуры и функции преобразования типов, процедуры и функции для работы со строками и символами.

Выделение подпрограмм методом пошаговой детализации.


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

Аудиторное изучение:

Основные теоретические положения ООП. Понятия класса, объекта, объектной декомпозиции. Три принципа ООП: инкапсуляция, наследование, полиморфизм. Работа с объектами. Конструкторы и деструкторы. Методы построения классов. Объектный тип данных. Переменные объектного типа.

Самостоятельное изучение:

Реализация принципов ООП. Этапы реализации объектно-ориентированного подхода. Создание пользовательских интерфейсов. Реализация интерфейсных элементов.

Тема 7. Особенности программирования в средах современных информационных систем.


Аудиторное изучение:

Основы визуального программирования. Определяющие элементы процесса визуализации: визуализируемая модель (окно, форма, диалог), окно инструментов, окно свойств. Принципы визуального программирования. Элементы управления. Проектирование формы. Визуальные и объектные аспекты форм. Архитектура приложения. Формы в Delphi. Характеристики формы. Организация взаимодействия окон. Шаблоны форм. Классы для системы меню. Создание интерфейса приложения. Меню, подсказки. Характеристика главного меню. Контекстное меню. Конструктор меню. Компоненты для отображения текста. Ввод и редактирование информации. Общие элементы компонентов редактирования. Однострочные редакторы. Многострочный редактор. Работа со списками. Общая характеристика списков. Простой список. Комбинированный список. Особенности комбинированного списка. Работа с кнопками. Стандартная кнопка. Кнопка с рисунком. Кнопка быстрого доступа. Использование переключателей. Переключатель с независимой фиксацией. Переключатель с зависимой фиксацией. Объединение элементов управления. Графические компоненты. Геометрическая фигура. Графический образ. Окно рисования. Рисование при выполнении программы. Поверхность рисования. Анимация.

Самостоятельное изучение:

Особенности модальных форм. Особенности немодальных форм. Диалоговые окна. Стандартные диалоги. Процедуры и функции, реализующие диалоги. Общая характеристика визуальных компонентов. Свойства, события, методы. Класс Tsring. Группа. Панель. Область прокрутки. Фреймы.

Тема 8. Отладка и тестирование программ.


Аудиторное изучение:

Введение в тестирование. Типичные ошибки (синтаксические, логические, времени исполнения). Защита от ошибок. Тест и тестирование. Этапы процесса тестирования. Стратегии тестирования (черный ящик, белый ящик). Подходы к тестированию: сверху вниз, снизу вверх. Отладка. Стандартная техника отладки.

Самостоятельное изучение:

Тестовые данные. Обработчики исключений. Отладчик среды Delphi.