пятница, 8 апреля 2011 г.

Кумир и школьная информатика

Как все уже знают, в ближайшие два года будет происходить постепенный переход на компьютеризированный вариант сдачи ЕГЭ по информатике. Компьютерная тестирующая система (КТС ЕГЭ) пока ориентирована на использование кроссплатформенных систем программирования Кумир (Комплект Учебных МИРов, школьный алгоритмический язык) и FreePascal.

Сильный эффект произвело известие об административном внедрении системы Кумир, которая разработана в НИИСИ РАН по заказу Российской Академии Наук и распространяется свободно на условиях лицензии GNU GPL.

Конечно, все «старики», знакомые с учебниками информатики А.Г. Кушниренко 1990 года, знали о Кумире, кое-где даже использовали его DOS-версию, но широкого распространения (по крайней мере, в Питере) она никогда не имела по разным причинам, в первую очередь, из-за убогого интерфейса.

Первый сигнал о втором пришествии Кумира появился в апреле 2010 года после семинаров, которые проводили П.А. Якушкин, В.Р. Лещинер, А.Г. Кушниренко и М.А. Ройтберг на Дне учителя информатики 2.04.2010 в рамках Девятого московского педагогического марафона. Чуть позже в газете «Информатика» появилась статья В.Р. Лещинера и П.А. Якушкина, посвященная компьютерному варианту ЕГЭ.

Новость произвела эффект разорвавшейся бомбы среди учителей информатики. На педагогических сайтах развернулись бурные дискуссии (см. тему «Быть Кумиру?» и обсуждение на сайте pedsovet.org).
Большинство участников этих словесных баталий Кумир не приняли, было сказано много ругательных слов.

Автору этих строк Кумир тоже никогда не нравился, хотя нравились идеи С. Пейперта, Г.А. Звенигородского и учебник информатики А.Г. Кушниренко 1990 года. Такой вот парадокс. В результате была написана среда «Исполнители», которая успешно используется с 1992 года по сей день во многих школах. Кстати, в начале 90-х журнал «Информатика и образование» отклонил статью, посвященную «Исполнителям», только из-за того, что «среда Кумир уже получила широкое распространение и альтернативы не актуальны».

Но вернемся к Кумиру. По словам самих авторов, Кумир предназначен для начального обучения алгоритмизации и программированию (6-7 классы). Пока он занимал эту нишу, все было относительно хорошо и спокойно: практически никто из учителей не трогал Кумир, но и Кумир никого не трогал.

Но теперь встал вопрос о том, что Кумир становится одним из (двух) языков, разрешенных на компьютерном ЕГЭ по информатике, то есть «поднимается» на уровень 10-11 классов. Это заставило задуматься. Мера явно вынужденная: для компьютерного ЕГЭ требуется
  • кроссплатформенность
  • бесплатность
  • простота установки
  • относительная известность и популярность.
Таких сред не очень много, поэтому «архитекторов» нововведений можно понять. В начале этого учебного года стало ясно, что возвращение Кумира — это серьезно, и его проталкивают «сверху». Московский институт открытого образования (МИОО) проводит дистанционный курс Подготовка выпускников к ЕГЭ по информатике и ИКТ в компьютеризированной форме, где Кумиру отводится важнейшая роль. Для просмотра материалов курса требуется бесплатная регистрация, но выложенные материалы того стоят, рекомендую посмотреть. 29 ноября 2010 года тот же МИОО проводит апробацию компьютеризированной системы проведения ЕГЭ по информатике и ИКТ (КТС ЕГЭ). В газете «Информатика» (№№ 24/2010 и 2/2011) публикуются статьи А.Г. Леонова из серии «Освой КуМир за 6 часов». До этого, в 2009 году, напечатан цикл материалов А.Г. Кушниренко и А.Г. Леонова «Методика преподавания основ алгоритмизации на базе системы КуМир». На очередном Дне учителя информатики (01.04.2011) продвижение КуМира продолжается (семинар и круглый стол). Все это говорит о том, что с Кумиром придется считаться. Как и любое явление, он имеет достоинства и недостатки. О них много говорили на упомянутом курсе МИОО, даже была сделана Wiki-страничка «Плюсы и минусы Кумира». Там представлен широкий спектр мнений, поэтому здесь не будем повторяться. Автор в текущем учебном году решил попробовать перейти в 7-8 классах на Кумир. Сразу обнаружились достаточно серьезные проблемы, которые позволяли сделать вывод о непригодности среды в ее текущем состоянии для этих целей. Самые важные среди них:
  • чудовищная медлительность Кумира, работающего в сотни раз медленнее, чем любая из Паскаль-сред
  • отсутствие «нормальной» (не черепашьей) графики
  • совершенно неразвитые средства работы со строками (например, не было функции поиска)
  • устарелая и полностью кривая работа с файлами (например, перед тем, как открыть файл на запись, нужно каждый раз проверять, существует ли он, и если нет, то создавать пустой файл отдельной командой)
