Объектно-ориентированная среда программирования "Object Pascal" в профильном курсе информатики

ОГЛАВЛЕНИЕ



ВВЕДЕНИЕ

ГЛАВА I. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ ПОДХОД В ПРОГРАММИРОВАНИИ

1.1 Основные понятия Object Pascal

1.2 Структура обработчика события на языке Object Pascal

1.3 Идентификаторы, зарезервированные слова и комментарии

1.4 Понятие синтаксиса

ГЛАВА II. МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ПО ОБУЧЕНИЮ УЧАЩИХСЯ ПРОГРАММИРОВАНИЮ НА ПРОФИЛЬНОМ КУРСЕ

1.1 Цели профильного обучения.

1.2 Элективные курсы по информатике в системе профильного обучения

1.3 Элективный курс "Программирование в среде Delphi"

1.4 Методические материалы по изучению программирования на языке Object Pascal в среде Delphi

ЗАКЛЮЧЕНИЕ

СПИСОК ЛИТЕРАТУРЫ




ВВЕДЕНИЕ



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

Последние годы характеризовались уменьшением количества часов на изучение алгоритмизации и программирования в старшей школе, что было объективно связано с бурным развитием ИТ. Чрезмерное увлечение «пользовательской компонентой» вытеснило изучение этих вопросов не только из некоторых профильных курсов, но даже из ряда учебников. При явном улучшении оснащения школ компьютерной техникой уровень общеобразовательной подготовки выпускников заметно снизился.

Похожие проблемы появились во многих странах. 

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

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

Такой подход позволяет:

выстраивать логически связанную последовательность изучения содержания курса; 

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

осуществлять подготовку учащихся к ЕГЭ.

Изучение основ алгоритмизации и программирования в базовом курсе информатики осуществляется на структурных языках программирования BASIC и PASCAL. Но с развитием новых информационных технологий, основанных на принципах объектно-ориентированного программирования, становится актуальным вопрос изучения объектно-ориентированного программирования в рамках профильных курсов. 

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

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

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

Таким образом, актуальность исследования определяется современными тенденциями в развитии информатики как науки, в частности, переходом к программированию на основе объектно-ориентированной методологии.

Объект исследования: процесс обучения учащихся информатике в общеобразовательной школе.

Предмет исследования: процесс обучения алгоритмизации и программированию на старшей ступени школы.

Цель исследования: разработка и теоретическое обоснование методики обучения алгоритмизации и программированию в профильном курсе информатики.

Гипотеза: методика обучения алгоритмизации и программированию, основанная на применении технологии визуального проектировании в среде Object Pascal, позволит повысить:

уровень усвоения основ объектно-ориентированного программировании; 

эффективность развития мыслительной деятельности учащихся.

Для достижения цели исследования и проверки гипотезы решались следующие задачи:

Проведение анализа состояния проблемы обучения алгоритмизации и ООП в школе и обоснование целесообразности изучения школьниками данного раздела с использованием визуального проектирования в профильном курсе информатики; 

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

Изучить научную, учебно-методическую и психолого-педагогическую литературу по проблеме исследования; 

Определить место алгоритмизации и программирования в профильной школе и роль элективных курсов в системе профильного обучения; 

Практическая значимость исследования заключается в определении содержания теоретического материала, направленного на формирование специальных знаний и умений при изучении темы "Алгоритмизация и программирование" в профильном курсе информатики.




ГЛАВА I. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ ПОДХОД В ПРОГРАММИРОВАНИИ



1.1 Основные понятия Object Pascal



Object Pascal создавался сотрудниками компании Apple Computer (некоторые из которых были участниками проекта Smalltalk) совместно с Никлаусом Виртом (Niklaus Wirth), создателем языка Pascal. Object Pascal известен с 1986 года и является первым объектно-ориентированным языком программирования, который был включен в Macintosh Programmer's Workshop (MPW), среду разработки для компьютеров Macintosh фирмы Apple. 

В этом языке нет методов класса, переменных класса, множественного наследования и метаклассов. Эти механизмы исключены специально, чтобы сделать язык простым для изучения начинающими "объектными" программистами. 

В табл. 1 приведены общие характеристики Object Pascal.



Таблица 1. Object Pascal. 

Абстракции

Переменные экземпляра Методы экземпляра Переменные класса Методы класса

Да Да Нет Нет

Инкапсуляция

Переменных Методов

Открытые Открытые

Модульность

Разновидности модулей

Модуль (unit)

Иерархии

Наследование Шаблоны Метаклассы

Одиночное Нет Нет

Типизация

Сильная типизация Полиморфизм

Да Да (одиночный)

Параллельность

