こんにちは、みなさん!
Scratch先生です。
「スクラッチでプログラミング006」では、スクラッチのスプライトの向きについて説明しました。
今回は、爆速で上達するプログラミングのコツを教えます!
このプログラミングのコツさえしっておけば、コツを知らない子供たちよりも速くゲームや作品を作ることができます。
是非、覚えましょう!
早速、プログラミングチャレンジ!
これは、Scratch先生から子供たちへの挑戦状です!
クリアできるかな?
ゲームや作品を作るときに、いくつかのブロックを使って、スクリプトを作っていきますが、「スクリプト」って何のことだったか覚えていますか?
考えてみましょう!
・
・
・
・
・
・
・
・
・
・
正解は、「スクリプト」とは、命令のかたまりのことでした。
覚えていたかな?
たくさん命令したいときは、このようにたくさんのブロックをくっつけて、ブロックのかたまり、つまり「スクリプト」を作ります。
このスクリプトを作る作業のことを「プログラミング」といいます。
人によっては、スクリプトを「プログラム」と呼んだり、プログラミングを「プログラムを作る」と言うこともあります。
たくさん呼び方があるので、こちらでは、「スクリプト」を「プログラム」、「プログラムを作りましょう」を「プログラミングに挑戦してみましょう」と統一します。
プログラムの基本
これから色々なプログラミングに挑戦してもらいますが、その前に、知っておくとプログラミングのスピードが格段に上がるコツを教えます。
プログラミングのコツを知るには、プログラムの基本を理解する必要があります。
プログラムは、上から下へ順番に処理される
スクラッチでは、ブロックを並べてプログラムを作ります。
並べたブロックをクリックすると、プログラムが実行されますが、プログラムは、上から下へ順番に処理されます。
つまり、順番を間違えると、まったく違うプログラムになってしまうということです。
プログラミングをしていると、思ったような動きにならないことがよくあります。
そんなときは、「プログラムは上から下へ順番に処理される」ことを思い出して、1つ1つブロックの順番をチェックしましょう。
ちなみに、プログラミングの世界では、プログラムを上から下へ順番に処理させることを「順次処理」といいます。
順番に次の処理をするから「順次処理」ですね。
- プログラムは、上から下へ順番に処理される(順次処理)
- 思ったような動きにならないときは、1つ1つブロックの順番をチェックする
プログラミングで、プログラムの流れを制御できる
プログラムは、上から下へ順番に処理されますが、プログラミングで、プログラムの流れを制御することができます。
これから、いくつか紹介しますが、プログラムの内容は説明しません。
プログラムの流れを、プログラミングで制御できるイメージを持ちましょう。
こちらのプログラムの流れは、分かれ道のように、2つに道に分かれていますよね?
このように、「〇ならAの道へ、〇でなければBの道へ」と、条件をつけて、プログラムの流れを分けることもできます。
プログラミングの世界では、条件をつけて、プログラムの流れを分けることを「分岐処理」といいます。
「もし◇なら」のように「もし」「なら」の言葉がでてきたら、「分岐処理」のことだと覚えておきましょう。
こちらは、変なプログラムの流れになっていますね。
これは、同じプログラムを繰り返しているプログラムの流れです。
プログラムは、上から下へ順番に処理されますが、その途中でグルグル繰り返すこともできます。
こちらのプログラムもグルグル回っていますが、なんと止まりません。
ずっとグルグル回り続けるプログラムの流れです。
このままでは永遠にプログラムは止まりませんが、スクラッチでは、「すべてを止める」ブロックのように、プログラムを強制的に止めるブロックもあります。
プログラミングの世界では、このように繰り返す処理を「反復処理」といいます。
小学校で反復横跳びをやった子はいるかな?
左右に横跳びをして、それを何度も繰り返したよね?
何度も繰り返し横跳びをしているから「反復横跳び」と言います。
それと同じで、何度も繰り返すので、「反復処理」というわけです。
さて、ここまで紹介したプログラムの中で何か気づきませんでしたか?
プログラムの流れを制御していたのは、こちらのブロックです。
よく見ると、すべてのブロックの色が同じですよね。
実は、プログラムの流れを制御するブロックは、「制御」ブロック群にまとめられています。
プログラムの流れを変えたいときは、「制御」ブロック群の中のブロックを使うと覚えておきましょう。
- プログラムは、条件をつけてプログラムの流れを分けることができる(分岐処理)
- プログラムは、プログラムの流れを繰り返すことができる(反復処理)
- プログラムの流れを制御するブロックは、「制御」ブロック群にまとめられている
プログラムの流れは3つの処理だけ
ここまで、下の3つのプログラムの流れの処理を紹介しました。
- 順次処理・・・プログラムを上から下へ順番に処理
- 分岐処理・・・プログラムの流れを分岐する処理
- 反復処理・・・プログラムの流れを繰り返す処理
実は、プログラムの流れは、この3つの処理だけです。
どんなに長いプログラムでも、この3つの処理が組み合わさってできています。
プログラミングで分からなくなる子は、このプログラムの流れをイメージできていない子が多いです。
プログラミングのコツは、プログラムの流れをイメージして作ることです。
プログラムが長くなって、思い通りの動きができない場合は、プログラムの流れと、「順次」「分岐」「反復」のどの処理をしているのか確認しましょう。
- プログラミングのコツは、プログラムの流れをイメージして作ること
- プログラミングのコツは、「順次」「分岐」「反復」のどの処理をしているのか意識すること
プログラムを開始するには「トリガー」が必要
「スクラッチでプログラミング001~006」では、プログラムを実行するときにブロックをクリックしていましたが、普通は「トリガー」を使ってプログラムを実行させます。
トリガーとは、なにかを行うときのキッカケ(トリガー)となるものです。
例えば、数字の「半角」と「全角」の話を覚えていますか?
ブロックの数字を入れる〇には、「半角の数字」しか入れられないので、キーボードの「半角/全角」キーで、半角にしましょうと説明しましたよね。
この「半角/全角」キーが、まさに「トリガー」です。
「半角」と「全角」を切り替えたいときに、「半角/全角」キーがトリガーとなって、切り替わります。
スクラッチでは、トリガーとなるブロックが用意されています。
それが「イベント」ブロック群です。
「イベント」ブロック群には、8つのブロックが用意されています。
それぞれのブロックを見ると「~とき」とあるブロックが、6つありますよね。
この6つが、トリガーとなるブロックです。
例えば、こちらの「緑の旗が押されたとき」ブロック。
こちらは、ステージ左上の緑の旗を押したときをトリガーに、プログラムを実行させるブロックです。
スクラッチでは、ゲームや作品を開始するときに、一番よく使われるブロックです。
このようにプログラムは、何かのキッカケを与えなければ、動くことがありません。
そのキッカケのことを「トリガー」といい、そのキッカケを設定するブロックが、「イベント」ブロック群の6つのブロックです。
プログラムは、何かキッカケがなければ動かないものだと覚えておきましょう。
- プログラムは、何かキッカケがなければ動かない
- プログラムを動かす時のキッカケを「トリガー」という
- プログラムを動かす時のトリガーは、「イベント」ブロック群にまとめられている
プログラムの処理のスピードは、めちゃくちゃ速い!
プログラムの基本として、もう一つ皆さんに知ってほしいことは、プログラムの処理のスピードは、めちゃくちゃ速いということです!
どれぐらい速いか?
目に見えないぐらい速いですw
例えば、こちらのプログラム。
「〇と言う」ブロックは、吹き出しで〇の中の文字を出すことができます。
Scratch先生から子供たちへの挑戦状です!
クリアできるかな?
今回は2つ挑戦してもらいます。
まず、1つ目は、このプログラムの流れは、先ほど3つ紹介した処理の中のどの処理になるでしょうか?
2つ目は、こちらのプログラムを実行するとステージではどのようになるでしょうか?
プログラムは作らずに頭の中で考えて、答えをだしましょう!
・
・
・
・
・
・
・
・
・
・
分かりましたか?
まず、1つ目の処理の問題。
プログラムの流れは、「順次」「分岐」「反復」の3つの処理がありましたよね。
「分岐」「反復」の場合は、「制御」ブロック群の中のブロックを使いましょうと説明しましたが、今回のプログラムに「制御」ブロック群のブロックは、ありません。
つまり、単に上から下へプログラムが流れているだけなので、「順次処理」が正解です。
次は2つ目の問題です。
こちらは、先に間違った答えから紹介します。
このプログラムが「順次処理」ということは、上から順番にブロックを処理していけばいいのは、分かりますよね。
そうなると、「おはよう!」「こんにちは!」「こんばんは!」の順に吹き出しを出すのが正解のようにみえますが、実は違います。
正解は、「こんばんは!」だけ吹き出しを出します。
なぜかというと、プログラムの処理が速すぎて、人間の目では確認できないからです。
プログラムの処理自体は、「おはよう!」「こんにちは!」「こんばんは!」の順に吹き出しを出しています。
しかし、私たち人間の目では、それが確認できないぐらいプログラムの処理が速すぎるのです。
これが、プログラミングで分からなくなる子が、続出する原因の1つです。
本当に「おはよう!」「こんにちは!」「こんばんは!」の順に吹き出しを出しているのかを確認する方法があります。
それは、プログラムを一旦止めることです。
スクラッチでは、「制御」ブロック群の中に、「〇秒待つ」ブロックがあります。
「〇秒待つ」ブロックは、〇に指定した時間(秒)だけプログラムを止めることができるブロックです。
このように、「〇と言う」ブロックの間に「〇秒待つ」ブロックを入れていきます。
さて、このプログラムの流れは「順次」「分岐」「反復」のどの処理でしょうか?
正解は、「順次処理」です。
「〇秒待つ」ブロックは、「制御」ブロック群の中の1つのブロックなので、「分岐」「反復」のどちらかな?と悩んだ子もいたかもしれません。
ただ、「〇秒待つ」ブロックは、プログラムが流れる時間を制御しただけなので、「分岐」も「反復」もしていませんので、「順次処理」が正解です。
(▶をクリックして動画を確認してね)
「〇秒待つ」ブロックを挟んでプログラムを実行すると、「おはよう!」「こんにちは!」「こんばんは!」の順に吹き出しが出てくるのを確認できます。
このようにプログラムは間違っていなくても、人間の目では、正しく処理されているのか分からない場合があります。
プログラムの流れをチェックしても問題が解決できない時は、「〇秒待つ」ブロックを使って、どこまで正しく処理されているのか、どこで間違った処理になっているのかを確認しましょう。
- プログラムの処理のスピードは、人間の目で確認できないぐらい速い
- プログラムの流れをチェックしても問題が解決できない時は、「〇秒待つ」ブロックを使う
まとめ
プログラムの基本とプログラミングのコツは、覚えたかな?
「スクラッチでプログラミング007」では、プログラムの基本を説明しながら、爆速で上達するプログラミングのコツを説明しました。
プログラミングのコツを「覚えたよ!」という子は、下の「CHECK」をもう一度確認して、次の「スクラッチでプログラミング008|ブロックの結合・複製(コピー)・削除方法」へ進みましょう!
- プログラムの基本
- プログラムは、上から下へ順番に処理される(順次処理)
- プログラムは、条件をつけてプログラムの流れを分けることができる(分岐処理)
- プログラムは、プログラムの流れを繰り返すことができる(反復処理)
- プログラムの流れを制御するブロックは、「制御」ブロック群にまとめられている
- プログラムは、何かキッカケがなければ動かない
- プログラムを動かす時のキッカケを、「トリガー」という
- プログラムを動かす時のトリガーは、「イベント」ブロック群にまとめられている
- プログラムの処理のスピードは、人間の目で確認できないぐらい速い
- プログラミングのコツ
- プログラミングするときは、プログラムの流れをイメージして作ること
- プログラミングするときは、「順次」「分岐」「反復」のどの処理をしているのか意識すること
- 「もし」「なら」がでてきたら、分岐処理
- 思ったような動きにならないときは、1つ1つブロックの順番をチェックすること
- プログラムの流れをチェックしても問題が解決できない時は、「〇秒待つ」ブロックを使ってどこに問題があるのかチェックすること
【Step3】スクラッチとプログラミングの基本知識
- スクラッチでプログラミング001|スクラッチの画面について
- スクラッチでプログラミング002|ブロックの使い方①
- スクラッチでプログラミング003|ブロックの使い方②
- スクラッチでプログラミング004|コスチュームの使い方
- スクラッチでプログラミング005|スプライトの座標
- スクラッチでプログラミング006|スプライトの向き
- スクラッチでプログラミング007|爆速で上達するプログラミングのコツ ←今ココ
- スクラッチでプログラミング008|ブロックの結合・複製・削除方法
【Step1・Step2】スクラッチアカウント作成とログイン方法