Anatoly Levenchuk (ailev) wrote,
Anatoly Levenchuk
ailev

Повторение курса алгоритмики: всё идёт штатно

Как я и говорил, сейчас у дитятки идёт возобновление навыка слепой десятипальцевой печати (VerseQ) и повторение курса Кириенко (http://server.179.ru/wiki/?page=DenisKirienko/Kumir). Скорость печати сейчас чуть больше 30 ударов в минуту (но минимально вдвое-втрое больше, если речь идёт о специфических операторах Ершола+Робота, типа "не клетка закрашена"), плюс пройдены задачи уроков со второго по середину восьмого (т.е. сейчас идут задачи на комбинирование циклов и условий).

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


использовать Робот

алг Найти незакрашенную клетку в закрашенном ряде
дано | Робот на прямоугольном поле, ниже робота ряд из закрашенных клеток, одна из которых не закрашена
надо | Робот в незакрашенной клетке закрашенного ряда
нач
. нц пока не клетка закрашена и не снизу стена
. . вниз
. кц
. если клетка закрашена
. . то
. . . зквр
. . иначе
. . . если не клетка закрашена
. . . . то
. . . . . нц пока не слева стена
. . . . . . влево
. . . . . кц
. . . . . нц пока не клетка закрашена
. . . . . . если не клетка закрашена
. . . . . . . то
. . . . . . . . вправо
. . . . . . . . если не клетка закрашена
. . . . . . . . . то
. . . . . . . . . . влево
. . . . . . . . . . вверх
. . . . . . . . все
. . . . . . все
. . . . . кц
. . . . . зквр
. . . все
. все
кон

алг зквр
нач
. нц пока клетка закрашена и не справа стена
. . вправо
. кц
. если клетка закрашена
. . то
. . . нц пока не слева стена и клетка закрашена
. . . . влево
. . . кц
. все
кон


Я не сообщил дитятке о возможности использования в IDE КуМир условий типа "справа свободно", чтобы он наловчился сочинять конструкции типа "клетка закрашена и не справа стена". Тема со сложными условиями -- это шестая тема курса. Для решённой задачи не было сделано ни единой подсказки, а сама задача была составлена так, чтобы высечь из дитятки максимальный набор конструкций языка -- и вспомогательный алгоритм, и вложенность операторов, и сложные условия с логическими операциями, и умение обходиться без go to для выхода из разных вложенных циклов. Поскольку оператор "выбор" в этой версии КуМира сбоит, то дитятко предпочитает использовать конструкцию "иначе если" для моделирования case.

Напомню, это только первая неделя четвертого класса -- и это повторение. Данная задача решалась и год назад, задачи курса мы не пропускаем. Самое интересное тут, это выяснить, что изменилось за год отсутствия занятий. Конечно, за этот год было забыто почти всё (а ведь курс закончился прохождением урока 16 в январе 2012, девять месяцев назад). Но это было понятно сразу, по этому поводу не волновались. Нынешнее повторение пройденного заключается в том, что по-прежнему проходим все задачи подряд "сержантским методом", не пропуская. В отличие от первого прохода, объяснений и подсказок не делается вообще, дитятко просто остаётся с задачей один на один до полного её решения. Простые задачи в этот раз разрешается сдавать устно: в зачёт идёт диктовка правильного кода. Если с трёх-четырёх попыток код устно диктуется невнятный, то предлагается задачу решить "письменно" (т.е. показать в IDE КуМир, как проходятся все тесты для этой задачи -- а их обычно немало).

Обычно начальные задачи урока решаются устно, а потом приходится переходить на запись решения. Время решения одной задачи оказалось резко ("на глаз" -- минимум втрое) меньше, чем при начальном прохождении курса, даже при учёте отсутствия подсказок и объяснений. То есть это таки повторение, а не повторное обучение.

Из забавного: в школе прошёл первый урок информатики. В четвертом классе "информатика" -- это работа с графическим редактором, подготовка презентаций, работа с редактором текстов и т.д.. Дитятка был крайне обижен и разочарован, что его не учат в школе программированию, а вместо этого на "информатике" сделали урок рисования. Он даже не понял, что суть его первого школьного урока "информатики" (не могу не писать в кавычках -- ибо я информатику понимаю как в http://ailev.livejournal.com/1008054.html) в знакомстве с графическим редактором. Он не отличил использование графического редактора от использования карандаша (они для него одного поля ягоды, с равной технической сложностью освоения), и посчитал, что их там просто заставляли рисовать море и дельфинчиков -- вдобавок к уроку ИЗО. Всё-таки домашнее образование и школьное образование в этом плане существенно несовместимы. Жена волнуется, как объяснить тамошнему учителю информатики нашу ситуацию. Я предложил ей подготовить дома с дитяткой какую-нибудь интересную фотожабу со старкрафтовскими зергами, протоссами и терранами вместо моря с дельфинчиками -- и пусть дитятко предъявит её учителю информатики с просьбой немедленно поставить зачёт на четверть вперёд. Может, ситуация в чём-то и изменится...

Дальше будем повторять рекурсию, величины (ага, данные появляются в этом курсе алгоритмики почти в самом конце курса! никакая это не "информатика") и их использование как счётчиков, аргументы во вспомогательных алгоритмах и возврат ими значений, работу с плавающими (поиски максимумов и минимумов). Это всё должно закончиться ещё в сентябре. Далее -- переход к робототехнике (http://ailev.livejournal.com/1023159.html). Надеюсь, к этому моменту у робота уже появится управление из КуМира -- этим сейчас занимаются в Пущино.
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 20 comments