Многозадачность

Нет

Сохраняемость

Долгоживущие объекты

Нет



В последние годы этот язык стал очень популярен благодаря системе Delphi фирмы Borland.

Знакомство учащихся 10 класса профильного курса с программированием лучше начинать с языка Object Pascal. Выбор именно этого языка обусловлен несколькими причинами:

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

	имеется очень эффективная система программирования на Object Pascal – система Delphi.

Язык Pascal был предложен в 1970 г. швейцарским профессором Никлаусом Виртом (Niklaus Wirth) как язык для обучения программированию как систематической дисциплине. Практически сразу большинство университетов перешли к преподаванию Pascal. Новый толчок к развитию язык получил 20 ноября 1983 г. с появлением его первой реализации для IBM PC, разработанной фирмой Borland – Turbo Pascal. Полная версия системы вмещалась тогда в 130 килобайт. Сам язык Turbo Pascal был несколько изменен по сравнению с виртовским Паскалем, но не утратил при этом своей простоты и наглядности. Затем до 1992 г. Turbo Pascal успешно развивался и совершенствовался и «дожил» до версии 7.0. Отметим главные достоинства языка Pascal:

		простота (в языке всего несколько операторов);

		строгий контроль за программистом (на начальном этапе программирования это очень полезно);

		гибкая система типов данных (практически любая структура может быть описана на Pascal);

		четкая идеология структурного программирования.

Главный недостаток:

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

В начале 90-х годов стало ясно, что будущее за визуальными системами вроде Windows. Borland решает кардинально изменить свой Turbo Pascal, чтобы он позволял легко создавать программы под Windows. Было решено придерживаться принципов так называемого «визуального» программирования: все элементы, из которых можно строить программу, должны быть показаны на экране, а программист с помощью мыши перетаскивает их в свою программу.

Оказалось, однако, что визуальное программирование очень трудно реализовать в рамках структурного подхода. Поэтому стали придерживаться другого подхода – объектно-ориентированного. В результате внесения элементов объектно-ориентированного программирования в язык Pascal получился Object Pascal. Кроме этого, программы сделали событийно-ориентированными, что достаточно естественно при работе в графической операционной системе, какой является Windows. Созданная визуальная система программирования получила название Delphi.



1.2 Структура обработчика события на языке Object Pascal



Программа на языке Object Pascal состоит из заголовка и секций описания. Обработчик события также состоит из заголовка и секций описания.

Структура обработчика события на Object Pascal:



<заголовок обработчика> <тело обработчика>



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

Пример заголовка обработчика события:

procedure TForral.ButtonlClick (sender:TObject);

Тело программы и обработчика события состоит из секций описания. Каждая секция описания начинается определенным зарезервированным словом. Возможны следующие секции описания:

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

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

	•Секция переменных. Начинается с зарезервированного слова var. Понятие переменной в программировании исключительно важно, поэтому этому понятию будет посвящен отдельный раздел. Пока же определим применив следующим образом: переменная – это ячейка памяти, имеющая имя и тип и способная хранить некоторое значение. Еще раз подчеркнем, что все переменные, используемые в программе, должны быть предварительно объявлены.

Пример секции переменных



var A:integer;

	

	
Секция пользовательских процедур и функций. Начинается с одного из зарезервированных слов procedure либо function. В языке Object Pascal имеется большое количество стандартных функций: для вычисления квадратного корня, модуля, целой части числа, синуса, косинуса и так далее. Функция - это отдельная часть программы, вычисляющая некоторое значение и возвращающая в программу соответствующий результат. Процедура напоминает функцию, но она только выполняет некоторые действия, не возвращая никакого результата. Мы пока не знакомы со стандартными процедурами и функциями. Заметим, что обработчик события является процедурой.

	Секция операторов. Начинается с зарезервированного слова begin и заканчивается зарезервированным словом end. Данная секция описывает действия, выполняемые программой либо обработчиком события.

	Обратим внимание, что секций с описаниями четыре, а секция, задающая действия, только одна. Это одна из особенностей языка Pascal: правильные описания важнее, чем действия, выполняемые программой.

Пример

	Обобщим теперь то, что мы знаем про Pascal, в следующем обработчике:

Обработчик события с секциями описания;



procedure TForral.ButtonlClick(Sender:TObject); const DaysInWeek = 7; var A:integer; begin

AEdit.Text:='Vasya' end;



	Это обработчик события «нажатие на кнопку с именем Buttonl». В нем описывается константа DaysInWeek и переменная А – При нажатии на кнопку Buttonl обработчик обращается к объекту AEdit, который является текстовым редактором, и устанавливает текст в нем в 'Vasya'.


