Лекция 2. Исполнитель Крошка Ру и алгоритмизация

Не знаю, как вас, а меня всегда мучил вопрос: как наиболее эффективно, в кратчайшие сроки дать детям основные понятия алгоритмизации? Что в процессе обучения первично — алгоритм или язык программирования? Не спешите дать ответ, давайте порассуждаем.

Понятно, что главное для программиста — научиться составлять алгоритмы, которые затем уже легко можно будет перевести на любой из известных ему языков программирования. Значит, надо начинать обучение с составления «чистых» алгоритмов, без привязки к какому-либо языку программирования? Однако в этом случае учащийся вынужден будет писать свои алгоритмы «на ветер», «в пустоту», алгоритмы, которые никому не нужны, алгоритмы, которые ни он сам, ни кто-то другой не смогут проверить на правильность. Значит, перед тем, как начать писать алгоритмы, надо «познакомиться» с достаточно «умным» исполнителем, который будет скрупулёзно выполнять все алгоритмы будущего программиста.

В качестве такого «тестера» в курсе «Основы алгоритмизации и программирование на языке Pascal» выступает хорошо нам знакомый исполнитель Крошка Ру (или Кенгурёнок). Чем вызван такой выбор? СКИ Кенгурёнка, с одной стороны, достаточно проста и имеет малую мощность, что позволяет начать составлять программы для него уже на первом уроке знакомства; с другой стороны, она настолько полна, чтобы позволить решать разнообразные, интересные задачи. Здесь есть всё: процедуры, ветвление (полная и неполная формы), цикл — всё, что может помочь продемонстрировать основные алгоритмические конструкции.

К сожалению, «свободного» современного исполнителя мы не нашли, поэтому решили использовать хоть и технически устаревшую, но достаточно «умелую» и дружелюбную среду.

Проблема с устаревшим DOS-интерфейсом (прежде всего, это невозможность работы в оконном интерфейсе) легко решается с помощью программы DOSBox. Эта программа бесплатна, может быть свободно скачана из Интернета. В обеспечении к практикуму располагается как сама программа, так и справочный файл к ней. Новую версию программы можно скачать с сайта производителя: http://www.dosbox.com/download.php?main=1.

Способов запуска DOS-приложений с помощью DOSBox множество, мы здесь опишем самый, на наш взгляд, простой. Итак:

Очень важное замечание: не располагайте папку ROO в папках с длинными именами, содержащими символы кириллицы и пробелы — в этом случае Кенгурёнок может просто не запуститься.

И ещё одно, не менее важное, замечание: программа DOSBox есть не только в ОС Windows, но и в Linux. Однако в Linux не получится так просто и быстро запустить среду исполнителя под DOSBox, придётся действовать «по правилам» — запустить DOSBox, смонтировать диск и запустить программу с этого диска. Этот процесс подробно, со скриншотами описан в электронном практикуме, рассчитанном на среду Linux.

Крошка Ру — русскоязычная среда, все команды в СКИ записываются на русском языке символами кириллицы. Так как команды можно не набирать с клавиатуры, а получать с помощью «горячих» клавиш, то можно было бы и не вспоминать о проблеме «русификации» клавиатуры, если бы не приходилось вводить имена процедур. Конечно, они могут быть записаны и латиницей, но всё-таки предпочтительнее использовать кириллицу. Для того чтобы была возможность набирать русские буквы, перед запуском программы ROO.EXE необходимо запустить русификатор, например, файлик keyrus.com. Естественно, чтобы и русификатор, и среда исполнителя запускались в одном консольном окне (или в одном окне DOSBox), их необходимо запускать с помощью bat-файла. Как это делается, рассказано в первом же уроке электронного практикума. Заметим только, что bat-файл точно так же можно запустить в DOSBox, кинув его на ярлык программы.

Итак, вы запустили среду исполнителя Крошка Ру. Отличительными особенностями этого исполнителя являются, пожалуй, два момента:

Кроме клавиш и стоит запомнить клавишу Tab, которая переключает строку меню, комбинацию клавиш Ctrl+A, позволяющую изменить скорость работы исполнителя, и, наконец, аккорд Ctrl+F, завершающий работу программы.

