Единое окно доступа к образовательным ресурсам

Введение в профессионально-педагогическую специальность: Учебно-методическое пособие

Голосов: 6

Учебное пособие знакомит учащихся с основными понятиями, использующимися в профессиональной педагогике. Рассматриваются вопросы стандартизации и планирования в системе профессионального образования. Даются методические рекомендации по планированию и разработке учебного занятия по специальности. Пособие предназначено для студентов, изучающих курс "Введение в профессионально-педагогическую специальность" и обучающихся по специальности 050501 "Профессиональное обучение" на кафедре инженерной и компьютерной графики (ИКГ) СПбГУ ИТМО.

Приведенный ниже текст получен путем автоматического извлечения из оригинального PDF-документа и предназначен для предварительного просмотра.
Изображения (картинки, формулы, графики) отсутствуют.
    Приложение. Примеры выполнения практического задания                  91




 Санкт-Петербургский государственный университет информационных
                  технологий, механики и оптики




                   Естественнонаучный факультет
             Кафедра инженерной и компьютерной графики




                планирование учебного занятия на тему:

       Введение в объектно-ориентированное программирование




                               выполнил студент 1704 гр. Костенко Е. В.
                               преподаватель Локалов В. А.




                          Санкт-Петербург
                               2008


92             Введение в профессионально-педагогическую специальность


I.   Характеристика учебной группы
Студенты первого курса, обучающиеся по специальности 050501.06 — профес-
сиональное обучение (информатика, вычислительная техника и компьютерные
технологии), имеющие представление о программировании, желающие позна-
комиться с принципами объектно-ориентированного программирования.
II.   Условия обучения
Группа до 40 чел.
Продолжительность обучения — 80 минут.
Обучение проходит в аудитории, оборудованной установкой для проецирова-
ния компьютерного изображения на экран, а также доской с мелом.
Учащиеся должны иметь ручку и тетрадь.
III. Содержание обучения
В результате обучения учащиеся смогут:
   1) объяснить, зачем специалисту в области информатики, вычислительной
       техники и компьютерных технологий знать о том, что такое объектно-
       ориентированное программирование (ООП),
   2) рассказать о причинах появления ООП,
   3) пояснить, чем отличаются данные типа «объект» от других типов данных,
   4) запомнить основные принципы ООП (инкапсуляция, полиморфизм, на-
       следование),
   5) привести примеры, иллюстрирующие данные принципы.
IV. Средства обучения
Набор слайдов презентации (вид слайдов приведен в тексте).
V.    Методика обучения
Вводно-мотивационная часть
Преподаватель объясняет важность изучения темы «Введение в объектно-
ориентированное программирование» для будущих специалистов области
информатики, вычислительной техники и компьютерных технологий.
Информатика, по сравнению с другими техническими дисциплинами, очень
быстро меняется. Аппаратное обеспечение все время совершенствуется, а зна-
чит, должно совершенствоваться и программное обеспечение. Любому специа-
листу в области информационных технологий, чтобы быть востребованным на
рынке труда, необходимо быть в курсе последних событий, уметь использовать
самые передовые технологии в области программирования, быть знакомым с
самыми современными концепциями и принципами разработки программного
обеспечения. Одной из важнейших концепций, использующейся в настоящее
время для разработки программ является концепция объектно-ориентирован-
ного программирования.


Приложение. Примеры выполнения практического задания                    93


Преподаватель показывает Слайд 1 с названием темы.
Слайд 1:
Тема:
        Объектно-ориентированное
        программирование (ООП)

Усвоив основные идеи ООП, научившись применять их на практике, можно
научиться писать более гибкие, расширяемые и хорошо читаемые программы,
которые, несмотря на тысячи строк кода, будут легкими для понимания. Знание
и понимание основных концепций ООП пригодится при изучении таких языков
как С++, Java и пр.
Операционально-познавательная часть
Принципы объектно–ориентированного программирования не возникли на пус-
том месте. Их появление стало закономерным этапом в развитии программиро-
вания. Рассмотрим кратко предысторию.
Показывается слайд, в котором этапы развития программирования появляют-
ся по мере изложения учебного материала. Преподаватель называет основные
этапы, представленные на Слайде 2.
Слайд 2:
             Машинные коды и языки низкого уровня




         Языки высокого уровня, использующие принципы
           структурного программирования (Pascal и С)



  Языки, использующие принципы объектно-ориентированного
            программирования (Object Pascal, C++)

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