1.3 Идентификаторы, зарезервированные слова и комментарии



В предыдущей главе мы давали имена константе и переменной. В языке Pascal существуют четкие правила относительно того, какие имена можно использовать, а какие нет.

В языке Pascal любое имя называется идентификатором. Это может быть имя константы, типа, переменной, объекта и так далее.

Перечислим правила, по которым создаются идентификаторы.

	Идентификатор должен состоять из латинских букв, цифр и символов подчеркивания.

	Идентификатор должен начинаться с буквы или символа подчеркивания.

	Идентификатор никогда не содержит пробелов.

	Идентификатор может иметь любую длину, но учитываются только первые 255 символов.

	В языке Pascal прописные и строчные буквы не различаются. Поэтому идентификаторы Vasya, VASYA и vasya одинаковы.

	Хорошим тоном считается начинать идентификатор с прописной буквы, а остальные буквы делать строчными. Если же идентификатор состоит из нескольких слов, то каждое слово начинается с прописной буквы. Например, идентификаторы DaysInWeek, А и AEdit соответствуют этой рекомендации.

Пример



procedure TForml.ButtonlClick(Sender:TObject); const First = 34;

Second = 2; var FirstVar:integer;

SecondVar:extended; begin

end;


В данном примере объявляются две константы и две переменные. Константы называются First и Second и равны соответственно 1 и 2. Переменные называются FirstVar и SecondVar и имеют типы integer и extended соответственно. Тип integer – это стандартный тип для хранения целых чисел, а тип extended - для вещественных.

Заметим, что если в секции делается несколько объявлений, то повторять начало секции (const, var и т. д.) второй раз не надо. Однако это не запрещено. Несколько переменных одинакового типа можно объявить через запятую.

	Количество и порядок секций описания в языке Object Pascal значения не имеют.

Заметим также, что каждое объявление заканчивается точкой с запятой. Где они ставятся, а где нет, мы тоже поясним позже.

Кроме идентификаторов, в языке Pascal важны также зарезервированные слова. Это слова, которым в языке придается самостоятельный смысл. Например, мы уже знаем зарезервированные слова const, type» var, procedure, function, begin, end. В среде Delphi зарезервированные слова выделяются жирным шрифтом.

Отметим, что идентификатор не может называться так же, как зарезервированное слово.

Мы не будем сейчас перечислять все зарезервированные слова, а будем их вводить по мере изучения языка.

Как мы уже говорили, в языке Pascal прописные и строчные буквы не различаются. Однако хорошим тоном считается зарезервированные слова писать строчными буквами.

Комментарий – это часть программы, игнорируемая компилятором.

Комментарии пишутся программистами для хранения информации о программе прямо внутри программы. Выделим 2 основных вида комментариев:

	Вводные комментарии. Хранят информацию о конкретном обработчике либо обо всей программе целиком: автор, дата создания, решаемая задача;

	Поясняющие комментарии. Это комментарии, поясняющие конкретные действия программы.

В Object Pascal есть 3 способа создания комментариев:

	комментарий заключается в фигурные скобки: {комментарий}

	комментарий заключается в скобки со звездочкой: (комментарий *)

	комментарий начинается с двух slash и длится до конца строки: // комментарий

Наиболее популярный способ – первый, использующийся с момента создания языка.

Писать комментарии очень желательно – это облегчает понимание программы.

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

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

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

Ячейка памяти, имеющая имя и тип, называется переменной.

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

Когда переменная объявлена, в ней изначально находится «мусор» – произвольное значение. Нужно быть осторожным, чтобы не использовать этот мусор в вычислениях, а вовремя изменить значение переменной на правильное.

Для изменения значения переменной используется оператор присваивания.



1.4 Понятие синтаксиса



В каждом естественном языке, таком как русский, английский, немецкий и т. д., у каждой конструкции есть синтаксис – это правила построения этой конструкции языка. Например, предложение в русском языке строится по определенным правилам. Эти правила достаточно сложны, и вы изучаете их в течение многих лет на уроках русского языка.

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

Основной конструкцией Object Pascal, так же как и многих других языков программирования, является оператор. Оператор – это аналог предложения в естественном языке. Он выражает некоторое действие, которое необходимо выполнить. Операторы разделяются точкой с запятой.

У каждого оператора Object Pascal есть строго определенный синтаксис- правила построения. При описании оператора мы будем обязательно приводить его синтаксис. При описании синтаксиса мы будем использовать следующие условные обозначения:

< > – то, что указано в угловых скобках, должно здесь обязательно находиться;

[ ] – то, что указано в квадратных скобках, может здесь находиться, но не обязательно находится.

