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



Курсовая работа по МПИ.

Тема: «Профильный курс для учащихся старших классов

« Объектно-ориентированное программирование»»

Профильные курсы, ориентированные на программирование

Программирование - наиболее традиционная сфера деятельности при организации профильно-ориентированных курсов информатики. Существует множество вариантов таких курсов. Однако само содержание термина «программирование» нуждается в уточнении. Одна из возможных схем классификации видов программирования, с которой можно связать специальный профильный курс, следующая:

 

Программирование 

 

Процедурное                     Непроцедурное

 

Операциональное          Структурное              Объектное     Декларативное

 

Функциональное   Логическое

 

Принципиально иное направление в программировании связано с методологиями («парадигмами») непроцедурного программирования. В их число входят объектно-ориентированное программирование (ООП) и декларативное.

ООП = совокупность множества независимых объектов. Каждый объект можно использовать для решения задачи, не вникая во внутренние механизмы его функционирования. Наиболее популярные языки ООП - С++, Delphi, Visual Basic.

Наибольший опыт преподавания программирования в школе накоплен в отношении, прежде всего, языков типа Бейсик и Паскаль. В конце 1980-х гг. появились курсы, ориентированные на изучение основ математической логики и логического программирования, с середины 1990-х гг. - ООП.

Сделаем ряд следующих замечаний в связи с изучением программирования в школе:

1.                  При углубленном изучении программирования часто не ограничиваются одним подходом. Достаточно типична ситуация, когда последовательно реализуются два курса (скажем, один в 10 кл., а второй в 11 кл.).

2.                  Часто авторы курсов программирования, ориентированного на разные его методологии, утверждают, что то или иное направление при изучении программирования должно непременно предшествовать другому направлению. Скажем, вначале надо изучать логическое программирование на Прологе, а лишь затем структурное (обычно на Паскале). Или другой вариант: всему должен предшествовать чисто объектный подход, а на его базе изучают все остальное.

3.                  При выборе темы спецкурса по информатике следует учитывать, что программирование (в любом его виде) годится для этой роли далеко не для всех учащихся. Для большинства учащихся, с точки зрения интересов будущей профессиональной карьеры, вполне достаточно изучить программирование на уровне, определяемом минимальными требованиями госстандарта (или заменяющего его документа); эти требования обычно реализуются в базовом курсе.

4.                  В соответствии с федеральным базисным учебным планом предусмотрено изучение ООП таким образом, что, во-первых, вводится понятие объектов (свойства и методы), а затем: событийные и общие процедуры, графический интерфейс (форма и управляющие элементы).

Учащиеся должны: уметь создавать проекты с использованием визуального ООП.

В методическом пособии по преподаванию курса «Информатика и информационные технологии» под авт. Угринович предлагаются 3 варианта тематических планирований профильных курсов ИИТ в 10-11кл.: для общеобразовательного, естественно-математического и информационно-технологического профилей. Планирование курсов рассчитаны на 136 учебных часов (2 часа в неделю). В приведенной ниже таблице указано какое количество часов рекомендуется выделить для изучения отдельных тем в каждом из профкурсов. Курсы различаются не только количеством выделяемых часов, но и содержанием (полнотой и глубиной изложения). Если базовый курс ИИТ не изучался в основной школе, то рекомендуется увеличить количество часов, отводимых на изучение профкурсов, минимум на 68 учебных часов. Дополнительные часы (в таблице и тематических планированиях выделены курсивом) могут быть взяты из регионального или школьного компонентов учебного плана.

Распределение часов по темам в профильных курсах ИИТ:

Тема

Обще-

образовательный

Естественно-научный

Информационно-технологический

Базовый курс

Алгоритмизация и ООП

18

18

10

8

 

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

1.                  Угринович Н.Д. «ИИТ» 10-11кл.

2.                  Угринович Н.Д. «Практикум по ИИТ» 10-11кл.

3.                  Угринович Н.Д. «Компьютерный практикум. Электронный учебник на CD-ROM»

4.                  Угринович Н.Д. и др. «Преподавание курса «ИИТ»», методическое пособие, 2002г.

Место курса ИИТ в федеральном базисном учебном плане:

11 кл.,  I полугодие (32 часа)

Алгоритмизация и ООП- 18 часов + 8 часов

Естественно-математический (Ест-мат) 18ч+8ч

Общеобразовательный (Общ/обр.) 18ч+8ч

