«Основы алгоритмизации и объектно-ориентированного программирования на языке Gambas»
Вид материала | Тезисы |
- Рабочая программа дисциплины объектно-ориентированные языки и системы программирования, 147.78kb.
- Основы алгоритмизации и программирования (11, 270.62kb.
- Тематическое планирование кружка на 2009/2010 уч г. «Основы алгоритмизации и программирования, 63.72kb.
- Программирование, 94.79kb.
- Учебно-методический комплекс по дисциплине высокоуровневые методы информатики и программирования, 435.89kb.
- Рабочая программа учебной дисциплины (модуля) Объектно-ориентированное программирование, 99.17kb.
- Программа дисциплины Объектно-ориентированное программирование Рекомендуется для направления, 591.42kb.
- Итаем актуальным создание условий реализации преподавания объектно-ориентированного, 92.04kb.
- Рабочая программа учебной дисциплины (модуля) Язык программирования Java, 90.39kb.
- Дисциплина относится к числу общеобразовательных дисциплин, формирующих профессиональную, 25kb.
Муниципальное образовательное учреждение
дополнительного профессионального образования
«Институт повышения квалификации»
Научно-методический центр
Тезисы доклада
«Основы алгоритмизации и объектно-ориентированного программирования на языке Gambas»
Фогель Ольга Николаевна, учитель информатики
МОУ «Основная общеобразовательная школа №83»
г.Новокузнецк, 2011
Основы алгоритмизации и объектно-ориентированного программирования на языке Gambas
1. Теоретические основы темы «Алгоритмизация и объектно — ориентированное программирование на языке Gambas» в школьном курсе информатики
Тема «Алгоритмизация и программирование» начинается на всех ступенях средней школы, но на разном уровне. В начальной школе происходит знакомство на интуитивном уровне с понятиями алгоритма, алгоритмических конструкций, основ алгебры логики. В качестве учебных задач рассматривают бытовые, игровые, сказочные алгоритмы.
В средних классах школы в рамках данной темы происходит уточнение понятия алгоритма, основы алгебры излагаются на более формальном уровне. При решении учебных задач учащиеся знакомятся с разными способами записи алгоритмов, изучают свойства алгоритма, рассматривают некоторые алгоритмы.
В старших классах, особенно в классах физико-математического, информационно-технологического профилей, изучение этой темы строится в соответствии со Стандартом среднего (полного) общего образования по информатике и информационным технологиям (профильный уровень) .
В проекте Стандарта основного общего образования по информатике и информационным технологиям и обязательном минимуме содержания образовательных программ по информатике и ИКТ содержание алгоритмической линии определяется через следующий перечень понятий: «алгоритм, свойства алгоритмов, способы записи алгоритмов; блок-схемы; исполнители алгоритмов, система команд исполнителя; формальное исполнение алгоритмов; алгоритмические конструкции; логические значения; операции; выражения разбиение задачи на подзадачи; вспомогательные алгоритмы».
Изучение алгоритмизации в школьной информатике может иметь два целевых аспекта: первый — развивающий аспект, под которым понимается развитие алгоритмического (ещё говорят — операционного) мышления учащихся; второй — программистский аспект. Составление программы для ЭВМ начинается с построения алгоритма; важнейшим качеством профессионального программиста является развитое алгоритмическое мышление.
В авторской программе базового курса Н.Д.Угринович (учебник Информатика и ИКТ для 9 класса, БИНОМ. Лаборатория знаний, 2010г.) предлагает изучать параллельно алгоритмизацию с основами объектно-ориентированного программирования, рассматривая ООП на языке Gambas как средство изучения алгоритмических конструкций.
Для начала давайте рассмотрим основные теоретические понятия, изучаемые в данной теме.
Алгоритм – понятное и точное предписание исполнителю на выполнение конечной последовательности действий, приводящей от исходных данных к искомому результату.
Значение слова алгоритм очень схоже со значением слов рецепт, инструкция. Однако любой алгоритм в отличие от рецепта или способа обязательно обладает следующими свойствами:
- Дискретность – алгоритм должен состоять из конкретных действий , следующих в определённом порядке. Выполнение алгоритма разбивается на последовательность законченных действий – шагов. Только выполнив одно действие (команду), можно приступать к исполнению следующего. Произвести каждое отдельное действие исполнителю предписывает специальное указание в записи алгоритма (команда).
- Понятность – алгоритм не должен содержать предписаний, смысл которых может восприниматься исполнителем неоднозначно, т.е. запись алгоритма должна быть настолько чёткой и полной, чтобы у исполнителя не возникало потребности в понятии каких-либо самостоятельных решений. Алгоритм всегда рассчитан на выполнение «не размышляющего» формального исполнителя. Алгоритм составляется из команд, входящих в систему команд исполнителя (СКИ – множество команд, которые исполнитель может выполнять).
- Детерминированность – определённость и однозначность. Каждая команда алгоритма определяет однозначное действие исполнителя, и должно быть однозначно определено, какая команда выполняется следующей. То есть алгоритм многократно применяется к одному и тому же набору исходных данных, то на выходе он получает каждый раз один и тот же результат.
- Результативность – исполнение алгоритма должно закончиться за конечное число шагов, и при этом должен быть получен результат решения задачи. В качестве одного из возможных результатов может быть и установление того факта, что задача решений не имеет. Свойство результативности содержит в себе свойство конечности – завершение работы алгоритма за конечное число шагов.
- Массовость – алгоритм пригоден для решения любой задачи из некоторого класса задач, т.е. алгоритм правильно работает на некотором множестве исходных данных, которое называется областью применимости алгоритма. Свойство массовости определяет скорее качество алгоритма, а не относится к обязательным свойствам.
Важным при изучении этой темы является понятие исполнителя – управляемый объект, предназначенный для выполнения определенных алгоритмов. Причем оказывается, что гораздо проще построить алгоритм для программно-управляемого автомата (в том числе компьютера), чем для человека. Для управления автоматом или компьютером можно придумать формальный язык описания алгоритмов. Такие языки называются языки программирования, а сам алгоритм, записанный на таком языке, - программой.
Для записи алгоритмов существуют различные формы: словесная, блок-схема, программа на каком-либо алгоритмическом языке, машина Тьюринга, машина Поста и др. При изучении темы «Алгоритмизация и программирование» основными являются следующие способы представления алгоритмов: запись алгоритмов в виде текстовых описаний, блок-схемы и запись в виде программы для того или иного исполнителя.
Текстовая (словесно-формульная) форма записи алгоритмов обычно используется для алгоритмов, ориентированных на исполнителя-человека. Команды такого алгоритма выполняются в естественной последовательности, если не оговорено противного. Такой способ широко распространен при описании математических, химических, физических и бытовых задач, в том числе в соответствующих учебниках.
Блок-схемы алгоритмов – это графическое описание алгоритмов как последовательность действий. Написание алгоритмов с помощью блок-схем регламентируется ГОСТом. В схеме алгоритма каждому типу действий соответствует геометрическая фигура.
Графический способ представления алгоритмов является более компактным и наглядным по сравнению со словесным способом. Однако сохраняет и некоторые недостатки. Отсутствие явных ограничений на правила перехода в блок-схемах приводит к тому, что в них не всегда можно явно выделить базовые алгоритмические конструкции. Обозримыми являются блок-схемы только для небольших алгоритмов. При составлении блок-схем надо внимательно следить за структурностью алгоритма, т.е. блок-схема произвольного алгоритма должна быть композицией схем основных алгоритмических конструкций, в противном случае программирование подобного алгоритма будет затруднено.
Программа – запись алгоритма на языке программирования, исполнителем которого является компьютер. Такой способ является точной записью команд, не оставляющей места для произвольного толкования их исполнителем, что является важным отличием от словесной формы записи и блок-схем, где допускается определенный произвол при изображении команд.
Вне зависимости от выбранной формы записи элементарные шаги алгоритма объединяются в алгоритмические конструкции (структуры). Для записи любого сколь угодно сложного алгоритма достаточно трех основных алгоритмических конструкций: последовательных, ветвящихся, циклических.
Последовательная алгоритмическая конструкция (линейный алгоритм или следование) – алгоритм, в котором каждый шаг выполняется один раз, причем после каждого i-го шага выполняется (i+1)-й шаг, если i-й шаг – не конец алгоритма. Примером линейного алгоритма является задача о Волке, Козе и Капусте. Следование не имеет специальной формы записи, а выражается лишь в том, что входящие в него шаги записываются последовательно, а управление после выполнения очередного шага этой конструкции переходит к следующему. В текстовой форме записи – это просто последовательная запись пунктов, соответствующих шагам алгоритма. В блок-схемах – это последовательная запись блоков действия, соединенных стрелкой, направленной от предыдущего блока к следующему. На языке программирования данная конструкция выражается просто последовательной записью инструкций (операторов языка программирования).
Ветвящаяся алгоритмическая конструкция (ветвление) – алгоритм, в котором на каком-либо шаге последовательное выполнение алгоритма прерывается, и выбор следующего шага определяется входными данными алгоритма. Ветвление задает выполнение либо одной, либо другой группы операторов в зависимости от выполнения какого-либо условия (в зависимости от истинности или ложности соответствующего логического выражения). Затем исполнение алгоритма выходит на общее продолжение. Для конкретных входных данных ветвящаяся алгоритмическая конструкция сводится к последовательной алгоритмической конструкции. Ветвление бывает полным и неполным. В случае неполного ветвления при невыполнении условия никакие действия не выполняются. Примером ветвящейся алгоритмической конструкции является алгоритм решения квадратных уравнений, который так знаком учащимся с уроков алгебры. Ветвление в текстовой форме записи обычно выглядит так: если выполнено такое-то условие, то сделать то-то (или перейти на такой-то пункт алгоритма). В блок-схемах для реализации конструкции ветвление предназначен специальный блок условия, имеющий форму ромба, о чем уже говорилось выше. В языках программирования данная конструкция реализуется через условный оператор.
Циклическая алгоритмическая конструкция (цикл) – алгоритм, в котором некая, подряд идущая группа шагов алгоритма, выполняется несколько раз. Количество повторений либо фиксируется, либо зависит от входных данных алгоритма. Любой цикл содержит в себе элементы ветвящейся алгоритмической конструкции: после очередного выполнения группы шагов, проверяется некоторое условие, формируемое в процессе вычислений. В зависимости от значения этого условия цикл либо заканчивается, либо начинается выполнение следующего шага цикла. В качестве примера алгоритма с циклической конструкцией можно рассмотреть алгоритм Евклида нахождения общего делителя двух натуральных чисел. Циклическая конструкция в явном виде во многих формах записи алгоритмов, к сожалению, отсутствует. На практике она реализуется с помощью проверки условия и управляющей конструкции перехода. В текстовой форме записи переход осуществляется на тот же самый пункт или пункт с меньшим номером. В блок-схемах переход с помощью стрелок осуществляется на часть схемы, по которой выполнение алгоритма уже ранее проходило. В языках программирования циклическая конструкция реализуется через различные операторы цикла: «с предусловием», «с постусловием», «с параметром». На самом деле для реализации любой циклической конструкции хватило бы и одного вида оператора, например, «с предусловием», различные операторы циклов вводятся в тот или иной язык программирования только для удобства программистов.
Объектно-ориентированное программирование — это методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования. Основная идея ООП заключается в том, что следует создавать программные структуры, поведение и взаимодействие которых имитирует поведение и взаимодействие объектов реального мира (т.е. в программе как бы создаются виртуальные аналоги реальных сущностей).
Технология ООП (объектно-ориентированного программирования) основана на трех основополагающих концепциях:
- Инкапсуляция - объект представляет собой контейнер, содержащий в себе данные и программы по управлению данным объектом.
- Наследование - это процесс, посредством которого, один объект может приобретать свойства другого. Точнее, объект может наследовать свойства другого объекта и добавлять к ним черты, характерные только для него.
- Полиморфизм - это свойство, которое позволяет одно и тоже имя использовать для решения нескольких технически разных задач.
Для реализации объектно-ориентированного подхода в языки программирования вводятся новые понятия:
- Объекты – особые программные единицы, состоящие из данных и алгоритмов для обработки именно этих данных. Данные, входящие в состав объекта, называются полями (атрибутами, свойствами, членами). Алгоритмы, входящие в состав объекта, называются методами (сервисами, операциями, функциями-членами). К сожалению, единой устоявшейся терминологии в ООП нет, и в разных языках используются различные термины для обозначения одних и тех же понятий. Что касается Gambas, здесь употребляются свойства объекта и его методы.
Каждый объект должен иметь имя.
Имя - строка до 255 символов, начинающееся с буквы.
- Свойство объекта – это некоторый показатель, который характеризует объект и принимает для конкретного экземпляра некоторое числовое или текстовое значение.
Данное значение может быть определено при помощи стандартных типов данных (переменных):
Тип переменной | Занимаемая память | Диапазон значений |
Целочисленные переменные | ||
Byte | 1 байт | От 0 до 255 |
Short | 2 байта | От -32 768 до 32 768 |
Integer | 4 байта | От -2 147 483 648 до 2 147 483 647 |
Long | 8 байтов | От -9 223 372 036 854 775 808 до 9 223 372 036 854 775 808 |
Переменные с плавающей запятой | ||
Single | 4 байта | От -1,5*10-45 до 3,4*1038, 7-8 значащих цифр |
Float | 8 байтов | От -5,0*10-324 до 1,7*10308, 15-16 значащих цифр |
Строковые переменные | ||
String | 2 байта * на количество символов | 1 байт на символ в кодировке ASCII |
Логические переменные | ||
Boolean | 2 байта | True или False |
- Событие представляет собой действие, распознаваемое объектом (например, щелчок мыши или нажатие клавиши), для которого можно запрограммировать отклик. События возникают в результате действий пользователя или программы, или же они могут быть вызваны системой.
Событие | Действие |
Click | Щелчок мышкой |
MouseDown | Нажатие клавиши мыши |
MouseMove | Перемещение мыши |
- Классы – это объектные типы данных. Подобно тому, как целые числа принадлежат какому-нибудь целочисленному типу (например, integer или byte), объекты также принадлежат какому-либо объектному типу – классу. Все объекты одного класса имеют одинаковый набор свойств и одинаковый набор методов.
Полезность использования классов и объектов заключается в том, что проверка логического (смыслового) соответствия между данными и функциями для обработки данных становится тривиальной задачей и может быть в основном переложена на компилятор (компьютер) – теперь он сам может определить неверное использование данных.
2. Обучение основам алгоритмизации и программирования на основном этапе изучения базового курса информатики и ИКТ
Обучение основам алгоритмизации и объектно-ориентированного программирования, в соответствии с моей разработкой, строится с опорой на знания основных определений темы, сформированных у учащихся на пропедевтическом этапе изучения информатики и ИКТ.
Рассмотрим возможный вариант изучения данной темы. При изучении данной темы я ориентируюсь на примерную программу Н. Д. Угриновича и предложенное им тематическое планирование, ориентированное на СПО. Автор этого учебника предлагает компьютерный практикум для двух операционных систем Windows и Linux, что помогает сориентироваться учителю в среде свободного программного обеспечения.
Я выбрала для изучения данного раздела школьной программы среду программирования Gambas, который дополнен интегрированной средой разработки и работает на GNU/Linux и других UNIX–подобных операционных системах.
Предлагаю вашему вниманию следующее планирование по данной теме:
№ | Тема урока | Название практической работы | Количество часов |
1 | Алгоритм и его формальное исполнение. Блок-схемы алгоритмов. | | 1 |
2 | Выполнение алгоритмов компьютером. Объектно-ориентированные языки. | | 1 |
3 | Система объектно-ориентированного программирования «Gambas» | Проект «Мое первое приложение» | 1 |
4 | Объекты: свойства и методы | Проект «Работа с объектами» | 1 |
5 | Переменные: тип, имя, значение | Проект «Калькулятор» | 1 |
6 | Строковые выражения | Проект «Сложение строк» | 1 |
7 | Логические выражения | Проект «Логические выражения» | 1 |
8 | Алгоритмическая структура «Ветвление» | Проект «Корни квадратного уравнения» Проект «Сравнение кодов символов» | 2 |
9 | Алгоритмическая структура «Выбор» | Проект «Отметка» | 1 |
10 | Алгоритмическая структура «Цикл» | Проект «Коды символов» | 1 |
11 | Цикл с условием | Проект «Слово-перевертыш» | 1 |
12 | Графические возможности Gambas | Проект «Графический редактор» | 1 |
13 | Итоговая практическая работа | Проект «Анимация» | 2 |
итого | 15 |
Краткое описание уроков.
На первом уроке с учащимися проводится обобщение знаний учащихся о понятии алгоритма, так как с ним они начали знакомство еще в 6 классе при рассмотрении жизненных примеров. Все знания учеников актуализируются. Работа организуется таким образом, что учащиеся сами выявляют свойства алгоритма. Также на этом уроке следует рассмотреть способы задания алгоритмов, познакомить с элементами блок-схем и закрепить полученные знания через предложенные задания в конце параграфа.
На втором уроке дается небольшой экскурс в историю становления языков программирования, дается понятие о различии между системой программирования и языком программирования. Учащихся необходимо познакомить с основными языками объектно-ориентированного программирования.
Для следующих уроков я разработала лабораторные работы, которые сочетают в себе практическую и теоретическую части ( Практическая работа 1-3).
Перед началом работы учащимся раздается дидактический материал (см. Практическая работа 1-3), озвучивается задание и последовательность работы, указываются дополнительные задания на более высокую отметку, акцентируется внимание на конечном результате и оценке их работы. Во время работы учитель исполняет роль консультанта и оценивает работы учащихся по мере их выполнения.
«5» - ученик выполнил основное задание и правильно ответил на вопросы.
«4» - ученик выполнил основное задание.
«3» - ученик выполнил п.1.
Последний урок этой темы является зачетным. Учащиеся выполняют тестовые задания, а также зачетный проект.
ЗАКЛЮЧЕНИЕ
Представленная мною методическая разработка полностью соответствует Стандарту основного общего образования по информатике и информационным технологиям, так как она отражает все понятия, содержащиеся в нормативном документе, предполагает формирование умений, соответствующих требованиям к уровню подготовки учащихся.
В результате своего исследования я пришла к выводу, что применение технологии визуального проектировании в среде Gambas позволяет раскрыть все понятия программирования, сформировать умение создавать небольшие прикладные программы, раскрывающие дополнительные возможности квалифицированных пользователей ПК.
Учащиеся смогут увидеть большую практическую значимость программы Gambas, с помощью которой они сами смогут создать необходимое для себя приложение.
Данная среда программирования поддерживает принцип дидактической спирали как важнейшего фактора структуризации в методике обучения информатике: вначале происходит общее знакомство с понятиями алгоритмов, объектов, классов объектов с учетом имеющегося опыта обучаемых на пропедевтическом этапе, а в 9 классе - их последующее развитие и обогащение, в результате чего происходит научное обобщение понятия объектов, свойств, методов объектов и их классов в рамках объектно-ориентированного программирования.
Использование объектно-ориентированного программирования осуществляет практическую ориентированность курса информатики и ИКТ, направленного на решение простейших практических задач планирования деятельности, внося разнообразие в пользовательские возможности информационных технологий. При этом стоит напоминать учащимся, что компьютер может многократно усилить возможности человека, но не заменить его.
При изучении данной темы формируется алгоритмическое мышление, рассматриваемое как представление последовательности действий, наряду с образным и логическим мышлением определяет интеллектуальную мощь школьников, их творческий потенциал. Формируемые навыки планирования, привычка к точному описанию своих действий помогают школьникам разрабатывать алгоритмы решения задач самого разного уровня.
Сформированные умения учащихся по данной теме создавать проекты в объектно-ориентированной среде способствуют изучению темы "Формализация и моделирование" при выполнении практической работы "Построение модели экспертной системы для лабораторной работы по химии "Распознавание удобрений"на языке Gambas.
СПИСОК ЛИТЕРАТУРЫ
- Безрукова В.С. Всё о современном уроке в школе. - М.: Сентябрь, 2004.
- Босова Л.Л., Босова А.Ю. Уроки информатики в 5-7 классах. - М.: БИНОМ. Лаборатория знаний, 2008г.
- Волков В.Б.. Линукс Юниор: книга для учителя. – М.: ALT Linux; Издательство ДМК Пресс, 2010.
- Информатика. 9 класс: поурочные планы по учебнику Н.Д.Угриновича / авт.-сост. Л.В.Рябинина. - Волгоград: Учитель, 2007.
- Красиков И.В. Алгоритмы. Просто как дважды два. – М.: Эксмо, 2007.
- Кошелев М.В. Итоговые тесты по информатике. – М.: «Экзамен», 2006.
- Макарова Н.В. Программа по информатике и ИКТ (системно-информационная концепция). - Спб.: Питер, 2008.
- Практикум по информатике и информационным технологиям / под ред. Н.Д.Угриновича. - М.: БИНОМ, Лаборатория знаний, 2008.
- Программы для общеобразовательных учреждений: Информатика. 2-11 классы /сост. М.Н.Бородин. - М.: БИНОМ. Лаборатория знаний, 2008.
- Самылкина Н. Н. Построение тестовых заданий по информатике: Методическое пособие. – М.: Бином. Лаборатория знаний, 2006.
- Угринович Н.Д. Информатика и ИКТ. Базовый курс: учебник для 9 кл. – М.: БИНОМ. Лаборатория знаний, 2009.
- Угринович Н.Д. Методическое пособие для учителя «Преподавание курса «Информатика и ИКТ» в основной и старшей школе». - М.: БИНОМ; Лаборатория знаний, 2006.
- ссылка скрыта — Введение в объектно-ориентированное программирование.
- ссылка скрыта — план-конспекты уроков по элективному курсу «Технология объектно-ориентированного проектирования на языке Gambas». Лагунов А.Ю. - Архангельск, 2008.
- tes.com/SiliconValley/Code/4658 - сайт программы Block-diagram editor