Синтаксис оператора присваивания:

Итак, перейдем к синтаксису оператора присваивания



<переменная>:=<выражение>;



Оператор присваивания работает следующим образом: сначала вычисляется выражение в правой части, а затем результат вычисления кладется в переменную, стоящую в левой части.

	При присваивании производится жесткий контроль: переменная

	и выражение должны быть обязательно одного типа!

Примеры присваивания

А: =10; – В данном случае в переменную А кладется значение10.

В:=А; – В данном случае в переменную В кладется то же самое значение, что и было в переменной А, т. е. 10.

Это происходит потому, что при присваивании сначала вычисляется правая часть, а затем результат кладется в переменную, что стоит слева. Правая часть в данном примере очевидно равна 10, это значение и кладется в переменную, стоящую слева, т. е. в переменную В.

В: =А+1; – В данном случае в переменную В кладется 11, а значение А не изменяется.

Это происходит по той же причине: вычисляется выражение справа, оно равно 11, и это значение кладется в переменную, стоящую слева, т. е. в переменную В.

Значение переменной, участвующей в вычислении выражения, не меняется. Значение переменной может измениться, только если она находится в левой части оператора присваивания.

А:=А+1; – В данном случае А становится равно 11.

Это происходит в точности по той же причине, что и в предыдущем примере.

Целые и вещественные типы

Приступим теперь к изучению типов, которые есть в языке Object Pascal. Начнем с типов, используемых для хранения чисел.

Числовые типы данных в языке Object Pascal делятся на 2 группы: целые и вещественные. Целые типы – это типы для переменных, хранящих целые числа, а вещественные - это типы для переменных, хранящих нецелые числа. Все типы языка Object Pascal делятся на фундаментальные и адаптивные. Фундаментальные типы не изменятся в будущих версиях Delphi. Адаптивные типы могут в будущих версиях Delphi измениться. Целых типов в Object Pascal много: их 9. Различаются они количеством памяти, которую занимают, и диапазоном значений. Мы рассмотрим подробнее тип integer.

Тип integer занимает в памяти 4 байта, диапазон его значений примерно от -2*109 до 2*109. Тип является адаптивным. Это связано с тем, что с изменением разрядности процессора (размера чисел, которые процессор способен обработать за одну операцию) меняется и размер типа integer, чтобы наиболее эффективно использовать процессор.

Пример

В данном примере внутри обработчика событий объявлены две переменные А и В, имеющие тип integer.



procedure TForml.ButtonlClick (Sender:TObject);

var A,B:integer; begin

end;


Все переменные, объявляемые внутри обработчика, существуют только пока этот обработчик работает, а потом уничтожаются. Такие переменные будем называть «локальными».

Приведем операции, которые можно выполнять с переменными целого типа.

+ – Сложение.

- – Вычитание либо изменение знака числа (например:-5).

* – Умножение.

/ – Деление. Заметим, что результат деления двух целых чисел имеет вещественный тип, даже если получается целое число.

Div – Целая часть от деления двух чисел (дробная часть просто отбрасывается).

Mod – Остаток от деления двух целых чисел (например, остаток от деления 26 на 7 равен 5).

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

Примеры

	

	А:=10;{А равно 10}

	В:=А*2;{В равно 20}

	А:=В+А*2;{А равно 40}

	А:=А+1;{А равно 41}

	В:=(А+В) div4; {3 равно 15}

	А:=А mod 4;{А равно 1}

	

Переменные вещественных типов предназначены для хранения нецелых чисел. В языке Object Pascal имеются несколько вещественных типов, мы рассмотрим подробнее тип extended.

Переменная типа extended занимает в памяти 10 байтов. Диапазон значений данного типа .6 * 10 4961.. 1.1 * 104932, что покрывает все разумные пределы для чисел. Точность типа 19 – 20 цифр. Тип является фундаментальным.

Следует иметь в виду, что значения в переменных вещественного типа хранятся приближенно. Это значит, что переменная вещественного типа хранит ограниченное количество значащих цифр (для типа extended 19 – 20 цифр на целую и дробную части в сумме), что может приводить к ошибкам округления.

При записи вещественных чисел в языке Pascal целая часть отделяется от дробной с помощью точки.

Рассмотрим теперь некоторое вещественное число, скажем, 2.37 * 1017. Это число состоит из двух частей: мантиссы, равной в данном случае 2.37, и порядка, равного 17. Поэтому при задании вещественного числа в языке Pascal мы вынуждены отдельно задавать мантиссу, а отдельно порядок.

Такой способ задания вещественного числа называется экспоненциальным форматом

Формат задания вещественного числа следующий:



