Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2006 Програм-ие (ДО).doc
Скачиваний:
6
Добавлен:
09.11.2019
Размер:
239.1 Кб
Скачать

4. Содержание* и структура учебной дисциплины

Темы лекционных занятий

Часы

Семестр 3:

Модуль 1. Введение в программирование на языке высокого уровня.

2

Тема 1.1. Основные этапы решения задач на ЭВМ. Критерии качества программы. Жизненный цикл программы.

1

Тема 1.2. Постановка задачи и спецификация программы. Способы записи алгоритма. Программа на языке высокого уровня. Уровни интерпретации структуры программы (данные, выражения, операторы, модули, алгоритм. Два фундаментальных подхода к разработке программ – структурное программирование и объектно-ориентированное программирование.

1

Модуль 2. Структурное программирование

на языке С

20

Тема 2.1. Понятие константы. Символьные константы. Целочисленные константы. Вещественные константы. Двоичное представление констант в памяти компьютера. Тип данных как идентификатор структуры двоичного кода данных. Стандартные типы данных. Встроенные типы данных (char, int,, long, float, double, long double). Спецификаторы представления чисел со знаком и без знака (signed, unsigned).

1

Тема 2.2. Переменная как именованная область памяти. Тип переменной. Имя переменной. Адрес переменной. Значение переменной. Объявление переменной. Инициализация переменной. Диапазоны значений переменных стандартных типов. Именованные константы.

1

Тема 2.3. Массивы. Массив как конечная последовательность переменных одного типа. Объявление массива. Инициализация массива.

1

Тема 2.4. Операции. Разделители. Арифметические операции и выражения. Операции и выражения отношений. Логические операции и выражения. Операции и выражения присваивания. Приведение типов. Выражения с поразрядными операциями.

1

Тема 2.5. Оператор как минимальная исполняемая единица программы. Составной оператор. Блок. Операторы выбора (единичный, бинарный и множественный выбор). Операторы повторения (циклы for, while, do – while). Операторы перехода (goto, continue, break, return). Пустой оператор.

2

Тема 2.6. Модульные программы. Модуль. Связывание модулей. Время жизни и область действия данных. Автоматические, статические и глобальные данные.

1

Тема 2.7. Функция как модуль программы. Определение функции. Прототип функции. Вызов функции. Функции ввода и вывода данных. Библиотеки функций. Заголовочные файлы.

2

Тема 2.8. Указатель на переменную. Объявление указателей. Инициализация указателей. Операции над указателями (присваивание, разыменование, взятие адреса, инкрементирование, декрементирование, прибавление и вычитание константы, сравнение).

1

Тема 2.9. Связь между указателями и массивами. Имя массива как указатель-константа. Динамическое выделение памяти для массива. Доступ к элементам массива через указатель.

2

Тема 2.10. Строка как массив символов. Библиотека функций обработки символов. Библиотека функций обработки строк.

1

Тема 2.11. Указатель как параметр функции. Вызов функции по значению и по ссылке. Указатель как возвращаемое значение функции.

2

Тема 2.12. Указатель на функцию как переменная. Указатель на функцию как параметр функции. Указатель на функцию как возвращаемое значение функции.

1

Тема 2.13. Алгоритм как упорядоченная последовательность действий, связанных данными. Псевдокод. Представление основных управляющих структур программирования. Теорема структуры и структурное программирование. Нисходящее пошаговое проектирование алгоритма и данных.

2

Тема 2.14. Анализ программ. Утверждения о программах. Корректность программ. Правила вывода для основных структур программирования. Инвариантные утверждения. Способы конструирования и верификации программ.

2

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

12

Тема 3.1. Структура данных как множество логически связанных данных. Статические структуры данных (массивы, структуры, объединения и перечисления). Динамические структуры данных (линейные списки, деревья).

2

Тема 3.2. Утверждения о массивах. Массивы указателей. Массивы строк. Массивы указателей на функции.

1

Тема 3.3. Производный тип данных “структура” как набор данных разных типов. Определение структуры. Объявление структуры. Выделение памяти для структуры. Инициализация структуры. Доступ к элементам структуры через имя структуры. Массив и структура как элемент структуры. Указатель на структуру. Доступ к элементам структуры через имя указатель на структуру. Операции над указателем на структуру. Указатель на структуру как элемент структуры. Использование структур с функциями.

2

Тема 3.4. Линейные списки. Основные виды и способы реализации. Линейный список как абстрактный тип данных. Односвязный список. Операции включения в список и исключения из списка. Сортировка списка. Очереди. Стеки. Двусвязные списки. Циклические списки.

2

Тема 3.5. Рекурсивные определения и алгоритмы. Рекурсия. Рекурсивное определение структур данных. Рекурсивная функция. Доказательство сходимости рекурсивного алгоритма методом математической индукции. Программирование рекурсивных алгоритмов. Использование рекурсивных алгоритмов в задачах поиска. Оценка сложности рекурсивных алгоритмов.

2

Тема 3.6. Деревья. Бинарные деревья. Рекурсивное определение узла бинарного дерева. Рекурсивные алгоритмы прямого, симметричного и обратного обхода бинарного дерева. Поиск в бинарном дереве.

1

Тема 3.7. Записи. Файлы. Запись как множество логически связанных полей. Файл как множество логически связанных записей ключ записи. Потоки ввода – вывода. Открытие и закрытие потока. Стандартные потоки. Библиотека функций для работы с файлами. Индуктивные функции на последовательностях (файлах, массивах). Файлы последовательного и произвольного доступа. Создание файла последовательного доступа. Чтение файла последовательного доступа. Создание файла произвольного доступа. Произвольная запись данных в файл произвольного доступа. Последовательное чтение файла произвольного доступа.

2

Семестр 4:

Модуль 4. Объектно-ориентированное

программирование на языке С++

17

Тема 4.1. Сущность парадигмы объектно-ориентированного программирования (ООП). Основные понятия ООП – класс и объект. Три базовых принципа ООП – инкапсуляция, наследование и полиморфизм.

1

Тема 4.2. Инкапсуляция. Определение класса. Реализация абстрактного типа данных в форме класса. Область действия класса и доступ к его элементам. Отделение интерфейса класса от реализации класса. Управление доступом к элементам класса. Функции доступа и функции-утилиты. Инициализация объектов класса. Конструкторы. Конструкторы без параметров и с параметрами. Деструкторы. Порядок вызова конструкторов и деструкторов. Присваивание объектов – поэлементное копирование объектов по умолчанию. Константные объекты, данные-элементы и функции-элементы классов. Композиция (объекты классов как элементы других классов). Дружественные функции. Дружественные классы. Указатель this. Динамическое выделение памяти посредством операторов new и delete. Конструкторы копий. Статические элементы класса. Контейнерные классы и итераторы.

4

Тема 4.3. Наследование. Базовые и производные классы. Защищенные элементы класса. Преобразование указателей базового класса в указатели производного класса. Переопределение функций-элементов базового класса в производном классе. Открытое, защищенное и закрытое наследование. Конструкторы и деструкторы в производных классах. Неявное преобразование объектов производного класса в объекты базового класса. Сопоставление композиции и наследования. Пример иерархии классов. Прямое и косвенное наследование. Множественное наследование. Виртуальные базовые классы.

4

Тема 4.4. Полиморфизм. Виртуальные функции. Абстрактные и конкретные классы. Динамическое связывание как средство реализации динамического полиморфизма. Виртуальные деструкторы.

2

Тема 4.5 Перегрузка функций. Перегрузка операций. Принципы перегрузки операций. Ограничения на перегрузку операций. Функции-операции как элементы и как друзья класса. Перегрузка операций включения в поток и извлечения из потока. Перегрузка унарных операций. Перегрузка бинарных операций. Преобразование типов. Перегрузка операций инкремента и декремента.

1

Тема 4.6. Потоки ввода-вывода. Потоки. Заголовочные файлы библиотеки iostream. Классы и объекты потокового ввода-вывода. Потоковый вывод. Операция включения в поток. Потоковый ввод. Операция извлечения из потока. Функции бесформатного ввода-вывода. Манипуляторы потока. Состояние формата потока. Состояния ошибки потоков. Привязка потока вывода к потоку ввода.

2

Тема 4.7. Шаблоны функций. Шаблоны классов. Друзья классов в сочетании с шаблонами классов. Наследование в сочетании с шаблонами классов. Статические элементы классов и шаблоны классов.

1

Тема 4.8. Обработка исключений. Условия применения обработки исключений. Средства управления исключениями: оператор выброса исключения (throw), пробный блок (try), блок перехвата (catch). Выброс исключения. Перехват исключения. Перебрасывание исключения. Спецификация исключений. Обработка непредусмотренных исключений. Разматывание стека. Конструкторы и деструкторы в управлении исключениями. Исключения при наследовании.

2

Модуль 5. Объектно-ориентированное

программирование на языке С#

17

Тема 5.1. Основы языка С#. Связь языка С#. с инструментальной средой .NET Framework. Инкапсуляция. Наследование. Полиморфизм. Библиотека классов С#.

1

Тема 5.2. Типы данных и операторы. Стандартные типы данных. Литералы. Переменные и их инициализация. Область видимости и время жизни переменных. Арифметические операторы. Операторы сравнения и логические операторы. Оператор присваивания. Выражения.

1

Тема 5.3. Представление основных управляющих структур программирования. Управляющие операторы. Операторы выбора if. и switch. Циклы for, while и do – while. Операторы перехода break, continue и goto. Вложенные циклы.

1

Тема 5.4. Массивы. Одномерные и многомерные массивы. Инициализация массивов. Присваивание ссылки на массив. Использование свойства Length массива. Строки. Создание объектов класса String. Операции над строками. Массивы строк.

1

Тема 5.5. Классы, объекты и методы. Определение класса. Создание объекта класса. Присваивание объекта класса. Методы. Возврат управления методом. Возврат значения методом. Параметры метода. Конструкторы. Динамическое выделение памяти для объекта (оператор new). Деструкторы. Ссылка this.

2

Тема 5.6. Управление доступом к членам класса. Модификаторы. Передача объектов методу. Параметры с модификаторами ref и out. Возвращение объекта класса методом. Перегрузка метода. Перегрузка конструкторов. Метод Main. Рекурсивные определения и алгоритмы. Рекурсия. Модификатор static.

1

Тема 5.7. Перегрузка операторов, индексаторы и свойства. Синтаксис метода оператора. Перегрузка бинарных операторов. Перегрузка унарных операторов. Перегрузка операторов сравнения. Ограничения на перегрузку операторов. Индексаторы.

1

Тема 5.8. Наследование. Доступ к членам классов при наследовании. Модификатор protected. Конструкторы при наследовании. Вызов конструктора наследуемого класса. Ссылки на объекты наследуемого и наследующего классов.

2

Тема 5.9. Полиморфизм как динамический выбор вызываемого метода. Виртуальные методы. Переопределение методов. Абстрактные классы. Модификатор abstract. Ключевое слово sealed для предотвращения наследования. Класс Object.

1

Тема 5.10. Интерфейсы, структуры и перечисления. Реализация интерфейсов. Интерфейсные ссылки. Свойства интерфейса. Интерфейсные индексаторы. Наследование интерфейсов. Явная реализация члена интерфейса. Структуры. Перечисления.

1

Тема 5.11. Обработка исключений. Класс System Exception. Блоки try и catch. Использование нескольких блоков catch. Перехват всех исключений. Вложенные блоки try. Генерирование исключений. Блок finally. Наследование классов исключений. Перехват исключений производного класса. Операторы checked и unchecked.

2

Блок 5.12. Ввод – вывод в языке C#. Потоки ввода – вывода. Байтовые потоки и потоки символов. Предопределенные потоки. Классы потоков. Консольный ввод – вывод. Записи. Файлы. Класс FileStream и байт-ориентированный ввод – вывод в файлы. Ввод – вывод в символьные файлы. Перенаправление стандартных потоков. Чтение и запись двоичных файлов. Произвольный доступ к файлу. Преобразование числовых строк во внутреннее представление.

2

Тема 5.13. Делегаты. События. Пространства имен. Операторы преобразования типа. Директивы препроцессора. Атрибуты. Небезопасный код.

1

Итого

68

* в содержании выделены и подчеркнуты вопросы, указанные в ГОС ВПО.

Темы лабораторных работ

Часы

Семестр 3:

Модуль 2. Создание консольных приложений в инструментальной среде Borland C++Builder. Разработка программ, использующих основные управляющие структуры программирования, массивы и указатели.

4

Модуль 2. Создание консольных приложений на языке Visual C++.NET в инструментальной среде Microsoft Visual Studio+.NET. Разработка модульных программ на основе технологии структурного программирования.

4

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

4

Модуль 3. Разработка программ для работы с файлами последовательного и прямого доступа. Прием зачета.

5

Итого

17

Семестр 4:

Модуль 4. Создание полнофункциональных приложений Windows на языке С++ с графическим интерфейсом в инструментальной среде Borland C++Builder. Разработка приложения “Текстовый редактор”.

4

Модуль 4. Создание полнофункциональных приложений Windows на языке C++ в инструментальной среде Microsoft Visual Studio.NET. Разработка программы, использующей класс для представления заданной проблемной области.

4

Модули 4 и 5. Создание полнофункциональных приложений Windows на языке C# в инструментальной среде Microsoft Visual Studio.NET. Разработка программы, использующей наследование, полиморфизм и перегрузку операций.

4

Модули 4 и 5. Использование классов и объектов потокового ввода-вывода для файлов. Сохранение в файле и загрузка динамических структур данных, содержащих объекты класса или указатели на объекты класса. Обработка исключений.

5

Итого

17

Темы практических занятий

Часы

Семестр 4:

Модуль 4. Тема 4.2. Инкапсуляция в С++. Определение класса. Управление доступом к элементам класса. Использование конструкторов и деструкторов. Присваивание объектов. Передача объектов класса функциям в качестве параметров. Объекты классов в качестве возвращаемого значения функций. Массивы объектов. Использование указателей на объекты. Динамическое выделение памяти для объекта. Динамическое выделение памяти для массива объектов. Ссылки. Ссылка на объект как параметр функции. Ссылка на объект как возвращаемое значение функции. Создание и использование конструкторов копий.

4

Модуль 4. Тема 4.3. Наследование в С++. Базовые и производные классы. Открытое, закрытое и защищенное наследование. Доступ к элементам базового класса через объекты производного класса при разных типах наследования. Защищенные элементы базового класса. Конструкторы и деструкторы при наследовании. Множественное наследование. Виртуальные базовые классы.

4

Модуль 4. Тема 4.4. Полиморфизм в С++. Наследование указателей базового класса. Использование виртуальных функций. Динамическое связывание. Поведение виртуальной функции при косвенном наследовании. Реализация принципа “один интерфейс – много методов” посредством чистых виртуальных функций.

2

Модуль 5. Темы 5.5 и 5.6. Инкапсуляция в C#. Определение класса. Создание объекта класса. Присваивание объекта класса. Методы. Возврат управления методом. Возврат значения методом. Параметры метода. Конструкторы. Динамическое выделение памяти для объектов. Деструкторы. Управление доступом к членам класса. Модификаторы. Передача объектов методу. Параметры с модификаторами ref и out. Возвращение объекта класса методом. Перегрузка метода. Перегрузка конструкторов. Метод Main. Рекурсия. Модификатор static.

4

Модуль 5. Тема 5.8. Наследование в C#. Доступ к членам классов при наследовании. Модификатор protected. Конструкторы при наследовании. Вызов конструктора наследуемого класса. Создание иерархии классов. Вызов конструкторов при наследовании. Использование ссылок на объекты при наследовании.

2

Модуль 5. Тема 5.9. Полиморфизм в C#. Динамический выбор вызываемого метода. Виртуальные методы. Переопределение методов. Абстрактные классы. Модификатор abstract. Класс Object.

1

Итого

17

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]