今朝は、少し雲はあったものの、晴天。
1日中晴れて、余り暑くなく、落ち着いた天気だった。
今日は、少し早めに昼食を摂ってからジムで軽く汗を流した。
帰宅して一休み。
少し調べ物をした後で、中学校のボランティアに出かけた。
中学生のプログラミングの支援をしているのだが、
Scratchというビジュアルプログラミング言語でのプログラミングの支援をしている。
以前も書いたが、Scratchでのプログラミングが論理的思考力を高めるかどうかは、少し疑問である。
子供たちの多くは、最初からブロックを組み合わせたコードを書いて、
うまく動かないと、ブロックを組み直して、何とか動くようにしている。
思考錯誤(CI)というとイメージはいいが、子供たちは、
自分が何をどこまで作っているかよくわからない中で、
コードにいろいろと書いてみて、とりあえず動くようにしている。
あまりロジカルではない気がする。
例えば、緑の旗でスタートする処理を別々に複数書いており、
それらが相互に干渉してうまく動かないときもある。
本質的には、処理に順序性があれば、別々に書かないで逐次的な処理に書き換えるべきだが、
とりあえず動かすために、少し遅延処理を入れて動かしてしまう。
これだと、そのPCではとりあえず動いても、他の処理速度の違うPCに持って行くと
うまく動かないかもしれない。
またどこかの処理を組み替えたときにもタイミングが違って動かなくなることもある。
こんな感じなので、どうすれば良いScratchのプログラムが書けるかをまとめてみた。
現状は七箇条だが、さらに子供たちのプログラミングを見ていくと、項目が増えるかもしれない。
いまあちこちでScratchプログラミングを教えているが、どのようにしているのだろうか。
単に動くプログラムを作る、というのではなく、ロジカルに思考する、ということを
実現できているところが、どの程度あるのだろうか。
出来ているところがあれば、どのように教えているのか、是非勉強してみたいものだ。