今回は
・プログラミングのスクラッチを始めたけど、どんなことができるのかいろいろ試してみたい!
という方向けに
・スクラッチ×算数 スクラッチねこにひよこの数を数えてもらおう!
・ブロックパレット「変数」「もし~なら」「もし~なら、でなければ」「クローン」「ずっと」「メッセージ」を解説
を紹介します。
この記事を見れば、【算数×プログラミング】算数の内容をスクラッチ使ってプログラミングを行うことでプログラミングで何ができるのか、考え方を学べます。
今回使ってみるブロックパレットは「変数」「もし~なら」「もし~なら、でなければ」「クローン」「ずっと」「メッセージ」です。
簡単なフローチャート(プログラムの流れ図)で説明しますが、実際に触った方が理解が早いので細かくは説明していません。
1から100までの数字は小学校1年生の算数で習いますが、スクラッチで数を数えるのは簡単ではありません!
まずは記事を参考にスクラッチを動かしてみましょう!!
今回作成したプロジェクトはこちら!
※スマホの人は画面を10回タッチしてみてください
小学校プログラミング教育入門 算数 1から100までの数字
小学校1年生の算数では、1から100までの数字を習います。
1年生では足し算や引き算をするわけではないので、まずは100まで数えることが重要です。
今回はスクラッチでプログラミングすることで、スクラッチねこにひよこの数を数えてもらいましょう!
ゴールは1から100まで数えるだけなので簡単ですが、スクラッチで動かすにはプログラムの動きを詳しく考えないといけません!
小学校プログラミング教育入門 スクラッチ 「変数」の使い方
ブロックパレットに「変数」というブロックがあります。
これを使うことでひよこの数を数えるための箱(入れ物)を作ることができます。
機能追加の方法はこちらを見てください。ひよこのスプライトも増やしています。
これで数を数えるための入れ物は準備できました。
小学校プログラミング教育入門 スクラッチ 「もし~なら」「もし~なら、でなければ」の使い方
「制御」のブロックパレットに「もし~なら」「もし~なら、でなければ」というブロックがあります。
これは条件分岐といって、条件にあてはまるときはAの処理を、あてはまらないときはBの処理を行うという機能になります。
プログラムのイメージをフローチャートで書くとこのようになります。
フローチャートはプログラムの処理をイメージするのに便利だね!
今回は「マウスが押されたとき」に処理を実行するときに使用します。
小学校プログラミング教育入門 スクラッチ 「クローン」の使い方
「制御」の ブロックパレットに「クローン」というブロックがあります。
これはスプライトの「コピー」を作る機能になります。
今回はひよこの数をマウスのクリックで増やすつもりですが、この時にマウスをクリックした場所にひよこのスプライトのクローンを増やしていきます。
小学校プログラミング教育入門 スクラッチ 「隠す」「表示する」の使い方
「見た目」の ブロックパレットに「隠す」「表示する」というブロックがあります。
これはスプライトを「隠す」「表示する」機能になります。
今回はひよこのもとになるスプライトを「非表示」して、クローンしたスプライトを「表示」することでひよこの数を増やしていきます!!
小学校プログラミング教育入門 スクラッチ 「ずっと」の使い方
「制御」の ブロックパレットに「ずっと」というブロックがあります。
これはプログラムを「ずっと」を動かし続けるための機能になります。
「ずっと」「もし~なら、~でなければ」を組み合わせた プログラムのイメージをフローチャートで書くとこのようになります。
「ずっと」を使わないとプログラムが一回実行されると終わってしまいます。
今回はマウスがクリックされて初めて処理がはじまるため、マウスがクリックされるのを「ずっと」待つ必要があります。
小学校プログラミング教育入門 スクラッチ 「メッセージ」の使い方
「イベント」の ブロックパレットに「メッセージを送る」 「メッセージを受け取ったとき」 というブロックがあります。
これはスプライト(今回は「ねこ」と「ひよこ」)の間でメッセージをやりとりをする機能になります。
今回作るプログラムでは「ひよこ」のスプライトは自分の数を数えることしかしないため、「ねこ」に「ひよこ」の数を教える機能が必要となります。
その際、この「メッセージ」を使って「変数」である「ひよこの数」をねこに伝えることになります。
「ねこ」のプログラムでは、「ひよこの数」を受けっとったときの処理を考える必要があります。
あとはスクラッチねこにひよこを数えてもらう方法を詳しく考えてみましょう。
小学校プログラミング教育入門 プログラミング的思考 スクラッチねこにひよこを数えてもらおう
スクラッチねこにひよこを数えてもらうために必要なことを具体的に考えてみましょう。
- キャラクターにどのような動きをさせたいか、自分の意図を明確にする
- キャラクターにどのような動きをどのような順序でさせれば良いか考える
- 1つ1つの動きをプログラム(命令)に置き換える
- これらのプログラム(命令)をどのように組み合わせれば自分の意図する動作を実現できるか考える
- プログラム(命令)の組み合わせをどのように改善すれば自分が考える動作により近づいていくのか試行錯誤しながら考える
このひよこを数えるために「必要な動きを考え」「動きに対応した命令にし」「それらを組み合わせ」「必要に応じて改善する」なかでプログラミング的思考が育成されます。
答えを出すことが目的ではなく、答えを出すプロセスが重要になります。
間違いを恐れず色んなことを試してみましょう。
私が考えてみた例でスクラッチを動かしてみましょう!
まずはひよこを100匹まで増やす方法を考えました。
- 「緑のフラッグを押したら」ひよこを数えることを始める(ひよこの数を0にする)
- ひよこはマウスをクリックすることで増やす(クローンを作る、ひよこの数を1増やす)
- ひよこはマウスをクリックした位置に増やす
- ひよこを100まで数えたらひよこを0にする
わたしが意図する動作をプログラムに落とし込んでみました!
「もし~なら、でなければ」「もし~なら」を使ってみたよ!
ひよこを増やすブロックは別ブロックで「クローンされたとき」を作ってみました!!
実行結果はこうなりました。
クリックしてもひよこ増えない…
なにも動いてないみたい…
スクラッチプログラムは下図のように上から下に順番に実行されるんだけど、一回下まで実行されるとそれで終わりになっているんだ。
ひよこを増やすプログラムは1回だけではなく、「ずっと」実行する必要があります。
改善してみた命令がこちらです。
- 「緑のフラッグを押したら」ひよこを数えることを始める(ひよこの数を0にする)
- ①ひよこはマウスをクリックすることで増やす(クローンを作る、ひよこの数を1増やす)
- ②ひよこはマウスをクリックした位置に増やす
- ③ひよこを100まで数えたらなにもしない(とりあえず100まで数えるだけ)
- ①~③をずっと繰り返す
- 他にも見た目をよくするために「隠す」「表示する」を追加
ではデバッグして動かしてみた結果がこちらです。
ひよこめっちゃ増えてる!!
マウスを押してるあいだひよこが増え続けているからなんとかしたい☻
解決策はたくさんあります。
※マウスが押されたら「1秒待つ」をいれるとか
今回の例ではマウスを一回クリックしてはなすところまでを1回として数えるようにしてみました。
動かしてみた結果がこちらです。
1匹づつひよこが増えてる!!
思った通り動いたときは感動するね☻
あとは変数にいれたひよこの数をねこちゃんに数えてもらおう!
スプライト間でやりとりする場合は「メッセージ」を使ってみましょう!
ひよことねこのスプライトのプログラムはこんな感じです。
プログラムの動きをみるために、100匹数えるのを10匹に変更して動かしてみた結果がこちらです。
小学校プログラミング教育入門 スクラッチ×算数 ひよこの数を数えよう! まとめ
今回はスクラッチ×算数ということで、ねこにひよこの数を数えてもらいました。
プログラムについてはこれが答であるわけではありません。
ひよこを数えるという目的を達成するための過程がプログラムの部分なので、プログラムの答えは子供の数だけあります。
自分が思った通り動かなかったときに、どう改善するかがプログラミング的思考を育む際に最も重要なことになります。
プログラムの書き方を勉強して、自分が作りたいものをつくれるよう取り組みましょう!!
今回は以上です。
↓ポチってもらえると喜びます☻
コメント