К счастью, вскоре удалось выйти на прямую связь с руководителем группы разработчиков Кумира М.А. Ройтбергом. В результате сотрудничества большинство проблем удалось снять, и появилась предварительная версия, в которой можно нормально работать, то есть делать то, что раньше мы делали на Паскале и Си. Медлительность, правда, осталась, но А.Г. Кушниренко обещал, что версия 2.0 будет существенно быстрее (ему, наверное, это обещали программисты). Материалы презентаций к урокам по Кумиру можно взять у меня на сайте (там около 400 слайдов). Самую последнюю версию Кумира можно скачать на сайте разработчиков. Необходимо отметить, что ряд проблем все же остаются в текущей версии (1.8.0):
  • нельзя менять значения аргументов внутри вспомогательных алгоритмов (например, в реализации алгоритма Евклида как функции приходится заводить две лишние переменные);
  • нельзя вызывать функцию как процедуру, игнорируя ее результат (например, когда результат функции — код возврата и в данном случае он меня не интересует);
  • неудобная и неполная справочная система;
  • нет форматного вывода на консоль и в файл, как в Паскале (типа вывод x:4), это нужно, например, чтобы вывести на экран матрицу ровными столбиками.
По словам разработчиков, по крайней мере, некоторые из этих недостатков будут устранены в версии 2.0. Общие выводы по результатам года:
  • русские команды школьники воспринимают намного легче английских
  • для изучения основ программирования и алгоритмизации Кумир ничем не хуже Паскаля, в новой версии можно делать практически все, что нужно; если удастся серьезно ускорить вычисления, будет совсем хорошо
  • Кумир очень неплохо идет даже в 9-11 классах на базовом уровне и может быть очень удачным выбором для тех, кто в будущем не будет профессионально программировать.
Напоследок приведу список сетевых ресурсов по Кумиру:

Ярлыки: , , , ,

Комментарии: 20:

В 9 апреля 2011 г., 9:29 , Anonymous Дедюлькина Татьяна Васильевна сказал(а)...

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

 
В 9 апреля 2011 г., 11:13 , Anonymous Александр сказал(а)...

Присоединяюсь.
Действительно нужный материал.
Будем осваивать!

 
В 9 апреля 2011 г., 16:10 , Anonymous ninel сказал(а)...

Полностью присоединяюсь. Огромное спасибо! Нужный материал.
Лобова Н.И.

 
В 9 апреля 2011 г., 16:27 , Anonymous Виталий сказал(а)...

Я как раз из тех "стариков", которые с успехом учили информатике по учебнику Кушниренко и без претензий использовал Кумир (даже на УКНЦ).
Солидарен с Вами в общих выводах: русские команды школьники воспринимают намного легче английских, для изучения основ программирования и алгоритмизации Кумир ничем не хуже Паскаля, Кумир очень неплохо идет даже в 9-11 классах на базовом уровне.
И даже с низкой скоростю вычислений можно смириться (а при наблюдениях за Роботом школьники порой даже огорчаются: так быстро!)
Не вижу угрозы в переходе на использование кроссплатформенных систем на ЕГЭ и ГИА.

 
В 9 апреля 2011 г., 16:34 , Anonymous Anonymous сказал(а)...

Только ссылку нужно давать не на какую-то там промежуточную версию, да еще и выложенную на левом сайте, а на версию 1.8.0, которая была выпущена 7 апреля.

 
В 9 апреля 2011 г., 16:36 , Anonymous Galagan Sergei Igorevich сказал(а)...

Галаган Сергей Игоревич
Спасибо, действительно честный и открытый анализ информации и способ поделиться наработками о важном в работе учителя информатики.
Сегодня попробова Кумир в 10-м классе. Результат как всегда, лучшим любой язык не помеха, а слабым... как всегда "мало объяснили".

 
В 10 апреля 2011 г., 11:08 , Anonymous КП сказал(а)...

