2020年度が始まれば、小学校ではプログラミングの必修化が始まりますね。
文科省では、教育のカリキュラムとして、以下のようなことを挙げています。
- 正多角形をプログラミングで書く方法を学習する(小学5年算数)
- 電気の性質や働きを利用した道具についてプログラミングを通して学習する(小学校6年理科)
今回は、小学校5年算数のカリキュラムとして組まれている、プログラミングを使って正多角形を書く方法について触れてみようと思います。
もくじ
この記事を読むことで
- プログラミングのフローを理解することができる
- 関数を使うことで、作りたい多角形を変えることが出来る
と言った効果を期待できます。
また、このブログで、過去にプログラミング関連のおススメ本についての記事を書いています。いずれもいい教材でどれかは役に立つものがあると思いますので、是非ご覧ください。
プログラミングで正多角形を書くためのステップ1_正五角形を鉛筆で描く
まずは、正五角形を手書きしてみます。定規と分度器を使って書きます。正五角形の内角は108°です。
実際に手書きしてみると、なかなか上手に書けないことを体験できるかと思います。
- 正五角形の書き方は理解できた
- 手書きは長さや角度がズレるため、書くのが難しい
ここで2つのことを学習できましたが、より正確に書くためにコンピューターを使います。
コンピューターは、指示されたことしか実行しませんが指示されたことは100%実行します。
これからは、コンピューターが正しく実行するためのプログラムについて考えていきます。
プログラミングで正多角形を書くためのステップ2_書くための手順(フロー)を追う
自動化の仕組みを作るためには、どのような流れで正方形を書くことが出来たのかをイメージしないといけません。
例えば一辺の長さが5cmの正五角形を書くとします。
その時の流れは、
「初めの点を決める」→「5cmの線を引く」→「左回りに108°回る」→「5cmの線を引く」… →「5cmの線を引く」
ていう感じで出していくと、全部で10個の工程になります。
ここで大事なのは、回転は左回りに、ということを正しく指示してあげることです。
例えば、右と左に交互に回転すると、ただのジグザクの線になってしまいます。
正しく手順を指示すれば、自動で正五角形を書くことが出来ますが、同じパターンが繰り返されているので、もっと工程を少なくスッキリさせることができます。
プログラミングで正多角形を書くためのステップ3_同じパターンを見つける
もう一度工程を見直してみます。
「定規で5cm線を引く」→「左回りに108°回る」
というのが4回繰り返されています。
ここに繰り返しの文を入れれば、行数も少なくなるので、プログラム自体がスッキリします。
プログラミングで正多角形を書くためのステップ4_繰り返しパターンを使う
パターンが決まったら、手順を実際に描いてみましょう。
「始めの点を決める」→「ここから4回繰り返す」→「5cmの線を引く」→「左回りに108°回る」→「繰り返しの初めに戻る」→「5cmの線を引く」というようになると思います。
全部で、6つの工程で書くことができるようになりました。
ただ、5回目の「5cmの線を引く」という工程を、繰り返しの中に含めることができないでしょうか?
図形の形に影響はありませんが、きれいなフローになっていません。
もうひと工夫する必要がありそうです。
プログラミングで正多角形を書くためのステップ5_条件で動きを変える
「線を引く」の次に、「今は4回目以下」という条件を一つ追加します。
「はい」の場合は「左回りに108°回る」、「いいえ」の場合は5回目になっているので、回るフローをスルーします。
5回目は角度を図らずにそのまま終了するということになります。
これで、正しく正五角形を書くことが出来ます。
しかし、図形の位置がブレない様に指定したい場合は、
1回目の線を右向きに水平に引く、という手順も必要になります。
プログラミングで正多角形を書くためのステップ6_正多角形を描くための式を使う
正五角形以外の多角形も、プログラミングで書けそうです。
ただし、ここからは小学5年生ではなくて、中学生の学習範囲になります。
多角形をn角形とします。
多角形の内角の和は「180°× (n-2)」となります。
「ここから5回繰り返す」を「ここからn回繰り返す」に、「左回りに108°回る」を「左回りに(180× (n-2)÷n)°回る」と変えれば、
初めにnの数を指定してあげれば、思い通りの正多角形を書くことができます。
また、nの数が多いほど、手書きと比べて時短効果が大きくなります。
このように繰り返しの処理をコンピューターに任せると、莫大な時間を節約することができて、正確に処理を行うことができます。
まとめ
文部科学省の手引きを閲覧したところ、同じようなフローがScratchのブロックで記載されていました。
学校によっては、Scratchを使うところも出てくるでしょう。
また、ある学校では、タブレットやパソコンを使わずにプログラミング教育を行うかもしれません。
一番大事なのは、
- 繰り返しと条件を組み合わせることで、いろんな指示をコンピュータに出せること
- コンピューターに実行してもらうことで自分たちの時間を別の有効なことに使えるようになること
ではないでしょうか?
学校でも教育を行ってくれると思いますが、親が興味を持つことが最も大事です。
親がプログラミング教育の目的を正しく理解し、子供たちの可能性を高めてあげることが、子供たちへの最高の贈り物ではないでしょうか?
今回は正多角形について記事を書きましたが、小学校プログラミング教育に関しては、不定期に記事を追加していきます。
本日もありがとうございました。