94            Введение в профессионально-педагогическую специальность


Не многим лучше стали обстоять дела при переходе на язык ассемблера,
команды в котором по сути своей удобны программисту лишь тем, что являют-
ся мнемоническим представлением машинных команд.
Лишь только с появлением языков высокого уровня, среди которых первым,
конечно, у программистов появилась возможность не думать о конкретной
машинной реализации программы, а все внимание переключить на решение
задачи. Однако для того, чтобы писать большие программы, мало того, чтобы
операторы языка были машинонезависимы необходимо также еще, чтобы язык
позволял удобно представлять программу в виде совокупности отдельных
структурных единиц (модулей), которые можно было бы многократно исполь-
зовать, и на основе которых можно построить достаточно сложную программ-
ную систему. Эти требования нашли свое отражение в концепции структур-
ного программирования, которая была реализована в таких языках
программирования как Pascal и C.
Появление структурных языков высокого уровня коренным образом не измени-
ло подход к программированию. Как и на предыдущих этапах, программа
мыслилась программистами в виде последовательности команд. Отслеживая
выполнение этой последовательности, можно полностью контролировать ход
программы. Программный модуль фактически также мог пониматься как
команда, только «укрупненная».
Преподаватель показывает Слайд 3.
Концепция структурного программирования дала возможность программистам
решать задачи на разных уровнях детализации: от проектирования взаимодей-
ствия крупных программных блоков до реализации самых мелких программ-
ных модулей — «кирпичиков», из комбинации которых можно строить разно-
образные программы.
При подходе к программе как к последовательности команд, программист
должен четко отслеживать корректность данных, обрабатываемых в ходе
выполнения программы. Очевидно, что чем сложнее программа, тем труднее
такое отслеживание осуществлять и тем выше вероятность появления неожи-
данных ошибок.
Следовательно, для разработки сложных, больших приложений необходимо
было искать новые принципы программирования. Очевидно, что этот поиск
должен быть связан с дальнейшим развитием принципа структурности, то есть
с формированием новых структур, с помощью которых можно было бы осуще-
ствить многоуровневое описание данных совместно с командами, которые эти
данные обрабатывают.
Эти требования были выполнены в концепции объектно-ориентированного
программирования.
В основе ООП лежит простая идея о том, что программное описание объекта,
должно соответствовать его естественному описанию.


Приложение. Примеры выполнения практического задания                  95


Слайд 3:

                                            Программный
                                              модуль 1
                                            Программный
                                              модуль 2
                                                 …
                                            Программный
                                              модуль N




                    Реализация      Реализация   …    Реализация
                     модуля 1        модуля 2          модуля N
  или МОДУЛИ
   КОМАНДЫ




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

               Объект характеризуется:
   •      совокупностью значений признаков;
   •      поведением (реакцией на те или иные
          обстоятельства);
   •      уровнем абстракции описания.


96             Введение в профессионально-педагогическую специальность


Преподаватель в диалоге с учащимися приводит характеристики объектов
«кошки» и «животные семейства кошачьих», «млекопитающие».
Рассмотрим такой объект типа «кошка».
У него есть ряд признаков, которые могут принимать значения, например:
  • предпочитаемая еда,
  • кличка,
  • место ночлега,
  • враги.
Перечисленные свойства связаны с поведением объекта:
  • есть,
  • отзываться на кличку,
  • спать,
  • защищаться.
Кошки являются объектами весьма конкретными, особенно если речь идет о
кошках, которых вы знаете.
По сравнению с кошками объекты типа «животное семейства кошачьих»,
«млекопитающее» есть объекты все более и более абстрактные. Это и имелось в
виду, когда речь шла об уровне описания. Признаков у более абстрактных
объектов, как правило, меньше, чем у более конкретных, и соответственно
меньше поведенческих характеристик. Например, не всякое животное семейст-
ва кошачьих будет иметь кличку и отзываться на нее.
Перейдем теперь к программированию.
Объект в ООП также как и любой объект в реальности:
  • имеет свойства, которые описываются как переменные какого-либо типа
      и принимают те или иные значения;
  • выполняет те или иные действия (функции), которые могут определяться
      как воздействием на объект, так и также значения его свойств;
  • описывается на том или ином уровне абстракции.
