Наука — Школе |
Главная страничка занятий с 5-классниками Предыдущее занятие Следующее занятие
До занятия
Мысли
всколыхнулись присутствием того самого, многократно
вспоминаемого сисадмина:
Нормальный компьютерный гений. В коих крайний, говорят, недостаток, и, мол, надо их на 9% больше.
Оно вроде и неплохо, но если присмотреться, тут получается логическая
неувязочка:
С одной стороны, легенда в народе такая, что без гениев этих никак не
обойтись и, значит, деньги давай.
А если заглянуть с другой -- всё запутали так, что без них не обойтись, как раз
эти самые гении (как класс).
А еще умные люди вроде нашего консультанта Николая Вальтеровича говорят про "раковую опухоль избыточной сложности":
Цитата из этого интервью, 2005 г.: pdf, 360К. Прочесть надо бы всем учителям информатики.
Если кто все-таки не верит нашему консультанту, вот еще умная тетенька (Радя Перлман, изобретатель одного из важнейших алгоритмов для сетей, в том числе интернета) практически то же самое сказала в 2006 г., только по-немецки: "Alles ist viel zu kompliziert" = "Всё слишком (viel), слишком (zu) сложно." (страничка журнала с ее фото и словами в заголовке: jpg, 529К).
Короче, гениев этих компьютерных надо, если по-хорошему, числом помене (другие гении, что ли, не нужны?), но зато пороты они должны быть с детства по науке, а не абы как, как сейчас, а то так и будет расти "опухоль" и нас всех душить......
Ладно, будем героически продолжать преодолевать "инерцию системы образования", "с безразличием принимающую то, что навязывает обществу ИТ-индустрия".
Читать
эти странички, сообщают, начали не только иногородние учителя в нарастающем
количестве, но и некоторые родители участников. Это
хорошо.
Занятие
Первым в пустой еще класс ворвался Тима (успев по пути сообщить, что какой-то информатикой без компьютеров он занимался и даже слышал про цикл) и тут же засел за свой комп:
Поэтому он и был первым, кого настиг злобный Трэп (по
английски Trap -- "ловушка";
кстати, лучше перевести как Трап, ср. у
Фенимора Купера "траппер" = охотник, ставящий ловушки на
пушных зверей).
Вот обещанная с прошлого раза картинка, как это выглядит:
Сам Трэп -- переднее окошко, в нем вверху так и написано, ТРЭП 21 (нарушено предусловие). Рабочий документ -- правое окно, там внутри одна серость. О том, что делать в такой ситуации, уже рассказано в прошлый раз -- рецепт работает, немножко занудно, но не сложно. Поэтому пока не дергаемся, хотя занудство это надо, конечно, изничтожить -- просто легче будет заодно сделать еще несколько упрощений.
Про Трэп
Трэп -- это просто информационное окошко, которым Блэкбокс сообщает, что
прервалось выполнение какой-то процедуры. В окошке Блэкбокс культурно
прописывает разную полезную информацию, например, можно узнать, в каком точно месте
произошел облом: достаточно кликнуть по голубому ромбику справа в первой строчке
после жирного заголовка -- и откроется исходник модуля, где облом произошел,
причем команда-виновница будет выделена, примерно так:
Можно еще проследить, откуда была вызвана эта процедура, и т.п. -- но всё это пока слишком для нас сложно.
В данном случае сообщилось, что "нарушено предусловие". Это
означает, что программист (из числа авторов Блэкбокса) проявил культуру и в
начале процедуры поставил какую-то нужную проверку (оператор ASSERT;
вещь краеугольная, должна быть изучена в надлежащее время). А когда процедура начала
выполняться, проверка показала, что ожидаемые условия не
соблюдены (это уже вина авторов Черепашки), и поэтому Блэкбокс прервал
выполнение.
Блэкбокс очень строгий насчет
всяких проверок. И не зря.
Из предыдущего трапа не видно, что виновница -- черепашка.
А вот тут зато это видно очень хорошо:
Красной стрелки на экране не было, ее пририсовал info21 уже на фотку. Стрелка указывает на имя модуля LabTasks -- Lab это как раз черепашка с роботами. В общем, черепашечья процедура вызвала некую процедуру в блэкбоксовском модуле TextViews (средний синий ромбик слева), а оттуда была вызвана еще другая процедура в блэкбоксовском модуле Ports (верхний синий ромбик слева), где и произошел облом -- в данном случае деление на нуль, о чем и сообщается в самом верху.
Но заморачиваться всем этим не нужно -- такие трэпы можно просто закрывать, как уже рассказано.
Единственная новость насчет Трэпа в том, что у Жени, у которой раньше не было Трэпов, вдруг они случились сразу огромным косяком -- штук двадцать окошек Трэп сразу! Но Женя просто хладнокровно их всех позакрывала (это удобней делать не мышкой, а нажимая Ctrl+W или Ctrl+F4 -- не надо каждый раз целиться мышкой в красный квадратик).
Опытный глаз подметил, что Трэпы имеют тенденцию выскакивать при манипуляциях с мышкой (только над черепашьими документами) -- дети любят ее непрерывно дергать. А это хороший повод научиться обходиться по возможности без нее -- все равно с клавиатуры удобней делать бОльшую часть действий редактирования.
Есть несколько стандартных команд, которые постоянно нужны (причем не только в Блэкбоксе, но и в Ворде, Блокноте и проч.). Их легче делать с клавиатуры (это сложно словами сказать и прочитать, а показать и делать совсем несложно):
Отмена
последнего действия: Ctrl+Z (нажать кнопку
Ctrl и, не отпуская, нажать Z).
Скопировать
выделенный кусок текста в буфер обмена без удаления из текста -- Ctrl+C (С-латинская).
Скопировать
выделенный кусок текста в буфер обмена с удалением из текста --
Ctrl+X (X-латинская, похожа на крест -- зачеркнуть).
Вставить
кусок текста из буфера обмена туда, где курсор -- Ctrl+V (V
похожа на галочку, которая указывает, мол, вставить).
Мизинец левой рукй
должен сам сразу находить Ctrl.
NB Нужные тут латинские буквы Z,C,X,V
стоят подряд с левого краю, близко от левого Ctrl
-- это чтобы удобно было нажимать одной рукой.
Потренироваться!
Открыть
файл -- Ctrl+O (O-латинская, через
меню Файл, Открыть).
Сохранить
документ на диск -- Ctrl+S (то же,
что через меню Файл, Сохранить -- кстати, в меню это указано).
Начать
новый чистый документ -- Ctrl+N (через
меню: Файл, Новый).
Закрыть
окно -- Ctrl+W или Ctrl+F4.
Вот как ходить и выделять курсором:
Передвинуть
курсор на одну букву влево-вправо или на одну строку вверх-вниз -- стрелочки.
Передвинуть
курсор на одно слово влево-вправо -- Ctrl+стрелочка.
Встать
в начало строчки: Home.
Встать
в конец строчки: End.
Чтобы
вслед за курсором выделялся текст -- нажать Shift
и передвигать курсор -- это работает при любых передвижения курсора.
Левая рука должна быть наготове нажимать Shift -- правая нажимает стрелочки.
Что удобней делать мышкой?
— Выделять слово целиком -- дважды по нему кликнуть (часто нужно -- например, когда копируешь команду; правда, навороты в черепашке иногда мешают это делать, но мы эти навороты еще поубиваем...).
— Грубая постановка курсора в нужное место, если нужно его переставить далеко. Грубая -- потому что точно прицелиться мышкой бывает трудно, и легче подвести курсор в точное место стрелочками. То есть: сначала ткнули мышкой приблизительно, потом точно подвели стрелочками.
— Тыкать в разные кнопки.
Всё это пока осваивается стихийно, надо бы привести в систему.
Единого плана дальнейшего рисования не было -- украшали домик
кто во что горазд.
Игорь сделал хитроумный переплет.
Марина -- как и ожидалось от девочки -- захотела цвет,
причем желтый. Конечно, info21 отказать не мог :-)
(Отмечаем, кстати, уверенное изготовление переплета -- все серединочки найдены.)
Вот команда, после которой черепашка начинает рисовать желтым:
ВыбратьЦветПераКЗС( 255, 255, 0 );
Цвета смешиваются из Красного, Зеленого и Синего. Доля цвета задается целым числом -- от 0 до 255. Желтый цвет получается смешиванием красного и зеленого -- здесь мы их взяли по максимуму, по 255. Если поставить все нули, получится черный. Если все 100 -- серый.
Цветам
и их смешиванию полезно посвятить теоретическое занятие.
Впрочем, Марина осталась недовольна эстетическим эффектом и отказалась от раскрашивания оконного переплета. А как же... подумал info21 :-)
Лиза взялась за строительство основательно -- и принялась медленно городить забор, усиленно помогая себе маханием рук и впадая в глубокую задумчивость -- семь раз отмерь:
На самом деле Лиза справлялась гораздо лучше, чем можно было подумать из ее лукавых жалоб, мол, ничего не получается. Три поворота на 60 градусов она исполнила вполне правильно в итоге, хотя и весьма не спеша.
Программы получились уже изрядно длинные, поэтому в окне одновременно не умещаются конец программы (куда происходит дописывание) и верх, где нужно кликать для выполнения процедуры и где картинка. Лиза первая испытала схему с двумя окнами на рабочий документ (меню: Окна, Новое окно). При этом первое окно должно показывать картинку, а второе -- конец процедуры. Вот как это было организовано у Лизаветы:
Два узких окошка справа как раз устроены так, как рассказано выше. (Левое окошко -- справка про черепашку.)
Чаемое упрощение Черепашки должно, видимо, как-то способствовать такой схеме работы.
Тем временем разгорячившийся Тима нарубил аж полдюжины окон, да еще пристроил сбоку гараж на две машины, чем спровоцировал девичье любопытство:
Очевидная кривость его крыш
криком просит геометрической теории насчет углов. Обсуждая сей факт, Ольга
Александровна вспомнила, как на прошлом занятии применяла теорему Пифагора в
помощь крышестроителям. Нужно все-таки в этих занятиях немножко сведений из
геометрии.
Тима явно созрел до
вспомогательной процедуры Окно -- у него их шесть одинаковых штук. У Жени, кстати, их тоже два, плюс забор
из одинаковых досок -- такой есть и у Лизы.
С Женей еще раньше
попытались устроить процедуру квадрат с параметром (размер), но параметр
вводить явно рано, можно и нужно для начала без параметров.
Забавно, что когда
info21 посоветовал Жене процедуру назвать не
квадрат полностью, а сокращенно -- кв, Женя аккуратно наставила точек (кв.)
во всех трех местах -- два раза в начале-конце соответствующей процедуры, и
еще раз в вызове. info21 настолько был не готов к
этому, что, все это время наблюдая экран, не осознал, что делала Женя, пока
Блэкбокс не стал ругаться черными квадратами. Точки, впрочем, они мелкие, не
очень-то углядишь, а строгий Блэкбокс все равно не пропустит.
Женя и Лиза придумали делать забор -- ряд одинаковых досок. Но неожиданно было наблюдать, как Женя затруднилась сообразить, что можно повторно использовать уже готовый кусок программы, рисующий одну доску: она хотела продолжать рисование прямо с того места, где остановилась черепашка после первой доски -- а надо было сначала поставить черепашку в новую исходную позицию так, чтобы можно было просто скопировать последовательность команд для первой доски. С этой проблемой она пока не справилась (впрочем, возможно, сказывалась явная простуда).
Зато научилась уверенно итерировать доски Лиза -- у нее их на экране уже целых три видны справа от домика:
Вообще эта Лиза -- прямо-таки ходячая иллюстрация поговорок:
Тише
едешь -- дальше будешь.
Семь
раз отмерь -- один отрежь.
Береженого
бог бережет.
Очень, между прочим, правильный подход к программированию.
Вася-Влад-Игорь как-то не особо проявились сегодня (разве что Вася
был похвально самоходен, отказавшись от помощи). Надо обратить на них строгое
особенное внимание в следующий раз, а то
все девочки да девочки...
После занятия
Из школы домой шли в компании с Женей и учителем химии Григорием Николаевичем Балденковым, который пожаловался, что никак не получается освободить время, чтобы продолжить овладение программированием -- по понедельникам совещание у директора, плюс замучило верхнее начальство бумагами.
Кстати, аналогичную жалобу насчет бумаг (только в гораздо более энергичных выражениях) info21 совсем недавно выслушивал от коллег-экспериментаторов: оборзевшие чиновники шлют 300-(трехсот!-)страничную электронную таблицу для заполнения отчета по гранту со словами, мол, у вас всех компьютеры же есть, вот и заполняйте.
Душат "компьютерные гении", душат сумасшедшие чиновники с компами... деться некуда от этой "цифровой революции".
Выводы
Занятия
вошли в колею.
Без
дозы теории насчет геометрии (хотя бы про углы) никак.
Раз
черепашка не любит мышку, то это повод отучать детей всё-всё делать мышкой
-- с клавиатуры работать все равно эффективней (см. выше).
Следующий
шаг в плане программирования прямо-таки напрашивается такой: первые сведения
насчет процедур, пока без параметров
(Корпус, Крыша, Окно, Дверь, ДоскаЗабора): тут надо выяснить про
позицию/состояние черепашки перед началом процедуры ("предусловие"), после
окончания ("постусловие"),
действия внутри (тело процедуры) -- и переходные действия между процедурами
(постановка черепашки в нужную позицию).
А
потом простейший цикл: шпарить, например, забор из 20 досок -- и переходить к другим красивым узорам можно.
Интересно
посмотреть на школьный бюрократический документооборот -- как школьные бумаги
ложатся на редактор Блэкбокса (там же мощный редактор).
Главная страничка занятий с 5-классниками Предыдущее занятие Следующее занятие
Наука — Школе |