プログラミング体験講座Scratchでプログラミング体験
前書き
スクラッチというプログラミング学習用ソフトを使い、プログラミングの体験を行います。コンピュータの基本動作は、入力、演算、出力の3つと言われています。この3つの動作を行う基礎的なプログラムの作り、プログラミングがどのようなものか学んでみましょう。
イントロダクション
今の時代、コンピュータは日常生活の様々な場所で使われています。スマートフォンはもちろん、電子レンジや洗濯機、はたまた時計や靴といった身につけるものにもコンピュータが搭載されています。

つまり、コンピュータに「これこれの動作をしてほしい」と伝えるための技術のことを、プログラミングと言います。そして、プログラミングをしてコンピュータがするべき動作の手順や命令をまとめた指示書がプログラムです。どのようなプログラムを作るかによって、そのプログラムはゲームにもWebサイトにもなることができます。


この理由はいくつかありますが、一つの理由として、大規模システムに向いた言語、ちょっとした計算処理を手軽に書ける言語、ゲームを作りやすい言語、Webアプリを作りやすい言語といったように、それぞれの目的に適したプログラミング言語が作られてきたということがあげられます。
最終的には、作りたいプログラム内容・興味にあわせて、適切なプログラミング言語を選んで学習することが大切です。ただ、異なるプログラミング言語でも、プログラムを作る際の考え方など共通していることはたくさんあります。
そこで初めのうちは、多くのプログラミング言語で共通している、プログラミングの考え方を学ぶことが目標です。その為に、スクラッチ(Scratch)というソフトを使って学習を行います。

スクラッチとは
スクラッチ(Scratch)は、マサチューセッツ工科大学(MIT)メディアラボが、プログラミング教育用に開発しているプログラミング学習用ソフトです。
プログラミングというと、画面に英語の文字が並んでいる印象を持つ人も多いと思いますが、慣れない英語文字をキーボードから何度も入力して、プログラミングを学習していくのは思いのほか大変なことです。

一方スクラッチは、ビジュアルプログラミング言語を採用しており、視覚化された命令ブロックをパズルのように組み合わせプログラミングを行います。より手軽に何度も試行錯誤ができるため、プログラミングの考え方を身につけることに集中することが可能です。

スクラッチで学んだプログラミングの考え方は、C言語やPython言語といった本格的なプログラミング言語でも共通なことが多いので、次のステップアップにも繋がります。スクラッチで、先に考え方を身につけておくことで、将来的な学習のコストを減らすことが狙いの一つです。
スクラッチを使って様々なプログラムを作りながら、プログラミングの考え方を一つ一つ身につけていきましょう!
スクラッチを開く
では、実際にスクラッチを開いてみましょう。スクラッチは、インターネット上で利用することが可能です。
① スクラッチのサイトを検索する

② 「作ってみよう」ボタンをクリックする

上記のような画面が表示されれば、OKです。
なお、「https://scratch.mit.edu/download」からパソコンにインストールするタイプのScratchをダウンロードすることもできます。自分のパソコンに、スクラッチをインストールする場合は、上記URLにアクセスして下さい。
スクラッチの画面を確認する
スクラッチを実際に使い始める前に、簡単にスクラッチの画面について確認しておきましょう。

また、スクラッチでは、ステージ上に登場するキャラクターのことをスプライトと言います。
初めてのスクラッチプログラミング
スクラッチの画面を開くことができたら、スクラッチでのプログラミング方法を学んでみます。ステージ上にいるネコに、ひと言しゃべらせるプログラムを作りながら、プログラミングの流れを確認してみましょう。
①「緑の旗が押された」ブロックをスクリプトエリアに配置する
ブロックはドラッグ&ドロップで動かすことができる

②「こんにちは!と2秒言う」ブロックを組み合わせる

③ ステージ上の緑の旗を押し、動作を確認する

スクラッチでのプログラミングの流れは以上の通りです。あらかじめ用意されている命令ブロックをスクリプトエリアで組み合わせることでプログラムを作っていきます。
また、スクラッチでは、緑の旗がスタートボタン、赤い丸がストップボタンの役割をしています。
緑の旗を押して、プログラムの動作が始まるようにするためには、「緑の旗が押されたとき」ブロックを、作成するプログラムの先頭につけてあげます。

複数ブロックの組み合わせ – 順次処理
ここからは、すこし本格的にプログラミングを学んでいきます。初めは、順次処理という処理の順番の決まりについてです。
先ほど作ったプログラムは、ネコがひと言しゃべるだけでした。では、(しゃべらせる)命令ブロックを複数組み合わせた時に、処理の順番はどのように決まるのでしょうか?ブロックを複数組み合わせたプログラムを作って、どうなるのか確認してみましょう。
複数の文章を順番にしゃべるプログラム
例として、ネコに複数の言葉をしゃべらせる次のようなプログラムを作ってみましょう。