Информационно-технологический (Инф-техн.) 10ч+8ч

Алгоритмизация и ООП

18 часов + 8 часов

Ест-мат.

8 ч.

Общ/обр.

8 ч.

Инф-техн.

4ч.

1. Алгоритм и его формальное исполнение

+

+

-

2. Основные типы алгоритмических структур

+

+

-

3. Основы ООП, визуального программирования

+

+

+

4.   Классы объектов, экземпляры класса и семейства объектов. Объекты: свойства, методы, события.

+

-

-

5. Графический интерфейс и событийные процедуры

+

+

+

6.  Форма и   размещение на ней управляющих элементов.

+

-

-

7. Тип, имя и значение переменной

+

+

+

8. Арифметические, строковые и логические выражения. Присваивание.

+

+

+

9. Выполнение программ компьютером.

+

+

-

10. Функции в языке Object Pascal. Графические возможности языка Object Pascal.

+

+

+

11. Общие процедуры. Область видимости процедур.

+

-

+

12. Модульный принцип построения проекта и программного кода.

+

-

+

13. Массивы. Решения логических задач. Язык ООП Object Pascal.

+

+

+

14. Кодирование алгоритмов в форме макросов.

+

+

+

15.  Разработка проектов в   интегрированной среде языка Object Pascal:

 

 

 

- форма и размещение на ней управляющих элементов;

+

+

+

- размещение на формах изображений и графических полей;

+

+

+

- поиск и сортировка в массивах;

+

-

-

- ввод и вывод данных;

+

+

+

- арифметические операции и функции преобразования типов данных;

+

+

-

- строковые операции и функции;

+

+

-

- создание меню и панелей инструментов проектов;

+

-

-

- логические операторы в языке Object Pascal;

+

+

+

- графические возможности языка  Object Pascal;

+

+

+

- анимация;

+

-

-

16. Отладка программных кодов

+

-

-

Контроль знаний и умений: защита проекта. 2ч.

Учебник: Глава 4. Основы алгоритмизации и ООП.

Практикум: Глава 5.ООП на языке Object Pascal.

Установить с CD-ROM:систему программирования Object Pascal 6.0

 

Угринович Н.Д., Новенко Д.В.,”ИИТ” (Примерное поурочное планирование) 11кл.

Разработка проектов в среде Object Pascal для Windows (15ч), 2001г.

 

Урок 41/1.Среда программирования Object Pascal.

(Основное содержание учебного материала: ОСУМ): Особенности среды. Синтез языка программирования и возможностей мультимедиа в объектно-ориентированной среде Object Pascal.

Уроки 42/2-43/3.Интерфейс среды.

ОСУМ: Меню среды. Команды меню. Инструменты создания форм и объектов. Типы файлов, создаваемых средой. Демонстрация. Команды и возможности  меню Object Pascal.

Уроки 44/4. Окна, формы и объекты.

ОСУМ: Окна. Открытие и закрытие окон. Создание в окнах форм и объектов. Управляющие и управляемые объекты. Использование инструментов для создания форм и объектов.

Демонстрация: Создание форм и объектов.

Урок 45/5.Элементы управления.

ОСУМ: Создание элементов управления. Использование инструментов для создания элементов управления.

Уроки 46/6-47/7. События.

ОСУМ: События и событийные процедуры. Написание процедур на языке Pascal.Система команд и операторов при описании процедуры.

Практическая работа на ЭВМ №13: Создание и отладка элементарной программы.

Уроки 48/8-49/9. Компиляция проекта.

ОСУМ: Порядок выполнения и компиляции простейшей программы в исполняемый exe-файл. Особенности запуска exe-файла в Windows. Практическая работа на ЭВМ №14: Создание Windows-приложения.

Урок 50/10. Внедрение объектов.

ОСУМ: Порядок связывания и внедрения в программу текста, звука, рисунков, видео. Особенности событийных процедур, использующих внедренные    проекты.

Уроки 51/11-54/14. Разработка мультимедиа –проекта.

ОСУМ: Создание и отладка проекта. Создание, подготовка и внедрение объектов. Компиляция проекта в Windows-приложение.

Практическая работа с ЭВМ №15 (итоговая): Разработка мультимедиа-проекта.

ПО: Компакт-диск «Уроки мультимедиа».

Урок 55/15. Сетевая конференция.

ОСУМ: Доклады и демонстрация по проектам.

