[夏休み応援企画]Scratchではじめるプログラミング学習&自由研究

プログラミング学習にScratch(スクラッチ)が注目を集めています。この記事では、Scratchとはなにか、どういう学び方があるのか、自学自習の指針、そして自由研究のための活用法を紹介します。主に小学校中学年以上の子どもを想定した内容です。

今注目のプログラミング教育とScratch

2020年度から小学校でのプログラミング教育がスタートしました。導入初年度で現場にノウハウがなく、新型コロナウィルスの影響で授業計画の見直しが必要となったこともあり、2020年度春段階では本格的にスタートしていない学校がほとんどです。このためプログラミングやプログラミング教育がどんなものかお子さんも保護者の皆さんもつかめていないのではないでしょうか。

プログラミング教育というとなんだか難しそうに聞こえますが、実はその大きな意味での目標は簡単なものです。プログラミング教育とは、⁠コンピュータを自分の思い通りに動かしたい」とき、どうすればいいのか考える力を養う取り組みです。コンピュータを思い通りに動かせるという経験をしたり、普遍的なプログラミング的思考を身につけたりすることと表現してもいいでしょう。コンピュータを思い通りに動かすために行うのがプログラミングです。

コンピュータとプログラミングの重要性は社会でますます高まっています。プログラマーなどプログラミングを仕事にする場合以外も、プログラミング教育を通してコンピュータを自由に動かす経験を積み、その能力を得ることには大きな意味があります。

プログラミングでは、正解はひとつではありません。⁠コンピュータに目的の動きをさせる」ことがゴールなので、自分だけの方法でプログラミングしてかまわないのです。そのため、問題と答えが一対となっているような学習と比べて、創造性が発揮しやすくなります。

仮説を立ててプログラムを作成・実行し、それが正しかったことが証明される。その達成感のくりかえしがプログラミングの醍醐味です。プログラミングは「自分で考えてやってみる力」を育むのに絶好の機会といえるでしょう。プログラミングは何度失敗してもやり直して改善できるので、仮説が間違っていたり、プログラムが間違っていたりしてもくじけずにトライしていきましょう。

