子どもプログラミング レッスンの紹介②
- 投稿者 MB Admin
- カテゴリ プログラミング教室ブログ
- 日付 2月 3, 2023
- コメント 0 comment
こんにちは。
先日は子どもプログラミングレッスンの紹介①の記事で、ゲーム設計のお話までしました。
(まだ読んでいない方はコチラ)
今日はその続きとして、プログラミングをするのは初めてというT君とR君の、実際のコーディング作業(プログラムを書く)の様子をご紹介します!
スクラッチ(Scratch)でコーディング!
スクラッチ(Scratch)とはビジュアルプログラミング言語です。
一つひとつ文字(アルファベット)を打ち込むのではなく、あらかじめ指示の書かれた“ブロック”を組み合わせて、プログラムを組んでいきます。
こんな感じです。
ブロック部分をクローズアップしてみましょう。
指示の書かれたブロックが積み重なっているのがお分かりでしょうか?
スクラッチにはキャラクターを動かすブロックや見た目を変えるブロック、“いつ”そのアクションをするかという動作のタイミングを指示するブロックなどがあります。
それぞれ同じ種類のブロック同士で色が統一されていたり(動きブロックは青・見た目ブロックは紫)、ブロックの形から指示の範囲(“ずっと”の指示ブロックに注目)が分かりますね。
このようにスクラッチ(Scratch)は分かりやすく設計されているので、小学生のプログラミング学習に最適なのです(^^)/
キャラクターに動きをつけてみる!
コーディング移る前に、ゲーム全体の把握(ゲームの設計)として、2人にキャラクターの動きを答えてもらいました。
『サルは上下のキーボード(↑↓)を押すと上下に動く。ネコは画面の真ん中で勝手に左右に動く。バナナはサルの真上で止まっていて、サルに触れると消える』
それぞれのキャラクターの動きを実現させるには、どのようにブロックをつなぎ合わせていけばよいでしょうか?
それぞれのキャラクターごとに動きを丁寧に分解しながら一緒に考えていきました。
一部始終をご紹介しますね。
(実際は文言が若干異なるのと、考える時間や間違える機会もありました!)
先生:サルの動きを作るにはどんなブロックを使う?
生徒:上と下に行くブロック。【10歩動かす】かな?
(【10歩動かす】ブロックをセットすると右に動いた)
先生:このブロックだとサルは右に動いてしまうね。他にサルが“上に行ける”ブロックはあるかな?
生徒:……ないかな?
先生:そうだね。直接『上に10歩動く』みたいに書かれたブロックはないね。じゃあ、ここでヒントを上げよう!
先生:実は画面には見えないけれど、背景には縦と横に線がいっぱいあって、縦はY座標、横はX座標と言うんだ。ここではわかりやすく『Yの道』と『Xの道』と考えてみよう。上に行ったり下に行ったりするにはどの道を使ったらいいかな?
生徒:上と下は縦だから、Yの道!
先生:そうだね。あとこの道には決まりがあって、スタート位置が真ん中にあるんだ。この場合は黄色の点だね。そこから10歩進むと上の赤い点に飛んで、さらに10歩進むと次の赤い点に飛ぶ…という感じに移動するんだ(実際の尺は違います)。さあここで、サルが上に行けるブロックは分かったかな?
生徒:【Y座標を10ずつ変える】かな?
(【Y座標を10ずつ変える】をセットすると上に数ミリ動いた)
先生:そうだね。“進む”という言葉ではないけど、このブロックでサルを上に移動させることができたね。じゃあ下に移動させるにはどうすればいい?
生徒:……わからない
先生:サルが下に行くってどういうことかな?例えば、今サルは黄色い点から2個目の赤い点まで進んだとするよ。そこから黄色い点に戻るにはどうしたらいい?
生徒:2個戻る!20歩戻る!10歩戻ってまた10歩戻る!
先生:そう!あともうちょっと!“戻る”と書かれたブロックもないよね。でも【Y座標を10ずつ“変える”】ブロックで“進む”ことはできた。じゃあ“進む”という言葉を使って“戻る動き”をするにはどうしたらいい?
生徒:クルって回って進む!(回れ右)
先生:そうだね。回れ右をして“進んだ”ら、戻ったことになるね。この“回れ右”を表現するには数字の前に“-(マイナス)”という記号を加えるんだ。じゃあ“戻る”を表現するブロックを作れるかな?
生徒:【Y座標を-10ずつ変える】だ!
(【Y座標を-10ずつ変える】をセットすると下に数ミリ動いた)
先生:おぉ!下に動いたね!じゃあこれでサルの動き、上と下に行くブロックを作ることができた。でも待って、サルの動きはそれだけだったかな?
生徒:あっ!(上下の)キーボードを押したら動くようにしないといけないんだ!
先生:そうだね。ネコは勝手に動くけど、サルは上下の矢印キーを押すことで動くんだったね。じゃあどんなブロックがいるかな?……
プログラミングはすべての学問の基礎になる!?
ちょっと長かったかもしれませんが、実際のコーディング場面、いかがでしたでしょうか?
会話を文字に起こすと、スムーズに答えているように見えますが、実際はうーんとじっくり考えたり、一緒にアイデアを出し合ったり、あーでもない、こーでもないと試行錯誤を繰り返しました♪
このゲーム作りでは『座標』や『マイナス(負の数)』という小学2年生では習わないことも多くありました。
多くのゲーム制作(アニメーションも)において、まだ習っていない概念がいっぱい出てきます。
難しくて挫折するのではないか……と心配することもあると思いますが、だからこそのゲーム制作です!ゲームを作るという楽しさがベースにあるからこそ、ちょっと難しいことも頑張れますね。
今回は数学の概念(座標・負の数)も学びましたが、【言葉の変換】という技術も学びました。
覚えていますか?
“戻る”という表現を“回れ右して進む”に変換しましたね。
これは国語力を武器に問題を解決したことになります。
このように『制約があるなかでも手持ちのモノを使って目標にたどり着く』という問題解決力が育まれていくのですね(^^)/
もちろん、この一回のレッスンで上記の技術や知識がすぐに身につくことは難しいです。
でもいろんなゲーム作りやアニメーション作りを通して、何度も何度も似たような困難にぶつかって、立ち向かって、そうやって徐々に身についていくのです(と思います)。
というわけで、当レッスンの紹介でした(^^♪
今後ともよろしくお願いします!
ミュージックブーケ主催。子供向け教室、生け花教室などを通して、皆様の人生に彩を与えることができればと日々奮闘しています。