<мантисса>Е<порядок>



Пример В:=2.37Е17;

Очевидно, что в данном случае В – переменная одного из вещественных типов.

Над вещественными типами определены 4 операции: сложение, вычитание, умножение и деление. Операции div и mod над вещественными типами запрещены.

Пример



procedure TForral.ButtonlClick {Sender:TObject);

var C,D:extended;

begin

C:=10.28;

D:=3.14E-17 + С / 1Е-15 {экспоненциальный формат} end;



Если есть выбор: пользоваться целым типом или вещественным, то надо стараться пользоваться целым. Целые переменные быстрее обрабатываются (так как не надо обрабатывать мантиссу вместе с порядком), представляются в памяти точно, а не приближенно, и занимают меньше места в памяти. Например, для хранения денежных сумм применяется не вещественный тип, а целый, а суммы умножаются на 10 000, чтобы обходиться только целыми числами.

Как мы уже говорили, операция присваивания требует, чтобы тип переменной в левой части совпадал с типом выражения в правой части. Однако из данного правила существует исключение:

	•Вещественной переменной разрешено присваивать значения целого типа, например:



var А:integer;

В:extended;

В:=А;



	•Целой переменной нельзя присваивать значение вещест венного типа:



var A:integer; В:extended;

	А: =В – нельзя!

	А: =А/10– тоже нельзя, так как в правой части – выражение вещественного типа А:=100/10 – и даже вот так нельзя

	А:=А div 10 – можно только так


Для выполнения данного присваивания надо воспользоваться одной из функций Round или Trunc.

Выводы. Использование ЭОР «Программирование в среде Object Pascal» и лабораторного практикума в профильном обучении информатике на основе технологии визуального проектирования способствует совершенствованию процесса обучения и повышению творческой и познавательной активности учащихся.




ГЛАВА II. МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ПО ОБУЧЕНИЮ УЧАЩИХСЯ ПРОГРАММИРОВАНИЮ НА ПРОФИЛЬНОМ КУРСЕ



2.1 Цели профильного обучения



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

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

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

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

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

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

Переход к профильному обучению преследует следующие основные цели: 

обеспечить углубленное изучение отдельных предметов программы полного общего образования; 

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

способствовать установлению равного доступа к полноценному образованию разным категориям обучающихся в соответствии с их способностями, индивидуальными склонностями и потребностями; 

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



2.2 Элективные курсы по информатике в системе профильного обучения



В информационном письме Департамента общего и дошкольного образования об элективных курсах в системе профильного обучения на старшей ступени общего образования № 14-51-277/13 от 13.11.2003 отмечается: "Элективные курсы (курсы по выбору) играют важную роль в системе профильного обучения на старшей ступени школы. В отличии от факультативных курсов, существующих раньше в школе, элективные курсы – обязательны для старшеклассников…

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

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

Официально профильное образование было введено в образовательных учреждениях России с сентября 2006 г. 

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

"Основы информационного моделирования" Захарова Т.Б. "Компьютерное математическое моделирование" Шестаков А.П., Хеннер Е.К. (136 час.) 

"Программирование на языке Паскаль" Семакин И.Г., Шестаков А.П. (68 час.) 

"Основы объектно-ориентированного программирования" А.Б.Кузнецов (34 час.) 

"Основы программирования на Delphi" И.В.Половина (34 час.) "Язык программирования Пролог" В.Каймин, Ю.Завальский (36 час.) 

"Логика и язык программирования Пролог" В.Каймин, Ю.Завальский (136 час.) 

"Язык программирования Пролог" М.А.Южаков (68 час.) 

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



2.3 Элективный курс "Программирование в среде Delphi"



ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

Одной из трех основных целей изучения информатики в школе является развитие мышления школьников.

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

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

Данный курс предусматривает программирование в среде Delphi по следующим соображениям:

Delphi можно изучать и использовать на нескольких уровнях:

1)Работа с визуальными объектами практически без программирования.

2)Работа в консольном приложении с программой (без создания визуальной формы).

Эти две возможности работы в среде Delphi позволяют “развести” овладение алгоритмом написания программ и алгоритмом создания визуальных форм (что отсутствует в среде Visual Basic).

Здесь представлен годовой курс (по 1 часу в неделю) по изучению программирования на языке ObjectPascal фактически с “нуля” в 7 – 8 математических классах.

