ОТ ИСПОЛНИТЕЛЯ К ОПТИМИЗАЦИИ СТРУКТУР ДАННЫХ И СРЕДЕ ПРОГРАММИРОВАНИЯ
Горбунова И. В.
МОУ «Гимназия №42» г. Барнаул
e-mail: *****@***ru
Аннотация:
некоторые решения проблемы перехода от
«исполнителя» к среде программирования
в школьном курсе информатики
Вопрос о том, какой язык программирования рассматривать как обучающий, это не только вопрос представления. Наиболее важным, но в то же время и наиболее незаметным свойством любого инструмента является его влияние на формирование привычек людей, выбирающих его для решения каких-либо задач. В случае с выбором первоначального языка программирования его влияние, независимо от нашего желания, сказывается не только на формировании профессиональных навыков, но и на формировании так называемого «стиля программирования», а так же на способе мышления. Нетрудно догадаться, какое значение имеет выбор языка программирования для школьников начинающих изучение основ алгоритмизации и программирования.
Выбор современных инструментальных средств очень богат. Споры о том, возможности какого языка больше, структура какого совершеннее, не прекращаются ни на минуту. Не нужно забывать так же о темпах развития информационного общества. В свет регулярно выходят как новые версии существующих сред программирования, так и совершенно новое инструментальное ПО. Школа же должна давать классическое образование, основы знаний, благодаря которым человек в будущем сможет освоить любую профессию. Очевидно, что основная задача современной школы – это подготовка к профессиональному программированию и изучению профессиональных инструментальных систем, а не освоение всех существующих языков программирования.
Многие специалисты предлагают обучение программированию начинать не с изучения языка программирования, а с написания алгоритмов, с помощью учебного языка программирования или интерпретатора, или с помощью построения блок-схем. Конечно, на определенном уровне развития, например в начальной школе, это целесообразно, поскольку изучение основ алгоритмизации происходит в игровой и непринужденной форме. Но переход от одного исполнителя к другому не упрощает дальнейший переход к реальным системам программирования, а лишь откладывает его во времени. К тому же необходимо помнить, что уровень изучения основ программирования должен соответствовать имеющимся знаниям по другим предметам. Довольно странно выглядит урок информатики, на котором учащиеся пишут программы для исполнителя «черепашка», в то время как на уроках математики он уже познакомились с «комплексными числами». В определенный момент учащиеся сталкиваются со сложностью решения задач на других предметах, со сложностью проводимых расчетов. В этот момент им может помочь компьютер и знание какого-либо языка программирования, но никак не абстрактный исполнитель. Решая соответствующие своему уровню задачи, учащиеся также сталкиваются с необходимостью хранения больших объемов данных, а это значит им необходимо освоение мощных сред программирования и использование структур данных.
Понятие «данные», как общее понятие всего того, с чем работает компьютер - это первое и самое сложное понятие, с которым сталкиваются учащиеся при переходе от исполнителя к среде программирования. Хочется подчеркнуть целесообразность изучения языка Pascal, поскольку этот язык дисциплинирует учащихся в выборе и использовании типов данных, приучает к правильному преобразованию типов. Программа, написанная на этом языке, яснее выражает математическую сущность модели алгоритма. При этом средства современных сред программирования, основанных на языке Pascal, позволяют программно реализовывать основные принципы объектно-ориентированного подхода. В то же время, становящееся модным изучение сложных и громоздких сооружений, именуемых "системами объектно-ориентированного программирования" (по меткому выражению Э. Дейкстры – "погремушек и свистулек"), реализует только подход к процессу решения задачи и ее оформлению, а не к самим задачам. Впрочем, какой бы базовый язык программирования не выбрал учитель, ему придется столкнуться с определенными проблемами на этапе перехода.
ОСНОВНЫЕ СТРУКТУРНЫЕ ИЗМЕНЕНИЯ, КОТОРЫЕ НЕОБХОДИМО ПРЕОДОЛЕТЬ ПРИ ПЕРЕХОДЕ ОТ ИСПОЛНИТЕЛЯ К ЯЗЫКУ ПРОГРАММИРОВАНИЯ.
1. Исключается момент игры, которая присутствовала на пропедевтическом этапе обучения. Его можно компенсировать интересными заданиями. Это могут быть задания с использованием графического модуля. Результатом таких заданий может стать даже проект игры, например. Простые и понятные математические задачи «поиск счастливых билетов», игра «угадай-ка», помогут повысить мотивацию, избавиться от страха, вызванного незнакомой средой, в которой для решения простой задачи так много требований. Так же компенсировать этот критический момент, поможет работа в парах «заказчик – программист».
2. Переход от вымышленного героя (исполнителя) с минимальным набором команд, ошибок, к вычислительной системе и компьютеру, как исполнителю. Система – компьютер включает в себя весь спектр логических и физических ресурсов, которые могут использоваться в задаче. Например, память представленная в виде дисков (встает вопрос об оптимизации структур данных), процессор и скорость его работы (вопрос выбора оптимального алгоритма) и т. д. В результате понятная прежде «среда обитания исполнителя» заменяется интегрированной средой программирования и вычислительной системой, в которой нет «поля», нет самого исполнителя, и изначально отсутствует задача.
3. Отсутствие наглядного результата работы программы. Результатом работы ученика становится программа – это ни собранные кубики, ни рисунок, ни какой-либо другой игровой эффект, наглядно показывающий, что задача решена. На первых этапах ребенку очень трудно поверить в важность и значимость программы, как результата. Чаще всего с этим учащиеся сталкиваются при решении вычислительных задач. Отсутствие или непонимание результата своей деятельности значительно сказывается на мотивации к учению. Кроме того, любая программа как результат требует тщательного тестирования и исправления логических ошибок возможно в самом алгоритме. Научить детей проверять результаты и тестировать программы, внушать значимость каждой программы – первостепенная задача учителя на этапе перехода от исполнителя к среде программирования.
4. Меняется модель учебного процесса и непосредственно модель работы за компьютером. От модели «ученик – исполнитель» переходим к модели «заказчик – программист (ученик) – пользователь (заказчик)». В предыдущей модели результатом работы являлось действие исполнителя по командам ученика (рисунок, собранные кубики и т. д.). В новой модели результатом становится программа. Если ранее учитель знакомил ученика с миром исполнителей, то какова же его роль в новой модели? Самое распространенное и не совсем правильное мнение, что заказчиком является учитель. Работая только на конкретный результат, который принял или не принял учитель, сложно научить ребенка выбирать оптимальный алгоритм, разумно использовать ресурсы памяти и оформлять программу. Учитель должен выступает в роли консультанта и помогать ученику стать программистом. Очень важно снять с учителя роль «тестера» или «заказчика», а поставить в роль помощника, т. е. не против ученика, а рядом с ним. Конечно, в школьном процессе заказчик условный, им может являться задачник, или, например, учитель по математике. Важное свойство заказчика – он не умеет программировать, но хорошо понимает поставленную задачу и может ее проверить устно или скажем с помощью калькулятора. Необходимо ввести в привычку тщательное тестирование программы учеником, с целью «завалить» (найти ошибку) до того, как это сделает тот, кто ее проверяет. Важное место на этапе знакомства с языком программирования занимает групповая работа учащихся, во время которой они могут меняться ролями.
ТРУДНОСТИ, СВЯЗАННЫЕ С ОБЪЕКТИВНЫМИ ПРИЧИНАМИ УСЛОЖНЕНИЯ МАТЕРИАЛА В ЦЕЛОМ.
Появляется сложность в отладке программы и поиске ошибок. Англоязычное сообщение об ошибке, большое количество синтаксических и семантических ошибок. Важно научить учащегося пользоваться справочной литературой и Help (встроенными программами подсказок). Объективное повышение уровня сложности задач. Большая доля задач приходится на вычислительные задачи. На этом этапе программирование становится очень тесно связанно с математикой. Усложнение команд, их синтаксиса и структуры программы вообще.ВАРИАНТЫ ПРЕОДОЛЕНИЯ ТРУДНОСТЕЙ НА ЭТАПЕ ПЕРЕХОДА ОТ ИСПОЛНИТЕЛЯ К СРЕДЕ ПРОГРАММИРОВАНИЯ.
· Подбор задач, соответственно возрасту и учебной подготовке. Предпочтение должно отдаваться игровым задачам.
· Командная и групповая работа. Работа в парах: «заказчик (проверяющий) – программист».
· Соблюдение основных принципов построения дидактической спирали. Изучая виды алгоритмов, подпрограммы, необходимо проводить аналогию с предыдущими «исполнителями».
· Тестирование программы в игровой форме. Групповое тестирование программ.
· Цикличность освоения модулей. Возвращение и постоянное повторение предыдущих знаний, команд, алгоритмов.
· Рассмотрение многих вариантов решения задачи и выявление их различий. Варианты каких решений, имеют более короткую программную запись, более наглядный алгоритм и т. д.
Программирование – базовая составляющая курса информатики. Основы программирования изучаются в классах любого профиля. Соответственно с проблемой перехода мы можем столкнуться в классах любого профиля и в любом школьном возрасте. Уровень углубленности изучения программирования каждый учитель определяет исходя из возрастных и профильных особенностей класса, или из особенностей конкретного ученика, если учитель имеет дело с индивидуальной подготовкой одаренного учащегося. Но описанные выше трудности перехода в той или иной степени возникают при любом уровне подготовки, и недооценивать сложность и значимость этого этапа нельзя.
КРИТЕРИИ АДАПТАЦИИ:
1. Основной критерий – учащемуся легко решать задачи. Он быстро и без затруднений решает типовые задачи.
2. У учащегося появляется желание экспериментировать с программой.
3. Учащийся самостоятельно находит способы сократить запись программы. Это говорит о том, что он действительно понял значение каждой изученной команды языка программирования и алгоритм решения задачи.
Сокращение перехода и экономия времени на этом этапе приведет лишь к тому, что ком пробелов и непонимания будет накапливаться, и в дальнейшем имеются все шансы получить психологическую блокировку к этому разделу информатики у учащегося, которая преодолевается гораздо сложнее, чем этап перехода.