В программе курса информатики 1-11кл., рассчитанной на уровень Б (136ч.: 2 года по 2 часа в неделю) в содержательной линии №6 «Алгоритмизация и программирование» читаем:

-                     Различные технологии программирования.

-                     Алгоритмическое программирование: основные типы данных, процедуры и функции;

-                     ООП: объект, свойства объекта, операции над объектами.

Методика обучения ООП.

ООП в настоящее время занимает ведущее место в разработке профессиональных программных средств. Ознакомление с его основами в школьном курсе информатики 2-ого уровня представляется вполне возможным и полезным для тех учащихся, которые ориентируются на профессии, связанные с разработкой компьютерных программ.

В ходе изучения данного курса будут решены 3 круга задач:

1.                  освоение методологии ООП;

2.                  овладение техникой ООП на одном из языков;

3.                  введение учащихся в проблематику, адекватную данному подходу, расширение общего кругозора (то есть общеобразовательный компонент.)

При этом немаловажную роль играет выбор языка программирования. Быстро растущая популярность визуального программирования (которое не тождественно классическому - объектному, но связано с ним многими общими идеями) в системах программирования типа Delphi, Visual Basic, C++Builder делает привлекательной идею положить одну из них в основу курса. На этот счет в педагогической литературе высказываются различные точки зрения.

Одна из них состоит  в том, что несомненная занимательность и облегченность создания программ визуально-объектным способом не вполне соответствует усвоению идей и методов ООП при проведении относительно короткого спецкурса. Другие аргументы в пользу ориентации в школьном курсе информатики на традиционные объектные средства, содержащиеся в версиях языка Турбо Паскаль от 5.5 до 7.0, - несомненная преемственность по отношению к курсу программирования на Паскале, существенно меньшие требования к компьютерам (поскольку объем программного кода, создаваемого с помощью визуальных средств, обычно весьма велик).

Другая, в значительной мере противоположная точка зрения связана с ориентацией в первую очередь на систему программирования  Delphi (реже на - Visual Basic). Delphi является системой ООП, созданная на базе Паскаля; по оценке специалистов, ее профессиональный уровень очень высок. Фирма Borland (в начале 1990-х гг. сменила название на Inprise), создавшая повсеместно используемый для обучения программированию язык Турбо Паскаль, вложила в Delphi максимально комфортный для разработчиков и пользователей интерфейс в стиле Windows.Delphi 4.0 является одновременно средством разработки приложений для архитектуры «клиент-сервер», приложений для Internet, корпоративных систем доступа к данным. Вместе с тем отнюдь неочевидно, все эти возможности можно (и надо) как-то отразить в небольшом школьном курсе информатики.

В любом случае следует понимать, что методика изучения в школе любых видов ООП разработана совершенно недостаточно и что этот процесс в настоящее время, по существу, находится на начальной стадии. Авторам данного пособия неизвестно ни одного руководства по ООП, которое удовлетворяло бы требованиям школьной методики.

Поскольку мы ориентируемся на реально существующие курсы, по которым накоплен  определенный методический опыт, то в данном подразделе нет развернутых рекомендаций по преподаванию ООП. Вместе с тем совсем обойти эту тему нельзя, так как данный подход к программированию быстро теснит другие, и это вскоре найдет отражение в школьной информатике. Конкретные методические приемы изучения указанных выше вопросов учитель может разрабатывать сам, используя приведенную в конце курсовой работы литературу.

Опишем ниже кратко 2 варианта школьного курса ООП; оба реализованы практически. Один из них ориентирован на более традиционные средства Object Pascal, другой на Delphi.

Курс «Основы ООП», разработанной А.Б.Кузнецовым (Челябинский гос.

пед.ун-т), рассчитан на 34 часа и рассматривается разработчиком как продолжение курса «Программирование на Паскале», в котором вопросы

ООП не обсуждаются. Курс может быть реализован в школе с углубленным изучением информатики (скорее в 11 кл.).

Тема «Основные сведения о технологии проектирования программ»

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

Тема «Декомпозиция : выделение предметной области»  

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

Тема «Уточнение элементов предметной области в виде классов и объектов».

Объект: понятие, характеристики (состояние, поведение, индивидуальность), взаимодействие объектов в проектируемой системе. Класс: понятие, описание. Структура интерфейсной части описания класса. Два типа взаимосвязи между предметами и понятиями: тип-вид, целое-часть. Отношения между классами в проектируемой системе (наследования и использования).

