Жить играючи
АрхивУчитель, воспитай ученика, чтоб было у кого потом учиться…
По мотивам стихотворения Е. Винокурова
Сразу после окончания мехмата я работала в научно-исследовательском институте. В те времена научные сотрудники ценились еще меньше, чем сейчас, поэтому нас постоянно куда-нибудь посылали: то в колхоз картошку убирать, то на Ленинский проспект Тодору Живкову (тогдашнему руководителю Болгарии) флагами махать. Но чаще всего нас направляли в Госстрой (так в Советском Союзе называлось главное строительное ведомство) - складывать четырехзначные числа и сумму в бумажки вписывать. Или просто переписывать цифры из одних бумажек в другие. Дело в том, что наш институт в свободное от других дел время должен был внедрять в строительство автоматизированные системы. Я проработала в институте недолго - всего два года (хотя и плодотворно: родила двоих детей и сдала два кандидатских минимума), поэтому про всю организацию в целом я не знаю, но наш отдел сосредоточился не на автоматизации строек, как можно было бы ожидать, а на автоматизации офисной работы, связанной с их планированием. Видимо, именно поэтому в конце каждого квартала, когда очередной вал отчетности накрывал сотрудников Госстроя с головой, нас посылали в помощь, чтобы мы воочию убедились, как им, бедным, плохо без нашей автоматизации. Так вот, во время одного такого аврала прямо в огромный зал, где мы сидели среди других счетоводов, внезапно пришел лектор и рассказал об очередных происках империализма в Анголе (видимо, у него тоже была шефская отработка). Можете себе представить, насколько его выступление заинтересовало наш углубленный в строительную отчетность коллектив!
Эта давняя история пришла мне на ум в связи с тем, что я решаюсь рассуждать на тему отцов и детей в "Компьютерре", а большая часть ее аудитории состоит из компьютерно-озабоченных юношей, которые, если и успели завести не виртуальных детей, то, наверняка, не успели задуматься о том, как их воспитывать. Однако, будучи по своей природе оптимистом, я все-таки попробую высказать свои мысли на эту тему в надежде заинтересовать хотя бы оставшихся.
Мой исходный тезис очень прост: в основе воспитания детей непременно должна лежать совместная деятельность (разумеется, я не претендую на авторство идеи - я просто ее разделяю). То есть, никого нельзя воспитать одним лишь чтением лекций на тему, что такое хорошо и что такое плохо. Еще меньше вероятность, что дети вырастут похожими на вас (к чему, как правило, стремятся все родители), просто наблюдая за вами со стороны и проникаясь вашим величием. Важно делать вместе с детьми что-то обоюдно интересное, ненавязчиво демонстрируя, как это нужно делать и как вообще люди могут сотрудничать.
Идем дальше: если вы - столяр, то вы можете совместно с сыном столярничать, а если вы - портниха, то - совместно с дочерью шить. Сразу же возникает вопрос: чем заниматься столяру с дочерью, портнихе с сыном, а физику - с детьми обоего пола? Естественно, тут есть много разных решений: собирать марки, ездить на рыбалку, разводить кроликов и многое-многое другое. Я же хочу обсудить вариант, который подошел мне и который, вероятно, понравится многим читателям "Компьютерры", - околокомпьютерную деятельность.
Чем, на мой взгляд, компьютеры перспективнее, допустим, марок? Во-первых, разнообразием возможностей. С помощью компьютеров можно развивать как математические, так и литературные, музыкальные, художественные и всякие другие способности (исключение составляют, пожалуй, спортивные навыки, если только не использовать компьютер в качестве штанги). Во-вторых, работа, скажем, с CorelDraw может сделать довольно обременительное для родителей рисование домиков с трубой и дымом увлекательным не только для детей, но и для взрослых. А в-третьих, это такая сфера, в которой дети очень быстро начнут вас обгонять (я имею в виду компьютерщиков-любителей, а не профессионалов), что мне кажется принципиально важным. Детям скучно все время быть на вторых ролях, постоянно сознавая ваше превосходство, а компьютерная техника быстро даст им возможность почувствовать себя с вами наравне. (Мои сыновья, например, давно уже смотрят на мое взаимодействие с ПК снисходительно, ощущая себя настоящими спасителями и защитниками слабой женщины от бездушного чудовища. Разве это не замечательно?)
Компьютер и дети. Первое, что приходит на ум в таком контексте - это компьютерные игры. Поскольку сама я в них не играю, да и сыновья, думаю, восприняли бы мое участие в их кровавых битвах как неуместную обузу, то на этом направлении деятельности я останавливаться не буду. Здесь все очевидно: одни родители могут с пользой для воспитания и к взаимному удовольствию строить с детьми новые цивилизации или истреблять отвратительных монстров, а другие - нет. Решайте сами, к какой категории относитесь вы.
Лично для меня самым привлекательным было совместное программирование, правда, программировали мы не на PC, а на чем придется, потому что, когда мои дети были маленькими, о персональных компьютерах можно было только читать в публикациях про зарубежную жизнь.
Впервые с программными кодами мои дети столкнулись в связи с калькулятором. Нам подарили очень крутой по тем временам калькулятор Hewlett-Packard, в который можно было ввести программу команд на двести. К калькулятору прилагалось и руководство с примерами таких программ. Одна из них была реализацией игры - элементарной версии морского боя с одним одноклеточным кораблем. Поскольку память у нашего чуда техники была только оперативная, то перед каждой игрой детям приходилось каждый раз вводить все команды (больше ста штук) заново. Если не знать, какая буковка или цифирька за что отвечает, то стоит при вводе один раз ошибиться - и начинай все сначала. Прекрасное упражнение на внимательность и усидчивость, которое постепенно проясняет и смысл отдельных строчек программы. Потом я посоветовала модифицировать код так, чтобы корабль менял свое положение после выстрела, и рассказала, какие для этого нужны команды. Дети подумали и сделали. А ведь такого рода задачи и на современных ПК интересно решать. Можно, например, устроить соревнование различных программ игры в крестики-нолики.
Самой простой программой, реализованной на том же калькуляторе, был "вечный календарь". Вы вводите число, допустим, 1 января 2000 года, а программа вычисляет, на какой день недели оно приходится (в частности, детям всегда интересно, в какой день недели они родились). С такой программы можно начать изучение программирования: алгоритмически она совсем простая, зато можно разобраться как следует с високосными годами, повысив общую эрудицию (все ли взрослые знают, что 1900 год не был високосным, а 2000-й будет?).
На следующем этапе домашней компьютеризации мы приобрели первый советский домашний компьютер, БК 0010, в просторечии - "Бэкашку". Он был снабжен никому не известным языком Фокалом (некая фантазия на тему Бейсика), а в качестве постоянной памяти использовал магнитофонные кассеты, программы с которых читались через два раза на третий и преимущественно на породившем их ПК. Этот этап ознаменовался написанием первых примитивных игр для домашнего употребления. Был создан экономический шедевр типа "Монополии" (старший сын даже летал с ним на конкурс в Красноярск, получив приз за "зверскую фантазию", потому что персонажи игры были зверями), а также простенькая программа "искусственного интеллекта": она поддерживала некое подобие диалога. Например, на вопрос "как тебя зовут?" она могла ответить: "Какое это имеет значение?", а если собеседник возмущенно восклицал в ответ: "Очень большое!", программа успокаивающе советовала: "Не стоит так волноваться". На неискушенных тогда еще советских людей она производила большое впечатление (в основе был набор заготовок и датчик случайных чисел, а критерием для выбора ответа служил только знак препинания, введенный последним). Такого рода программу можно реализовать на любой технике и усложнять до бесконечности.
А еще для "Бэкашки" имелся музыкальный синтезатор, проигрывавший введенные в компьютер ноты (он особенно увлек дочку). Звучание, конечно, было ужасным, ни темп, ни тембр практически не регулировались, но сколько было поисков нот любимых мелодий, решения мелких технических сложностей и какое удовольствие получали все члены семьи, слушая хрипы и завывания этого "музыкального" устройства!
Сейчас детей уже вроде и воспитывать поздно, и в компьютерах они лучше меня разбираются, так что на мою долю остается только пятилетний племянник, который пока до программирования не дорос. Однако и для совместной деятельности с маленькими детьми компьютер вполне годится. Возьмем того же племянника, Тимура. Ему пора учиться читать, а сидеть с азбукой, как и большинству других детей, скучно. Зато очень интересно подойти ко мне во время работы и спросить: "А мы будем с тобой вечером буковки закрашивать?" Его любимая игра: печатать на экране разные слова (стандартный ассортимент - "мама", "папа" и прочее), а потом задавать каждой букве свой цвет. (Методический совет: лучше выбрать достаточно большой размер букв, например 36, и нажать клавишу фиксации верхнего регистра, чтобы не вдаваться для начала в такие детали, как различия между "А" и "а".)
А еще мой младший сын сочинил специальный макрос, который выдает на экран картинку из некоторого набора (мяч, кот и т. п.), а ребенок должен напечатать соответствующее слово (понятно, что степень участия взрослого в процессе ввода слова можно варьировать в зависимости от обстоятельств), и тогда на экране появляется веселая рожица, а если слово напечатано с ошибкой, то рожица появляется мрачная. Однако эта замечательная программка у нас не прижилась, потому что Тимуру (тогда еще совсем маленькому) страшный человечек показался слишком страшным, и он отказывался нажимать на ввод, не получив предварительно моего одобрения. В результате, игра потеряла смысл.
Одним словом, с помощью компьютера маленьких детей можно учить читать, писать, считать и рисовать, развивая все те же навыки, что и при использовании традиционных методов, плюс умение работать с клавиатурой и мышью (последнее, между прочим, является полезным упражнением для маленькой ручки, аналогичным допотопному строительству колодца из спичек).
Когда же дети дорастают до программирования, то самое сложное заключается в подборе адекватных задач: не слишком трудных и при этом увлекательных. Можно просто взять какой-нибудь задачник для детей нужного возраста (я, правда, таких задачников не знаю). А можно пытаться решать с помощью программирования задачи, возникающие в жизни. Я приведу несколько примеров из своего опыта, а вы, наверняка, вспомните о чем-нибудь своем.
Когда я была маленькой, папа страшно поразил мое воображение, рассказав, что всякий достаточно длинный текст, зашифрованный по принципу замены каждой буквы алфавита определенным значком, можно расшифровать. Он объяснил, что каждая буква русского языка имеет определенную частотность и, посчитав, сколько раз тот или иной значок встречается в тексте, можно выявить, например, некоторых кандидатов на буквы "о" и "е" (самые часто употребляющиеся в русском языке), если при этом окажется, что один из значков встречается как самостоятельное слово, то, скорее всего, именно он и обозначает букву "о". Ну и так далее, не вполне алгоритмично, но достаточно конкретно, чтобы я смогла тут же раскодировать его шифровку (разумеется, метод не проходит для текстов типа списка фамилий на букву "Щ"). Когда подросли мои дети, я поделилась с ними этим маленьким чудом, и они тоже восхитились.
Тогда у нас дома еще не было компьютера, и идея написать программу такой расшифровки не возникла. Впоследствии, ведя занятия по программированию на ЕС (одни из первых отечественных мэйнфреймов, занимавшие огромные залы вычислительных центров), я пыталась увлечь студентов курсовой работой на эту тему. Но прагматичная молодежь предпочитала упорядочивать матрицы и не связываться с нестандартными формулировками.
Мне эта задача кажется весьма привлекательной для домашнего употребления. По-моему, очень интересно вначале вместе с детьми искать в русских текстах различные закономерности (какие буквы не могут входить в двухбуквенные слова, какие буквы не могут стоять рядом и т. п.), а затем реализовывать соответствующие алгоритмы и смотреть, насколько удается продвинуться в расшифровке образца (естественно, шифровать удобнее всего не значками, а буквами или числами). Причем прежде всего, для раскачки, надо будет написать самую простую программу - программу зашифровки текста по заданному коду, потому что где же иначе брать образцы для работы? Можно тщательно шлифовать интерфейс, отрабатывая ввод текста и кодировки. А потом можно сменить язык. Русский на английский, или Паскаль на Си. И все начнется с начала. В качестве побочного эффекта можно ожидать всплеска интереса и к иностранному языку тоже.
В детстве я ездила в школу на троллейбусе. Естественно, по возможности я в дороге читала книжки. Хотя я могла читать даже стоя, в битком набитом троллейбусе иногда и книжку достать из портфеля не удавалось, - тогда приходилось играть в умственные игры. Например, берешь номер салона (допустим, 7177) и начинаешь, пользуясь четырьмя арифметическими действиями, составлять из этих четырех цифр числа от одного до куда получится. В данном случае 1 уже есть сразу, 2=1+7:7, 3=1+(7+7):7, а 4 не получается. Игра кончилась. Меня всегда интересовало, какие комбинации цифр являются более перспективными, то есть позволяют дойти дальше всего, и где этот предел. Какие-то закономерности я нашла: хорошо, если в наборе есть единица, плохо, когда много одинаковых цифр и т. д. Но полного решения я тогда не знала.
И снова я попыталась пристроить эту задачу студентам, и снова потерпела неудачу. (Видно, на чужих детей моего энтузиазма не хватает.) Зато, как только дома появился уже упоминавшийся БК, мы с сыном тут же запрограммировали этот перебор и запустили программу. Она была устроена так: для каждого набора из четырех цифр находилось предельное достижимое число и выдавалось на экран (принтера у нас тогда, естественно, не было).
В принципе, вместо выдачи на экран можно было бы копить результаты в памяти и потом выбирать максимум. Но то ли памяти на это не хватало (там, кажется, были очень суровые ограничения на величину массива), то ли интересно было увидеть всю картину зависимости предела от четверки цифр в целом, - во всяком случае, результаты последовательно выдавались на экран. (Хотя, конечно, и без массива можно обойтись. Просто времени не было довести алгоритм до ума, очень уж хотелось поскорее узнать ответ на вопрос, мучивший с детства.)
По причине все того же оптимизма, о котором я уже упоминала, я переоценила производительность нашей "Бэкашки". В итоге, я ушла на работу (все к тем же нелюбознательным студентам), а сын остался дежурить у экрана, списывая с него данные в тетрадку (ведь они же безвозвратно уходили за кадр!). И так просидел несколько часов. Зато теперь мы с ним знаем выигрышную комбинацию!
У этой задачи есть несколько естественных продолжений. Можно заменить четверки пятерками, шестерками и так далее, а начать, для простоты, можно с троек или даже двоек. Кроме того, можно добавить возведение в степень и извлечение корня (правда, мне всегда казалось, что это не дает особых преимуществ). А еще можно разрешить использовать двузначные и трехзначные числа, образуемые данными цифрами.
Другая троллейбусная игра была совсем короткой: нужно было определить, "счастливый" ли мне достался билет. Троллейбусные билетики имели шестизначные номера, и счастливыми считались те, у которых совпадали суммы трех первых и трех последних цифр. В конце концов, я заинтересовалась вопросом, сколько же всего "счастливых" номеров и, соответственно, какова вероятность "стать счастливой".
Опять-таки за неимением компьютеров я провела подсчеты вручную (по ходу дела меня, я помню, удивило, что чаще всего встречаются "счастливые" билеты с суммой 13). У меня ушло на это довольно много времени, и результат я тогда получила неправильный, зато много лет спустя я встретила в учебнике программу на Бейсике, которая решала эту задачу в десять строк.
Когда "Спортлото" только появилось, оно было очень популярно и вызывало много разговоров и споров. Мой папа, например, обратил внимание на то, что почти в каждом тираже встречаются два подряд идущих числа. Он посчитал это противоестественным и счел доказательством каких-то жульнических махинаций. Он даже придумал, как они это делают. Мне же хотелось верить во всеобщую честность, и в связи с этим я время от времени принималась вычислять вероятности, но путалась, сбивалась и бросала. Пока, наконец, не придумала элементарную программу, которая показала, если не ошибаюсь, что вероятность двух подряд идущих чисел чуть ли не больше половины. (Я сейчас пишу не про математику, а про компьютеры, поэтому проверять принципиально ничего не буду. Если кто-то захочет меня уличить в ошибке, тем лучше: я ведь и хочу привлечь вас к решению детских задач.)
В моих примерах явно просматривается математико-программистский уклон, но я уверена, что люди с другим образованием могут придумать не менее интересные способы совместной с детьми работы за компьютером. При этом родители смогут убить не двух, а целых трех зайцев: научить детей чему-то полезному в выбранной предметной области, привить навыки работы на ПК и главное - активно и с удовольствием поучаствовать в воспитании своих чад.