15.4. методика обучения объектно-ориентированному программированию
15.4. методика обучения объектно-ориентированному программированию
Объектно-ориентированное программирование в настоящее время занимает ведущее место в разработке профессиональных программных средств. Ознакомление с его основами в школьном курсе информатики второго уровня представляется вполне возможным и полезным для тех учащихся, которые ориентируются на профессии, связанные с разработкой компьютерных программ.
В ходе изучения данного курса будут решены три круга задач:
• освоение методологии объектно-ориентированного программирования;
• овладение техникой объектно-ориентированного программирования на одном из языков;
• введение учащихся в проблематику, адекватную данному подходу, расширение общего кругозора (т.е. общеобразовательный компонент).
При этом немаловажную роль играет выбор языка программирования. Быстро растущая популярность визуального программирования (которое не тождественно классическому объектному, но связано с ним многими общими идеями) в системах программирования типа Delphi, Visual Basic, C++Builder делает привлекательной идею положить одну из них в основу курса. На этот счет в педагогической литературе высказываются различные точки зрения.
Одна из них состоит в том, *гго несомненная занимательность и облегченность создания программ визуально-объектным способом не вполне соответствует усвоению идей и методов объектного программирования при проведении относительно короткого спецкурса. Другие аргументы в пользу ориентации в школьном курсе информатики на традиционные объектные средства, содержащиеся в версиях языка Турбо Паскаль от 5.5 до 7.0, — несомненная преемственность по отношению к курсу программирования на Паскале, существенно меньшие требования к компьютерам (поскольку объем программного кода, создаваемого с помощью визуальных средств, обычно весьма велик).
Другая, в значительной мере противоположная точка зрения связана с ориентацией в первую очередь на систему программирования Delphi (реже — на Visual Basic). Delphi является системой объектного программирования, созданной на базе Паскаля; по оценке специалистов, ее профессиональный уровень очень высок. Фирма Borland (в начале 1990-х гг. сменила название на Inprise), создавшая повсеместно используемый для обучения программированию язык Турбо Паскаль, вложила в Delphi максимально комфортный для разработчиков и пользователей интерфейс в стиле Windows. Delphi 4.0 является одновременно средством разработки приложений для архитектуры «клиент-сервер», приложений для Internet, корпоративных систем доступа к данным. Вместе с тем отнюдь неочевидно, что все эти возможности можно (и надо) как-то отразить в небольшом школьном курсе информатики.
В любом случае следует понимать, что методика изучения в школе любых видов объектного программирования разработана совершенно недостаточно и что этот процесс в настоящее время, по существу, находится на начальной стадии. Авторам данного пособия неизвестно ни одного руководства по объектно-ориентированному программированию, которое удовлетворяло бы требованиям школьной методики.
Поскольку мы ориентируемся на реально существующие курсы, по которым накоплен определенный методический опыт, то в данном подразделе нет развернутых рекомендаций по преподаванию объектно-ориентированного программирования. Вместе с тем совсем обойти эту тему нельзя, так как данный подход к программированию быстро теснит другие, и это вскоре найдет отражение в школьной информатике. Конкретные методические приемы изучения указанных выше вопросов учитель может разрабатывать сам, используя приведенную в указателе каждой главы литературу.
Опишем ниже кратко два варианта школьного курса объектно-ориентированного программирования; оба реализованы практически. Один из них ориентирован на более традиционные средства Object Pascal, другой — на Delphi.
Курс «Основы объектно-ориентированного программирования», разработанный А. Б. Кузнецовым [5] (Челябинский гос. пед. ун-т), рассчитан на 34 часа и рассматривается разработчиком как продолжение курса «Программирование на Паскале», в котором вопросы объектно-ориентированного программирования не обсуждаются. Курс может быть реализован в школе с углубленным изучением информатики (скорее всего, в XI кл.).
Тема «Основные сведения о технологии
проектирования программ»
Общая схема процесса проектирования программ. Технология программирования, сложность программ и формализация. Эволюция технологий программирования и языков программирования. Этап проектирования программы: формализация условия задачи, проектирование и моделирование — сходство и различие, методы структурного подхода, способы представления результата (виды используемых моделей). Этап программирования (реализация структурного подхода на языке программирования Турбо Паскаль).
Тема «Декомпозиция: выделение
предметной области»
Сравнительный анализ структурного и объектно-ориентированного подходов на этапе декомпозиции. Предметная область. Принцип абстрагирования и выделение абстракций.
Тема «Уточнение элементов предметной области
в виде классов и объектов»
Объект: понятие, характеристики (состояние, поведение, индивидуальность), взаимодействие объектов в проектируемой системе. Класс: понятие, описание. Структура интерфейсной части описания класса. Два типа взаимосвязи между предметами и понятиями: тип-вид, целое-часть. Отношения между классами в проектируемой системе (наследования и использования).
Тема «Разработка механизмов взаимодействия
классов и объектов»
Понятие механизма взаимодействия структур данных в программе. Активность, видимость и способ взаимодействия объектов. Классификация, как метод и форма упорядочения объектов и классов, связанных отношениями наследования. Возможные подходы по определению основания классификации: классическое распределение по категориям, концептуальное объединение, выделение прототипов. Форма взаимодействия классов, связанных отношением использования — «составная часть».
Тема «Описание объектов и классов на языке
программирования Турбо Паскаль»
Тип данных 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 и парные к ним).
Тема «Разработка и реализация простого приложения»
Данная тема является сугубо практической. Пользуясь ранее полученными знаниями, учащиеся должны создать простейшее приложение. В качестве такого приложения может быть рекомендована программа «Вычислитель», которая складывает два числа и выдает на экран результат (рис. 15.10).
Рис. 15.10. Кадр приложения
Разработка приложения в методическом плане складывается из следующих этапов.
А. Постановка задачи, включающая:
• точную формулировку решаемой задачи;
• изображение на бумаге всего того, что планируется увидеть на экране, т.е. создание кадра; кадров может быть один или несколько, но в данной теме рекомендуется обойтись одним;
• написание сценария работы приложения. Б. Разработка формы. В. Обработка событий.
Тема «Разработка проекта»
Данная тема является продолжением предыдущей, но на более высоком уровне требований к навыкам учащихся. Учителю следует выбрать проект, при реализации которого учащиеся освоят новые для них возможности Delphi.
В качестве примера такого проекта можно предложить разработать редактор просмотра картинок. Пусть приложение состоит из двух форм: главной формы — заставки (например, рис. 15.11) и рабочей формы (рис. 15.12), где и развернутся все основные события (загрузка картинок с помощью меню File и редактирование с помощью меню Edit).
Рис. 15.11. Вид главной формы приложения
Рис. 15.12. Пример рабочей формы приложения
Тема «Графические возможности Delphi»
Способы вывода графической информации. Использование компонентов Image и Shape.
Создание и отображение картинок с использованием Image Editor. Отображение геометрических фигур с помощью компонента Shape. Формирование изображений программным способом. Свойства Canvas.
Обсуждение Методика преподавания информатики
Комментарии, рецензии и отзывы