プログラミングドリル

スクラッチでプログラミング007|爆速で上達するプログラミングのコツ

Scratch先生
Scratch先生

こんにちは、みなさん!
Scratch先生です。

「スクラッチでプログラミング006」では、スクラッチのスプライトの向きについて説明しました。

今回は、爆速で上達するプログラミングのコツを教えます!

このプログラミングのコツさえしっておけば、コツを知らない子供たちよりも速くゲームや作品を作ることができます。

是非、覚えましょう!

プログラミングチャレンジ1
Scratch先生
Scratch先生

早速、プログラミングチャレンジ!

これは、Scratch先生から子供たちへの挑戦状です!
クリアできるかな?

ゲームや作品を作るときに、いくつかのブロックを使って、スクリプトを作っていきますが、「スクリプト」って何のことだったか覚えていますか?

考えてみましょう!

正解は、「スクリプト」とは、命令のかたまりのことでした。

覚えていたかな?

たくさん命令したいときは、このようにたくさんのブロックをくっつけて、ブロックのかたまり、つまり「スクリプト」を作ります。

このスクリプトを作る作業のことを「プログラミング」といいます。

人によっては、スクリプトを「プログラム」と呼んだり、プログラミングを「プログラムを作る」と言うこともあります。

たくさん呼び方があるので、こちらでは、「スクリプト」を「プログラム」、「プログラムを作りましょう」を「プログラミングに挑戦してみましょう」と統一します。

スポンサーリンク

プログラムの基本

これから色々なプログラミングに挑戦してもらいますが、その前に、知っておくとプログラミングのスピードが格段に上がるコツを教えます。

プログラミングのコツを知るには、プログラムの基本を理解する必要があります。

プログラムは、上から下へ順番に処理される

スクラッチでは、ブロックを並べてプログラムを作ります。

並べたブロックをクリックすると、プログラムが実行されますが、プログラムは、上から下へ順番に処理されます。

つまり、順番を間違えると、まったく違うプログラムになってしまうということです。

プログラミングをしていると、思ったような動きにならないことがよくあります。

そんなときは、「プログラムは上から下へ順番に処理される」ことを思い出して、1つ1つブロックの順番をチェックしましょう。

ちなみに、プログラミングの世界では、プログラムを上から下へ順番に処理させることを「順次処理」といいます。

番に処理をするから「順次処理」ですね。

  • プログラムは、上から下へ順番に処理される(順次処理)
  • 思ったような動きにならないときは、1つ1つブロックの順番をチェックする

プログラミングで、プログラムの流れを制御できる

プログラムは、上から下へ順番に処理されますが、プログラミングで、プログラムの流れを制御することができます。

これから、いくつか紹介しますが、プログラムの内容は説明しません。

プログラムの流れを、プログラミングで制御できるイメージを持ちましょう。

こちらのプログラムの流れは、分かれ道のように、2つに道に分かれていますよね?

このように、「〇ならAの道へ、〇でなければBの道へ」と、条件をつけて、プログラムの流れを分けることもできます。

プログラミングの世界では、条件をつけて、プログラムの流れを分けることを「分岐処理」といいます。

「もし◇なら」のように「もし」「なら」の言葉がでてきたら、「分岐処理」のことだと覚えておきましょう。

こちらは、変なプログラムの流れになっていますね。

これは、同じプログラムを繰り返しているプログラムの流れです。

プログラムは、上から下へ順番に処理されますが、その途中でグルグル繰り返すこともできます。

こちらのプログラムもグルグル回っていますが、なんと止まりません。

ずっとグルグル回り続けるプログラムの流れです。

このままでは永遠にプログラムは止まりませんが、スクラッチでは、「すべてを止める」ブロックのように、プログラムを強制的に止めるブロックもあります。

プログラミングの世界では、このように繰り返す処理を「反復処理」といいます。

小学校で反復横跳びをやった子はいるかな?

左右に横跳びをして、それを何度も繰り返したよね?

何度も繰り返し横跳びをしているから「反復横跳び」と言います。

それと同じで、何度も繰り返すので、「反復処理」というわけです。

さて、ここまで紹介したプログラムの中で何か気づきませんでしたか?

  

プログラムの流れを制御していたのは、こちらのブロックです。

よく見ると、すべてのブロックの色が同じですよね。