プログラミング教育において人気があるのがプログラミング言語のScratchです。プログラミング言語そのものだけでなく、プログラムを書くための各種の道具(開発環境とも呼ばれます)や交流機能(掲示板⁠⁠、他の人のプログラムで遊べる機能なども含みます。無料で手軽なプログラミング教材として世界中の学校や教室(ワークショップ⁠⁠、家庭で使われています。

Scratchの公式サイト
Scratchの公式サイト

Scratchの最大の特徴は視覚的なブロックを組み合わせるだけでプログラミングができることです。一部文字入力などはありますが、ソースコード(プログラミングの命令文)の入力は必要ありません。こういった視覚的に組み立てられるプログラミング言語は、ビジュアルプログラミング言語とも呼ばれています。タイピングをせずにプログラムできるので、タイプミスのエラーがなく、小さな子供もプログラミングを楽しめます。

Scratchプログラミングの実際
Scratchプログラミングの実際

プログラム制作だけでなく、他の人の作成したプログラムを鑑賞する機能があったり、アイデアを話し合うフォーラムがあったりと幅広い楽しみ方ができます。

先生がいなくても、特別な道具がなくても、無料で楽しく学べる

Scratchは無料ですぐに使えるので、プログラミングを家庭で学ぶにはぴったりです。

Scratchさえあれば道具は揃いますが、実際にどうやってプログラミングを教え、学んでもらえばいいのでしょう? プログラミング学習というと教室に通って、しっかり習い事として学ばなくてはいけないと考えている人もいるかも知れません。もちろん、専門知識や指導経験のある人と学習することには大きな意味があります。ただ、学校で教えてもらえなくても、プログラミング教室に通わなくても、Scratchは学習のための情報源が多くあり、お家で十分に自学自習できます。

公式サイトをWebブラウザで開いて、⁠作ってみよう」をクリックするとScratchのプログラミング画面が表示されます。初回表示時は初心者向けのチュートリアル動画が用意されているので、これをみると概要が学べます。また、画面上の「チュートリアル」をクリックするとチュートリアル一覧が表示されて、興味のある内容を学べます。

Scratch公式サイトにあるチュートリアルの1つ
Scratch公式サイトにあるチュートリアルの1つ
※)
チュートリアル一覧から視聴できる動画は現在英語音声、日本語字幕のみのものが多いです。小学校低学年から中学年ぐらいのお子さんには少し難しいかもしれません。

子供向けの書籍や動画がたくさんあるので、これらから面白そうなものを探して、お子さんに自分のペースで始めてもらいましょう。動画としては有志がYouTubeに公開したものや、NHKが公開しているプログラミング番組のものがあります。動画なら難しい漢字が読めない低学年や中学年のお子さんも学べます。

こういった情報源を活用して、少しずつプログラミングを学んでいきましょう。

子どもに楽しくプログラミングを学んでもらうために

プログラミングの自学自習はほかの習い事一般と比べてだいぶスムーズですが、どうしても一人で学習するとつまずいてしまうことがあります。特に顕著なのがモチベーション、目的意識の課題です。

筆者はプログラミング教室を運営し、教室外でもワークショップ開催などを行っています。そんな中、多く目にするのが、子どもたちの「プログラミングで何を作っていいのかわからない……」という悩みです。ヒントや課題を与えてくれる教室などに通っていないと、ますますこの傾向は強くなるででしょう。

こういった問題にぶつかったとき、細かいカリキュラムを与えたり、プログラミングの知識を詰め込んだりする学習方法も思いつきますが、自学自習に保護者が協力するという形式だと難しいです。何より無理に学習してもらおうと思っても、多くの場合身につきません。

好きなもので学んでもらう

こんなときは「自分の好きなもの」をテーマにすることが有効です。

自分の好きなものを既存のプログラムと組み合わせてみると、自分の好きなものにこんな動きをさせたい、こういう効果を加えたらどうなるだろう?とどんどんのめり込んでいきます。興味のあるものをテーマにすると、自然とアイデアがわいてくるでしょう。

もしもお子さんがモチベーションをいまいち失っていったら、電車、自分のペット、話題のキャラクターなど、まずは自分の好きなものを挙げてもらいます。それをプログラムに組み込んだらどうなるか考えてもらいましょう。

プログラミング学習というと、ついつい形式ばってしまうところがありますが、プログラミングに正解はありません。このテクニックを使わなければいけないとか、角度がいくつとか、計算通りに動かさなければいけないといった決まりはないのです。とにかく「自分の好きなものを動かす」ことができるのがいちばんの目標です。プログラミングがわかる大人の目線からすると、ここはこうした方がもっと効率的なのに…という場面もありますが、質問が出るまでは見守りましょう。

好きなものを作っていくうちに、⁠ここはどうすればいいのかな? こんなふうに動かしたいけど…もっと楽な方法がありそうだけど…」といった疑問が自然と出てきます。ここで質問されたら書籍を参考にしたり、一緒に調べたりしながら教えてあげましょう。わからないところがあったり、もっと高度なことをしたがったりしていたら、プログラミング教室などの利用もいいかもしれません。

教わったことをただなぞるだけではなかなか身につきませんが、自分が困っているときに出会ったロジックや計算方法は自然と身についていきます。

ゲームをつくっていくうちにプログラミングの仕組みが学べる

好きなものとして、⁠ゲーム」をつくるのもおすすめです。Scratchはゲーム制作にとても向いています。普段よく遊ぶゲームを、自分でも作ってみたいと考える子どもは少なくありません。好きなことにつながっているので、ゲームならプログラミング学習も長続きします。

※)
いわゆる3Dアクションなどは難しいです。

ゲームには条件分岐や確率、入出力など、プログラミングで重要なさまざまな仕組みが使われています。さらに、プログラミングだけでなく、シナリオ・デザイン・サウンドなど他の創造的な分野とも広く関係しています。さまざまな技術を総合的に、楽しみながら学べることがゲームづくりのメリットです。