В начале рассматривается программирование на языке ObjectPascal (в консольном приложении среды Delphi), и лишь после изучения основных приемов программирования (циклы, массивы, сортировка, многомерные массивы, процедуры и функции) рассматривается работа с визуальными объектами. За основу был принят полугодовой курс, предложенный на сайте www.olympiads.ru для 8 математического класса. Была частично изменена структура курса (убрана тема “графы” и добавлено визуальное программирование в среде Delphi). Задачи использовались как с данного сайта, так и из других источников – книг и семинарских занятиях по информатике в МГОУ. Курс завершается разработкой игры.

Программное обеспечение: свободно распространяемая версия объектно-ориентированной среды программирования Delphi.

Методы обучения: метод проектов, лекции, проблемный метод, частично-поисковый метод. Контроль знаний и умений: текущий контроль уровня усвоения материала осуществляется по результатам выполнения учащимися практических заданий. Итоговый контроль реализуется в форме защиты проекта (разработка игры).

Программа элективного курса

Классы: 7-8.

Количество учебных часов: 34.

Образовательная область: информатика.

Профиль: естественно-математический.

Цели курса: 

развитие интеллектуального, образного и алгоритмического мышления школьников; 

формирование практических навыков работы с интегрированной средой программирования Delphi; 

формирование умения планировать свою деятельность, критически оценивать результаты своей работы, готовности исправлять свои ошибки, настойчивости и целенаправленности в действиях; 

подготовка учащихся к олимпиаде по информатике. 



Тематическое планирование курса

Теория

Форма занятий

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

Лекция

2. Общий синтаксис программы на языке Object Pascal. Константы и переменные.

Лекция

3. Типы данных и операторы в Object Pascal.

Семинар

4. Условный оператор If.. Датчик случайных чисел.

Семинар

5. Вложенный оператор If-Then-Else. Задача о Гарри Потере.

Практика

6. Оператор case. Программа “меню”.

Семинар

7. Циклы. Цикл for.

Лекция

8. Цикл while.

Практика

9. НОД и НОК чисел. Алгоритм Евклида.

Практика

10. Цикл repeat. Вложенные циклы. 

Практика

11. Массивы.

Лекция

12. Поиск в массиве.

Практика

13. Подсчет элементов в массиве.

Практика

14. Слияние и разбивка массивов.

Семинар

15. Решение олимпиадных задач. Задача Иосифа Флавия.

Практика

16. Игра “Программист”

Практика

Итоговая работа за полугодие

17. Сортировка массивов.

Семинар

18. Определение сложности алгоритма сортировки.

Практика

19. Многомерные массивы.

Лекция

20. Формирование элементов матриц.

Практика

21. Задачи с двумерными массивами.

Практика

22.Подпрограммы. Процедуры.

Лекция

23.Функции. Рекурсия.

Семинар

24. “Тур коня”.

Практика

25. “Тур коня”

Практика

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

Лекция

27. Система объектно-ориентированного программирования Delphi.

Семинар

28. Классы Delphi

Лекция

29. Компоненты Delphi

Лекция

30. Проект “Калькулятор”.

Практика

31. Игра Баше.

Практика

32. Игра Баше.

Практика

33. “Честная” игра Баше

Практика

Итоговая работа за год

34. Решение олимпиадных задач

Практика


2.4 Методические материалы по изучению программирования на языке Object Pascal в среде Delphi



Урок 1.

Данный курс посвящен изучению программирования на языке Object Pascal в среде Delphi.

Напомню, что назначение программирования – разработка программ управления компьютером с целью решения различных информационных задач. Все программы составляются на каком-либо языке программирования. 

Язык программирования – это фиксированная система обозначений для описания алгоритмов и структур данных.

Вы уже сталкивались с программированием – писали программы на языке Qbasic. В рамках этого курса мы будем использовать язык Object Pascal и среду Delphi. Чем же отличаются друг от друга языки программирования?

Существуют различные парадигмы (методологии) программирования: 

«Спагетти». Выполнение шагов программы один за другим. Основное использование получает оператор go to. 

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

Модульное программирование. Программа разбивается на отдельные части – модули, которые могут программироваться независимо. Конечная программа – объединение разработанных модулей (используются процедуры и функции). 

Объектно-ориентированное программирование. Это целая философия, совершенно особый подход к проектированию приложений. В основе ООП лежит такое понятие, как класс. Любой класс имеет поля, методы и свойства. 

Сейчас мы не будем останавливаться на этом. Мы поговорим об этом позднее, когда перейдем к программированию в среде Delphi.

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

Знакомство с языком OPascal мы начнем с написания первой программы. Вы должны ощутить уверенность в себе, понять, что раз вы смогли написать одну программу, сможете написать и другие.

Итак. Нашей первой программой будет программа – приветствие. Она выведет на экран текст и завершит свою работу. 

Открываем: Delphi – File – New – Other – Consol Application.