実は、プログラムの流れを制御するブロックは、「制御」ブロック群にまとめられています。

プログラムの流れを変えたいときは、「制御」ブロック群の中のブロックを使うと覚えておきましょう。

  • プログラムは、条件をつけてプログラムの流れを分けることができる(分岐処理)
  • プログラムは、プログラムの流れを繰り返すことができる(反復処理)
  • プログラムの流れを制御するブロックは、「制御」ブロック群にまとめられている

プログラムの流れは3つの処理だけ

ここまで、下の3つのプログラムの流れの処理を紹介しました。

  • 順次処理・・・プログラムを上から下へ順番に処理
  • 分岐処理・・・プログラムの流れを分岐する処理
  • 反復処理・・・プログラムの流れを繰り返す処理

実は、プログラムの流れは、この3つの処理だけです。

どんなに長いプログラムでも、この3つの処理が組み合わさってできています。

プログラミングで分からなくなる子は、このプログラムの流れをイメージできていない子が多いです。

プログラミングのコツは、プログラムの流れをイメージして作ることです。

プログラムが長くなって、思い通りの動きができない場合は、プログラムの流れと、「順次」「分岐」「反復」のどの処理をしているのか確認しましょう。

  • プログラミングのコツは、プログラムの流れをイメージして作ること
  • プログラミングのコツは、「順次」「分岐」「反復」のどの処理をしているのか意識すること

プログラムを開始するには「トリガー」が必要

「スクラッチでプログラミング001~006」では、プログラムを実行するときにブロックをクリックしていましたが、普通は「トリガー」を使ってプログラムを実行させます。

トリガーとは、なにかを行うときのキッカケ(トリガー)となるものです。

例えば、数字の「半角」と「全角」の話を覚えていますか?

ブロックの数字を入れる〇には、「半角の数字」しか入れられないので、キーボードの「半角/全角」キーで、半角にしましょうと説明しましたよね。

この「半角/全角」キーが、まさに「トリガー」です。

「半角」と「全角」を切り替えたいときに、「半角/全角」キーがトリガーとなって、切り替わります。

スクラッチでは、トリガーとなるブロックが用意されています。

それが「イベント」ブロック群です。

「イベント」ブロック群には、8つのブロックが用意されています。

それぞれのブロックを見ると「~とき」とあるブロックが、6つありますよね。

この6つが、トリガーとなるブロックです。

例えば、こちらの「緑の旗が押されたとき」ブロック。

こちらは、ステージ左上の緑の旗を押したときをトリガーに、プログラムを実行させるブロックです。

スクラッチでは、ゲームや作品を開始するときに、一番よく使われるブロックです。

このようにプログラムは、何かのキッカケを与えなければ、動くことがありません。

そのキッカケのことを「トリガー」といい、そのキッカケを設定するブロックが、「イベント」ブロック群の6つのブロックです。

プログラムは、何かキッカケがなければ動かないものだと覚えておきましょう。

  • プログラムは、何かキッカケがなければ動かない
  • プログラムを動かす時のキッカケを「トリガー」という
  • プログラムを動かす時のトリガーは、「イベント」ブロック群にまとめられている

プログラムの処理のスピードは、めちゃくちゃ速い!

プログラムの基本として、もう一つ皆さんに知ってほしいことは、プログラムの処理のスピードは、めちゃくちゃ速いということです!

どれぐらい速いか?

目に見えないぐらい速いですw

例えば、こちらのプログラム。

〇と言う」ブロックは、吹き出しで〇の中の文字を出すことができます。

プログラミングチャレンジ2
Scratch先生
Scratch先生

Scratch先生から子供たちへの挑戦状です!

クリアできるかな?

今回は2つ挑戦してもらいます。

まず、1つ目は、このプログラムの流れは、先ほど3つ紹介した処理の中のどの処理になるでしょうか?

2つ目は、こちらのプログラムを実行するとステージではどのようになるでしょうか?

プログラムは作らずに頭の中で考えて、答えをだしましょう!

分かりましたか?

まず、1つ目の処理の問題。

プログラムの流れは、「順次」「分岐」「反復」の3つの処理がありましたよね。

「分岐」「反復」の場合は、「制御」ブロック群の中のブロックを使いましょうと説明しましたが、今回のプログラムに「制御」ブロック群のブロックは、ありません。

