Scratchって宝くじか?
小学生を中心にScratch(スクラッチ)が流行ってきていますが、これは一体何なのでしょうか。こちらのページでこのキーワードを紹介しています。
この先は、このキーワードを知っているということで話を進めます。
お父さんお母さんもやってみよう!
お子さんがある程度大きくなると、塾に入れたりしていますが、私の身近でも、「プログラミングスクールってどうなんだろう」という話を耳にします。
プログラミングスクールというのは、他の習い事と違い、少々毛並みが違う所がありますので、親御さんとしては心配になるのは無理もありません。
Scratchは、文科省のサイトに小学校プログラミング教育に関する研修教材として紹介されている物ですから、実際に試してみることをお勧めします。特にこのScratchは、無料で使える物なので、気軽にお試しすることができるのです。
Scratchは導入が簡単!
Scratchのサイトは、色々なデバイスでアクセスできますが、プログラミングはPC、若しくは画面の大きい(iPadやAndroid)タブレットをお勧めします。スマートフォンでは、画面の関係で、見づらくなるからです。
プログラミングスクールが、PCやタブレットを推奨しているのは、このためなのです。
準備ができたら、下記のボタンを押してください!
…すると、下記の画面になるはずです(サイトの改変により異なる場合があります)。

左側にある「作ってみよう」というボタンをクリック(タップ)してください。

このような画面になるはずです。これは、プログラムするための画面になります。この画面の左側に、プログラムの動作を決めるブロックがあり、これを真ん中の白いエリアにドラッグして持っていき、色々な命令と組み合わせ、プログラムを作っていきます。
チュートリアルの動画がある場合もありますので、動画がある人は、しばしご覧ください。出なかった人は、先に進みましょう。動画を見終わった人は、チュートリアルは作業する時に邪魔になるので、「x 閉じる」で閉じましょう。
では、実際に簡単なプログラミングしていきましょう。

Scratchはよくできた教材
上の画像は、どのようなプログラムかといいますと、
1.緑の旗を押す。
2.「ニャー」の音を鳴らす。
3.1秒待って、ネコの絵をどこかの場所に移動させる。
4.繰り返し、10回作業をしたら、プログラムが終了。
こんなもので、プログラムは成り立ってしまうわけです。
「なーんだ。これなら簡単!」と思われる親御さん。それは、浅はかという物です。
他のプログラム言語をかじったことのある人なら分かると思いますが、上記の動きを実現させようとすると、これより短くならないはずです。
上記のプログラムは、よく使うLoop命令(10回繰り返す)というものを入れてあり、その間に繰り返す動作(「ニャー」の音を鳴らす。1秒待って、ネコの絵をどこかの場所に移動させる。)を入れたものです。
「1秒待って、ネコの絵をどこかの場所に移動させる。」という命令は、1文で済んでいますが、実際のプログラムなら、
1.1秒遅延(ディレイ)させる。
2.乱数を発生させる。
3.乱数を位置情報として用い、ネコの絵を移動させる。
簡単に書くと3文になりますが、Scratchでやるようにあちこちに動かすのは、意外と難しいことが分かります。
ちなみに、VB.NETでScratchと似たようなことをやってみたのが、次のプログラムです。
Imports System.Speech.Synthesis
Imports System
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.ClickDim i As Integer
Dim sp As New System.Speech.Synthesis.SpeechSynthesizer
Dim rnd_x, rnd_y As New Random()
Dim loc_x, loc_y As Integer
For i = 1 To 10
sp.Speak("にゃあー")
Select Case i
Case 1, 5, 9
loc_x = rnd_x.Next(20, 400)
loc_y = rnd_y.Next(20, 300)
Case 2, 6, 10
loc_y = rnd_y.Next(20, 100)
Case 3, 7
loc_x = rnd_x.Next(20, 100)
Case 4, 8
loc_y = rnd_y.Next(100, 300)
End Select
System.Threading.Thread.Sleep(1000)
PictureBox1.Location = New Point(loc_x, loc_y)
Application.DoEvents()
Next
End Sub
End Class

もう少し簡単にできるのですが、実際に乱数の発生がイマイチだったため、少々イカサマ的な方法であちこち動かしています。Scratchのようにあちこちに動かすには、もっと長くて高度なプログラムとなります。
どこがどうイカサマなのかは、プログラムができるようになれば分かるかも知れませんね。
Scratchは、実際のプログラミングで長くなってしまいそうな内容も簡単にできてしまうことから、とにかくよくできた教材と言えます。
Scratchのプログラミングスクールはここだ!
Scratchは、簡単にできるものであるというのは、お分かりになったかと思いますが、高度なことを行おうとすると、やはり場数が必要です。
それ以外にも、自分で教えられるのではと思いがちですが、やはりプログラミングスクールにはプロの講師陣がいらっしゃいますので、お任せした方がよろしいかと思います。
お金で時間を買うという所でしょうか。
Scratchは、次のプログラミングスクールで行っていますので、ご興味のある方は、下記記事及び公式サイトをご覧ください。
【幼児~小学3年生まで受講可能】

【小学生から受講可能】

【マイクラで紹介していますが、Scratchのコースもあります】

おまけ【Scratchに似ているQUREOのスクールもあります】

