プログラミングで正多角形を描く意味は? 本質にある「考えることを考える力」

小学5年生の2学期は、正多角形の作図をプログラミングで描く授業が実施される時期。今回は、この単元を行うことで、子どもたちがどのようなことを身につけられるのか、プログラミング教育の本質について考えてみます。

これまでの【プログラミング教育のホントのところ】はこちら

正多角形の作図を考える

今年は新型コロナウイルスの影響で例年よりも夏休みが短い学校は多く、すでに2学期が始まっている自治体もあります。子どもたちにとって夏休みは学校以外の学びができる非常に大切な時間であり、その時間が少なくなってしまうことに懸念が示されています。

プログラミング教育の文脈で言えば、2学期は5年生の正多角形の作図をプログラミングで行う場面が実施される時期でもあります。今回の記事では、あらためてこの単元で、子どもたちがどのようなプログラミングをするかについて考えてみたいと思います。

「プログラミングで図形を描く」ことの歴史

プログラミングを使って図形を描くことは、かなり前から実践されてきた分野のひとつです。その起源は、今から30年ほど前までさかのぼります。

MITメディアラボの教授だったシーモア・パパート氏は、子どもたちがコンピューター上に図形を描画するプログラミング言語「LOGO」を開発しました。

図1 LOGOで正方形を描く

子どもたちはLOGOを使って、Turtle(コンピューター)にプログラム(指示)をします。このとき、子どもたちは「コンピューターにどうやって考えるのかを教えることによって、自分はどのように考えているかについて探求する」ことになるのです。

パパート氏は、LOGOを思考の道具として子どもたちが使うことを望みました。考えることを考える、というメタ的な視点に立つことで、図形そのものの理解はもちろん、プログラミングの理解も深まっていくというわけです。

パパートの指摘で重要なことは、子どもたちは、正方形についての知識をただ与えられるのではなく、Turtleに描かせたいという目的達成のための方法として学ぶということでしょう。つまり、ただ正方形の特徴や正三角形の特徴を習ったからといって、それにどこまで意味があるのかという点です。

新しく得た知識は使わなければすぐに忘れてしまいます。でも、何かをつくるという目的を持って学んだことは案外忘れずよく覚えているものです。

ここから言えることは、プログラミングを使って図形を描く授業として「正方形を描こう」とだけしか言わなかった場合、子どもにとってあまり意味をなさないということでしょう。

実際に想定されている授業をやってみる

では、実際にどのような授業が想定されているのでしょうか。文部科学省が出している『小学校プログラミング教育の手引(第三版)』では、次のように目的が定められています。

正多角形について、「辺の長さがすべて等しく、角の大きさがすべて等しい」という正多角形の意味を用いて作図できることを、プログラミン グを通して確認するとともに、人にとっては難しくともコンピューターであれば容易にできることがあることに気づかせます。

目標の1つ目は、これまで学習した内容が実際に使えるということを、プログラミングを使って確かめることです。これが正方形や正三角形を描く場面です。Scratchで正方形を描くと、このようなプログラムになります。

図2 正方形をScratchで描く

その後、正三角形を描くために、これまでに学習した60度という数字を使ってプログラムをつくりますが、その方法ではうまくいきません。私はよくここで、「ネコの目線に立って実際に歩いてみよう」と言っています。自分が曲がりたい方向に向くためには、60度ではなく120度回る必要があることに気づきます。

これは、非常に有効なアンプラグド的な指導法だと言えるでしょう。実際に自分が教室の中を歩くことで、なぜ60度ではだめなのかにすぐ気づくことができます。ここで、角度の大小関係についても再確認できます。

次に、人間が描けない図形をコンピューターなら描けることを体験します。たとえば、皆さんは正七角形を描けるでしょうか。実際に計算してみると、正七角形の1つの内角は128.57...と割り切れません。よって、厳密な形で正七角形を作図することは不可能です。しかし、コンピューターは人間よりも計算することが得意です。

図3 正七角形をScratchで描く

自分なりの図形表現をつくってみる

さて、問題はここから先です。たしかに、この授業では人間が作図できない正七角形を描くことによって、これまでより深い学びがなされたと言えるかもしれません。しかし、できるようになったことを使って、自分なりの図形表現をつくってみるところに、おもしろさがあるのではないでしょうか。

たとえば、図2、図3のプログラムから辺の本数と繰り返し、角度の関係性を見出した子どもは、変数を使ってこのような図形を描くことができます。

図4 変数を使った作図

変数を使えば、たったこれだけのプログラムで、正三角形から順に正多角形を作図できます。プログラミングを使えば、工夫次第でどんな図形でも描くことができます。そして、その工夫する過程、試行錯誤の過程が、プログラミングを使った学びにおいて最も重要といっていいでしょう。

この手の図形を手作業で作図するのは非常に大変です。試行錯誤するのも一苦労です。ですが、コンピューターを使うことで、より本質的な部分に時間を使えるのです。

この単元の授業で望ましい活動は、子どもたちがこれまでに学習した知識をすべて使い、おもしろい形の図形を描くことです。自分の頭の中で思い浮かべた図形を描くために試行錯誤を繰り返す、それこそが”プログラミング的思考”の育成にもつながるでしょう。

この記事が気に入ったら「フォロー」&「いいね!」をクリック!バレッドプレス(VALED PRESS)の最新情報をお届けします!

毎週最新情報が届くメールマガジンの登録はこちらから!

メールマガジン - バレッドプレス(VALED PRESS)

これまでの【プログラミング教育のホントのところ】は

© Valed.press