Анонимный написал:
Только ссылку нужно давать не на какую-то там промежуточную версию, да еще и выложенную на левом сайте, а на версию 1.8.0, которая была выпущена 7 апреля.
Ссылка дана на ту версию, которую я тестировал и уверен, что в ней все работает. Там многое сделано в предварительном варианте.
Было бы честно, если бы авторы комментариев не скрывали своих имен. Стиль все равно идентифицируется. :-)

 
В 11 апреля 2011 г., 19:20 , Anonymous Козер Татьяна Тимофеевна сказал(а)...

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

 
В 12 апреля 2011 г., 12:09 , Anonymous Корочкова Ирина Германовна сказал(а)...

Константин Юрьевич!Спасибо большое! Всегда полезная, точная информация по трудным вопросам. Корочкова И.Г. Москва

 
В 21 апреля 2011 г., 17:22 , Anonymous Dreamer сказал(а)...

Самой сложной задачей при чтении курса программирования в школе для меня остается необходимость продемонстрировать практическую важность программирования, как инструмента автоматизации решения тех или иных формализуемых задач. Постоянно нахожусь в поиске задач, которые с одной стороны имели бы практическую ценность (вне контекста изучаемой темы), а с другой были бы относительно просто реализуемы на том инструментарии, который предоставляет в нашем случае Free Pascal.
Честно сказать, количество подобного рода задач, которые я напридумывал или нашел, пока очень мало. Понятно с чем это связано: набор стандартных функций используемого языка весьма ограничен, инструменты для работы с простыми вещами, типа динамически размещаемых данных, неудобны.
Я понимаю, что очень важно знать и уметь реализовывать классические алгоритмы, например, сортировки, поиска, уметь на низком уровне работать с файлами итд, но как удобно, когда ЯП идет вместе с заряженным комплектом библиотек, где все это уже есть и потом можно опираться на это.

Последнее время обдумываю вариант включения в курс 11 класса изучения скриптового языка питон (python). Невероятно красивый и удобный язык с огромной функциональностью. На этом языке уже можно решать интересные задачи и главное с этим сможет справиться школьник.

За эти пол-года с 10-ми классами мы успели разобраться с синтаксисом Паскаля, познакомились с базовыми алгоритмами. В следующем году: численные методы, графика-анимация, знакомство с разработкой оконных приложений (WinForms), Web-верстка. Много материала и вероятно включить сюда изучения второго языка не получится. Меня это очень расстраивает, потому что Pascal бесконечно надоел своей неактуальностью, многословностью и скукой. Я бы с удовольствием рассказывал с самого начала только про python (или c#, например), если бы не ЕГЭ. Как жаль, что класс языков, на которых можно реализовывать задания ЕГЭ так ограничен. Вот и думаю пока как "актуализировать" курс информатики до бренного уровня автоматизации простых, но практически важных задач.
Константин Юрьевич, что вы думаете по поводу всего этого? :)

 
В 21 апреля 2011 г., 21:39 , Anonymous КП сказал(а)...

@Dreamer
Как я понял, вопрос в целом о выборе языка программирования для изучения в школе?

Тут нужно говорить отдельно о двух группах учеников. Первые (их теперь большинство) после школы программировать не будут, скорее всего, никогда. Для них главное – понять суть алгоритмического подхода к решению различных задач. Мой опыт склоняет меня к мысли, что в этом случае лучшим языком будет всё-таки язык с русскими командами, то есть Кумир, как это ни противно большинству. :-)

Для тех, кто будет далее заниматься программированием профессионально, хочется использовать язык, на котором уже в школе можно сделать что-то практически полезное. Если посмотреть на рейтинг языков программирования от TIOBE Software, хочется остановиться на C-подобном языке, но тут есть много подводных камней (см., например, статью А.В. Столярова). К слову, я много лет преподавал именно на C в профильных классах и не могу сказать, что это было неудачно.

Язык Python - интересное направление. Его продвигает Д.П. Кириенко из московской школы № 179. Я лично не применял Python на уроках, поэтому сослаться на какой-то опыт не могу.

Все дело в том, какую цель мы ставим. Мне кажется, что в школе нужно заложить фундамент – дать классические основы алгоритмизации. Для этой цели Паскаль (и его родственники, например, Компонентный Паскаль) – вполне адекватный язык, несмотря на всю «неактуальность, многословность и скуку». Паскаль воспитывает некоторую строгость программирования, в отличие от C (см. ту же статью А.В. Столярова). Поэтому для будущих профессионалов Паскаль – вполне логичная и достойная стартовая площадка. Про ЕГЭ (который многие из них как раз и сдают) тоже не забываем. Выход на практически значимые задачи - через Delphi и Lazarus. Интересующиеся могут самостоятельно изучать Python и C#. Второй язык идет всегда легче и может осваиваться самостоятельно.

 
В 22 апреля 2011 г., 0:24 , Anonymous Dreamer сказал(а)...

