ハッピーコンピューティングのブログ -19ページ目

ハッピーコンピューティングのブログ

東京都小平市の小さなプログラミング教室のブログです。

先日ご紹介したエイト・クイーン。


 

実はこれ、プログラミングの題材としてよく登場します。

たとえば京都産業大学の山田先生のページ。 → バックトラック法

 

とてもきれいなコードなので印刷してみました。

 

う、、、コードがきれいだけど紙がシワシワですね。。。

失礼しました。

 

高校生の生徒さんと一緒に読んでみました。

コード・リーディングです。

えーと、 "!=" は "ノットイコール" だから、 変数 i の値と変数 j の値が一緒じゃないって意味。

つまりi列のクイーンと、j列のクイーンはノットイコール、同じ行ではない、って意味。

とかなんとか言いながら

ホワイトボードでチェスの盤面とクイーンのコマを書いて丁寧に説明していくと

なるほど!すごい!

コレ考えた人頭いいね!

いや、大学の先生ですからね。頭はぜったいいいと思います。

中高生はとてもうれしいリアクションをしながら納得、習得していってくれます。

ホントにカラカラに乾いたスポンジのようにどんどん吸収していきます。

 

バックトラック法のアルゴリズムの話だけでなくて

コーディングスタイルの話とかいろんな話ができて

とてもいい指導になったと自負しております。

 

山田先生の教材にとても感謝しております。

ありがとうございました。

 

 

ずいぶん以前に撮った作品ですが、当時小学4年生だった生徒さんが作ったクレイアニメです。

 

 

女の子らしい、かわいらしい作品になりました。

 

実はこれには元ネタがあります。

このブログでも何度か紹介していますが、60年も前に作られた世界初のクレイアニメ "Gumbasia" です。

 

 

この作品の開始から3分くらい経ったところで、笑顔が登場してウインクします。

これをマネしよう!ということで制作したのが上のアニメです。

 

何事も原理原則が大事です。

そのためには歴史を学ぶといいと思います。

 

これからの人生、たっぷり時間が残されている子どもたちは、できるだけ原始的なところを学んで、

少しずつ応用を積み上げたり作り上げたりするといいと思います。

時間のない大人は、もう原理原則を学んでいる暇はないでしょうから、いきなり応用から入らなければいけない。

できるだけ効率よく、ショートカットして実用的な知識技術を学べばいいと思っています。

 

チェスを使った有名なパズルをご紹介します。

 

8×8マスの一般的なチェス盤を用意します。

クイーンのコマを8コマ用意します (え?)

 

クイーンは、縦横ななめ、遮るものがない限りまっすぐ進むことのできる最強のコマです。

将棋で言うと飛車と角を足したような動きをします。

クイーンの通り道に別のコマがあると、クイーンに取られてしまいます。

 

さて問題です。

8個のクイーン。すべてお互いに取られないように8×8=64マスのチェス盤上に配置してください。

 

・・・

 

これが結構難しいんです。

wikipediaによるとガウスを含む多くの数学者がこの問題に挑戦したそうです。


ハッピーコンピューティングはプログラミング教室ですが

プログラミングに必要な論理的な物事の考え方を養ってもらうために

このようなアナログゲームも積極的に取り組んでおります。

 

このパズルの優れているところは

足し算も引き算も掛け算も割り算も必要ない。

簡単なルールさえ覚えれば幼稚園児でも取り組むことができる点です。

純粋に、論理的に考えるチカラを養うことができるのではないでしょうか。

 

最初に知るのはきっと

デタラメにやってもダメだ

ということではないでしょうか。

それに気づいただけでも取り組んだ価値があると思います。

 

デタラメに取り組むのはあきらめよう。

仕組みを知るために観察しよう。

 

子どもたちはやがて

自分なりの仮説をたてて

めちゃくちゃだったデタラメの配置を

筋道のあるトライアンドエラーに変えていくでしょう。

 

それはもう立派なデータ収集活動であって

失敗の歴史を積み上げて、徐々に徐々に正解へ近づいていくことでしょう。

 

生徒さんの回答例その1

 

生徒さんの回答例その2

 

素晴らしいと思います。

 

じっくりひとつの物事に取り組んで

たくさんの失敗を積み上げながら成功に至るという経験をしてほしいと思っています。