УДК 37.026.9

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

Мартынюк Юлия Михайловна1, Ванькова Валентина Сергеевна2, Даниленко Софья Валериевна3
1Тульский государственный педагогический университет им. Л.Н.Толстого, кандидат педагогических наук, доцент кафедры информатики и информационных технологий
2Тульский государственный педагогический университет им. Л.Н.Толстого, кандидат физико-математических наук, доцент кафедры информатики и информационных технологий
3Тульский государственный педагогический университет им. Л.Н.Толстого, кандидат педагогических наук, доцент кафедры информатики и информационных технологий

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

Ключевые слова: олимпиадная задача, программирование, творческая задача


EDUCATION STUDENTS THROUGH CREATIVE PROGRAMMING TASKS

Martyniuk Julia Mikhailovna1, Vankova Valentina Sergeevna2, Danilenko Sophia Valerievna3
1Tula State Pedagogical University named after Lev Tolstoy, Ph.D., assistant professor of computer science and information technology
2Tula State Pedagogical University named after Lev Tolstoy, candidate of physical and mathematical sciences, associate professor of computer science and information technology
3Tula State Pedagogical University named after Lev Tolstoy, Ph.D., assistant professor of computer science and information technologies

Abstract
The article deals with the theoretical basis and practical methods of administration of creative problems in student learning programming. The authors consider expedient to discuss delicate issues of this process on the example of complex tasks, selected tasks of the All-Russian Olympiad on programming. Testing of this approach was carried out during the course of the regional youth mathematics school in Tula region.

Рубрика: 13.00.00 ПЕДАГОГИЧЕСКИЕ НАУКИ

Библиографическая ссылка на статью:
Мартынюк Ю.М., Ванькова В.С., Даниленко С.В. Обучение школьников программированию через систему творческих задач // Современные научные исследования и инновации. 2015. № 7 [Электронный ресурс]. URL: http://web.snauka.ru/issues/2015/07/54559 (дата обращения: 20.11.2016).

Данная статья подготовлена при поддержке гранта Правительства Тульской области в сфере науки и техники 2014 г. (Договор ДС/108)

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

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

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

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

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

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

Каждое творческое задание должно быть творчески выполнено. Признаками творчески выполненного задания являются:

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

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

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

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

Исходная задача «Три числа по возрастанию».

Даны три целых числа a, b, c. Расположить их в порядке возрастания.

Указания к решению.

Если задачу решать при помощи простых сравнений трех заданных чисел, то потребуется, проанализировать, шесть ситуаций вида

a<b<c, a<c<b, b<a<c, b<c<a, c<a<b, c<b<a

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

1)    сравниваются первые два числа (a и b) и в m1 записывается меньшее из них, а в m2 – большее;

2)    третье число (c) сравнивается с m2, и если оно оказалось больше него, то записывается в m3, иначе выполняется п.3;

3)    в m3 записывается m2, а третье число сравнивается с m1, и если оно оказалось больше него, то записывается в m2, иначе в m2 записывается m1, а в m1 – с.

Опишем приведенную схему в виде процедуры на языке Паскаль.

procedure tri_vozr(a,b,c:integer; var m:mass);

begin

if (a<b) then begin m[1]=a; m[2]=b; end

else begin m[1]=b; m[2]=a; end;

if (c>m[2]) then m[3]=c

else

begin m[3]=m[2];

if (c>m[1]) then m[2]=c

else begin

m[2]=m[1]; m[1]=c; end;

end;

end;

Функция формирует значения упорядоченного по возрастанию массива m, записывая в него три данных числа.

Данный алгоритм относится к разряду классических. На его идее основан метод внутренней сортировки простыми включениями.

Задача «Золотой песок» (Всероссийская олимпиада школьников по информатике, областной этап, 2005)

Сотрудники завода по производству золотого песка из воздуха решили поправить свое финансовое положение. Они пробрались на склад завода, где хранился золотой песок трёх видов. Один килограмм песка первого вида они смогли бы продать за А1 рублей, второго вида – за А2рублей, а третьего вида – за А3 рублей. Так получилось, что у сотрудников оказались с собой только три ёмкости: первая была рассчитана на В1 килограмм груза, вторая – на В2 килограмм, а третья – на В3 килограмм. Им надо было заполнить полностью все ёмкости таким образом, чтобы получить как можно больше денег за весь песок. При заполнении ёмкостей следует выполнять правила: А) нельзя смешивать песок разных видов, т.е. нельзя помещать в одну ёмкость песок разных видов; Б) заполнять ёмкости песком так, чтобы один вид песка занимал не более чем одну ёмкость.

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

Указания к решению.

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

Таким образом, решение данной задачи целиком основано на решении исходной задачи.

Задача «Максимальное произведение».

Дано N целых чисел, по модулю не превышающих 30 000.

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

Указания к решению.

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

  1. Реализация алгоритма требует хранения элементов последовательности в массиве, что связано с соответствующими затратами памяти.
  2. Трудоемкость алгоритма будет порядка N3 (три вложенных цикла по N итераций каждый). Это ограничит длину обрабатываемой последовательности.
  3. Элементы последовательности по модулю могут достигать 30 000, а их произведение может выйти за пределы 32-битного длинного целого типа.

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

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

I. все числа последовательности положительны;

II. среди чисел последовательности имеются отрицательные числа.

В первом случае максимальное произведение в последовательности могут давать три ее максимальных числа. Немного изменим исходную задачу на следующую: расположим три числа в порядке убывания. Назовем их первым максимальным, вторым максимальным и третьим максимальным. Тогда для решения задачи о максимальном произведении достаточно каждому очередному элементу последовательности, начиная с четвертого, отыскать место в этой упорядоченной тройке. В этом алгоритме массив заменяется именно последовательностью чисел, которые не нужно хранить все одновременно, а следует лишь считывать и запоминать те из них, которые обладают заданными свойствами. Таким образом, проблема № 1 устраняется, а трудоемкость алгоритма снижается до N. Проблемы № 3 не возникает, так как произведение не вычисляется.

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

В случае если все числа в последовательности отрицательные, ответом задачи будут просто три максимальных элемента массива, так как максимальным произведением (отрицательным!) будет произведение трех максимальных (отрицательных!) элементов.

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

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


Библиографический список
  1. Осмаловская, С.В. Роль творческих заданий в подготовке будущих учителей информатики / Вестник ТГПУ им. Л. Н. Толстого. Научный журнал. № 4. Естественные и физико-математические науки./ С.В.Осмаловская, Ю.М.Мартынюк. – Тула: Изд-во ТГПУ, 2007.
  2. Ванькова, В.С. Творческие задания в обучении информатике студентов педагогического вуза / В.С.Ванькова, Ю.М.Мартынюк. – Педагогическая информатика, 2005, № 1.
  3. Мартынюк Ю.М., Использование математического моделирования при обучении программированию / Мартынюк Ю.М., Ванькова В.С., Ваньков Б.П. Современная педагогика. 2014. № 11 (24). С. 41-44.


Все статьи автора «Ванькова Валентина Сергеевна»


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

Связь с автором (комментарии/рецензии к статье)

Оставить комментарий

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

Если Вы еще не зарегистрированы на сайте, то Вам необходимо зарегистрироваться:
  • Регистрация