デバッグを小1に教えた話

小1の子どもたちにビスケットを教えてます.彼らには昨年の12月(年長のとき)から月に2回くらいずつ,少しずついろいろなことを教えてます.すごく得意な子もいますけれど,普通の子も半分くらい混ざっているので,そういう子どもたちに無理のないような進め方を試させてもらっています.

昨日やった課題は,こんなやつです.全部で90分のうち前半の60分は違うことをやって,残りの30分でこれをやりました.

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-09-09-8-06-15

お化けの絵と,矢印の絵は最初から用意されていて,子どもたちは4つのメガネと矢印の道をつくるだけです.いままでの課題ではすべて新しく絵を描かせていたのに対して,この回だけは一つも絵を描かせずにやりました.

まずは,ステージに矢印とお化けをこのように置きます.

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-09-09-8-15-29

つぎのようなメガネで,矢印は動かずにお化けが上にすすみます.

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-09-09-8-15-57

これができると,矢印を3つ並べると

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-09-09-8-16-26

お化けがトットット,と3つ上に進みます.さらに,その先に横向きの矢印をつなげて,お化けが横に進むようにします.

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-09-09-8-20-05

それができたら,つぎは四角に囲んでお化けがグルグル回るようにします.

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-09-09-8-23-27

そして,つぎのような分岐も教えます.

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-09-09-8-24-06

別の向きの矢印をつなげると,お化けはどっちの道に進むかをランダムに選ぶようになります.これだと左に分岐したときに行き止まり,ということになります.

制作の指導はなかなか難しいものでした.簡単に作れちゃう子もいれば,

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-09-09-8-28-06

のように,お化けの位置がかわらずに,矢印が動いてしまう,というのをつくってしまい,どうしてそうなるのかがわからない子がかなりの数でてきました.全員がすんなりと理解できるにはかなり難しい問題だったのでしょうね.それでも先生方がお手伝いをしながら,全員がちゃんと動かすことができるようになりました.

ちょっと脱線しますが,普段のビスケットは絵を描いて,それを動かすメガネを作りますが,メガネのなかの部品の置き方がアナログ的といいますか,割と自由に置けるので,誰一人同じプログラムをつくることはありません.それに対して,今回は方眼紙のモードになっていて,ピタッとした位置にしか部品を置けません.それで全員が正確なプログラムを簡単に作れるようになるのです.

ぼくは,常々プログラミングは創造的であるべきと思っていて,全員が同じプログラムができてしまうという課題は好きじゃないのですが,今回は全員が同じプログラムになってしまいます.ところが,矢印の配置が全員違うのです.そこに創造性があるんですね.

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-09-09-8-39-13 %e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-09-09-8-39-29 %e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-09-09-8-40-07

みんなちゃんと回路が閉じるように(よくみると間違っているところもありますが)矢印を並べています.こちらがそうしなさいと指示したわけでもないのに,それがしっかりできていました.

さて,ここから表題のデバッグを教えた話です.

数名,突然動かなくなったという子が出てきました.さっきまで動いていたのに,なぜか止まってしまう.お手伝いいただいていている先生方は幼稚園の先生なので,プログラミングの専門ではなく,その方々もなぜ動かなくなるか教えられない状況です.

ぼくがみるとすぐに原因がわかるのですが.

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-09-09-8-27-41

ステージに矢印を並べていくときに,間違って矢印を部品置き場からじゃなく,メガネのなかから取り出してしまったようです.ぼくが「ここに矢印がないよ」って教えてしまえばそれまでなのですが,試しにデバッグの方法を教えてあげました.

「最初から動かしてみて,どこで動きがおかしくなるかよく見てみて」

「あ,オレンジの矢印が変だ」

「オレンジの矢印のメガネは大丈夫?」

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-09-09-8-57-23

「あっ」

というわけで,何が壊れてしまったのかがわかって,無事,自力で修正できました.

シェアする

  • このエントリーをはてなブックマークに追加

フォローする