Итак, объект — это совокупность данных, характеризующих его состояние,
и процедур их обработки, моделирующих его поведение.
Разработчику объектно-ориентированной программы необходимо научиться
различать тип объекта и сам объект. Прежде чем пользоваться объектом,
необходимо описать его тип. Это схематично представлено на Слайде 5. Поль-
зуясь приведенной выше аналогией, можно сказать, что «кошка» — это тип
объекта, а конкретная «Мурка» или «Барсик» являются объектами. То есть в
программе объект фигурирует как переменная пользовательского типа.
Эта переменная позволяет как обращаться к свойствам объекта, так и вызывать
его методы (процедуры, функции).


Приложение. Примеры выполнения практического задания                       97


Слайд 5:

type кошка = <определение объекта типа «кошка»>;
var Мурка, Барсик : кошка;

Условно можно представить, что данные и методы как бы содержатся внутри
(как в капсуле) переменной, являющейся объектом. Это представление является
принципиальным для ООП, оно реализуется в принципе инкапсуляции.
Инкапсуляция — скрытие деталей реализации работы объекта, т. е. его
свойств и методов их обработки от прямого доступа пользователя, что защища-
ет объект от некорректных, случайных воздействий и повышает его надеж-
ность.
Детали «реализации» кошки (что и как она ест, как ее зовут, и как она отклика-
ется на кличку, где и как она спит, кто ее враг и как она от него защищается)
непосредственно скрыты от нас (По внешнему виду нельзя узнать, что кошка
ест, или как ее зовут).
Мы можем узнать об этих деталях только тогда, когда вызовем ее методы. В
случае с кошкой это будет эквивалентно тому, что мы дали ей поесть, позвали
и т. д.
Это и есть основное свойство инкапсуляции: нам неважно, как внутри устро-
ен объект (кошка, например) нам важно, какие действия данный объект
умеет выполнять (есть, отзываться на кличку и др.).
Слайд 6:

 СВОЙСТВА:
 предпочитаемая еда — молоко,
 кличка — Мурка,
 место ночлега — кровать,
 враг — Бобик.
 МЕТОДЫ (кошка умеет):
 есть,
 отзываться на кличку,
 спать,
 защищаться.


98             Введение в профессионально-педагогическую специальность


Как уже было сказано, реальные объекты могут быть описаны на том или ином
уровне абстракции. Свойства и методы абстрактных объектов присущи кон-
кретным объектам, плюс к этому у конкретных объектов есть особенности,
присущие только им.
Так свойства и методы «млекопитающих» присущи всем «животным семейства
кошачьих», а кошкам присущи все свойства и методы «животных семейства
кошачьих».
Для компактного описания этого свойства в ООП используется так называемый
принцип наследования.
Наследование — механизм, посредством которого один объект может приоб-
ретать свойства другого. Объект может как наследовать основные свойства
другого объекта, так и добавлять к ним черты, характерные только для него.
Наследование является важным механизмом, поскольку оно позволяет строить
иерархию типов объектов.
Отвлечемся от мира животных (мы, в конце концов, не биологи) и попробуем
представить, как будет выглядеть иерархия типов объектов при работе с ком-
пьютерными графическими объектами.
Преподаватель пытается вызвать активность аудитории и совместно
построить иерархию типов графических объектов. В результате должно
получиться то, что показано на Слайде 7.
В получившейся иерархии тип «ТОЧКА» является прародителем остальных
типов. Эти типы наследуют от точки ее свойства — координаты X и Y, а также
методы, позволяющие работать с этими координатами (Дать X, Дать Y, Уста-
новить X, Установить Y). Наследуемые координаты будут центрами порожден-
ных типов объектов («АБСТРАКТНАЯ ФИГУРА», «ПРЯМОУГОЛЬНИК»,
«КРУГ»), а с помощью наследуемых методов можно получать и устанавли-
вать значения X и Y этих центров. Отметим, что организация доступа к значе-
ниям объекта через его методы является реализацией принципа инкапсуляции.
Кроме иллюстрации принципов инкапсуляции и наследования на приведенном
примере можно продемонстрировать еще один очень важный принцип ООП —
принцип полиморфизма. Для этого обратим внимание, что некоторые назва-
ния методов в порождающих и порожденных типах объектов повторяются. Так
метод «нарисовать» есть как в типе «АБСТРАКТНАЯ ФИГУРА», так и в
порожденных им типах «ПРЯМОУГОЛЬНИК», «КРУГ». Очевидно, что прямо-
угольник и круг рисуются по-разному, а абстрактная фигура, которая не может
иметь конкретной визуализации (на то она и абстрактная), никак не рисуется.
То есть для совокупности «родственных» объектов мы имеем метод, названный
одним и тем же именем, но реализуемый по-разному. Про такой метод говорят,
что он переопределяется для каждого объекта из иерархии объектов. Пере-