Не думаю, что составление и тестирование программ для Крошки Ру вызовет у вас затруднения. Отметим лишь, что программа считается составленной корректно, если её выполнение не завершилось ошибкой (скуксившимся, обидевшимся Кенгурёнком). При этом Кенгурёнок может не закончить движение (зациклиться) — такой вариант программы считается корректным, поскольку считать Кенгурёнок не умеет.

В качестве практического, «компетентностного» задания хочется предложить вам рассмотреть очень интересного исполнителя, который вполне способен заменить Крошку Ру при изучении основ алгоритмизации. Это исполнитель Стрелочка, входящий в состав УМК «Интегрированная система „Стрелочка“», демоверсию которой можно скачать, например, здесь: http://olimp.perm.ru/index.php?name=News&file=article&sid=147.

Эта программа очень похожа на среду Кенгурёнка, только имеет более современный и удобный для разработки программ интерфейс. Работать она может в двух режимах: Разработка и Отладка. В режиме разработки составляется программа — это можно делать либо с помощью кнопок на панели инструментов, либо с помощью соответствующих функциональных клавиш. В режиме отладки программа запускается с одной из трёх доступных скоростей. В качестве примера приведём программу, обходящую поле по периметру:

Почему я назвала это задание «компетентностным»? Если вы после изучения одного исполнителя сможете самостоятельно разобраться с другим, похожим, но не идентичным, значит, какие-то компетенции вы у себя уже сформировали ;).

Пожалуй, это всё, что сегодня хотелось бы рассказать о графических исполнителях. Далее вы просто посмотрите уроки 1—4 в электронном практикуме и учебном пособии.

А мы сейчас подробнее остановимся на последнем, четвёртом уроке курса «Независимое расследование, или Что же такое алгоритм». Здесь мы опять отошли от общепринятых норм — мы приступаем к исследованию свойств алгоритмов уже после того, как были рассмотрены основные алгоритмические понятия. Действительно, чтобы свойства были по́няты, приняты, необходимо иметь представление о предмете исследования. К четвёртому уроку дети уже имеют понятие об алгоритмах, уверенно или не очень уверенно их используют — теперь пришла пора рассмотреть их особенности. Мы попытались построить этот урок в форме игры-путешествия, в котором дети постепенно получают определение алгоритма, состоящее, по сути, в перечислении его свойств. Несмотря на то, что урок этот скорее теоретический, чем практический, учащимся предоставляется возможность активно участвовать в формировании своих компетенций, выполняя практические задания. В задачнике детям также предлагаются задания, направленные на актуализацию понимания понятия алгоритма (да простят мне руссковеды этот оборот). Так, во втором задании задачника предлагается среди предложенных объектов выбрать те, которые являются алгоритмами:

Возможно, я вас удивлю, если скажу, что это задание не имеет абсолютно точного решения. Совсем недавно старейший и опытнейший учитель информатики до хрипоты спорил, уверяя меня, что географическая карта является прекрасным алгоритмом, ведь по ней можно найти путь к любому нужному нам месту. В ответ я уверяла, что дополнением к карте в данном случае служит схема маршрута, «заложенная» в голове туриста — он просто не отделяет её от карты. По карте можно пойти куда угодно, тогда как алгоритм должен нас привести в строго определённое место (возможно, зависящее от некоторых условий — входных параметров).

Если в процессе поиска решения этого задания вы с учащимися обсудите подобным образом все пункты (ну или не все, а только самые спорные), подсознательно или сознательно «примеряя» к ним свойства алгоритма, то цель задания будет достигнута.

Ну а вы сейчас в качестве первого пункта домашнего задания попробуйте выполнить следующую задачу: запишите все аргументы «за» и «против» для каждого пункта. Оформить задание можно в виде такой таблицы:

Объект «За» то, что это алгоритм «Против» того, что это алгоритм
настенный отрывной календарь 1. На страничках календаря могут быть записи о том, что нам нужно сделать в этот день, значит, это алгоритм нашего поведения в конкретный день.
2. Календарь говорит нам, какой сегодня день — будний, выходной или праздничный, значит, это алгоритм нашего выхода на работу/учёбу.
 
схема выхода из здания в случае пожара    
поваренная книга    
   

Только не спешите подсматривать «верное» решение, это просто «авторский» вариант :-).

Для проверки

Остальные пункты домашнего задания будут такими: