ДЕПАРТАМЕНТ ОБРАЗОВАНИЯ ГОРОДА МОСКВЫ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
МОСКОВСКИЙ ГОРОДСКОЙ ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ
Математический факультет
Кафедра информатики и прикладной математики
УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС УЧЕБНОЙ ДИСЦИПЛИНЫ
“ПРОГРАММИРОВАНИЕ”
специальность 032100 “Математика”
для студентов очной формы обучения
1. ПРОГРАММА УЧЕБНОЙ ДИСЦИПЛИНЫ
1.1. Место учебной дисциплины в ГОС ВПО
Дисциплина “Программирование” в Государственном образовательном стандарте высшего профессионального образования по специальности 032100 “Математика” (квалификация — “учитель математики”), утвержденном в 2005 г., представлена как раздел дисциплины “Информатика” в федеральном компоненте цикла общих математических и естественнонаучных дисциплин (раздел ЕН. Ф.02).
1.2. Цели и задачи учебной дисциплины
В содержании программы основное внимание уделяется объектно-ориентированной методологии программирования, т. к. на её основе в настоящее время разрабатывается большинство программных продуктов.
Цель преподавания дисциплины — систематизация знаний о технологии программирования, овладение современными средствами разработки программ и приобретение практических навыков работы с существующими системами программирования.
Эта цель реализуется через следующие учебные задачи:
— обеспечить сознательное и прочное овладение студентами основ знаний о принципах и процессах проектирования программных продуктов;
— научить умениям и навыкам программирования типовых задач обработки информации (вычисления, сортировка, поиск и т. п.) в одной из современных сред программирования;
— сформировать систему знаний, умений и навыков объектно-ориентированного анализа и проектирования реальных объектов;
— научить умениям и навыкам объектно-ориентированного программирования и использования библиотек объектов (классов) для решения практических задач.
Дисциплина "Программирование" основывается на знаниях, полученных при изучении школьного курса информатики и математики, а также курсов математического анализа, геометрии и алгебры, которые изучаются параллельно.
Дисциплина «Программирование» изучается как на лекционных, так и на лабораторных занятиях. Содержание лабораторных работ ориентировано на подготовку студентов младших курсов к активному использованию умений и навыков по разработке программ на занятиях по другим дисциплинам.
1.3. Требования к уровню освоения дисциплины
В результате изучения данной дисциплины студенты должны
знать:
· основные понятия теоретического и практического программирования;
· основные понятия технологии программирования;
· основы грамматики языков программирования;
· методы типизации данных;
· организацию структур данных;
· методы и приёмы обработки данных;
· теоретические основы, методы и приёмы объектно-ориентированного программирования в объектно-ориентированных средах программирования;
уметь:
· пользоваться возможностями среды программирования;
· программировать на процедурном языке программирования типовые задачи обработки данных;
· использовать основные алгоритмы обработки массивов при решении конкретной задачи обработки данных;
· обрабатывать символьную информацию;
· использовать рекурсию;
· использовать библиотечные модули среды программирования;
· работать с графическим пакетом;
· использовать методы объектно-ориентированного программирования проектирования с использованием среды визуального программирования;
1.4. Содержание дисциплины
Раздел 1. Введение в язык программирования
Алгоритм и его свойства. Способы записи алгоритма. Виды алгоритмов. Программа. Транслятор (виды, особенности). Состав языка программирования. Структура программы на языке Pascal. Система программирования Turbo Pascal. Типы данных: целый и вещественный. Арифметические выражения.
Раздел 2. Программная реализация линейных алгоритмов
Ввод и вывод данных. Оператор присваивания. Стандартные функции: арифметические функции, функции преобразования. Этапы решения задачи с использованием её программной реализации на компьютере. Типовые задачи по вычислениям значений функций.
Раздел 3. Программная реализация разветвляющихся алгоритмов
Булевский тип данных. Таблица истинности. Операции отношения. Булевские выражения. Условный оператор. Составной оператор. Вложенные условные операторы. Оператор варианта.
Раздел 4. Циклические алгоритмы и их программная реализация.
Циклический алгоритм, параметры цикла. Потоки данных. Ввод потока данных: по признаку окончания ввода, по заданному количеству данных. Типовые задачи обработки потока данных. Операторы цикла: с предусловием, с постусловием, с параметром.
Раздел 5. Простые и структурированные типы данных
Принципы типизации данных. Классификация типов данных. Символьный тип. Операции с символами. Ограниченный тип данных. Перечислимый тип. Порядковые типы данных. Тип данных – множество. Операции над множествами.
Раздел 6. Технология структурного программирования
Основные понятия. Классификация языков программирования. Процедурные языки программирования. Основные направления в технологии программирования. Процедурное программирование. Процедуры и функции. Формальные и фактические параметры. Глобальные и локальные переменные. Библиотечные процедуры и функции.
Раздел 7. Программирование задач с векторами и матрицами
Массив, тип данных – массив. Одномерный массив. Строковый тип данных. Инициализация массива. Операции над векторами. Двумерные массивы. Операции над матрицами: сложение, умножение.
Раздел 8. Типовые операции над массивами
Назначение сортировки массива. Способы реализации сортировки. Алгоритмы сортировки: метод выбора, метод обмена («пузырьковая сортировка»). Назначение операции поиска и примеры её применения. Классификация алгоритмов поиска. Линейный поиск. Двоичный поиск. Рекуррентные последовательности. Использование массива для вычисления заданного элемента рекуррентной последовательности.
Раздел 9. Структура данных — “запись”
Определение записи. Тип запись. Описание сложных объектов с помощью записей. Операции над записями. Программирование задач с записями. Оператор присоединения.. Обработка таблиц как массива записей.
Раздел 10. Рекурсия
Рекурсивные. Рекурсивные процедуры и функции. Распределение памяти компьютера при использовании рекурсии. Косвенная рекурсия.
Раздел 11. Программирование компьютерной графики
Аппаратное и программное обеспечение. Режимы работы дисплея. Состав графического пакета системы программирования Turbo Pascal. Построение геометрических фигур. Работа с цветом. Построение графиков функций. Ввод и вывод данных в графическом режиме. Моделирование движения графических объектов. Запись графического образа в файл. Использование видеопамяти.
Раздел 12. Основы объектно-ориентированного программирования
Способ восприятия мира, как мира состоящего из объектов и событий. Объект как основная структура объектно-ориентированного программирования. Характеристики объекта. Понятие объекта, свойства объекта и его методы. Классы объектов. Основные понятия ООП (иерархичность, наследование, инкапсуляция, полиморфизм).
Раздел 13. Программирование в среде Windows
Схема управления событиями. Соглашения о наименовании объектов. Виды ссылок. Структура приложения. Windows.
1.5. Распределение материалов курса
Материалы курса рассчитаны на 2 семестра.
Распределение разделов по семестрам приведено в таблице.
Очное отделение | |
Семестр | |
1 | Разделы 1–9 |
2 | Разделы 10-14 |
Форма итогового контроля — зачет.
1.6. Список рекомендуемой литературы
Основная литература
1. Объектно-ориентированное программирование в действии. – СПб: Питер,1997.
2. Объектно-ориентированный анализ и проектирование с примерами приложений на C++ . – М.: Издательство Бином; СПб.: Невский диалект, 1999.
3. Златопольский : Типовые задачи, алгоритмы, методы. – М.: БИном. Лаборатория знаний, 2007.
4. Иванова программирования: Учебник для вузов. – М. Изд-во МГТУ им. Баумана, 2002.
5. Искусство программирования. Т. 1. Основные алгоритмы: Учебное пособие. – М.: Издательский дом «Вильяме», 2000.
6. Искусство программирования. Т. 2. Получисленные алгоритмы: Учебное пособие: — М.: Издательский дом «Вильяме», 2000.
7. Искусство программирования. Т. 3. Сортировка и поиск: Учебное пособие. – М.: Издательский дом «Вильяме», 2000.
8. Ривест Р. Алгоритмы: построение и анализ. Классические учебники: Computer Science. – М.:МЦНМО, 1999.
9. Программирование. Математические основы, средства, теория. – СПб.: БХВ-Петербург, 2002.
10. Delphi 5. Учебный курс. – М.: Нолидж, 2000.
11. Фридман объектно-ориентированной разработки программных систем. – М.: Финансы и статистика, 2000.
12. Объектно-ориентированный анализ: моделирование мира в состояниях. – Киев: Диалектика, 1993.
Дополнительная литература
1. Абрамов по программированию. – М.: Просвещение, 1988.
2. Delphi 6. Самоучитель программиста. Object Pascal. Учеб. пособие.–. М.: КУДИЦ-ОБРАЗ, 2002.
3. Алгоритмы и структуры данных. – М.: Мир, 1989.
4. Философия программирования для Windows 95/NT. – СПб.: Символ-Плюс, 1997.
5. Наука программирования. – М.: Мир,1984.
6. Структурное программирование. – М.: Мир, 1975.
7. Дисциплина программирования. – М.: Мир, 1978.
8. Липский В. Комбинаторика для программистов. – М.: Мир, 1988.
9. Гатег Дж. Использование абстракций и спецификаций при разработке программ. – М.: Мир, 1989.
10. Макконелл Дж. Анализ алгоритмов. Вводный курс. – М.: Техносфера, 2002.
11. Методы программирования: В 2 т. – М.: Мир, 1982.
12. Милов программирования в задачах и примерах. – М.: АСТ»; Харьков: «Фолио», 2003.
13. Могилев А. В., , Хеннер : Учеб. пособие для студ. педвузов / Под. ред. . – М.: ACADEMIA, 1999.
14. Новиков математика для программистов. – СПб.: Питер, 2000.
15. Т. Пратт, М. Зелковиц. Языки программирования. Разработка и реализация. – СПб.: Питер, 2002.
16. Скляров С++ и ООП. – Минск: Вышэйшая школа,1997.
17. Телло -ориентированное программирование в среде Windows: Пер. с англ. – М.: Наука-Уайли, 1993.
18. Borland Pascal: практическое использование Turbo Vision 2.0. – Киев: Диалектика,1993.
2. МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ И План ОСВОЕНИЯ УЧЕБНОЙ ДИСЦИПЛИНЫ
Настоящие методические рекомендации являются частью УМКД дисциплины “Программирование” и составлены для каждой из двух отделений обучения студентов, на которых изучается эта дисциплина, — очного и очно-заочного.
2.1. Виды учебной работы
Материалы курса, рассчитанного на 1 семестр, распределяются следующим образом:
1) очное отделение:
Семестр | Лекции | Лабораторные работы | Самостоятельная работа студентов |
1 | 35 | 32 | 20 |
2 | 18 | 18 | 12 |
Форма итогового контроля — зачет.
2.2. Тематические планы курса
1 семестр
Лекции
Раздел 1. Введение в язык программирования
Алгоритм и его свойства. Способы записи алгоритма. Виды алгоритмов. Программа. Транслятор (виды, особенности). Состав языка программирования. Структура программы на языке Pascal. Система программирования Turbo Pascal. Типы данных: целый и вещественный. Арифметические выражения.
4 часа
Раздел 2. Программная реализация линейных алгоритмов
Ввод и вывод данных. Оператор присваивания. Стандартные функции: арифметические функции, функции преобразования. Этапы решения задачи с использованием её программной реализации на компьютере. Типовые задачи по вычислениям значений функций.
2 часа
Раздел 3. Программная реализация разветвляющихся алгоритмов
Булевский тип данных. Таблица истинности. Операции отношения. Булевские выражения. Условный оператор. Составной оператор. Вложенные условные операторы. Оператор варианта.
4 часа
Раздел 4. Циклические алгоритмы и их программная реализация.
Циклический алгоритм, параметры цикла. Потоки данных. Ввод потока данных: по признаку окончания ввода, по заданному количеству данных. Типовые задачи обработки потока данных. Операторы цикла: с предусловием, с постусловием, с параметром.
6 часов
Раздел 5. Простые и структурированные типы данных
Принципы типизации данных. Классификация типов данных. Символьный тип. Операции с символами. Ограниченный тип данных. Перечислимый тип. Порядковые типы данных. Тип данных – множество. Операции над множествами.
2 часа
Раздел 6. Технология структурного программирования
Основные понятия. Классификация языков программирования. Процедурные языки программирования. Основные направления в технологии программирования. Процедурное программирование. Процедуры и функции. Формальные и фактические параметры. Глобальные и локальные переменные. Библиотечные процедуры и функции.
4 часа
Раздел 7. Программирование задач с векторами и матрицами
Массив, тип данных – массив. Одномерный массив. Строковый тип данных. Инициализация массива. Операции над векторами. Двумерные массивы. Операции над матрицами: сложение, умножение.
4 часа
Раздел 8. Типовые операции над массивами
Назначение сортировки массива. Способы реализации сортировки. Алгоритмы сортировки: метод выбора, метод обмена («пузырьковая сортировка»). Назначение операции поиска и примеры её применения. Классификация алгоритмов поиска. Линейный поиск. Двоичный поиск. Рекуррентные последовательности. Использование массива для вычисления заданного элемента рекуррентной последовательности.
6 часов
Раздел 9. Структура данных — “запись”
Определение записи. Тип запись. Описание сложных объектов с помощью записей. Операции над записями. Программирование задач с записями. Оператор присоединения. Обработка таблиц как массива записей.
3 часа
Всего — 35 часов
Лабораторные работы
Лабораторная работа № 1. Среда программирования Turbo-Pascal: основные приемы работы, запуск и отладка простейшей программы.
2 часа
Лабораторная работа № 2. Разработка программ на алгоритмическом языке Pascal, реализующих линейные алгоритмы: вычисление значений алгебраических выражений с использованием тригонометрических и степенных функций.
4 часа
Лабораторная работа № 3. Разработка программ на алгоритмическом языке Pascal, реализующих разветвляющийся алгоритм: проверка корректности вводимых значений переменных, поиск корней алгебраических и тригонометрических уравнений.
6 часов
Лабораторная работа № 4. Разработка программ на алгоритмическом языке Pascal, реализующих циклический алгоритм: ввод и вывод потока данных, определение числовых характеристик потока данных, расчет сумм ряда, вывод таблицы значений функции.
6 часов
Лабораторная работа № 5. Разработка программ на алгоритмическом языке Pascal с использованием процедур и функций: построение меню, операции с векторами и матрицами, сортировка массивов, поиск в массиве.
8 часов
Лабораторная работа № 6. Разработка программ на алгоритмическом языке Pascal с использованием записей: создание простейшей базы данных.
6 часов
Всего — 32 часа
2 семестр
Лекции
Раздел 10. Рекурсия
Понятие рекурсии. Рекурсивные процедуры и функции. Распределение памяти компьютера при использовании рекурсии. Косвенная рекурсия.
4 часа
Раздел 11. Программирование компьютерной графики
Аппаратное и программное обеспечение. Режимы работы дисплея. Состав графического пакета системы программирования Turbo Pascal. Построение геометрических фигур. Работа с цветом. Построение графиков функций. Ввод и вывод данных в графическом режиме. Моделирование движения графических объектов. Запись графического образа в файл. Использование видеопамяти.
6 часов
Раздел 12. Основы объектно-ориентированного программирования
Способ восприятия мира, как мира состоящего из объектов и событий. Объект как основная структура объектно-ориентированного программирования. Характеристики объекта. Понятие объекта, свойства объекта и его методы. Классы объектов. Основные понятия ООП (иерархичность, наследование, инкапсуляция, полиморфизм).
4 часа
Раздел 13. Программирование в среде Windows
Схема управления событиями. Соглашения о наименовании объектов. Виды ссылок. Структура приложения. Windows.
4 часа
Всего — 18 часов
Лабораторные работы
Лабораторная работа № 7. Разработка программ на алгоритмическом языке Pascal с использованием графического пакета: построение геометрических фигур, расчет площади фигур, построение графиков функций, моделирование движения фигур.
6 часов
Лабораторная работа № 8. Разработка программы на алгоритмическом языке Pascal, с использованием модулей: типовые операции с массивами.
6 часов
Лабораторная работа № 9. Разработка программ в среде программирования Delphi: калькулятор, графики функций, справочная система, простейшая база данных.
6 часов