Тема «Разработка механизмов взаимодействия классов и объектов»

Понятие механизма взаимодействия структур данных в программе. Активность, видимость и способ взаимодействия объектов. Классификация, как метод и форма упорядочения объектов и классов, связанных отношениями наследования. Возможные подходы по определению основания классификации: классическое распределение по категориям, концептуальное объединение, выделение прототипов. Форма взаимодействия классов, связанных отношением использования – «составная часть».

Тема «Описание объектов и классов на языке программирования Турбо Паскаль»

Тип данных Object (понятие класса). Синтаксис описания интерфейсной части класса: поля и методы, инкапсуляция (принцип ограничения доступа к данным и методам классов понятие об области видимости). Переменные типа Object (понятие объекта). Инициализация и правило доступа к полям объекта. Использование оператора WITH и параметра SELF при описании реализации методов класса.

Тема «Наследование. Иерархия классов»

Принцип наследования: характеристика, применение в языке Турбо Паскаль. Класс-предок и класс-потомок: описание, иерархия, варианты переопределения структуры методов «предка» (на примерах).

Тема «Наследование и полиморфизм»

Раннее и позднее связывание: статистические и виртуальные методы. Создание таблицы виртуальных методов (ТВМ), ее роль. Конструктор и деструктор. Функции TypeOf и SizeOf. Совместимость объектных типов.

Тема «Внутреннее представление данных»

Распределение памяти для выполнимого кода программ на Турбо Паскале. Внутреннее представление данных объектного типа, ТВМ. Недостатки в использовании виртуальных методов при описании классов. Динамические методы. Таблица динамических методов (ТДМ) и ее внутреннее представление.

Курс «Основы программирования на Delphi», разработанный И.П. Половиной (Пермский государственный педагогический университет), так же рассчитан на 34 часа и рассматривается разработчиком как продолжение курса «Программирования на Паскале». Курс нацелен лишь на первичное знакомство с важнейшими понятиями и средствами языка и оставляют в стороне ряд его возможностей, отмеченных выше, чрезвычайно важных с точки зрения профессионального разработчика программных систем.

Тема«Основные понятия ООП»

Формула объекта. Методология ООП. Объект как совокупность полей данных и методов их обработки. Визуализация объектов. Объекты и компоненты. Классы объектов. Инкапсуляция, наследование и полиморфизм – три кита ООП. Объектные типы данных – классы. Описание класса: поля, методы и свойства. Экземпляры класса – объекты. Динамический характер объектов. Уточненные имена полей и методов.

Тема «Идеология программирования под Windows».

Интерфейс под Windows. Принципы работы Windows-приложений. Принципиальные отличия DOS-программы от Windows-приложений. Порядок обработки событий при работе в среде Windows. Принципы построения Delphi –приложений; технологии визуального и событийного программирования. Последовательность действий при разработке Delphi-приложений.

Тема «Визуальная среда программирования Delphi.Инструментарий Delphi.Основные категории Delphi: свойства, события, методы »    

Окна в Delphi-главное окно, окно формы, окно инспектора объектов, их структура. Свойства как атрибуты объекта. Примеры свойств (Left, Top, Width,  Height, Visible). Изменение свойств компонентов визуально и программным путем. Виды свойств, отображенных в инспекторе объектов. События мыши, клавиатуры и системные события. Методы. Простейшие примеры применения методов.

Тема «Структура приложения в Delphi. Проект. Разработка сценария проекта. Файлы проекта. Описание файлов»

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

Тема «Управление компонентами при проектировании. Форма, ее свойства.События, методы».

Запуск Delphi и выход из среды. Работа с компонентами: помещение на форму, выделение компонента, удаление компонента, копирование. Использование встроенной помощи. Форма и ее свойства. Задание размеров и положения формы. Автоматическое размещение формы. Задание цветов. Заголовок  формы и значок формы. Видимость формы. Основные события формы(OnCreate, OnShow, OnActivate, OnCloseQuery и парные к ним).

Тема «Разработка и реализация простого приложения»  

Данная тема является сугубо практической. Пользуясь ранее полученными знаниями, учащиеся должны создать простейшее приложение. В качестве такого приложения может быть рекомендована программа «Вычислитель», которая складывает два числа и выдает на экран результат. Разработка приложения в методическом плане складывается из следующих этапов:

