/Materials Ср, 24.04.2024, 08:42

Сайт методики довузовского обучения программированию
и проектной деятельности в информатике


Главная страница, Контакты, RSS
 
> Меню сайта

> Разделы новостей
Семинар [36]
Семинар по системному и прикладному программированию
Etc [15]
Разное
Конференция [16]
Открытая конференция исследовательских и проектных работ

> Архив новостей

> Партнеры

> Поиск

> Статистика

Главная » 2011 » Апрель » 3 » Аналитический подход к довузовскому преподаванию программирования
Аналитический подход к довузовскому преподаванию программирования
И. Р. Дединский
Кафедра информатики МФТИ, Москва

Всероссийский съезд учителей информатики в МГУ

24-26 марта 2011 года, Москва, МГУ имени М.В. Ломоносова

 

Доклад на секции 3 (Углубленное изучение информатики).

Сообщение о конференции, Тематика секций

Презентация доклада

Тезисы доклада

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

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

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

Цель данной работы – проанализировать образовательные разрывы и постро­ить курс таким образом, чтобы минимизировать эти разрывы и максимизиро­вать набор конструктивного положительного опыта, не ограничивающимся лишь конкретными приемами, шаблонами и средствами. Это позволяет уча­щимся в дальнейшем ориентироваться в меняющемся мире ИТ-технологий, ко­торые часто успевают развиться и умереть до того, как по ним выйдет первый учебник. В таких условиях главная учебная задача, и не только в сфере ИТ, – научить студента действовать грамотно и самостоятельно. Под грамотностью здесь понимается умение классифицировать проблемы, знать типовые решения, выбирать из них спектр адекватных решений, комбинировать их, придумывать новые решения, контролировать качество, мыслить не рецептами, а как мини­мум технологиями [1].

Для этого автором вводится понятие когнитивно-технологической единицы (КТЕ), как единицы действительного усвоения знаний, определенной следую­щим образом [2]:

  1. Зачем это надо,
  2. Что это такое,
  3. На чем основано и с чем связано,
  4. Как это применять,
  5. Где это можно и где нель­зя использовать,
  6. Чем придется пожертвовать,
  7. Что будет, если этого не делать,
  8. Какие в этом «подводные камни» (чего опасаться).

Разработанный курс рассчитан на учащихся 7(8) – 10(11) классов, нагрузку минимум 4 учебных часа в неделю и систему факультативов. Он учитывает раз­нородную предвари­тельную подготовку учащихся, и тот факт, что часть из них не изучали информатику и программирование во­все. По этой причине в начале курса преподавание ведется «с нуля», в предположении, что учащийся не обла­дает какими-либо специаль­ными знаниями в области программирования. По этой причине используются следующие принципы:

  1. Во главу угла ставится задача, понимаемая как часть проекта, и, главное, путь от задачи к решению, а не кодирование алгоритма.
  2. Для записи алгоритма на языке программирования выбирается минимальное подмножество средств языка, чтобы не акценти­ровать внимания на кодирова­нии и для более легкого перехода на другие языки программирования.
  3. Самостоятельность решения является ключевым условием, которое необхо­димо доказать при сдаче работы.
  4. Понимание учащимся тех средств, с помощью которых он решил задачу, ста­вится выше уровня самих средств решения.
  5. Аккуратность и надежность решения ставятся выше «программистских трю­ков», иногда позволяющих в отдельных слу­чаях добиться несколько лучших результатов.
  6. Задачи ставятся в нескольких вариантах различной сложности (от базового до творческого), при сдаче работы засчитыва­ется решение на любом уровне (но удовлетворяющее п. 2-4). Уровень сложности фиксируется и использу­ется как дополнительная информация к оценке, для выяснения и повышения уровня профес­сионализма ученика.
  7. Главным методологическим принципом является системный подход.
  8. В обучении активно применяются парные и групповые техники (обмен кодом и документацией, перекрестные 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 и в Интернете, и некоторые из них сделаны как раз начинающими.

Литература

  1. Хант Э., Томас Д. Программист-прагматик. Путь от подмастерья к мастеру. – СПб, Питер, 2007. – 288 с.
  2. Дединский И. Р. Как хотеть учиться. // Компьютерра. – 2005. – № 24.


В настоящее время позиция администрации лицея не позволяет говорить на данном сайте о состоянии преподавания информатики и профильной информатики в лицее.
 

Категория: Etc | Просмотров: 16916 | Добавил: ded32
> Инструменты

Orphus


О рекламе на сайте ↑

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


> Загрузить

> Основные материалы

> Примеры проектов



Copyright (c) И.Р. Дединский, 2006-2024
Никакая часть материалов данного сайта или его подразделов не может быть прямо или косвенно процитирована или упомянута без действующей активной ссылки на данный сайт
...

Хостинг от uCoz

MasterHost Orphus