УДК 371.315.5

ТВОРЧЕСКОЕ ЗАДАНИЕ КАК ЭЛЕМЕНТ ПОДГОТОВКИ ПРОГРАММИСТА

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

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

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


CREATIVE TASKS AS AN ELEMENT TRAINING OF PROGRAMMERS

Julia Martyniuk1, Valentinа Vankova2, Sophia Danilenko3
1Tula State Pedagogical University. LN Tolstoy, Ph.D., assistant professor of computer science and information technologies
2Tula State Pedagogical University. LN Tolstoy, Candidate of Physical and Mathematical Sciences, Associate Professor, Department of computer science and information technology
3Tula State Pedagogical University. LN Tolstoy, Ph.D., assistant professor of computer science and information technologies

Abstract
The article deals with the relationship of the concepts of programming and creativity in the preparation of future programmers at the university. Presents examples of creative tasks in the study of various disciplines training.

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

Библиографическая ссылка на статью:
Мартынюк Ю.М., Ванькова В.С., Даниленко С.В. Творческое задание как элемент подготовки программиста // Современные научные исследования и инновации. 2016. № 10 [Электронный ресурс]. URL: http://web.snauka.ru/issues/2016/10/72319 (дата обращения: 04.06.2017).

Программирование и творчество. Определение соотношения и взаимосвязи этих понятий в научной среде до сих пор вызывает споры и порождает новые аргументы и точки зрения. Можно ли отождествлять эти понятия? Почему программирование обязательно должно базироваться на элементах творчества? Можно ли считать творчеством рутинную работу по реализации известных алгоритмов на каком-либо языке программирования? Совместимы ли вообще понятия алгоритма и творчества? Творчеством принято считать деятельность, порождающую нечто качественно новое, никогда ранее не существовавшее. Классические алгоритмы и их модификации известны давно. Не всегда программист реализует собственный уникальный алгоритм, свою разработку. Зачастую он использует готовые шаблоны, наработки, реализации для написания собственных программ. Значит, программирование – не всегда творчество? И даже, более того, чаще всего не творчество? Однако, сам процесс выбора, компоновки, понимания имеющихся в распоряжении программиста идей, алгоритмов, программ и других инструментов уже сам по себе есть творчество. Подобно композитору, создающему музыку из ограниченного набора инструментов – нот, программист творит из своих инструментов свой новый продукт – программу, которую до него никто не создал. С этим тезисом можно соглашаться, его можно оспаривать, но именно от него отталкиваются авторы, осуществляя процесс подготовки студентов-программистов направлений «Математическое обеспечение и администрирование информационных систем» и «Фундаментальная информатика и информационные технологии». Основным понятием в данном процессе выступает понятие творческой деятельности, под которой понимается форма деятельности человека или коллектива, создание качественно нового, никогда ранее не существовавшего. Стимулом к творческой деятельности служит проблемная ситуация, которую невозможно разрешить традиционным способом. Оригинальный продукт деятельности получается в результате формулирования нестандартной гипотезы, усмотрения нетрадиционных взаимосвязей элементов проблемной ситуации и т.п. Предпосылками творческой деятельности являются гибкость мышления, критичность, способность к сближению понятий, цельность восприятия. [1]

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

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

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

Приведём примеры творческих заданий и их выполнения студентами факультета математики, физики и информатики ТГПУ им. Л. Н. Толстого.

Дисциплина «Социальные и этические вопросы информационных технологий», тема «Компьютерное пиратство».

Предлагается выполнить следующие задания:

  1. Определите действия, которые относятся к нарушению авторских прав.
  2. Выделите три основных способа защиты авторских прав в Интернете. Какой из этих способов, по вашему мнению, является наиболее действенным?
  3. Докажите, можно или нельзя отождествлять два термина: «пиратство» и «незаконное копирование». С этой целью определите, какая точка зрения вам ближе и попытайтесь выдвинуть аргументы в защиту своей точки зрения. Сопоставьте ваши аргументы с аргументами ваших сторонников, образуйте команду и проведите импровизированный диспут с командой соперников. Фиксировать ваши аргументы и аргументы противников будет независимое и непредвзятое жюри, избранное по жребию.
  4. Оцените программное обеспечение, используемое в рамках обучения на вашем факультете, по степени нарушения авторских прав. С этой целью ознакомьтесь с содержимым соответствующей сетевой папки на сервере вуза (в папке должны быть собраны программные продукты, используемые в учебном процессе и в организации деятельности вуза).

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

Дисциплина «Архитектура вычислительных систем», тема «Основные узлы и устройства персонального компьютера».

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

  1. Определите диагональ экрана, измерив его ширину и высоту, и сравните полученное значение с заявленным. В случае расхождения опишите причину.
  2. Подсчитайте количество видеопамяти, необходимое для отображения рабочего стола. Определите фактическое количество видеопамяти. Проанализируйте полученный результат.
  3. Скорость вращения жесткого диска измеряется в оборотах в минуту. Переведите эти единицы в более привычные в быту – километры в час. Внутренний радиус пластин условно возьмите равным 2 см, внешний – 5 см. Средняя скорость вращения жесткого диска 7200 об/мин. Проанализируйте полученные результаты.

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

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

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