У вас открылось окошко, в котором уже написаны ключевые слова. Ваша задача – написать действия, которые должна выполнить эта программа. Назовем ее First.



Program First;

Uses SysUtils;

Begin

Write (‘Hello, ’);

Writeln (‘friends!’)

End.



Запуск программы – F9.

Успели что прочитать? Но программа была выполнена! Чтобы была возможность прочитать надпись на экране, надо в программу добавить одну строчку:



Begin

Write (‘Hello, ’);

Writeln (‘friends!’);

Readln 

End.



На этом наш первый урок закончен. Надеюсь, вам понравилось!

Урок 2.

Программа работает с величинами. При использовании в программе много раз величины одного и того же значения (числа или строки), лучше употреблять константы.

Константы – имена для фиксированных значений, ссылка на которые используется в программах.

Константы позволяют обращаться к значениям по имени, а не использовать числа. 

Пример описания констант: Const Pi = 3.14;

Значение константы – число или результат вычислений с использованием других констант.

Имя константы может состоять из латинских букв, цифр и знаков подчеркиваний, но не может начинаться с цифры. Регистр значения не имеет, то есть имена X_time и x_TimE считаются одинаковыми.

Переменные – именованный объект данных заранее определенного типа.

Переменная имеет три важные характеристики: 

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

Тип – определяет, сколько памяти отводится для переменной, какие значении она может принимать и какие операции можно с ней производить. 

Значение – любая информация, которая в настоящий момент хранится в занимаемой переменной области памяти. 

Объявление переменных:


Var a, b, c: Тип1;

Sum1: Тип2;



Переменная величина получает значение в результате присваивания. Например: a := 1.

Основные свойства присваивания: 

Значение переменной неопределенно, если ей не присвоено никакого значения. 

Новое значение, присеваемое переменной, заменяет ее старое значение. 

Общий синтаксис программы на языке Opascal выглядит следующим образом:



Program <Имя_программы>;

Uses <Модули>;

Type <список констант>;

Const <типы данных, определяемых пользователем>;

Var <список всех используемых переменных>;

<список функций и процедур>;

begin

<операторы>

end.



Важно: точку с запятой (;) можно не ставить только перед словом end, в остальных случаях отсутствие этого знака считается ошибкой. 

Теперь попробуем написать программу, которая меняет местами значения переменных.




Алгоритм:

 

a

b

Было

1

2

стало

2

1



1) Нужно взять дополнительную переменную, поместить туда временно одно из значений:



 

оператор

a

b

c

a ® c

c := a

1

2

1

b ® a

a := b

2

2

1

c ® b

b := c

2

1

1



2) Без использования дополнительной переменной:



 

a

b

 

1

2

a := a + b

3

2

b := a – b

3

1

a := a – b 

2

1



Program Obmen;

Uses SysUtils;

Var a, b: Integer;

Begin 

Write (‘a = ’);

Readln (a);

Write (‘b = ’);

Readln (b);

a := a + b;

b := a – b;

a := a – b;

Writeln (‘a = ’, a, ‘; b = ‘, b);

Readln

End.



Домашнее задание: Написать программу обмена значений трех переменных (А  В  С  А).

Выводы: 

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

Тенденция понижения роли алгоритмизации и программирования в современном курсе информатики является основной проблемой. 




ЗАКЛЮЧЕНИЕ



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

Многолетняя практика убедительно показала, что, как минимум, начиная с позднего подросткового возраста, примерно с 15 лет, в системе образования должны быть созданы условия для реализации обучающимися своих интересов, способностей и дальнейших (послешкольных) жизненных планов. Социологические исследования доказывают, что большинство старшеклассников (более 70%) отдают предпочтение тому, чтобы знать основы главных предметов, а углубленно изучать только те, которые выбираются, чтобы в них специализироваться. Иначе говоря, профилизация обучения в старших классах соответствует структуре образовательных и жизненных установок большинства старшеклассников. При этом традиционную позицию как можно глубже и полнее знать все изучаемые в школе предметы (химию, физику, литературу, историю и т.д.) поддерживают около четверти старшеклассников.

К 15 – 16 годам у большинства учащихся складывается ориентация на сферу будущей профессиональной деятельности. Так, по данным социологических опросов, проведенных в 2002 году Центром Социологических исследований Минобразования России, профессиональное самоопределение тех, кто в дальнейшем намерен учиться в ПТУ или техникуме (колледже), начинается уже в 8-м классе и достигает своего пика в 9-м, а профессиональное самоопределение тех, кто намерен продолжить учебу в вузе, в основном складывается в 9-м классе. При этом примерно 70 – 75% учащихся в конце 9-го класса уже определились в выборе возможной сферы профессиональной деятельности. Большинство профессий в данное время связаны с компьютерами и программированием, поэтому широко распространяются элективные курсы по информационным технологиям, в том числе и по программированию, о которой шла речь в нашей работе. Выбор языка программирования Object Pascal обусловлено рядом их преимуществ:

