Обучение решению задач из раздела "Основы алгоритмизации и программирования"

Обучение решению задач из раздела "Основы алгоритмизации и программирования"

34

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

Учреждение образования

«Брестский государственный университет имени А.С. Пушкина»

Математический факультет

Кафедра информатики и прикладной математики

Курсовая работа

Обучение решению задач из раздела «Основы алгоритмизации и программирования»

Брест 2010

Содержание

Введение

1. Выбор технологии программирования для учебного процесса

2. Возможности методического обеспечения структурного программирования в школе

2.1 Принципы структурной алгоритмизации

2.2 Выбор подхода к преподаванию структурного программирования

2.3 Базовый набор структур и построение алгоритмов на их основе

3. Особенности языка программирования Pascal ABC

3.2 Типы данных в языке Pascal ABC

3.3 Структурный тип данных массив

4. Разработка методического обеспечения для работы со структурным типом данных массив

3.1 Основные этапы разработки решения задачи

3.2 Реализация учебных задач по работе с массивами

3.3 Описание игровых моментов при решении задач

Заключение

Список использованных источников

Приложение

Введение

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

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

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

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

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

Объектом исследования является процесс обучения решению задач.

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

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

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

1. Выбор технологии программирования для учебного процесса

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

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

В настоящее время существуют три наиболее распространенных подхода к преподаванию программирования [10]:

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

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

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

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

Второй подход часто используется при преподавании основ программирования в младших классах средней школы. Разработаны и специализированные языки для этих целей. В их числе можно назвать Школьник, Рапира (СССР), SMR (Великобритания), LOGO (США). Они предельно упрощены и рассчитаны на возможности младшего школьника в области программирования. Такой подход хорош при углубленном изучении информатики в специализированных классах при начальном этапе обучения.

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

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

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

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

2. Возможности методического обеспечения структурного программирования в школе

2.1 Принципы структурной алгоритмизации

На сегодняшний день самой популярной методикой программирования является структурное программирование "сверху - вниз". Эта технология программирования представляет собой процесс пошагово разбиения алгоритма на все более мелкие части с целью получить такие элементы, для которых можно легко написать конкретные предписания [5].

Структурная алгоритмизация основывается на двух принципах:

1) последовательная детализация "сверху - вниз";

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

Из принципов вытекают требования структурного программирования:

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

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

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

Можно перечислить основные свойства и достоинства структурного программирования:

1) возможность преодоления барьера сложности программ;

2) возможность демонстрации правильности программ на различных этапах решения задачи;

3) наглядность программ;

4) простота модификации программ.

2.2 Выбор подхода к преподаванию структурного программирования

При решении задач с использованием структурного программирования можно выделить два основных направления [7, c. 78]:

1) "алгоритмический" подход заключается в следующем: схема решения задачи описывается на алгоритмическом языке (языке блок-схем алгоритмов) и затем переводится в программную реализацию на конкретном языке программирования;

2) "программный" подход - описание решения задачи сразу на конкретном языке программирования.

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

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

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

При изучении программирования с использованием алгоритмического подхода учащиеся сталкиваются с двумя проблемами [6, c. 86]:

1) описание и детализация решения задачи на алгоритмическом языке;

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

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

2.3 Базовый набор структур и построение алгоритмов на их основе

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

1) последовательная (линейная) структура;

2) ветвящаяся структура;

3) циклическая структура.

Наиболее простыми для понимания и использования являются линейные структуры. Линейным называется алгоритм (фрагмент алгоритма), в котором отдельные предписания выполняются в естественном порядке (в порядке записи) независимо от значений исходных данных и промежуточных результатов [3, c. 9].

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

1) начало, конец;

2) список данных;

3) ввод, вывод;

4) вычислительные операции, реализуемые оператором присваивания.

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

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

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

В циклических алгоритмах выполнение некоторых операторов (групп операторов) осуществляется многократно с одними и теми же или модифицированными данными.

Циклические алгоритмы часто называют циклами. В зависимости от способа организации числа повторений различают три типа циклов:

1) цикл с заданным условием продолжения работы (цикл-пока);

2) цикл с заданным условием окончания работы (цикл-до);

3) цикл с заданным условием повторений работы (цикл с параметром).

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

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

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

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

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

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

3. Особенности языка программирования Pascal ABC

3.1 Типы данных в языке Pascal ABC

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

Паскаль является языком жесткой типизации. Это означает, что тип переменной определяется при ее описании и не может быть изменен. Переменная может участвовать только в операциях, определенных ее типом. Такой подход способствует большей аккуратности и ответственности при составлении программы, делает их поддающимися автоматической (при компиляции) проверке на корректность и в конечном итоге приводит к более высокой надежности создаваемых программ [1, c. 237].

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

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

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

Процедурные типы в некотором отношении расширяют традиционное понятие подпрограмм, позволяя обращаться с подпрограммами как с переменными [3, c. 8].

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

Простые типы: порядковые, вещественные, дата-время.

Страницы: 1, 2



Реклама
В соцсетях
рефераты скачать рефераты скачать рефераты скачать рефераты скачать рефераты скачать рефераты скачать рефераты скачать