Scratchにあらかじめ用意された命令はゲームづくりに向いたものが多く、比較的簡単にゲームがつくれます。

ゲームはジャンルによってルールが全く異なるので、いろいろなゲームを作ることによって違った手法を身につけることができるのも利点のひとつです。かんたんなゲームから初めて、だんだん手の込んだプログラムができるようになるといったステップアップも見えやすく、制作のモチベーションも維持しやすいでしょう。

プログラムの理解が進むと「このゲームの技術を応用すればこんなゲームもできる」といったロジック同士の組み合わせもできるようになってきます。応用力がつけば自分で考えてやってみることがどんどん楽しくなってきます。

Scratchは機能を拡張できるため、企業や有志により便利な機能が増えてきています。自動翻訳や合成音声をつかった海外の人も楽しめるようなゲームをつくったり、機械学習(AIの技術)をつかって映像をコンピュータに覚えさせたり、モーションキャプチャーを使ったり、モーターやセンサーなどのデバイスを組み合わせたりもできるので、ロボットのようないろいろな仕掛けを組み合わせたプロジェクトを作ることもできます。拡張性の高さ、興味を持った分野をより伸ばすことができるのもScratchの特徴です。

他の人のプログラムの仕組みが公開されていて改善や研究がしやすい

Scratchの学びやすさの理由の一つ、優れた「お手本」がたくさん公開されているという点も忘れてはいけません。

ScratchのWebサイトには、世界中の人が作ったプロジェクト(作品)がアップロードされています。これらは、ユーザー登録なしでも、だれでもプログラムとその中身を見ることができます。これらはCC BY-SA 2.0というライセンス(制作元を明記すれば再利用可)のもと公開されていて、このライセンスに従えば自由に再利用(リミックス)できます。

※)
プログラムの再利用のことをリミックスといいます。

そのため、Scratchでは既存の作品を参考にしたり、リミックスしてオリジナルのアイデアを追加したりすることが盛んに行われています。だれかの作品をよく観察したり、マネをして作ってみたり、アレンジしたりすることはプログラミング上達の近道です。

例として、筆者の作成したプログラムを動かして試せる画面と、⁠中を見る」をクリックして開けるプログラムの中を見る画面を掲載します。

「三目並べ」プログラム
「三目並べ」プログラム
プログラムの中身
プログラムの中身

ゲームづくりで困ったら、同じような作品を作っている人を探して、どのような方法でプログラムが組まれているかを研究できますし、新しいアイデアを得る機会にも恵まれます。自分の公開した作品が他の誰かの役に立つかもしれません。

またScratchには公式にフォーラム(掲示板)もあります。同じ趣味の仲間が集まっている場所なので、ユーザー登録をすればコメントをして、技術的な相談をすることもできます。日本語向けのフォーラムもあります。

Scratch 日本語フォーラム
Scratch 日本語フォーラム

また、リミックス機能を使い、同じゲームを複数人で作るといった共同プロジェクトを立ち上げる人もいます。問題に直面したときに同じ悩みを共有して一緒に考えられ、チーム開発は一人では作れなかった大作に挑戦することができます。さらに、適切な情報の共有やプロジェクト運営など、プログラミング以外のスキルを育むことができるでしょう。直接の面識がない相手とWeb上でやりとりするのは小学生には決して簡単ではありませんが、選択肢や今後Scratchにもっとハマったときの選択肢として知っておきましょう。

Scratchはこういったコミュニケーションの場が付帯しているので、さまざまなメリットがあります。反面、誰でも気軽に発言できることから口論になってしまうケースもあります。

安易にこういった機能の利用を禁止するのではなく、むしろそういったトラブルに対処する方法を学ぶ場所でもあると考えましょう。16歳未満のユーザーは、登録する際に保護者のメールアドレスが必要です。利用規約やガイドラインを確認し、Scratchを使うルールを話し合いましょう。

お家でプログラミングに挑戦!親子で学ぼう!

お子さんがプログラミング学習をする上で気になるのが、モチベーションの保ち方です。できあがったゲームを一緒に遊んでみたり、工夫点を聞いてみたり、本で学習している場合は進み具合を聞いてみたりと保護者からできるモチベーションアップの方法もいくつかあります。楽しんで学んでもらえるよう工夫すれば、自然とプログラミングは上達していきます。