Object Pascal позволяет справляться со сложностью. Первое важное преимущество объектно-ориентированных систем вытекает из природы их связи с реальным миром. 

Object Pascal предназначен для изменений. Второе преимущество объектно-ориентированных систем обусловлено способом взаимосвязи объектов через сообщения. 

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

Object Pascal легко поддерживается. Четвертое преимущество заключается в способе комплектования объектно-ориентированных программных модулей. 

Вследствие этих преимуществ, а также еще ряда причин, ООП является в настоящее время самым перспективным, распространенным и эффективным направлением в программировании.




СПИСОК ЛИТЕРАТУРЫ



	Ваграменко Я.А., Зобов Б.И., Осипов А.П. "Педагогический виртуальный университет: основные задачи, принципы построения, структура информационных ресурсов. // "Педагогическая информатика", 1, 2002г. 

	Гусева О.Л., Гусев Е.В., Миронова Н.Н. Одна задача - два решения. - М.: "Информатика и образование" - 2000. 

	Захарова Т.Б. Профильная дифференциация обучения информатике в старшей ступени школы.-М.: МЦНТИ, 1997 

	Информатика. Систематический курс. 10 класс / Бешенков С.А, Ракитина Е.А. .- М.: БИНОМ. Лаборатория знаний, 2004. 

	Кузнецов А.А. Смекалкин Д. Проверка и оценка знаний и умений школьников по основам ИВТ. // Информатика и образование. 2003.

	Лапчик М.П. и др. Методика преподавания информатики: Учебное пособие для студентов педагогических вузов/М.П.Лапчик, И.Г.Семакин, Е.К.Хеннер; под общей редакцией М.П.Лапчика. - М.: Издательский центр "Академия", 2001.- 624 с. 

	Макарова Н.В. Информатика (объектно-информационная концепция): Программа для учащихся с 6-го или 7-го по 11-й класс. - СПб.:Питер, 1999. 

	Макарова Н.В. Методология обучения новым информационным технологиям. - СПб.: Изд-во СПбУЭФ, 1992. 

	Методическое письмо "Об использовании результатов единого государственного экзамена 2007 года в преподавании информатики в средней школе" 

	Примерная программа основного общего образования по информатике и информационным технологиям ИнФО, N4, 2004. 

	Примерная программа среднего (полного) общего образования по информатике и информационным технологиям. Базовый уровень ИнФО, N4, 2004. 

	Примерная программа среднего (полного) общего образования по информатике и информационным технологиям. Профильный уровень ИнФО, N4, 2004. 

	Семакин И.Г., Хеннер Е.К. Информатика. 10 класс.-М.: БИНОМ. Лаборатория знаний, 2005. 

	Семакин И.Г., Хеннер Е.К. Информатика. 11 класс.-М.: БИНОМ. Лаборатория знаний, 2005. 

	Соловьева Е.Г. О межпредметных связях математики и информатики. // "Педагогическая информатика", 1, 1997 г. 

	Стандарт основного общего образования по информатике и информационным технологиям ИнФО, N4, 2004. 

	Стандарт среднего (полного) общего образования по информатике и информационным технологиям. Базовый уровень. ИнФО, N4, 2004. 

	Стандарт среднего (полного) общего образования по информатике и ИКТ. Профильный уровень. ИнФО, N4, 2004. 

	Угринович Н.Д. и др. Практикум по информатике и информационным технологиям. Учебное пособие. - М.: БИНОМ, 2003-2006. 

	Угринович Н.Д. Информатика и ИКТ Учебник для 10 класса. Профильный уровень - М.: БИНОМ, 2007. 

	Угринович Н.Д. Информатика и информационные технологии. 10-11. Учебник для 10-11 классов. - М.: БИНОМ, 2006. 

	Угринович Н.Д. Компьютерный практикум на CD-ROM. - М.: БИНОМ, 2004-2005. 

	Угринович Н.Д. Преподавание курса "Информатика и ИКТ" в основной и старшей школе: Методическое пособие для учителей. - М.: БИНОМ, 2004-2006. 

	Унт И. Э. Индивидуализация и дифференциация обучения. - М., 1990. 

	Федеральный базисный учебный план для образовательных учреждений Российской Федерации, реализующих программы общего образования (утвержден приказом 1312 Министерства образования РФ от 09.03.2004).