子供にプログラミングを教える方法

子供の為の最高のプログラミング教育を見つけていきます

小学生向けProject Euler計画 その1(結果)

以前の投稿

小学生向けProject Euler計画 その1 - 子供にプログラミングを教える方法

 

で、自然数の合計を求める問題を作成したので、早速我が子に出してみた。

 

結果は、、、まだまだ改善の余地ありでした。

 

まず問題文が分かりづらかった(後ほど修正)

出したときは、なんとか意味を伝えて分かってもらえた。

 

我が子のクラスには35人いるらしいです。

 

増えるイメージを具体的に示したく、

以下の式を書いてあげました。

1

1+2=

1+2+3=

1+2+3+4=

1+....+9+10=

...

 

これを見せた後、少し計算し始めました。

おお!いいながれ!

 

その後少し悩んだあと、答えがきました

「35分!」

 

(けっこう増えるのに時間かかると思ったのかな・・・)なんでそう思ったの?と聞くと

 

「35人いるから!」

 

やられた!

「で、でも、34分後には34個できるので、ほとんどみんなに渡せるし、もう少し前にそろうんじゃないかな、、」

 

でも、その後我が子はこの問題に飽きて、別なことをし始めてしまった。。。

 

残念ながら、これ以上の継続は出来なさそうなので終了としました。

 

条件として「最短時間で」とか、「そのとき何個になる?」とかを聞かなかった私が良くなかったのですが、我が子ながらさすが。。。

 

問題の出し方にもう少し工夫しないと、、、以下を考え中です。

 

第1 計算させてしまう

合計が35までぐらいなら、実際に計算出来る範囲だろう。

 

第2 ガウスの考え方で解く

1+2+3+4+5+6+7+8

8+7+6+5+4+3+2+1

それぞれ足して

9+9+9+9+9+9+9+9=72

72/2=36

 

でも、割り算が出来ないときついな。

 

第3 プログラムを改良する(数を1ずつふやす)

 

8を越えるまでネコがしゃべるプログラムを作成する。あえて以下のように繰り返しは使わないものを作りました。繰り返しが出来たら合格。変数の増やし方は敢えてプログラムっぽく、変数の値+1を変数にいれてみる。

https://scratch.mit.edu/projects/306947092/

 

 

第4 プログラムを改良する(加算)

第3のプログラムを元に、ネコが言った数を合計していく。合計用の変数を新たに使う必要があるので、分かりにくくなるな、、、これも、ループが出来たらいいかな。。。

https://scratch.mit.edu/projects/307099148/

 

 

紙面の計算でやりきろうとすると、積商や九九が途中の計算ででてくる。その点、プログラミングで愚直に足し算していくと、大きな数でも難なく答えが出るのは、子供にとっては便利に感じてくれるかもしれない。。。