а) компьютер не включается, нет реакции на нажатие кнопки включения компьютера;

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

в) синий экран (“экран смерти”) при загрузке компьютера;

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

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

Дисциплина «Структуры и алгоритмы компьютерной обработки данных», тема «Внутренние и внешние сортировки».

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

…quick_sort(int…,…ri,…)

{

функция принимает три параметра: левую и правую границу отрезка обработки элементов и сам массив
int …=le; j=…;

t=…(x+(i+j)/…);

определим три локальных переменных:

1)   начало просмотра элементов слева

2)   начало просмотра элементов справа

3)   «средний» элемент отрезка массива, относительно которого будет выполнено разбиение этого отрезка на две части

{

выполняем следующую последовательность действий
…(*(x+i)…t) i …;

 

просматриваем элементы слева до тех пор, пока не будет найден элемент, не меньший «среднего»
while (… > …) j… ;

 

просматриваем элементы справа до тех пор, пока не будет найден элемент, не больший «среднего»
…(i<=…)

{

если найденные элементы находятся в нужных частях относительно «среднего» элемента
z=…;

*(…+i)=…(x+…);

…=z;

 

то меняем их местами
i…;

j–;

}

и переходим к следующим элементам слева и справа
} while (…);

 

продолжаем до тех пор, пока не будет выполнено разбиение отрезка массива на две части
if (…) quick_sort(…,j,x);

 

если в полученной левой части больше, чем один элемент, то следует повторить весь алгоритм для левой части
…(i<ri) quick_sort(…,ri,x);

}

если в полученной правой части больше, чем один элемент, то следует повторить весь алгоритм для правой части

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

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

Дисциплина «Языки программирования», тема «Сравнительный анализ языков программирования».

После рассмотрения и анализа программ на различных языках программирования высокого уровня императивной парадигмы студентам предлагается фрагмент программы на языке PAL (Paradox Application Language), входящем в СУБД Paradox 4.5 for DOS. Этот язык точно не известен студентам, т.к. активно использовался в конце 80-х – начале 90-х годов 20 века. Предлагается выполнить следующее задание:

  1. Ниже приведён фрагмент программы на незнакомом вам языке. Попытайтесь ответить на следующие вопросы:

а) В виде какой смысловой единицы программы реализован данный фрагмент?

б) Какие алгоритмические конструкции вы смогли узнать в этом фрагменте?

в) С какими объектами работает программа?

г) Какие события обрабатываются программой?

д) Что, по вашему мнению, может означать команда Do_It!?

е) Какими средствами организован диалог с пользователем?

ж) Что, по вашему мнению, может выполнять команда ClearAll?

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

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

  1. Разбейтесь на четыре подгруппы и в соответствии с выбранным языком (С++/С#, Бейсик, Паскаль, PHP) разработайте программное приложение «Генератор паролей», удовлетворяющее следующим требованиям:а) генерация паролей трёх уровней сложности;б) наличие удобного эргономичного интерфейса;в) возможность обмена данными с внешней средой;г) устойчивость к возможным ошибкам пользователя и т.п. (продолжите список требований сами).
  2. Разработайте рекламную компанию по презентации и продвижению своего программного продукта на рынке. В ходе презентации ответьте на вопросы конкурирующих фирм и заинтересованных лиц.
  3. Проведите оценку всех представленных программ в соответствии с предлагаемой методикой.

Рассмотренные примеры наглядно демонстрируют использование творческих заданий в процессе подготовки программиста. Научиться думать, находить аргументы, отстаивать свою позицию, создавать новое, оригинальное, своё – это трудно, но это и есть творчество! В условиях информационного общества программист должен логично мыслить, быстро действовать, хорошо ориентироваться в хитросплетениях трудных задач. И здесь роль творчества неоспорима. Человек наделён способностью к творчеству от рождения. Задача вузовской подготовки – развить эту способность для дальнейшей успешной профессиональной деятельности. Все дела – творчески, иначе – зачем?[2]


Библиографический список
  1. Мартынюк, Ю.М. Обучение школьников программированию через систему творческих задач/ Ю.М.Мартынюк, В.С.Ванькова, С.В.Даниленко/ Современные научные исследования и инновации. 2015. № 7-4(51). – С.76-80. URL: http://web.snauka.ru/issues/2015/07/54559.
  2. Ванькова, В.С. Задачи школьных олимпиад по информатике// Современные информационные технологии и ИТ-образование: Сборник избранных трудов VII Международной научно-практической конференции/ В.С.Ванькова, Ю.М.Мартынюк, С.В.Даниленко. – М: Фонд содействия развитию интернет-медиа, ИТ-образования, человеческого потенциала “Лига интернет-медиа”, 2015. – С. 343-347.


Все статьи автора «Мартынюк Юлия Михайловна»


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

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

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

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

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