【連載】どれ使う?プログラミング教育ツール

プログラミングの基本をScratchでおさらいしよう(順次編)

ー「順次」「反復」「分岐」をわかりやすく

プログラミングの基本になる考え方に「順次」「分岐」「反復」があります。何かプログラムで実現したいことがあるときには、まず、その手順を「順次」「分岐」「反復」の3つの制御構造を使ってフローチャートのようにして考えます。

フローチャートや言葉で手順を考えるところまではイメージがわいても、いざ、その手順をもとに、コンピューターにわかる言葉でプログラムを作るとなると、急に難しく感じてしまうのが初心者にとっての一つ目のハードルになります。

今回は「順次」の考え方を、子ども向けプログラミングツールで使われることが多い「Scratch(スクラッチ)」で実際に作ってみましょう。

「順次」ってどういうこと?

「順次」なんて普段あまり使わない言葉を漢字で書かれるとなんだか難しく感じてしまいますが、とてもシンプル。はじめから順番に並べた通りに処理をするということです。

「順次」のイメージ。ならべた順番に処理をする

人間の世界では、ただなんとなく「朝ごはん作って!」と言ってあとは自分で考えて適当にやってもらう……ということが通用しますが、プログラミングの世界ではできません。細かい手順をやるべき順番通りにひとつずつ指示する必要があります。

人の世界に置き換えるなら、「朝ごはん作って!」の代わりに「コーヒーメーカーのセットをして、卵を割ってかきまぜて、ウィンナーをフライパンに入れて焼きはじめて、パンにバターを塗ってトースターに入れて3分スタートしたら、コーヒーのコップを出してウインナーのフライパンに卵を流し込んで焼いて……」なんて具合に逐一指示するイメージです。実際のプログラミングは、さらにもっともっと細かく手順を分解して指示する感覚。コンピューターはプログラムの指示順通りにひとつひとつ処理を実行し、勝手に順番を変えたり飛ばしたりすることはありません。

Scratchでやってみよう!

「順次」のイメージをつかんだところで、さっそくScratchでやってみましょう。Scratchは無料で利用できる子ども向けのプログラミング環境で、ウェブブラウザでアクセスできます。Scratchは、プログラムをテキストで記述せずにビジュアル化されたブロックを組み合わせて作れるので、フローチャートなどで示した手順と見た目のイメージが近く、初心者が理解しやすいのが特徴です。

Scratchで新しいプロジェクトを作成して、はじめから用意されているネコのキャラクターを使います。ネコを選択して[緑の旗が押されたとき]ブロックを置いたら準備完了です。

Scratchの画面。プログラムブロックを配置してプログラムを組むビジュアルプログラミングのスタイル

このままではちょっとさびしいので背景を選んで追加します。あとは、ネコを動かしたいようにプログラムブロックをどんどんつないでいくだけです。ネコを真ん中あたりからスタートさせて右端まで歩かせるプログラムを作ってみます。

画面の中央から右にむかってネコが歩いて移動するプログラム

少し歩かせるだけで、たくさんのブロックを使いました。緑の旗を押してプログラムがスタートしたら、つないだブロックの指示が上から下に向かって順番に実行されていきます。これが、「順次」の処理です。指示をひとつずつ順番につないでいき、それが順番に実行されるという、非常にシンプルなルールです。

プログラムは猛スピードで実行される

順番に実行されると言っても、プログラムは猛スピードで実行されるので、[50歩動く]と[コスチュームを*にする]は、見た目上は同時に起きているように見えます。

また、[0.5秒待つ]を入れなかった場合、あっという間に最後までプログラムの実行が進むので、ネコの位置やポーズが変わった瞬間は見えません。実行すると同時に、ネコはいきなりプログラム最後の右端にいる状態になります。

[0.5秒待つ]ブロックをいれないと、移動している様子が見えない

いちいちこんなに細かく指示しなきゃいけないの!?っという気持ちになるかもしれませんが、「ネコを画面の端まで歩かせる」というやりたいことを実現するための手順を、こうして細かく分解して順番にプログラムの指示として組み立てることがプログラミングの基本なのです。

普段の生活でも、なんだか面倒で大変そうで手をつけるのが嫌になってしまうような物事にぶつかったときに、ステップバイステップの細かい手順に分解して並べてみると、意外とこれできるかも!という気持ちになれるかもしれませんね。大きな目的を小さな手順に分解する練習にもなりそうです。

さて、プログラミング経験のある読者の方ならすでにお気づきかと思いますが、今回紹介したプログラム、「順次」以外の考え方も使えばもっと少ないブロックで作ることができます。次回、「反復」を使って、このプログラムをアレンジしてみましょう。

「どれ使う?プログラミング教育ツール」これまでの記事

2019年~2022年4月まで「窓の杜」掲載

狩野さやか

株式会社Studio947のデザイナー・ライター。ウェブサイトやアプリのデザイン・制作、技術書籍の執筆に携わる。自社で「知りたい!プログラミングツール図鑑」「ICT toolbox」を運営し、子ども向けプログラミングやICT教育について情報発信している。