скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыДипломная работа: Развитие умений программирования c использованием пакета Maple при обучении информатике на профильном уровне

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

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

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

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

3. Уровень формализации описания. Понятие уровня формализации описания неразрывно связано с понятием языка. Если описание составлено для автомата, то используемый при этом язык подчиняется строгим ограничениям, которые обычно могут быть сведены в систему формальных правил, образующих синтаксис языка. Сам язык в подобных случаях становится, как говорят, формализованным. Однако на практике в процессе разработки алгоритмов, особенно при построении предварительных описаний, могут использоваться языковые средства, не обязательно строго ограниченные. Более того, такая ситуация возможна и не только в процессе предварительной разработки. Если, к примеру, алгоритм адресуется человеку, то и окончательный вариант алгоритмизации может иметь неформальное, "расплывчатое" представление. Немалое множество используемых на практике алгоритмов "работают" именно в неформализованном варианте. Важно лишь, чтобы алгоритм был понятен исполнителю, т.е. не использовал средств представления, выходящих за границы его возможностей. Таким образом, применяемые на практике уровни формализации представления алгоритмов могут варьироваться в довольно широком диапазоне: от уровня полного отсутствия формализации до уровня формализации "в той или иной мере" и, наконец, до уровня "абсолютной" формализации. Умение работать с языками различных уровней формализации с учетом фактора понятности алгоритма для исполнителя также является существенным компонентом алгоритмической культуры.

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

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

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

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

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

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

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

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

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

9. Организация данных. Исходным материалом для алгоритма является информация или исходные данные, которые надлежит обработать. Составитель алгоритма обязан думать не только о том, как и в какой последовательности производить обработку, но и о том, где и как фиксировать промежуточные и окончательные результаты работы алгоритма. Мы перечислили компоненты алгоритмической культуры, овладение которыми имеет основополагающее значение для формирования навыка составления алгоритмов - алгоритмизации и, следовательно, программирования для ЭВМ. Однако особенность компонентов, образующих алгоритмическую культуру, в том, что они не имеют узкой ориентации исключительно на взаимодействие школьника с ЭВМ, а имеют, вообще говоря, независимое от программирования более широкое значение. Говоря иными словами, алгоритмическая культура школьника как совокупность наиболее общих "допрограммистских" представлений, умений и навыков обеспечивает некоторый начальный уровень грамотности школьника не только для его успешной работы в системе "ученик - компьютер", но и в неформальных безмашинных системах "ученик - учитель", "ученик - ученик" и т.п., т.е. создает то операционное наполнение, которое, в частности, обслуживает деятельность школьника в рамках учебных дисциплин за пределами "компьютерной" обстановки. Как отмечал академик Е. П. Велихов в связи с введением в школу предмета Основы информатики и вычислительной техники, "информатика является частью общечеловеческой культуры, не сводящейся к использованию компьютеров, а в равной степени относящейся, скажем, к умению объяснить приезжему дорогу. Исследования, направленные на выявление общеобразовательного материала по программированию для средней школы, связывались в конечном итоге с педагогической задачей формирования общеобразовательного предмета (раздела) по программированию для последующего включения в учебный план массовой школы. Такая попытка впервые была реализована к середине 1970-х гг.: в курсе алгебры VIII класса появился материал для беседы по теме "Вычисления и алгоритмы", а позднее 11-часовой раздел "Алгоритмы и элементы программирования".

Значение этого внезапного "прорыва" сведений о программировании для ЭВМ в регулярное содержание школьного образования трудно переоценить, хотя в целом эта акция оказалось явно неудачной и новый раздел вскоре был исключен из учебника алгебры. Причина в том, что вместо привлечения наработанных к тому времени умеренных учебно-методических средств наглядно обучения алгоритмизации в учебник была введена формальная англоязычная нотация языка Алгол-60, что, естественно, шокировало неподготовленного массового учителя математики. В результате - развивается идея использования для формирования фундаментальных компонентов алгоритмической культуры учащихся учебных (гипотетических) машин и языков алгоритмизации. В периодической методической? печати все настойчивее ставится вопрос о введении в школу общеобразовательных курсов (разделов), посвященных изучению элементов кибернетики, ЭВМ и программирования, в его обсуждении наряду с методистами принимают участие известные математики. В то же время исследуются содержательно-методические аспекты межпредметного влияния алгоритмизации на традиционные школьные предметы и, прежде всего, математику через язык, алгоритмическую направленность содержания, усиление внимания к прикладной стороне знаний и т.п. Перспективная значимость этих работ в том, что они рассматривали именно те аспекты глубокого влияния идей и методов программирования на содержание и процесс обучения, недостаток которых в полной мере стал проявляться в условиях решительной экспансии компьютеризации школы, грянувшей десятилетие спустя.

2.3 Понятие программной разработки библиотеки процедур в среде Maple

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

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

Создание новой библиотеки происходит следующим образом.

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

> restart;

 > mylib:=tab1e():

mylib := table([])

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

 > mylib[fl]:=proc(x: Anything) sin(x)+cos(x) end:

 > mylib[f2]:=proc(x:anything) sin(x)^2+cos(x)^2 end:

> mylib[f3]:=proc(x::anything) if x=0 then 1 else sin(x)/x fi end:

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


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

> with(mylib);

[f1,f2,f3]

Теперь надо записать эту библиотеку под своим именем на диск с помощью команды save:

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.