つまり、単に上から下へプログラムが流れているだけなので、「順次処理」が正解です。

次は2つ目の問題です。

こちらは、先に間違った答えから紹介します。

このプログラムが「順次処理」ということは、上から順番にブロックを処理していけばいいのは、分かりますよね。

そうなると、「おはよう!」「こんにちは!」「こんばんは!」の順に吹き出しを出すのが正解のようにみえますが、実は違います。

正解は、「こんばんは!」だけ吹き出しを出します。

なぜかというと、プログラムの処理が速すぎて、人間の目では確認できないからです。

プログラムの処理自体は、「おはよう!」「こんにちは!」「こんばんは!」の順に吹き出しを出しています。

しかし、私たち人間の目では、それが確認できないぐらいプログラムの処理が速すぎるのです。

これが、プログラミングで分からなくなる子が、続出する原因の1つです。

本当に「おはよう!」「こんにちは!」「こんばんは!」の順に吹き出しを出しているのかを確認する方法があります。

それは、プログラムを一旦止めることです。

スクラッチでは、「制御」ブロック群の中に、「〇秒待つ」ブロックがあります。

「〇秒待つ」ブロックは、〇に指定した時間(秒)だけプログラムを止めることができるブロックです。

このように、「〇と言う」ブロックの間に「〇秒待つ」ブロックを入れていきます。

さて、このプログラムの流れは「順次」「分岐」「反復」のどの処理でしょうか?

正解は、「順次処理」です。

「〇秒待つ」ブロックは、「制御」ブロック群の中の1つのブロックなので、「分岐」「反復」のどちらかな?と悩んだ子もいたかもしれません。

ただ、「〇秒待つ」ブロックは、プログラムが流れる時間を制御しただけなので、「分岐」も「反復」もしていませんので、「順次処理」が正解です。

(▶をクリックして動画を確認してね)

「〇秒待つ」ブロックを挟んでプログラムを実行すると、「おはよう!」「こんにちは!」「こんばんは!」の順に吹き出しが出てくるのを確認できます。

このようにプログラムは間違っていなくても、人間の目では、正しく処理されているのか分からない場合があります。

プログラムの流れをチェックしても問題が解決できない時は、「〇秒待つ」ブロックを使って、どこまで正しく処理されているのか、どこで間違った処理になっているのかを確認しましょう。

  • プログラムの処理のスピードは、人間の目で確認できないぐらい速い
  • プログラムの流れをチェックしても問題が解決できない時は、「〇秒待つ」ブロックを使う

まとめ

Scratch先生
Scratch先生

プログラムの基本とプログラミングのコツは、覚えたかな?

「スクラッチでプログラミング007」では、プログラムの基本を説明しながら、爆速で上達するプログラミングのコツを説明しました。

プログラミングのコツを「覚えたよ!」という子は、下の「CHECK」をもう一度確認して、次の「スクラッチでプログラミング008|ブロックの結合・複製(コピー)・削除方法」へ進みましょう!

  • プログラムの基本
    • プログラムは、上から下へ順番に処理される(順次処理)
    • プログラムは、条件をつけてプログラムの流れを分けることができる(分岐処理)
    • プログラムは、プログラムの流れを繰り返すことができる(反復処理)
    • プログラムの流れを制御するブロックは、「制御」ブロック群にまとめられている
    • プログラムは、何かキッカケがなければ動かない
    • プログラムを動かす時のキッカケを、「トリガー」という
    • プログラムを動かす時のトリガーは、「イベント」ブロック群にまとめられている
    • プログラムの処理のスピードは、人間の目で確認できないぐらい速い
  • プログラミングのコツ
    • プログラミングするときは、プログラムの流れをイメージして作ること
    • プログラミングするときは、「順次」「分岐」「反復」のどの処理をしているのか意識すること
    • 「もし」「なら」がでてきたら、分岐処理
    • 思ったような動きにならないときは、1つ1つブロックの順番をチェックすること
    • プログラムの流れをチェックしても問題が解決できない時は、「〇秒待つ」ブロックを使ってどこに問題があるのかチェックすること

【Step3】スクラッチとプログラミングの基本知識

【Step1・Step2】スクラッチアカウント作成とログイン方法