Приложение. Примеры выполнения практического задания                       99


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


                                    ТОЧКА

                    СВОЙСТВА:          МЕТОДЫ:
                    координата X;      дать X;
                    координата Y;      дать Y;
                                       установить X;
                                       установить Y;

                         АБСТРАКТНАЯ ФИГУРА
                               (ТОЧКА)

                    СВОЙСТВА:          МЕТОДЫ:
                    цвет;              дать цвет;
                                       установить;
                                       нарисовать;
                                       спрятать;


        ПРЯМОУГОЛЬНИК                               КРУГ
     (АБСТРАКТНАЯ ФИГУРА)                   (АБСТРАКТНАЯ ФИГУРА)

  СВОЙСТВА:         МЕТОДЫ:            СВОЙСТВА:        МЕТОДЫ:
  длина Х;          создать (X0,Y0);   длина Х;         создать (X0,Y0);
  ширина Y;         нарисовать;        ширина Y;        нарисовать;
                    спрятать;                           спрятать;
                    уничтожить;                         уничтожить;


Рефлексивно-оценочная часть
Преподаватель подводит итоги, беседуя с аудиторией. Выборочно опрашивая
учащихся, преподаватель пытается, чтобы учащиеся повторили ключевые


100                Введение в профессионально-педагогическую специальность


слова (в тексте, который идет далее, эти слова выделены жирным шриф-
том).
Итак, появление принципов объектно-ориентированного программирования
стало закономерным этапом в развитии программирования. Объектно-
ориентированный подход позволяет описать задачу, которую решает програм-
мист, с помощью так называемых объектов. Описание объекта в ООП похоже
на описание какого-либо реального объекта на естественном языке. Объект
имеет совокупность признаков (свойств) и характеризуется определенным
поведением (набором методов).
Реальная программистская задача описывается с помощью системы объектов
(объектно-ориентированной системы). В основе построения объектно-ориенти-
рованной системы лежат три основных принципа ООП:
     •    инкапсуляция (скрытие деталей реализации работы объекта);
     •    наследование (механизм, посредством которого один объект может при-
          обретать свойства другого);
     •    полиморфизм (различная реализация одного и того же метода на разных
          уровнях иерархии объектов).
VI.       Контрольные вопросы и задания
1.       Объясните, зачем специалисту в области информатики, вычислительной
         техники и компьютерных технологий знать о том, что такое объектно-
         ориентированное программирование (ООП).
2.       Какой этап развития программирования предшествовал ООП, почему ООП
         появилось?
3.       Сравните тип данных «объект» и «запись», в чем сходство и различие.
4.       Придумайте пример иерархии объектов в любой области знаний, объясни-
         те примере объектов этой иерархии, что такое «инкапсуляция», «наследо-
         вание», «полиморфизм».
VII. Литература
1.       Шилдт Г. Самоучитель С++. Пер с англ. 3-е издание. — СПб.:       БХВ-
         Петербург, 2003, с. 10-13.
2.       Информатика. Базовый курс. 2-е издание /Под ред. Симоновича. —   СПб.:
         Питер, 2004.
3.       Павловская Т. А. Паскаль. Программирование на языке высокого     уров-
         ня. — СПб.: Питер, 2003. — с. 165.
4.       Секунов Н. Самоучитель Visual С++. — СПб.: БХВ-Петербург,        2003,
         с. 520-522.



    
Яндекс цитирования Яндекс.Метрика