プログラミング的思考#3
www.infomisc.net の続きです。
「レゴで家を作りたい」⇒「家を作るには組み立ての説明書が必要」⇒???
についてもう少し考えてみました。
「レゴで家を作る」ための説明書を作るにはどういった考え方が必要になるでしょうか。
自分の場合は、まずは以下のように課題を分解します。 この分解の仕方も正解はありませんので、あくまで私個人の方法です。
まずは課題の分解と前提条件の整理
レゴで家を作るために、それぞれの特性を理解していないといけません。 レゴで遊ぶときは意識していないと思いますが、無意識の意識化をしてあげる必要があります。
レゴの特性の理解すること
- 1ブロックは1メートルx1メートルの立方体と想定する
- ブロックをブロックの上に積み上げられる
- ブロックを配置するには他のブロックと接している必要がある
家の構造を理解すること
- 出入口(玄関)がある
- 窓がある
- 床がある
- 壁がある
- 天井がある
- 屋根がある
- 床は家の一番下にある
- 床の上に出入口、窓、壁がある
- 壁の上に天井がある
- 天井の上に屋根がある
細かくしたらキリがないのでこのくらいにしましょうか。
最初の段階として、家の一番下となる床をブロックでどう作るかに着目できたら、 レゴの特性も家の特性も分かっていることになりますよね。 小さい子には、まずは身近にあるもモノやコトを分解させてみるのもいいのかなと思います。
組み立ての流れ
レゴの特性上、基本的には下からブロックを積み上げていきますので、家を作成するためには、
- 床をつくる
- 窓、出入口、壁をつくる
- 天井をつくる
- 屋根をつくる
という順番でブロックを組み立てる必要があります。 実際のブロックを使わなくても説明書を作ることはできると思うのですが、 経験がないと小さい子には想像もできない思いますので、 実際に手を動かして試行錯誤してもらう方が理解は断然早そうです。
組み立て
まず、床をつくる工程では、どんなブロックを使ってどのくらいの大きさにするかを決めます。 単純な四角形とするのか、より複雑なかたちにするのかを考えます。
さらにその上に窓、出入口、壁をつくります。 ここでも窓や玄関の大きさなどを想定する必要があります。 レゴを使う場合は、何個のブロックで表現するかを考えます。 この工程は必要な高さになるまで繰り返し行います。 高さが1ブロック(1メートル)では、人が生活できない家になりますので、 高さも考える必要があります。
さらに天井とその上に屋根をつくります。 屋根もフラットにするのか、三角屋根にするのかなどを考えます。
この手順をまとめたものが組み立ての説明書になります。が、、これだけでも相当大変ですよね。。 最初から説明書はできませんので、まずは試行錯誤を繰り返して、ブロックの積み方やアンチパターン(例えば、出入口や窓がない家など)を学んで行く必要があります。 これこそがプログラミング的思考を経験できる場になるのかなと思います。
というわけでウチは引き続きレゴで一緒に遊びたいと思います^^=