プログラムの作成ができたら、緑の旗を押します。プログラムが実行されると、ネコが次の順番でしゃべります。

上のブロックから、処理が順番に実行されています。上から順番に処理が実行されることを「順次処理」と言います。
基本的な処理パターン
予習も兼ねて少しお話をすると、一般的にプログラムは、順次・条件分岐・繰り返しの3つの処理パターンで構成され作られます。基本はこの3つの処理パターンしかありません。
- 順次(上から順番に処理を実行する)
- 条件分岐(条件によって処理を変える)
- 繰り返し(処理を繰り返す)

順次は先ほど確認したとおりです。
条件分岐は、例えばスマートフォンなどで正しいパスコードを入力されたなら、画面のロックを解除して、間違ったものが入力されたら解除しないといった動作を作るための処理パターンです。
繰り返しは、先ほどのスマホのパスコードに例えるなら、正しいパスコードが入力されるまで、再入力を受け付けるといった動作を作るための処理パターンです。
これら3つの処理パターンを理解することが、プログラム作成においては大事ですが、条件分岐と繰り返しについては、今回は学習しません。まずは、順次処理に基づく範囲で、プログラミングで重要な技術・ロジックを、学んでみましょう。
問題にチャレンジ!
自分の名前、趣味、好きな食べ物を順にしゃべるプログラムを作成してください。
例

ブロックの外し方や消し方について
ブロックの外し方や消し方について
外したいブロックの上にマウスのカーソルを持って行き、ドラッグすることで外すことができます。外したいブロックの下にあるブロックも、一緒にくっついてきてしまうので、注意が必要です。
ブロックの外し方や消し方について
消したいブロック(プログラムを)を、ブロックリストの所までドラッグして移動させると、消すことができます。

計算をする
コンピュータにとって、計算処理をおこなうということは、存在意義の一つです。その為、プログラミングにおいても、計算処理をするプログラムを作成するということはよくあることです。
ひと言に計算処理と言っても多義にわたりますが、ここでは四則演算を行う方法を主に学びます。
足し算をするプログラム
コンピュータに計算をさせる例として、最初に、足し算を行うプログラムを作成してみます。演算カテゴリーの、ブロックを使ってみましょう。

上のプログラムを実行すると、5+7=12と計算が行われ、12と表示されます。
スクラッチでは、演算カテゴリーにあるブロックを使うことで様々な計算をさせることができます。
四則演算をする
続いて、足し算以外の、引き算、かけ算、わり算、わり算の余りなどの計算をする方法も、プログラムを追加して、確認してみましょう。

プログラムができたら実行して、試してみましょう。
「3.5-2.3」のように、計算する数字に小数が(一つでも)含まれていれば、計算結果も小数となります。
四則演算と関連して、わり算の余りを求めるブロックが用意されています。プログラミングの世界では、わり算の余りを活用するパターンが意外にも多いです。どう役に立つか、具体的な活用例は別の項目にて少しずつ紹介していきます。
なお、かけ算やわり算を表す記号は、小学校の算数などで習ったものと異なりますが、プログラミングの世界ではこれが一般的です。スクラッチ以外のプログラミング言語でも基本的に共通なので、押さえておきたいポイントのひとつです。
割り切れないわり算
続いて、足し算以外の、引き算、かけ算、わり算、わり算の余りなどの計算をする方法も、プログラムを追加して、確認してみましょう。
計算結果は小数として求まります。
プログラミング言語によっては、整数同士のわり算をして割り切れない場合は、切り下げ(例 2.33なら2)をしてできた整数を計算結果とするものあります。わり算の挙動は、プログラミング言語によって異なるので、他の言語を学ぶ際は、注意しなくてはなりません。
わり算の結果を整数で求める
わりきれないわり算をした時は、計算結果が小数で表現されることがわかりました。しかしながら、プログラミングであつかう問題によっては、整数で計算結果を求めたい場合がでてきます。
そんなときに活用するのが、数字の切り上げまたは切り下げです。
- 切り上げ : 小数点以下が0でなかったら一つ上の整数にする 例 2.3 → 3
- 切り下げ : 小数点以下を全てなくして整数にする 例 2.3 → 2
一般的なプログラミング言語でもそうですが、小数の数字を切り上げたり切り下げたりするための命令が用意されています。スクラッチにも、もちろん存在しています。
そこで、切り下げブロックを使って、わり算の答えを整数で求める方法を学んでみましょう。

