ずいぶん子ども達も慣れてきました。順次処理を感覚的にはマスターしたかなという状態になりました。10歳の壁なんて呼ばれる壁が実はここでも試されていたのです。
具体的には客観視の一種ですね。ロボット相手に命令を送る。その命令がロボットにどう作用しているのか、今、なぜロボットはそんな動きをしているのか。こういう動きをして欲しいという主観と、実際の動きを見つめて、その主観から一歩離れたところから冷静に自分の主観を見つめ直す。
いつものように、大人だって失敗。思うようにはいかないものなのです。どこが原因かを自分で分かることがここでは大切なのです。自分の命令がどう作用しているかが分かっているからこそ修正できるのです。これってテストのやり直しにも通じますね。
そんなこんなで成功第1号が出ました。
その後も続々と成功していきまして、次の課題へ。
この次の課題、せっかく完成したできあがったばかりのプログラムにケチをつけられて、修正をしていかねばならないというものなのです。
喜びも束の間、その課題を言い渡されたときの反応をご覧ください。
仕事ができたと思って上司に報告したら「追加」指示を出されて「先に言えよ!」ってなるのが大人の世界。子ども達は素直です。えー!と言いながらも健気に立ち向かっていくのです。
この課題が完成したらレッスン3が終わりです。十分に順次処理を体感できたとしていいのではないかと思います。
プログラミングを教えるのではなく、プログラミング的思考を教える。そして、それは必ず学習に役に立つ。というわけで、プログラミング的思考に絡めて色んな課題を与えていこうと画策をして実行しているのです。
今回は時間の計算。普通より数倍早く動く時計を用意して、その時計で○分という指定をしました。小学生、苦手にする子がとても多いです。10歳の壁に直結するような、算数嫌いを生むような問題なんです。だからこういう系統の問題は中学受験でも出てきますね。
それからプログラムの修正。これが実は厄介なのです。
子ども達は漸く「自分が指示を出した」結果が「目の前で起こっている」ことを理解して、それをなんとか身につけて形にしたばかりなのです。
今回の指示はせっかく作ったプログラムを途中で切ってしまえ!というものですから、それはつまり「自分が出した指示」がまだ完了していないなか、「別の指示を与えて」その両方の結果を達成させる必要があるわけです。
いうなれば、頭の中で処理を並列してやる必要があるということなのです。
これは大きな壁だと思います。低学年だとかなりフォローを入れてあげないと達成できないだろうなと思います。
しかし、子ども達はすごいですね。頭をひねりながら色々とやっていきます。
プログラムとしてはまだ単純ではありますが、かなり長くなっています。
悪戦苦闘する様子をご覧ください。
前から順番に丁寧に考えたり、塊に分けて考えたり、かなりの集中力を発揮している時間だと思います。
そして実際に動かしてみると、、、
そんなに上手くいくはずもないわけです。
でも、修正も早くなっています。この辺はさすが子どもという感じですね。
午前の部はまだ途中ですが、午後の部はこの課題もクリアできました。
こんな感じです。