ただ、これらはどうしても相対的な評価になりがちで、保護者もお子さんもどの程度までプログラミングを習得できたかを判断するのは難しいです。プログラミングそのものが好きなお子さんの場合は特に、プログラミングがどこまで習得できたか知ることができると嬉しいはずです。

そこで、下記に簡単な「プログラミングがどこまでできたかのチェックリスト」をつくりました。これをもとにステップアップの度合いを確認すると、わかりやすく達成感がえられるでしょう。ただ、あくまでもチェックリストはお子さんの学習を助けるためのものです。チェックリストで採点したり、チェックリストを埋めることにノルマを課したりすると、かえって純粋な学習意欲が削がれてしまうかもしれません。プレッシャーにならないように利用してください。

ステップアップ チェックリスト

Scratchでプログラミングを学習する際に目安となるチェックリストです。できたものにチェックをいれていきましょう。

キャラクターを動かしてみよう

「動きブロック」を使って、キャラクターを動かそう。

クリックするだけでも動くので、いろいろなブロックをクリックしてどのブロックでどんな動きになるのかを確認しよう

イベントを使ってみよう

「イベントブロック」を使って、イベントと動きを組み合わせてみよう。

「キャラクターがクリックされたら進む」「キーが押されたら回る」のように「こうしたらこうなる」というプログラムを作れるようになろう

くり返しを使ってみよう

「10回繰り返す」「動きブロック」を組み合わせてみよう。

くり返しの中には複数のブロックを入れることができるので、どの組み合わせでどんな動きになるかを試してみよう。

見た目ブロックを使ってみよう

動きだけではなく「見た目」ブロックも組み合わせてみよう。

コスチューム・大きさ・色…などをプログラムで変えることができるよ。色以外にも、▼ボタンからいろいろな効果を選べるので試してみてね。

「もしブロック」を使ってみよう

ブロックの使い方がわかってきたら、⁠もし○○なら」のブロックを使って「条件分け」に挑戦してみよう。

もしブロックの中には「調べるブロック」を組み合わせて「もし○○に触れたなら」「もし○○キーが押されたなら」のような条件を作ることができるよ(※もしブロックは「ずっと」などの繰り返しブロックの中に入れて使おう⁠⁠。

ここまでで、⁠イベント・動き・くり返し・条件」のプログラムの基本がマスターできたよ!もっとレベルアップしてみよう!

マイナスをつかってみよう

Scratchやコンピュータの世界では「マイナス」「逆向き」の意味でも使われるよ「-10歩動かす」だと後ろ向きに進むという意味で、⁠-90度に向ける」だと反対方向に向くよ。いろんな数字にマイナスをつけて試してみよう。

座標を使ってみよう

座標を使うと、ステージの正確な位置をスプライトに教えることができるよ。スプライトのステータスにある「x」「y」が、ステージ上のキャラクターの座標だよ。⁠動きブロック」の中にある「座標」を使って、自分の好きな場所を座標で示せるようになろう。

変数を使ってみよう

スコアやライフといったパラメーターを保存しておくのに便利な「変数」というものがあるよ。⁠変数を作る」ボタンで好きな変数を作ったら、⁠変数を〇ずつ変える」でパラメーターを変化させてみよう。変数の値を減らすときには「マイナス」を使うよ(変数には文字も入れることができるよ⁠⁠。

演算ブロックを条件に使ってみよう

「もしブロック」の条件には「演算ブロック」も使うことができるよ。<>=のブロックは座標や変数を比べることができるので、⁠x座標が0より大きかったら」とか「ライフが1より小さかったら」のような条件を作ることができるよ。さらに「かつ」⁠または」⁠ではない」のように、条件同士を組み合わせることもできるよ。

クローンを作ってみよう

「クローンを作る」ブロックでキャラクターのコピーを作ることができるよ。見た目だけじゃなく、プログラムまですべてコピーされるから、クローンにもプログラムして好きな動きをさせることができるし、クローンは300個まで出すことができるよ。

リストを使ってみよう

リストは変数がたくさん集まったものだよ。リストにデータをいろいろ入れてみて、自分の目的のデータを出せるようになろう。⁠演算ブロック」「乱数(ランダムな数⁠⁠」を使えば、リストの中からランダムでデータを取り出す「おみくじ」「クイズ」のようなものも作れるよ。

定義ブロックを使ってみよう

たくさんプログラムしていると、同じようなプログラムがいくつも出てくることがあるよね。そういうときは、同じプログラムを「定義ブロック」にまとめてみよう。

拡張機能を使ってみよう

「ペン」⁠音楽」⁠モーションセンサー」⁠翻訳」などいろいろな拡張機能を使ってみよう。ここまでくれば「試しながらプログラムする」ことが身についているはず。どんどん試して、新しいゲームを考えよう!

自由研究としてScratchを行うときの注意点やおすすめ

プログラミング教育が広まる中、夏休みの自由研究にScratchを使用するケースも増えてきました。Scratchはゲームづくりで特に人気があります。ゲームづくりというと遊びのように聞こえるかもしれません。もちろん面白い(楽しめる)題材ではありますが、ゲームづくりは常に考え、検証し、実験して進むものです。多くの学びがあります。筆者としては自由研究に向いている題材だと思っています。

さらに、Scratchはゲーム以外にも、アートや音楽、シミュレーション、ストーリーなど自分の興味のある分野とも組み合わせられます。自分の興味のある分野とプログラミングを組み合わせてどういうことができるか調べ、実装(制作)してみるのはコンピュータにできることを知る上で大切な経験になります。

プログラミングそれ自体が題材でも、自分の興味のある分野とプログラミングの組み合わせでもScratchは自由研究にぴったりです。

Scratchでの創作は、まず「作りたいもの」のアイデアががあり、そのために何が必要かを分解して考える、というステップを踏みます。アイデアを考え、それを論理的に分解していくことは考える力を養うのに重要です。

ゲームづくりを自由研究の題材にするとつくりたいゲームの要素を分解して考えることとなります。そこからキャラクターを移動させたい、スコアを追加したいなど、プログラムの機能を考えていくことになります。ゲームの場合は、既存の作品を参考にして、作りたいものの具体的なビジョンが浮かびやすいのは良いところです。Scratchではこの「やりたいこと」がそのまま「ブロックの命令」になっていることが多く、思いついたままをプログラムに記述しやすいです。

Scratchは命令ブロックも簡単な日本語なので、プログラムを知らない人も「読めばなんとなく理解できる」特徴があります。そのためソースコード(プログラム本体)の掲示がしやすく、他のプログラミング言語よりも自由研究として活用しやすいでしょう。また、作品を誰でも利用・閲覧しやすいかたちで公開できます。ただ、このようなかたちでゲームだけ提出(公開)されても自由研究として認められない可能性が高いでしょう。

※)
ScratchならURLさえあれば遊んでもらえますが、ゲームそのものの提出は難しい点に注意が必要です。

自由研究の提出様式に従って、パソコンがなくてもどんな作品なのか、どんなところを工夫し、どのように作ったのかをわかりやすくまとめましょう。

[提出物おすすめその1]ゲームをつくって学んだプログラミングの知識をまとめよう

Scratchでつくった題材が何であれ、Scratchを通して学んだプログラミングの基本知識をまとめるのはわかりやすいでしょう。そこにどうやって自分が工夫を加えたか、それらを知って自分がどう思ったかなどが書ければなおよしです。

一歩進んで、ゲームを作るときにどういうテクニックを思いついたか、どういう研究をしたかをまとめるのも面白いです。ゲームの動きにリアルさを出すときには、⁠実際の動きを観察し」⁠ゲーム内で再現する」ことが必要になります。こうすると、観察や実験をする科学研究に似ていますね。ちょっとした「こだわり」を追加して、研究してみましょう。

画像

残念ながら、ゲームの中の動きをそのままノートに貼り付けることはできません。見てもらうには工夫が必要です。

まず、プログラムで再現した動きを「グラフ」「図」にしてみましょう。時間の経過に応じてゲーム内のキャラクターがどの場所に移動するかなどを図示すると、パソコンがなくても、キャラクターがどのような動きをするのかがわかりやすくなります。

グラフを作るのにもScratchが使えます。拡張機能の「ペン」が便利です。⁠ペンを下ろす」命令を使うとキャラクターの動いたとおりにペンの軌跡ができます。その軌跡をスクリーンショットで撮影し、貼り付ければグラフの代わりになります。

プログラムに工夫したときは、ただプログラムを貼っても伝わらないでしょう。プログラムを知らない人にもわかりやすいように、プログラムの解説を入れましょう。

画像

プログラミングそのものも頑張りつつ、知識を学んだり、挑戦をまとめたりして多くの人に伝えられるようにすることを意識しましょう。

[提出物おすすめその2]ゲームの企画をして学んだことを書く

難しいプログラムをつくったり、プログラミングを極めたりすることにこだわらなくても、ゲームをひとつ完成させるのは、それ自体すばらしい研究です。ただ、ゲームをつくりたいという気持ちだけでは自由研究として成立しません。どういうゲームを考えたか、それをScratchでどう実現しようとしたかなどをみんなに伝わるかたちでまとめなくてはいけません。

ゲームを自由研究にすると、せっかくつくったゲームが遊んでもらえないことが少し残念です。しかし、制作者サイドに立ったときの発見や工夫をまとめておけば、たとえ作品を見なくても気づきや熱意は伝わります。

完成したゲームだけではなく、どんな工夫をしてどう改善したかをそのつど記録しておきましょう。だんだん良いゲームに進化していく様子を、日記のようにまとめておけば、プログラムがわからない人にも、がんばった様子がわかります。

また、せっかくゲームを作ったならより魅力的なかたちで周囲に伝えたいはずです。より魅力的な伝え方については、ゲームの広告がとても参考になります。ユーザー(この場合は先生や友達)にわかりやすいようにゲームのいいところを伝えるにはどうすればいいか、ゲームのパッケージやチラシを見て学びましょう。

ゲームのパッケージは中の紙が取れる構造になっているので、自分で作ったパッケージに、タイトルや見どころなどをまとめると本物のゲームのようになりますし、展示するときにURLのメモを何枚か用意しておけば家にPCがある友達がメモを持ち帰って実際にプレイすることができます。

画像
画像

ユーザーを意識したゲームづくり・パッケージ作りをするとこれまで遊んできたゲームも、作り手目線で見ることができます。ここはこんなふうに演出されているとか、このようにプログラムされているといった新しい発見があります。ゲームクリエイターの仕事が体験できます。

[提出物おすすめその3]好きなものとプログラミングを組み合わせよう

ゲームに限らず、自分の興味のあることとScratch(プログラミング)をあわせて、そこでの工夫などをまとめるのも自由研究として面白いでしょう。たとえば、魚が好きなら、好きな魚をたくさんプロジェクト内で泳がせる。クリックすると魚の説明が見られるといった「動く図鑑」などが考えられます。

魚について調べて、それをもとに見せ方を考えてプログラムを作るのは、魚の知識が増え、プログラムについての理解が深まるだけでなく、プレゼンテーションなど総合的な能力の増進に役立ちます。

発展的なプログラムをつくろうとすると、一層多くのことが身につきます。たとえば、魚の生態に合わせてプログラミングで動きを工夫したり、Scratchで魚クイズをつくったりするのは魚の知識とプログラミングの知識が両方必要になってきます。

画像

簡単なものから難しいものまで、アイデア次第でなんでも作れるのがScratchの良いところです。天体の動きをScratchで真似てみたり、朝顔の成長データをScratchに入れてグラフにしてみたり、プログラミングだからできることはたくさんあります。自分の好きなものとプログラミングを組み合わせたらどんなことができるのか、探してみるのは面白いでしょう。

皆さんもぜひ、自由研究にScratchを活用してみてください。

おすすめ記事

記事・ニュース一覧