見出し画像

プログラミング教育を考える(5) それで「プログラミング」ができますか

 再び,電子掲示板STSの続き。なお,これは2018年の8月に書かれているもので,現在とは状況が異なるところがある。

オンライン日本語プログラミング  いちのせ
------------------------------------------------------------
プログラミング教育について、いろいろ調べていたら、オンライン版の日本語プログラミング言語にも行きつきまして、、、
プログラミング教育とは別にして、これはこれで面白いなあと思いました。
 
①文科省の「プログラミン」
②大阪電通大の「ドリトル」
 
①は、とっつき面白いな、という感じで、あとの発展性が感じられませんが、
②は、も少し汎用性がある感じです。
iPadで動かせるかですが、
①はflashを必要とするので、iPadではPuffinブラウザでしか動かないし、動けるようになる準備時間がとても長いです。
②はiPadのサファリでも、さくっと動きます。
 
①は部品を動かしたり効果音を鳴らしたりできますが、線を引いたりすることはできません。
②はタートルグラフィクスです。
 
①はログインしておけば、自分の書いたプログラムをクラウドに保存することができます。
②は書いたプログラムをテキストコピーして別のアプリに貼り付ければ手元に保存できます。
 
ちょいと面白かったです(^^)
 
re:5253 自分でレスですが(^^;
------------------------------------------------------------
Adobeが2020年にflashを打ち切ろうといているこの時点で、プログラミング教育のツールとしてflashで動くオンラインプログラミング言語を文科省が開発するっていうことが、すでにずれてますよねぇ。
 
ペッパーとドローンのプログラム   もぐら
------------------------------------------------------------
 昨年、うちの学校にペッパー君が数台やってきて、生徒がプログラミング学習の体験をしました。
 今年、地区の教育研究会で、ドローンを使ったプログラミングの講習会がありました。
 どちらも、あらかじめ用意された動きがあり、それらがブロックのように画面上に準備されていて、そのブロックをつないで一連の動作を完成させるようになっていました。
 ペッパー君のときは後ろから見ているだけだったので詳しくわからなかったのですが、ドローンの場合は、前に何秒進むとか、右を向くとか左を向くとか、宙返りするなんていうコマンドもありました。
 それらを組み合わせてプログラミングを学習することもできるのでしょうが、行き当たりばったりにブロックをつないでも、それなりの動きをしてくれるわけで、それこそ試行錯誤でブロックを組直してプログラムを完成させることができるようなものでした。
 私自身がプログラムを作っていたときは、コンピュータにやらせたい仕事があって、このようにプログラムを組めば動くはずだと信じてプログラムを打ち込んで、実行するとたいてい予想外の結果になってしまって。
 「おっかしいなー」とつぶやきながら、変数の値を表示させながら1ステップずつトレースしたり、プログラムを打ち出して赤ペン片手に1行ずつチェックしたり。
 ペッパー君もドローンも、そういうプログラミングとはだいぶ様子が違います。
 MSX-Logoを教室に持ち込んでいたのは、もう30年以上も前になります。「まえへ」「みぎへ」と、用意されているものはドローンと似ているのですが、MSX-Logoは確かにプログラミングだったなあという感じがします。
 何が違うんだろう?
 
 ペッパー君にしてもドローンにしても、やっていて楽しいことは間違いないのですが、「これでプログラミング的思考が身に付くのか?」と、やっぱり思ってしまうのでした。
 

 もぐらさんは,このときは中学校の先生だが,記事にも書かれてある通り,30年以上前に小学校でLOGOを実践していた人。どうすれば図形を描けるのか,MSX-Logoを児童に使わせながら考えるということをさせていた。実際に子どもに歩かせて考えるということもしている。インターネットなどない,パソコン通信の時代である。
 その人が抱く違和感とはなんだろう。

 ここで,話題になっていることがらを,「小学校プログラミング教育の手引き第3版」で見てみよう。
 5年生の算数である。

 ここでは、正多角形について、「辺の長さが全て等しく、角の大きさが全て等しい」という正多角形の意味を用いて作図できることを、プログラミングを通して確認するとともに、人にとっては難しくともコンピュータであれ ば容易にできることがあることに気付かせます。
(学習活動とねらい)
学習活動としては、例えば、「辺の長さが全て等しく、角の大きさが全て 等しい」という正多角形の意味を用いて正多角形を作図するといった課題を設定し、定規と分度器を用いた作図とプログラミングによる作図の双方を試みるといったことが考えられます。
 はじめに、正六角形などを定規と分度器を用いて作図することを試みさせ、 手書きではわずかな長さや角度のずれが生じて、正確に作図することは難しいことを実感させます。
 次いで、プログラミングによる正方形の作図の仕方を学級全体で考え、個別又は少人数で実際にプログラミングをして正方形が正確に作図できることを確認した上で、プログラミングによる正三角形や正六角形などの作図に取り組みます。
 児童は、手書きで正方形を作図する際の「長さ□ cm の線を引く」、「(線の端から)角度が 90 度の向きを見付ける」といった動きに、どの命令が対応し、それらをどのような順序で組み合わせればよいのかを考え(プログラミング的思考)、また、繰り返しの命令を用いるとプログラムが簡潔に書けることに気付いていきます。
そして、「正三角形をかこうとして 60 度(正六角形をかこうとして120 度) 曲がると命令すると正しくかくことができないのはなぜか」、「なぜ正三角形 のときは 120 度で、正六角形のときは 60 度でかけるのか」といった疑問をもち、他の児童と話し合い試行錯誤することによって、図形の構成要素に着目して、正多角形の角の大きさと曲がる角度との関係を見いだしていきます。 また、正三角形や正六角形だけでなく、正八角形や正十二角形など、辺の数 が多い正多角形も繰り返しの回数や長さ、角度を通して考えてかいていきます。
 さらに、「辺の長さが全て等しく、角の大きさが全て等しい」という正多角形の意味を用いて考察することにより、今までかいたこともない正多角形をかくことができることとともに、人が手作業でするのは難しかったり手間がかかりすぎたりすることでも、コンピュータであれば容易にできることもあるのだということに気付くことができます。

どうだろうか,これだけでもツッコミどころ満載ではないだろうか。

(1) 正確にできるのはプログラミングだからか。

まず手書きで作図し,正確に作図することは難しいことを実感させます。

 これをプログラミングによって「正確に作図できる」ことを確認する,というのだが,正確に作図できるのはプログラミングの効力ではなく,そのような道具(コンピュータ)を使ったためではないか。プログラミングをしても間違いがあれば正確には作図できない。

(2) コンピュータに与える命令は内角か,外角か

 次いで、プログラミングによる正方形の作図の仕方を学級全体で考え、個別又は少人数で実際にプログラミングをして正方形が正確に作図できることを確認した上で、プログラミングによる正三角形や正六角形などの作図に取り組みます。
 そして、「正三角形をかこうとして 60 度(正六角形をかこうとして 120 度) 曲がると命令すると正しくかくことができないのはなぜか」、「なぜ正三角形 のときは 120 度で、正六角形のときは 60 度でかけるのか」といった疑問をもち、他の児童と話し合い試行錯誤することによって図形の構成要素に着目して、正多角形の角の大きさと曲がる角度との関係を見いだしていきます。

 正方形を描くときは,何の疑問も持たずに,回転角を90度にするだろう。算数で学ぶ「辺の長さが全て等しく、角の大きさが全て等しい」の「角」は内角だからだ。そして,正三角形で破綻する。あれ?かけないよ,となったとき,「他の児童と話し合い試行錯誤する」となっている。すると,「70度にしてみよう」とか「80度にしたらどうなる」というように試行錯誤するのだろうか。それで120度を発見したあと,正六角形でまた「120度?」「150度?」と試行錯誤するのだろうか。
 この「いくつか進んで」「向きを変えて」を繰り返して図形を描くのを,タートルグラフィクスという。もぐらさんが実践していたMSX-Logoはタートルグラフィクスである。タートルは亀。
 もぐらさんが実践していたのはこういった試行錯誤ではなく,「亀になったつもりで考えよう」なのだ。
 自分が亀になる。10cm(実際にやるなら1m)進む。その次に,どっちの方向にどれだけ向きを変えればいいかな,と考えるのだ。これは試行錯誤ではない。
 もちろん,やってみたら正三角形にならなかった,ということはあろう。そこで考え方を修正する。それが「デバッグ」
 しかし,はじめから「70度かな、80度かな」とプログラミングしてみるのと,自分が亀になって考えるのとでは根本的に違うのだ。
 この違いがわかるかどうかが,指導上では重要になる。理詰めで考えてやってみる,のと,適当に値を入れてみるではまったく違うだろう。
 もう一度先ほどの文を読み直してみよう。

 「なぜ正三角形 のときは 120 度で、正六角形のときは 60 度でかけるのか」といった疑問をもち、他の児童と話し合い試行錯誤する

 120度や60度を発見したあとで,何を試行錯誤するのだろうか。
「正方形は90°曲がれば描ける。正三角形は120度でなければならない。」というのは,かなり高度な概念だ。「辺の長さが全て等しく、角の大きさが全て等しい」の内角を外角に変更しなければならないからだ。
 これを理解するために,亀になるのだ。それが LOGO の発想。

 MSX-Logoで実践をしていたもぐらさんは,「プログラミングを教える」という考えはなかったはずだ。LOGOという道具を利用して,図形の見方を教えようとしていたのである。
「小学校プログラミング教育の手引き第3版」には,タートルグラフィクスという言葉もその概念も出てこない。つまり,これはLOGOの実践のようでいてそうではないのだ。

 もちろん,実際にやってみると,こどもたちが相談して,一見すると「できる」ようになるだろう。しかし,その「試行錯誤」のなかで,本当に理解できる子はほんの一握りだろう。そうなることは,現場を知っていれば容易に想像できる。
 そして,その時に,「問題解決のためにプログラミングをする」ことを体感できる子が,いったい何人いるだろうか。