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

Объектно-ориентированное программирование (ООП) в настоящее время занимает ведущее место при разработке профессиональных программных средств. Ознакомление с основами ООП в углубленном курсе информатики представляется необходимым — как минимум для тех учащихся, которые ориентируются на профессии, связанные с разработкой компьютерных программ. Заметим, что хотя ни ГОС-2004, ни ФГОС-2012 не упоминают в явном виде объектное программирование, современные школьные учебники, рассчитанные на углубленный уровень изучения информатики, рассказывают о его принципах, а иногда и обучают его началам.

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

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

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

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

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

  • 1. Сопоставьте требования к предметным результатам обучения по разделу «Программирование» в ГОС-2004 и ФГОС-2012 при изучении предмета: а) на базовом уровне; б) на углубленном уровне. Сделайте обоснованное заключение об эволюции данного раздела в школьном курсе информатики.
  • 2. Сопоставьте, с какой глубиной подходят к изложению темы «Языки программирования», авторы разных школьных учебников информатики. Для сопоставления выделите дидактические элементы данной темы, составьте таблицу, названиями строк в которой являются эти элементы, а названиями столбцов — фамилии авторов учебников, и отметьте в ней наличие или отсутствие явно выраженных дидактических элементов в учебниках. Сделайте это отдельно для изучения предмета: а) на базовом уровне; б) на углубленном уровне.
  • 3. Каково место изучения программирования в структуре современной школьной информатики?
  • 4. На каких примерах целесообразно знакомить учащихся с принципами структурной алгоритмизации? В каком порядке эти примеры излагать?
  • 5. В каком объеме изучается язык Паскаль в различных вариантах базового курса информатики?
  • 6. На каких примерах удобно объяснить различия между понятиями «порядковый тип» и «упорядоченный тип»? Как в различных учебных пособиях по Паскалю именуются равносильные этим понятия?
  • 7. На каких примерах объяснить учащимся, почему в программировании следует четко различать вещественные и целые математические величины и в чем здесь отличия от чисто математического подхода?
  • 8. Как методически целесообразно построить рассказ об операторе множественного ветвления? На каких примерах соотнести его с многократным использованием условного оператора?
  • 9. Как методически целесообразно объяснить учащимся, для чего в Паскале три оператора цикла? Как в деталях объяснить порядок исполнения каждого из них?
  • 10. На каких примерах можно объяснить учащимся целесообразность наличия в Паскале интервального типа данных?
  • 11. На каких примерах удобно объяснить учащимся проблемы, связанные с процедурами и функциями: выделение вспомогательного алгоритма; локализация переменных; различие между параметрами-переменными и параметрами-значениями; областью действия описаний в процедурах; различиями между процедурой и функцией; смыслом использования глобальных переменных; рекурсией.
  • 12. Как построить рассказ о структурированных типах данных? Как и на каких примерах объяснить учащимся необходимость таких типов данных, как массив (одномерный и двумерный), строка, запись, файл?
  • 13. На каких примерах объяснить различия между одномерным массивом и записью? Файлом прямого и последовательного доступа?
  • 14. Как и на каких примерах объяснить учащимся особую практическую значимость поиска и сортировки?
  • 15. Как сформулировать идею внешней сортировки и пути ее реализации?
  • 16. Как пояснить учащимся принципиальное различие между процедурой и модулем?
  • 17. Какие простые содержательные задачи использовать для отработки динамических структур данных, таких как стек? Очередь? Двоичное дерево?
  • 18. Приведите цепочку примеров возрастающей сложности, на которых можно сравнивать структурный и объектно-ориентированный подходы к проектированию программ на этапе декомпозиции.
  • 19. Какие знания учащихся по структурному программированию можно использовать, вводя понятие объекта?
  • 20. Приведите цепочку примеров возрастающей сложности для отработки понимания механизмов взаимодействия классов и объектов.
  • 21. На каких содержательных задачах уместно объяснять понятия наследования и иерархии классов?
  • 22. На каких простейших примерах можно объяснить учащимся основные понятия визуального программирования?
  • 23. Насколько в различных вариантах базового курса информатики изучаются логические операции и достаточно ли в них материалов для продолжения соответствующей темы в профильном курсе, основанном на языке Пролог?
  • 24. Как удобно оформлять на доске и на бумаге трассировку запросов базам данных и базам знаний Пролога? Есть ли рекомендации на эту тему в известной вам методической литературе?
  • 25. На каких простых примерах уместно продемонстрировать учащимся решение логических задач на Прологе?
  • 26. На каких простых примерах можно продемонстрировать учащимся рекурсию?
 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >