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

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

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

Хорошо известно, что представления об алгоритмических процессах и способах их описания формировались (хотя и неявно) в сознании учащихся при изучении школьных дисциплин еще до появления информатики и вычислительной техники. Основная роль среди школьных дисциплин при этом выпадала математике, в которой операционные и алгоритмические действия изначально составляли один из существенных элементов учебной деятельности. Действительно, умение формулировать, записывать, проверять математические алгоритмы, а также точно исполнять их всегда составляли важнейший компонент математической культуры школьника, хотя сам термин «алгоритм» мог при этом в школьных учебных программах и не употребляться. С распространением ЭВМ и программирования этот сектор математической грамотности стал приобретать самостоятельное значение, требовалось только дополнить его за счет наиболее общезначимых компонентов алгоритмизации. Таким образом новое понятие алгоритмической грамотности сразу же стало рассматриваться как одна из характеристик общей грамотности каждого современного человека и претендовать по этой причине на включение в разряд новых понятий теории и методики школьного обучения. Далее приведены перечень и описание компонентов алгоритмической грамотности, составленные на основе анализа общеобразовательных основ алгоритмизации [22]—[24][1].

  • 1. Понятие алгоритма и его свойства. Понятие алгоритма является центральным понятием алгоритмизации и соответственно основным компонентом алгоритмической грамотности. В обучении алгоритмизации нет необходимости (да и возможности) использовать строгое математическое уточнение этого понятия, достаточно его толкования на интуитивно-наглядном уровне. Существенное значение при изложении приобретают такие содержательные свойства алгоритмов, как понятность, массовость, детерминированность и результативность.
  • 2. Понятие языка описания алгоритмов. Задача описания алгоритма всегда предполагает наличие некоторого языка, на котором должно быть выполнено описание. По этой причине само понятие алгоритма находится в неразрывной связи с понятием языка как средства выражения (представления) алгоритма, ориентированного на конкретного исполнителя. Соблюдение требования строго следовать границам языковых возможностей в общении с тем или иным исполнителем служит в некотором роде первоосновой алгоритмизации. Понимание этого обстоятельства и точное соблюдение возможностей используемых языковых средств в каждой конкретной ориентации описания также составляет важный компонент алгоритмической грамотности.
  • 3. Уровень формализации описания. Понятие уровня формализации описания неразрывно связано с понятием языка. Если описание составлено для автомата, то используемый при этом язык подчиняется строгим ограничениям, которые обычно могут быть сведены в систему формальных правил, образующих синтаксис языка. Сам язык в подобных случаях становится, как говорят, формализованным. Однако на практике в процессе разработки алгоритмов, особенно при построении предварительных описаний, могут использоваться языковые средства, не обязательно строго ограниченные. Более того, такая ситуация возможна и не только в процессе предварительной разработки. Если, к примеру, алгоритм адресуется человеку, то и окончательный вариант алгоритмизации может иметь неформальное, «расплывчатое» представление. Немалое множество используемых на практике алгоритмов «работают» именно в неформализованном варианте. Валено лишь, чтобы алгоритм был понятен исполнителю, т. е. не использовал средств представления, выходящих за границы его возможностей.
  • 4. Принцип дискретности (пошаговости) описания. Построение алгоритма предполагает выделение четкой целенаправленной последовательности допустимых элементарных действий, приводящих к требуемому результату. Организованная совокупность этих действий образует определенную дискретную структуру описания алгоритма, сообщающую ему ясность и четкость. В различных языках такие отдельные этапы алгоритма представляются различными средствами. В словесных представлениях алгоритма (на естественном языке) — это отдельные предложения, указания, пункты, в языке схем — это отдельные блоки, в языке ЭВМ — отдельные команды или операторы.
  • 5. Принцип блочности. Возможности языка, используемого для построения алгоритмов, вынуждают избирать ту или иную степень детализации описаний. По сути дела, речь идет об умении расчленять сложную задачу на более простые компоненты. В этом случае задача разбивается на информационно замкнутые части (блоки), которым придается самостоятельное значение, и после составления первоначальной схемы, связывающей части задачи, проводится работа по детализации отдельных блоков. Каждый из этих блоков может быть детализирован по только что описанному принципу.

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

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

Выше перечислены компоненты алгоритмической грамотности, овладение которыми имеет основополагающее значение для формирования навыка составления алгоритмов — алгоритмизации и, следовательно, программирования для ЭВМ. Однако особенность компонентов, образующих алгоритмическую грамотность, в том, что они не имеют узкой ориентации исключительно на взаимодействие школьника с ЭВМ, а имеют независимое от программирования более широкое значение. Иными словами, алгоритмическая грамотность как совокупность наиболее общих «допрограммистских» представлений, умений и навыков школьника необходима не только для его успешной работы в системе «ученик — компьютер», но и в неформальных без- машинных системах «ученик — учитель», «ученик — ученик» и т. п., т. е. создает тот уровень операционной компетентности школьника, который, в частности, может обслуживать его деятельность в рамках учебных дисциплин за пределами «компьютерной» обстановки. Как отмечал академик Е. П. Велихов в связи с введением в школу предмета «Основы информатики и вычислительной техники», «информатика является частью общечеловеческой культуры, не сводящейся к использованию компьютеров, а в равной степени относящейся, скажем, к умению объяснить приезжему дорогу» [1].

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

в периодической методической печати все настойчивее ставится вопрос о введении в школе общеобразовательных курсов (разделов), посвященных изучению элементов кибернетики, ЭВМ и программирования, в его обсуждении наряду с методистами принимают участие известные математики [2], [11], [13], [16], [29], [30] и др. В то же время исследуются содержательно-методические аспекты межпредметного влияния алгоритмизации на традиционные школьные предметы, и прежде всего математику, через язык, алгоритмическую направленность содержания, усиление внимания к прикладной стороне знаний. Перспективная значимость этих работ в том, что они рассматривали именно те аспекты глубокого влияния идей и методов кибернетики и программирования на содержание и процесс обучения, недостаток которых в полной мере стал проявляться в условиях решительной экспансии компьютеризации школы, грянувшей десятилетие спустя.

  • [1] Надо заметить, что в ту пору (как и много лет спустя) это понятие поаналогии с породившим его понятием математической культуры использовалось под названием «алгоритмическая культура учащихся». О смысле ицелесообразности использования понятий «грамотность» и «культура» см.далее, гл. 2.
 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >