Всероссийский съезд учителей информатики в МГУ
24-26 марта 2011 года, Москва, МГУ имени М.В. Ломоносова
Доклад на секции 3 (Углубленное изучение информатики).
Сообщение о конференции, Тематика секций
Презентация доклада
Тезисы доклада
Углубленный подход к преподаванию информатики в большинстве случаев применяется в учебных заведениях или группах физико-математической направленности и предполагает курс программирования, что связано с дальнейшим обучением по этому профилю в ВУЗе. В большинстве случаев способом реализации курса является решение большого количества изолированных алгоритмических задач (так называемый олимпиадный подход).
Однако, если ограничиваться только этим и игнорировать современные тенденции развития процесса разработки программного обеспечения, может получиться, что даже успешный олимпиадник будет испытывать серьезные проблемы с успешностью при попытках выйти за пределы олимпиадной стилистики. Это связано с тем, что участие в разработке ПО, как для научных целей, так и в качестве инженерной профессии – процесс проектно-ориентированный, а это требует многих качеств, которые в олимпиадном подходе не нужны и, как следствие, не развиваются.
В результате характерный для каждой профессии диссонанс между «тем, чему учили», «тем, что надо в работе», описывается непустым множеством образовательных разрывов, которые в настоящее время учащийся и студент должен преодолевать сам, и которые составляет его личный опыт. Такая ситуация существует и в школе, и в ВУЗе. В то же время, большинство разрывов типичны и легко обнаруживаются в ходе внимательного анализа.
Цель данной работы – проанализировать образовательные разрывы и построить курс таким образом, чтобы минимизировать эти разрывы и максимизировать набор конструктивного положительного опыта, не ограничивающимся лишь конкретными приемами, шаблонами и средствами. Это позволяет учащимся в дальнейшем ориентироваться в меняющемся мире ИТ-технологий, которые часто успевают развиться и умереть до того, как по ним выйдет первый учебник. В таких условиях главная учебная задача, и не только в сфере ИТ, – научить студента действовать грамотно и самостоятельно. Под грамотностью здесь понимается умение классифицировать проблемы, знать типовые решения, выбирать из них спектр адекватных решений, комбинировать их, придумывать новые решения, контролировать качество, мыслить не рецептами, а как минимум технологиями [1].
Для этого автором вводится понятие когнитивно-технологической единицы (КТЕ), как единицы действительного усвоения знаний, определенной следующим образом [2]:
- Зачем это надо,
- Что это такое,
- На чем основано и с чем связано,
- Как это применять,
- Где это можно и где нельзя использовать,
- Чем придется пожертвовать,
- Что будет, если этого не делать,
- Какие в этом «подводные камни» (чего опасаться).
Разработанный курс рассчитан на учащихся 7(8) – 10(11) классов, нагрузку минимум 4 учебных часа в неделю и систему факультативов. Он учитывает разнородную предварительную подготовку учащихся, и тот факт, что часть из них не изучали информатику и программирование вовсе. По этой причине в начале курса преподавание ведется «с нуля», в предположении, что учащийся не обладает какими-либо специальными знаниями в области программирования. По этой причине используются следующие принципы:
- Во главу угла ставится задача, понимаемая как часть проекта, и, главное, путь от задачи к решению, а не кодирование алгоритма.
- Для записи алгоритма на языке программирования выбирается минимальное подмножество средств языка, чтобы не акцентировать внимания на кодировании и для более легкого перехода на другие языки программирования.
- Самостоятельность решения является ключевым условием, которое необходимо доказать при сдаче работы.
- Понимание учащимся тех средств, с помощью которых он решил задачу, ставится выше уровня самих средств решения.
- Аккуратность и надежность решения ставятся выше «программистских трюков», иногда позволяющих в отдельных случаях добиться несколько лучших результатов.
- Задачи ставятся в нескольких вариантах различной сложности (от базового до творческого), при сдаче работы засчитывается решение на любом уровне (но удовлетворяющее п. 2-4). Уровень сложности фиксируется и используется как дополнительная информация к оценке, для выяснения и повышения уровня профессионализма ученика.
- Главным методологическим принципом является системный подход.
- В обучении активно применяются парные и групповые техники (обмен кодом и документацией, перекрестные peer review и тестирование, групповая разработка стандартов взаимодействия участников проекта). Эти же техники используются при подготовке е ЕГЭ по информатике.
Важнейшей задачей курса является формирование системы профессиональных ценностей (предпочтений) ученика. В конечном счете, это формирование и есть основная инвариантная методологическая задача курса, так как все остальное – технология и будет неотвратимо изменяться с течением времени.
Принятый подход, ориентированный на проектную работу, сильно увлекает многих учеников и дает не только высокие проектные результаты (призовые места на Всероссийских и международных конкурсах), но и высокие олимпиадные (победителей и призеров Всероссийского и регионального уровня). Однако надо отметить, что он не совпадает с традиционным подходом (ставящим во главу угла олимпиадное программирование) и не всегда одобряется приверженцами чисто олимпиадного подхода, которые зачастую хотят получить ученика "целиком и полностью" и воспринимают проектную работу такого уровня как конкуренцию. Тем не менее, действительно сильные олимпиадные школы России видят в нем большую перспективу (см., напр., письмо СПбГУ ИТМО).
Результатом прохождения курса становится не только понимание основных принципов программирования и владение основными алгоритмическими конструкциями, но и серьезные концептуальные и технологические навыки, позволяющие самостоятельно разрабатывать проекты достаточно большого для школьников объема (порядка курсовой работы 2-3 курса ВУЗа), успешно работать в групповых проектах, требующих активного взаимодействия участников, а некоторым – участвовать и побеждать в различных конкурсах Всероссийского и международного уровней, участвовать в научных конференциях РАН.
Методическое обеспечение, разработанное для поддержки курса
Для первых двух лет обучения (7-8, 8-9 класс), где мотивация наиболее критична, автором разработана компактная библиотека двумерной графики для Win32 на С++, намеренно выдержанная в стиле сугубого минимализма (TX Library). Это небольшая "песочница" для начинающих, реализованная с целью помочь им в изучении простейших принципов программирования. Она также является методическим учебным пособием для обучения основам программирования на С++. Библиотека позволяет писать прямолинейный графический код, не заботясь о событийной модели приложений в Win32. Имеется система помощи на русском языке, не требуется компоновки с внешними библиотеками.
Философия TX Library - облегчить первые шаги в программировании и подтолкнуть к творчеству и самостоятельности. Исходный текст библиотеки может использоваться для иллюстрации элементарных приемов работы с окнами Windows, механизмом сообщений Win32, графикой, работой с меню, растровыми образами, простейшей многопоточностью.
Предупреждение, или TXLib - это всего лишь инструмент
Библиотека TXLib - это всего лишь инструмент для того, чтобы облегчить первые шаги в программировании. Однако этот инструмент, как и любой другой, может быть применен неправильно. (Тем не менее, в основу TXLib заложены некоторые принципы, помогающие конструктивному неиллюзорному обучению.)
Сама по себе любая библиотека или язык программирования не научит начинающего писать программы грамотно. Научит этому разработка своих, достаточно больших проектов, в сочетании с тесным общением профессионалов, желающих помочь начинающим. Такие профессионалы должны обладать и опытом разработки больших программ, и педагогическими навыками, чтобы передать свой опыт начинающим. К сожалению, не всегда это совпадает. Профессионалы-программисты зачастую не хотят лезть в обучение, где хватает своих проблем. С другой стороны, недобросовестные учителя, иногда даже в сильных школах и курсах, хватаются за удобные им инструменты обучения (чужие или свои библиотеки, среды и языки программирования), не удосуживаясь следить за качеством кода обучаемых, за стилем и направлением их мышления, ограничиваясь лишь видимостью обучения. Такие образовательные иллюзии очень вредны. Заметны они становятся достаточно поздно, когда выясняется, что ученик, легко пишущий небольшие программы (пусть даже логически насыщенные, олимпиадные), принципиально не способен написать что-то большее, путается в коде, а другие, в том числе и профессионалы, его не понимают в силу спутанности его мышления и неумения внятно выразить мысли на уровне современных стандартов. Чтобы преодолеть этот барьер, воздвигнутый нерадивым преподавателем (или вашей собственной нерадивостью), приходится серьезно и самостоятельно переучиваться - иногда будучи уже студентом или аспирантом. Либо смириться и "носить кофе программистам".
Искусство программирования - это искусство мышления, не надо это забывать, дорогие преподаватели и учащиеся.
Принципы, заложенные в TXLib для повышения качества обучения
Сделай сам. В TXLib многие вещи сделаны или оставлены не совсем удобными для применения. Это - предложение подумать, как сделать это самому, и, как правило, для этого в TXLib есть средства. Сделав, покажите решение другим, если они быстро поймут его и оценят - ваше решение удачное.
Загляни в Help. (Слово неспроста выбрано английским, потому что большинство информации в современном программировании - на английском языке. Учите его.) Под системой помощи понимается не только TXLib Help, но и весь Internet.
Посмотри, как сделано. Загляни в код библиотеки. Он создавался в том числе как пример программной системы со своей логикой и со своей реализацией, а некоторые функции можно понять только по коду, потому что их нет в системе помощи. Не всегда решения, примененные в TXLib оптимальны даже с точки зрения автора - он надеется, что это убережет желающих обучиться качественно, но нетерпеливых учеников, от [Ctrl+C и Ctrl+V] плагиата.
Посмотри, как сделано иначе. TXLib - не единственная графическая библиотека, и реализация "простого графического холста", примененная в ней - не единственное решение. Посмотрите как устроены десятки других графических библиотек. Но избегайте плохого кода (его можно определить по тому, как морщатся профессионалы, глядя на него, если у вас нет более объективных средств такого определения) - он научит вас плохому. Хороший, но сложный код (глядя на него, профессионалы не морщатся, а начинают изучать) - отложите до времени и вернитесь к нему позже.
Выйди за пределы "песочницы". Это усиление принципа "сделай сам" - "cобери вместе свои мысли про хорошую библиотеку, посмотри, как устроен TXLib и его аналоги, сделай свою библиотеку, лучше TXLib'а." Примеры таких библиотек можно найти на сайте TXLib и в Интернете, и некоторые из них сделаны как раз начинающими.
Литература
- Хант Э., Томас Д. Программист-прагматик. Путь от подмастерья к мастеру. – СПб, Питер, 2007. – 288 с.
- Дединский И. Р. Как хотеть учиться. // Компьютерра. – 2005. – № 24.
В настоящее время позиция администрации лицея не позволяет говорить на данном сайте о состоянии преподавания информатики и профильной информатики в лицее.
|