scratchの発展的な活用

scratchの発展的な活用

前回まで、scratchを活用した算数の学習についてまとめてきました。今回はさらに発展したscratchの利用について書いていきたいと思います。

数学の世界の未解決問題

scratchを活用して、数学の世界にある未解決問題を解いてみましょう。

未解決問題とは

未解決問題とは、未だ解決されていない数学上の問題のことです。また、未だ証明が得られていない命題のことです。未だ証明されていないことから○○予想という名前が付けられていることが多いです。リーマン予想やゴールドバッハ予想、ABC予想など様々なものがあります。これらの未解決問題には、懸賞金がかけられているものがあります。特にアメリカのマサチューセッツ州にあるクレイ数学研究所が7つの未解決問題に懸賞金100万ドルをかけた「ミレニアム懸賞問題」は有名です。このうち中の1つ「ポアンカレ予想」は証明されたそうです。未解決問題を解決することは数学者としての夢であり、憧れですね。

コラッツ予想

ミレニアム問題ではありませんが、懸賞金がかけられている未解決問題の1つに「コラッツ予想」というものがあります。この予想は問題を理解することは容易で、小学生でも理解することができます。そして、この予想はscratchを使うことで、演繹的に解くことができます。もちろん、証明できるというわけではありません。解くと言っても、確かにそうなるねと確かめることができるという事です。

コラッツ予想とは、任意の正の整数に対して、偶数の場合は2で割る、奇数の場合は3倍して1をたす、という操作を繰り返すと最終的に必ず1になるという予想です。

①任意の正の整数を決める

②―① 偶数なら、2で割る

②―② 奇数なら、3倍して1を足す

③ 1になるまで②の操作を繰り返す

というものです。

 

例えば、10から始めると、10→5→16→8→4→2→1

7から始めると、7→22→11→34→17→52→26→13→40→20→10→5→16→8→4→2→1

奇数が現れ、3倍して1を足す操作が多いと数がどんどん大きくなってしまい、1にならない場合が出てしまう可能性があります。

コラッツ予想の演繹的解法

この問題を解く方法はわかりません。だって、未解決問題ですから。しかし、演繹的に特定の数字まで確かめる方法はあります。それは、1の場合、2の場合、3の場合…と任意の正の整数を1から順番に1つずつ試すという方法です。もちろん、数に終わりはないので、証明にはなりませんが、演繹的に問題を解いていくことができます。

scratchを作るための考え方

scratchを使ってプログラムを作るためには、奇数とは2で割ったときにあまりが1になる数、偶数とは2で割り切れる数という理解が必要です。それぞれの場合にどんな操作をするかを考えてプログラムを作ってみましょう。任意の整数に対して操作ができるようになったら、自動的に次の数字となるようにプログラムを作るなど、工夫してみましょう。

プログラムを作ろう

このプログラムを作るためには、これまでのプログラミングでも使った、変数や演算、条件分岐などを組み合わせます。また、今何をしているのかも分かりやすくなるように表示させたり、効率よく処理させるためにプログラムを工夫したりしましょう。

ねこをクリックすると、答えに対して操作が行われます。
Averyをクリックすると、答えを初期値として、それより大きい数字も順番に操作が行われます。答えを10と入力すると、10の場合コラッツ予想が成立することが分かると、次は11の場合、12の場合…と自動で次の数字でも成立するかを確かめてくれます。

scratchの可能性

scratchには、様々な可能性が残されています。どんな可能性が残されているのでしょうか?

様々な活用法

scratchでは、様々なことができます。ここまで算数の学習と関連した学習を示してきました。数理処理だけでなく、ゲームを作ったり、アニメーションを作ったり、簡単なアプリケーションのようなものを作ることもできます。ScratchのHPでは、ほかの人と協力してプログラムを作る取り組みも行われています。世界中の人と協力して様々なコンテンツを作ってみましょう。

scratchを活用した各教科の学習

ここまで算数と関連したプログラムをたくさん作ってきました。算数の基本は計算です。演算のブロックを活用することで様々なことができるので、算数の学習と相性がいいです。しかし、算数以外の教科と関連したコンテンツを作ることもできます。例えば、音というブロックもあります。これを使えば音楽のリズムづくりや旋律づくりなどを行うこともできます。音を録音して活用することでシンセサイザーのような楽器として活用することもできます。国語では小単元で扱われる主語述語や故事成語などの言葉に関する学習で活用することができます。社会では都道府県クイズのような問題を作ることもできます。様々な教科で活用することができます。

scratchを活用したプログラミング学習

scratchはビジュアル言語でプログラミングができるものです。なので、プログラミングの基礎を学習することができます。使い方が分かっても、どんなものが作れるのかわからなければ、プログラミングする意欲はわきません。今回、コードとともに作れるものをたくさん紹介したので、参考にしてぜひ作ってみてください。慣れてきたら、自分なりに作りたいものや作りたいゲームを考えてプログラムを作ってみましょう。

プログラミングは今後の社会で生きていく上でとても大切な能力です。実際にコードを書く能力もそうですが、その仕組みを理解することがとても大切です。Scratchでプログラミングの仕組みを経験しながら学んでいきましょう。

まとめ

これでscratchを使ったプログラミングの学習はなんとなくわかっていただけたでしょうか。また機会があれば、こんなものが作れるというものを紹介したいと思います。みなさんも様々なプログラムを作ってみましょう。