7÷3をすると、2.33…となりますが、これが切り下げによって2となります。
わり算の結果を整数で求めたい、そんなときは、切り下げ処理をすると覚えて置きましょう。
より複雑な計算
ここまでに登場した計算式は、比較的シンプルな物でした。計算に関する課題として、もう少し複雑な計算式が解けるプログラムを作成する手段を学びます。
「2×3+5」を求める
四則演算ブロックを複数組み合わせることで、複雑な計算をさせることが可能です。例として、2×3+5を求めてみましょう。
①「2×3」を行うブロックを作成する

② 5と足し算を行うようなプログラムを作成する
③かけ算ブロックを組み合わせる
ここまでできたら、実行してみます。
2×3+5=11なので、11と表示されれば成功です。

「2×(3+5)」を求める
スクラッチでは演算ブロックの組み合わせの順番によって、計算の優先順位を表現します。例として の計算をしてみましょう。
①「3+5」を行うブロックを作成する

② 2とかけ算を行うようなプログラムを作成する
③足し算ブロックを組み込む
ここまでできたら、実行してみましょう。スクラッチは、小さなブロック単位から、先に計算を行います。この例では、まず3+5=8が行われ、その後2×8=16と計算されます。

計算順序の考え方
計算順序(計算ブロックの組み方)をイメージ化すると次のような形です。

問題にチャレンジ!
以下にいくつかの計算式があります。それらの計算式の答えを求めるプログラムを作成してください。なお、今回は正しく計算ブロックを組み合わせられるかが重要なため、あらかじめ計算式の答えを載せておきます。プログラムで求めた結果が、答えと一致すればOKです。
例 2+2÷2= 3
例の答え

① 20×60=1200
② 5+8-3=10
③ (2+1)×2+1 = 7
④ (8+6)÷(2+5) = 2
⑤ {7+(1+2)×3}×5 = 80
文字列の連結
先ほどのレッスンで、コンピュータに計算させる方法を学びました。ただ、プログラムを実行した際の出力は、計算によって求まった答えの数値が表示されるだけでした。これだと、プログラムを見なければ、どんな計算をしたのかがわかりません。
この問題を解決するためには、文字列※を組み合わせる文字列の連結という処理が必要になります。
文字列の連結をすることで、計算結果を例えば次のようにわかりやすくすることが可能です。
ここでは、文字列連結を行い、表示を整える方法を学びます。例となるプログラムを作りながら、確認していきましょう。
文字列を連結する
まずは、スクラッチで文字列連結をするブロックについて確認をします。演算にあるブロックを使い次のようなプログラムを作ってみましょう。

「おいしい」という文字列と「ごはん」という文字列が連結して、おいしいごはんになりました。
計算式とその答えを表示する
では、文字列連結を使い、計算式とその答えが表示されるプログラムを作ってみましょう。計算式の答えは、プログラムで計算して求めるように足し算ブロックを使います。
プログラムができたら、みどりの旗を押してみましょう。
スクラッチは、基本的に小さなブロック単位から処理が実行されていくので、まず足し算の計算ブロックによって3+2=「5」という数が求められます。そして、5という数(の文字列)と「3+2=」という文字列が連結するので、最終的に「3+2=5」と表示されるという訳です。
200円の物を3個買ったときの合計額を求める
もう少し複雑な文字列連結も行ってみます。例として、200円の物を3個買ったときの合計額を求め表示するプログラムを作ってみましょう。
①プログラムのベースを作成する
「○○と△△」ブロックを2個組み合わせ、3個の文字列を連結するような形を取っています。
②計算ブロックを組み込む
問題にチャレンジ!
次のように、表示されるプログラムを作成してください。ただし、プログラムを作成する際には、以下の指示に従うものとします。

ベースとなるプログラムに、以下の計算ブロックを1回ずつ組み込み、文字列連結をすることで表示ができるようにしてください。

キーボードからの入力
ここまでに作ったプログラムは、プログラムに書かれた内容に基づいて計算等の処理をおこない、出力をするものでした。そのため、数値等を変更しようと思ったらプログラムを書き直す必要があります。
プログラマーならそれでも良いかもしれません。しかし、それ以外の人がプログラムを書き換えて処理を変更するなんてことは困難なことです。
そこで、ユーザにデータを入力してもらう仕組みをプログラムに入れられたら良さそうです。ここでは、データをキーボードから入力できるようにし、その内容に基づいた結果を表示するプログラムを作ってみましょう。
ここから先の内容を体験するには、体験アカウントが必要です。
体験アカウントは下記ページよりお申し込み下さい。