А. Постановка задачи, включающая:

-                     точную формулировку решаемой задачи;

-                     изображение на экране всего того, что планируется увидеть на экране, то есть состояние кадра; кадров может быть один или несколько, но в данной теме рекомендуется обойтись одним;

-                     написание сценария работы приложения;

Б. Разработка формы.

В. Обработка событий.

 

Тема «Разработка проекта»

Данная тема является продолжением предыдущей, но на более высоком уровне требований к навыкам учащихся. Учителю следует выбрать проект, при реализации которого учащиеся освоят новые для них возможности Delphi.

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

-                     заставки и рабочей формы, где и развернутся все основные события (загрузка картинок с помощью меню File и редактирование с помощью Edit).

Тема «Графические возможности Deiphi» 

Способы вывода графической информации. Использование компонентов Image  и Shape. Создание и отображение картинок с использованием Image Editor. Отображение геометрических фигур с помощью компонента Shape. Формирование изображений программным способом. Свойства Canvas.

                   Требования к знаниям и умениям учащихся:

Тема «Основные сведения о технологии проектирования программ»

Учащиеся должны знать:

  -элементы общей схемы процесса проектирования программ.

  -в чем состоит сложность программ и как с ней бороться.

  -в чем состоит формализация условия задачи.             

  -способы представления результата проектирования.

Учащиеся должны уметь:

-                     оформлять решение поставленной задачи любым из возможных способов.

Учащиеся должны быть ознакомлены:

-                     с эволюцией технологий программирования и языков программирования;

-                     с различием понятий: «формализация», «моделирование», «проектирование», «программирование», «технология программирования».

Тема «Декомпозиция: выделение предметной области»

Учащиеся должны знать:

-что такое декомпозиция и зачем она нужна;

-что такое предметная область задачи;

-                     в чем состоит отличие алгоритмической декомпозиции от объектно-ориентированной;

-    что такое абстрагирование и абстракция;

Учащиеся должны уметь:

-                     проводить алгоритмическую декомпозицию поставленной задачи;

-                     проводить объектно-ориентированную декомпозицию поставленной задачи;

-                     применять на одной и той же поставленной задаче разные виды декомпозиции;

Учащиеся должны быть ознакомлены:

-                     с представителями объектно-ориентированных языков программирования;

Тема «Уточнение элементов предметной области в виде классов и объектов»

Учащиеся должны знать:

-                     что такое класс;

-                     части описания класса;

-                     возможные разделы, присутствующие при описании интерфейсной части класса;

-                     в чем сходство и различие между объектами и классами;

-                     в чем сходство и различие между взаимодействиями объектов и взаимодействиями классов;

Учащиеся должны уметь:

-                     выделять класс по совокупности объектов;

-                     различать взаимосвязь «тип-вид» и «целое-часть» в приведенной совокупности предметов или понятий;

-                     приводить примеры разных видов взаимодействий классов;

-                     определять в конкретной ситуации вид взаимодействия между классами;

-                     охарактеризовать объект по описанию класса;

Учащиеся должны быть ознакомлены:

-                     со значением каждого из признаков объекта;

Тема «Разработка механизмов взаимодействия классов и объектов»

Учащиеся должны уметь:

-                     зачем нужно проектировать механизм взаимодействия объектов по их совокупности согласно поставленной цели задачи;

-                     определять основание для создания классификации (группы объектов или структуры классов, связанных отношениями наследования);

-                     в зависимости от поставленной цели задачи применять тот или иной механизм взаимодействия классов или объектов;

-                     читать и составлять разные виды диаграмм для конкретной задачи.

Тема «Описание объектов и классов на языке программирования Турбо Паскаль»

Учащиеся должны знать:

-                     синтаксис описания объекта на языке Турбо Паскаль;

-                     синтаксис описания части реализации и разделов интерфейсной части класса на языке Турбо Паскаль;

-                     в чем состоит инкапсуляция и какова ее связь с ограничением доступа;

-                     что означает утверждение: поля и методы одного класса находятся в одной области видимости;

-                     в чем состоит отличие между описанием, использованием методов класса и подпрограмм.

Учащиеся должны уметь:

-                     описать класс и объект данного класса на языке Турбо Паскаль;

-                     выделять механизм работы программы в виде взаимодействия определенных в ней объектов;

-                     использовать различные способы доступа к полям и методам объекта.

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