プログラミングの学習サンプルを、Scratch初心者向けに考えています。「座標」、「繰り返し」、「イベント」について。

本連載は、プログラミング学習に関心のある保護者の方が、お子さま(小学3年生以上)と一緒に読むことを想定して書いています。

保護者の方へ

昔、僕の高校数学の先生が最初の授業で、主要三教科は、

  • 国語
  • 英語
  • 数学(語)

である、というお話をしてくださいました。

国語、英語に続き、数学も一つの言語 ( = 情報を伝える道具) であり、言語こそが学習の基礎的な教科である、ということなのでしょう。

言うまでもなくプログラミングは、数学の言語的な性質を扱う分野で、子ども向けプログラミング学習のプラットフォーム”Scratch (以下分かりやすく日本語で「スクラッチ」と書きます) ”は、子ども向けと言っても、その機能の多くがプログラミング言語において普遍的な概念です。

スクラッチの基本的な操作や考え方は、一見、ゲームの延長のように感じられるかも知れませんが、保護者の方は、「プログラミング学習と言っても、スクラッチの機能を覚えるだけじゃないか」とは、思わないでください。

プログラミング的な物の見方、捉え方は、表現やコミュニケーションの可能性を広げてくれるものに違いありません。

では、前置きはこのぐらいにして、さっそく学習を始めましょう。今回は、スクラッチでふうせんを飛ばすアニメーションを作ってみます。

スクラッチは、割と感覚的に扱えるように作られた、優れたデザインです。このブログでは、プログラミングの考え方を伝えるのが主な目的ですので、細かい操作方法はそれほど詳しく書いておりません。ご了承ください。

基本的な操作と考え方

この講座でのスプライト(キャラクター)などの用意は、以下のリンクから作品を「リミックス」してください。

作品の完成イメージ
作品の完成イメージ

https://scratch.mit.edu/projects/391651129/

ふうせん (balloon) のシンボル(スクラッチでは「スプライト」と言います)が用意されていますが、これを画面の下の方から、まずはまっすぐ上に向けて飛ばしてみましょう。

以下のブロックを使いますが、闇雲に動かさず、まずは説明を読んでみてください。

どこ?(空間)の理解

ブロックの説明は置いておき、まずパソコンのマウスのドラグ操作で、ふうせんを掴んでゆっくりと上へ下へ、右へ左へ、動かしてみましょう。ドラグ操作を始めた(マウスを押した)ときと終えた(マウスを離した)ときで、画面右下の「x」と「y」の数値が変わっていくのを確認してください。

ふうせんの動きと数値の関係を追っていけば、「正の数、負の数」や「座標」という数学の話が分からなくても、「x」がふうせんの横位置を、「y」がふうせんの縦位置を示していることが分かってくるはずです。

このように、プログラミングでは物事の性質・状態を全て数値に置き換えて考えます

いつ?(時間)の理解

この説明から先は、実際にご自身でブロックを動かしてみて、好きなように色々試しながら読んでみてください。

スクラッチではブロックをドラグ操作で移動させることができ、他のブロックと連結させてプログラムを作ります。単体のブロックや連結したブロックは、クリック操作でブロックの命令を実行します。この辺りの操作は、画面の変化を注意深く観察しながら、保護者の方がお子さまに見本を示してください。

スクラッチでは、ブロックの命令が一つずつ上から順番に実行されますが、ブロックの数が少ないとほぼ一瞬で実行されてしまいます。

そこで、滑らかに変化させたい場合には、「繰り返し」を用います。

例えば、「y座標を10ずつ変える」のブロックを、「10回繰り返す」のブロックで囲んでから実行(ブロックをクリック)してください。すると滑らかにふうせんが動き出すはずです。

※操作するときの注意

  • ふうせんが端の方へ行ってそれ以上動けなくなったら、ドラグ操作で元の位置に戻してください。
  • ブロックをクリック操作して命令を実行する場合、ブロックの色のついた部分(数字以外の部分)をクリックするようにしてください。
  • ブロックの数字の部分をクリックすると、数字をキーボードから入力できるようになります。
  • ブロックをドラグ操作して移動させる場合、下の方へ連結しているブロックはくっついて移動します。

合図(イベント)の理解

プログラムは、何かの合図で開始(実行)させることができます。

もしロボットなら、スイッチをONにしたり、センサーが何かを検知したりして動き出すでしょうが、パソコンの場合はマウスやキーボードの操作を受け付けることが、開始(実行)の合図になります。

このタイミングのことを、「イベント」と言ったりします。

今回は、「スペースキーが押されたとき」に、ふうせんが飛ぶようなプログラムを作ることにしますので、「スペースキーが押されたとき」のブロックを最初に置いて、それに次のブロックをつなげるようにしてください。

さて、ここまでの内容で、ふうせんを画面の下の方から、まっすぐ上に向けて飛ばすことができますか。

今日のお話はここまでです。また明日!