Спасибо за подробный ответ.
Безусловным "недостатком" языка python является его самобытность(чего только стоит реализация структурного оператора в виде отступов), в то время как синтаксис С лежит в основе многих современных ЯП. Кстати, очень любопытный рейтинг языков; я всегда опирался на stackoverflow :)
Возможно действительно разумнее будет в профильных классах читать С, а с остальными продолжать pascal или Кумир. Нужно только для начала узнать, что он из себя представляет :)

 
В 25 апреля 2011 г., 12:31 , Blogger dk сказал(а)...

Уважаемый Dreamer!

Меня это очень расстраивает, потому что Pascal бесконечно надоел своей неактуальностью, многословностью и скукой. Я бы с удовольствием рассказывал с самого начала только про python (или c#, например), если бы не ЕГЭ.

Полностью с вами согласен про неактуальность, многословность и скуку. Вы очень точно подметили самые главные недостатки паскаля.

Что касается Питона - а вы все-таки начните учить детей на Питоне и получайте удовольствие. И дети будут получать удовольствие. Учите программированию, а не сдаче ЕГЭ. Если хорошо научить детей программированию, то освоить Кумир для сдачи ЕГЭ школьникам будет очень легко.

Кроме того, не следует забывать, что до компьютерного экзамена еще очень далеко, а в текущей бланковой форме ЕГЭ можно писать и на Питоне.

Также когда ситуация с компьютерным ЕГЭ и допустимыми языками программирования на нем прояснится, то я буду добиваться включения Питона и C++ в число разрешенных языков.

 
В 25 апреля 2011 г., 12:44 , Blogger dk сказал(а)...

Безусловным "недостатком" языка python является его самобытность(чего только стоит реализация структурного оператора в виде отступов), в то время как синтаксис С лежит в основе многих современных ЯП.

Отступы для обозначения блоков - по-моему, огромное достоинство языка. Программа автоматически становится легко читаемой (не нужно специально приучать школьников расставлять отступы), а все ненужные begin...end исчезают, программы становятся короче и даже понятней.

Что касается остальной "самобытности" - то скорее речь идет о всяких фокусах, связанных с динамичной архитектурой языка. Например, как поменять значения переменных a и b?

Программист на Паскале напишет:
t := a;
a := b;
b := t;

При этом t - временная переменная, но ее придется заранее где-то вначале объявить. На С++ суть та же, только переменную можно объявить прямо в месте использования.

А программист на Питоне напишет:

a, b = b, a

Коротко и понятно!

Подобные "фокусы" - это не самобытность языка, это уже норма для всех современных языков программирования, которые потихоньку будут вытеснять языки 70-х годов типа Pascal и C.

 
В 4 июня 2011 г., 22:53 , Anonymous Анонимный сказал(а)...

Здравствуйте, Константин Юрьевич! Спасибо Вам за Ваши труды над созданием Ваших методических материалов. Я уже много лет по ним работаю. Вернее, работала, сейчас в школе не работаю. Еще раз спасибо. Все что Вы делаете, очень нужно школе!!!!
Наталья.
P.S. Кумир - это да... :( Печально. Наталья.

 
В 22 июня 2011 г., 18:23 , Blogger Andrew сказал(а)...

Заинтересовал тезис: "русские команды школьники воспринимают намного легче английских".
Помнится, в бытность мою школьником, русскоязычный "школьный алгоритмический язык" воспринимался нами очень плохо. Вроде буквы русские, а что хотят сказать - не ясно. Английский BASIC был ближе.

Неужто ситуация с тех пор изменилась? Забавно.

 
В 27 сентября 2011 г., 20:16 , Blogger Борис Власенко сказал(а)...

Подкину и я дровишек в обсуждение темы. Сначала скажу, что из школы я ушел, хотя и продолжаю готовить к ЕГЭ по информатике. Занимаюсь обучением в индивидуальном порядке. Обучением программированию занимаюсь около 12 лет, с 4-го курса. Первые программы писал в школе на Кумире, потом - МК-61, потом уже MSX(2)-BASIC и Pascal. Учебник Кушниренко мне всегда очень нравился, нравились задачи для робота и чертежника. Когда стал вести платные курсы по программированию, то сделал робота и чертежника в Delphi, потом робота в Excel. Робота в excel, кстати, я сделал за полчаса. Но это без редактора карт и без встроенных задач. Развития не получил, хотя использовались команды на русском языке. Кстати, VBA - это отличный пример реальности программирования.
После того, как пошел работать в школу - сделал робота на питоне. Робота и комплекс задач. Конечно, в случае робота, о понимании важности программирования говорить не приходится. Я показывал возможности макросов в Excel. Программистами станут единицы из двух-трех выпусков, а с макросами столкнуться многие.
Исполнители бывают разные, но я - за обучение на Исполнителях, а потом уже переход на "обычные" задачи.

 
В 20 октября 2011 г., 0:58 , Blogger Евгений Смирнов сказал(а)...

Изучение устаревших языков программирования (а именно к таковым относятся и упомянутый КУМИР, и Паскаль) в школе практически преступно. Мы же на уроках физики не учим детей теории эфира или на астрономии — теории эпициклов. Паскаль — это прошлый век, язык, который, по сути, жив только за счёт преподавания в школах, язык, обладающий избыточными конструкциями, язык, который НИКОГДА человеку не потребуется в жизни. Какой язык выбрать для школы диктует сам рынок программирования. Есть ТОП-10 языков, используемых в современных программах. И именно этим языкам мы и должны учить. Предлагаемые в ЕГЭ задачи решаются на современном языке программирования в одну-две строчки. Я ещё понимаю изучение языка С, на базе которого построен не один современный язык. Но Паскаль-то тут каким боком.

Цель программирования, в том числе, дать ученикам инструмент, который бы они могли использовать в повседневной жизни для решения повседневых задач. Например, пересчитать прайс (экспорт в csv, парсинг, обработка) или прикинуть эффективность финансовых вложений. Кто это будет делать на Паскале?

Обучение Паскалю в школе — это просто выбрасывание времени. Оно не показывает ни современных тенденций в программировании, ни даёт особого практического опыта. Ей Богу, построение блок-схем и наглядение, и понятнее.

 
В 9 октября 2012 г., 10:57 , Blogger Дмитрий Злыгин сказал(а)...

Уважаемый Константин. Преподаю в школе 5-й год, начинал с вашей среды "Исполнители" - все нравилось, но до момента внедрения Linux. У вас тоже была возможность занять большую нишу - но вы, к сожалению, не озаботились кроссплатформенностью. Как и открытием исходников - чтобы кто-то смог портировать или хотя бы облегчить пуск среды в Linux. Жалко, среда нравилась, но пришлось переехать в Кумир, уже 3 года как.

Слегка облегчает работу в Кумире наличие в школе учебников 90-91 года (ура, их не выкинули в макулатуру).

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

 
В 30 ноября 2012 г., 4:30 , Anonymous Анонимный сказал(а)...

17Зашел, почитал, грустно.
Вновь. извечный холивар, какой язык учить, и как следствие, какой язык лучше и тд. и тп. Такое впечатление, что собственно ЯП и есть главная цель в процессе обучения. Давайте вспомним, что это всего навсего инструмент, средство обучение и не более того.
Практически полностью согласен с КП в сообщении от 21 апреля 2011 г., 21:39
В своем курсе, рабочее окружение позиционирую как консоль+текстовый редактор(с подсветкой синтаксиса) и все, это универсальная схема, которая будет работать для любого языка, на любой платформе.
1 Начальный уровень - Математическая логика и алгоритмика(7-8 кл) - Кумир
2 Предпрофиль (8-9 кл) - FreePascal
3 Профиль - чистый Си без всяких "примесей" ООП.
Но как правильно было сказано, в процессе обучения требуется четкое разделение на таргет группы, к двум указанным группам, я бы добавил третью - те которые поступят в ВУЗы "средней руки". но в курсе обучения которых, присутствует элементы программирования (чаще всего Delphi, или винегрет из С и С++).
Что касаемо вопроса быть или не быть Кумиру? Конечно быть, как и любому другому языку, каким бы он нишивым не был.
А учитывая, что современное ЕГЭ базируется на триаде АЯ, Паскаль, Си. Как среда для АЯ вполне подходит. Самое главное, чтобы данная триада сохранилась, а не начались опять шараханья от языка к языку. Кстати, задействовав gcc, разработчики ЕГЭ с легкостью смогут расширить языковый ассортимент(Ада, Фортран, С++, Обжект Си, Ява...:))).

 

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

Подпишитесь на каналы Комментарии к сообщению [Atom]

<< Главная страница