понедельник, 11 мая 2009 г.

Русский в обучении программированию

В очередной раз решил проверить как поживает BlackBox. К сожалению он так и остаётся пока чисто виндовой программой :( Правда под WinE идёт более-менее чисто. Очень не хватает консольного компилятора - без этого невозможно применение BB в автоматизированых системах проверки (например для олимпиадных задач)
Появился интересный модуль - "Русский язык", позволяющий вести программирование на русском.
Учебная программа может теперь выглядеть примерно так:

(* пример намеренно содержит ошибки *)

МОДУЛЬ  урок;
   ПОДКЛЮЧИТЬ Ввод := i21ruВвод, Вывод := i21ruВывод;
   
   ПРОЦЕДУРА задача1;
      ПЕРЕМЕННЫЕ  ц: ЦЕЛАЯ;
   НАЧАЛО
      Ввод.Открыть;  УБЕДИТЬСЯ( Ввод.сделано )
      Ввод.Цел( ц );  УБЕДИТЬСЯ( Ввод.сделан );
      Вывод.Цел( ц );  Вывод.НовСтрока;
   КОНЕЦ задача1;
   
КОНЕЦ  урок.

Элегантное решение через подключаемый словарь ключевых слов, что позволяет использовать эту фичу для ЛЮБОГО языка (хоть на иврите пиши свою программу). Имеет право на жизнь, несмотря на некоторый скепсис по отношению к подобного рода изыскам.
Как правильно, на мой взгляд, было замечено в форуме что исходя из основной направленности BB на обучение его использование в школе можно представить следующим образом:
Полагаю, что можно алг-ю и пр-е разбить на 3 этапа примерно так:
1. 5-7 класс - пропедевтика: черепашка => пр-е на русском элементарных алгоритмов на подмножестве КП.(любой учитель информатики, учит 100% детей)
2. 7-9 класс - отход от черепашки к наработке навыков правильного решения типовых задач средней сложности, расширение кругозора и арсенала, плавный переход на англоязычный ББ.(подготовленный учитель, учит 40-60%)
3. 10-11 класс - освоение наиболее сложных разделов КП, разбор ряда классических алгоритмов, обширная практика решения сложных задач, реализация небольших программных проектов.(профи, не чурающийся преподавания, или очень подготовленный учитель учит 15-20% на факультативе)
В больших школах, где есть несколько учителей инф-ки, это реально, было бы желание руководства (что делать в небольших сельских школах - не знаю).
(с) А.П.
В результате получим основную массу учеников, изучивших основы алгоритмизации и  программирования на родном языке, и отдельных учеников, в голове которых нет каши из различных операторов увиденных ими в других программах.
Кстати, введение русскоязычной нотации позволит сгладить недостаточное (мягко говоря) владение многими учителями информатики англоязычной терминологией.
Ещё один интересный приём из форума - "Написание документации к программе". Как же не хватает этого умения у школьников-псевдопрограммистов.