子どもプログラミング レッスンの紹介①
- 投稿者 MB Admin
- カテゴリ プログラミング教室ブログ
- 日付 1月 27, 2023
- コメント 0 comment
プログラミングのレッスン内容や実際の様子、生徒の声を少し紹介します。
プログラミングをするのは初めてという小学2年生のT君とR君。
まずはパソコンを触ってみる
一番最初はパソコンの立ち上げ方やシャットダウンの方法から学びました。
キーボード入力も経験がなかったので、作品作りの前には毎回タイピングの練習を行いました。
正しい位置に指を置いて、片手ずつ、正確にキーを押せるようにゆっくりしたスピードから。
それでも回数を重ねるうちに、二人とも指の動きが早くなってきたのでびっくり!
5分~10分と短いタイピング練習のなかでも、ものすごい集中力を発揮していたからこそだと思います(^^)
スクラッチ(Scratch)でゲーム作り開始!
タイピングの後は、メインのゲーム作品づくり。
スクラッチ(Scratch)というビジュアルプログラミング言語を用いて作ります。
最終的なゴールは『作りたいゲームを一から自分でつくる』ですが、そのためにはゲーム全体の設計や部品(キャラクターとその動き)の製作が必要です。
なのでゲーム作りの初期は、サンプル作品を作ること通して、設計の仕方やキャラクターの動かし方(指示の組み合わせ=アルゴリズム)を一つずつ学んでいきます。
今回はアクションゲームという、キーボードの矢印キーでキャラクターを動かして障害物を避けながらゴールにたどり着く(お宝を手に入れる)、という作品づくりに取り組みました。
サンプル作品で遊んでみる
まずはサンプル作品でとことん遊んでみる。このステップはとても大事です!
(どのステップも大事ですが…^^;)
それは後々にオリジナリティを発揮できるから。
そのゲームのどの部分が楽しいかは人によって様々です。
ある子は敵キャラ(障害物)の速さやランダムな動きに面白さを感じます。
すると、サンプル作品から自分流にアレンジする際に、敵キャラの動きをより早くランダムなものに作り変える、というオリジナリティを出すことができますね。
このように、モノづくりにおいてはまず自分がその“モノを使う体験”をすること、そこから不満や感動を経験することが大切です。
その“不満や感動の経験”がモノづくりの場面で課題や目標として掲げられるのですね。
というわけで、ゲーム作品づくりにおいて、まずはT君とR君にサンプル作品で遊んでもらいました。
左右に動くネコをよけながらサルがバナナを手に入れる、というゲームです。
はじめてなので、敵キャラ(障害物)のネコの動きは左右のみで主人公のサルは上下のみの動き、サルの真上にバナナ(ゴール)がある、という設定。
ひとしきり遊んでもらった後、いよいよゲーム制作の開始です。
ゲーム全体を把握しよう(ゲームの設計)
まずは【ゲームの把握】から。
4つの質問をしてT君とR君に答えてもらいました。
それぞれの質問とその意図はこうです。
『どんなゲーム?』
これはゲームの全体像を把握するために考えます。5W1Hに基づいて「誰が何をしてどうなるか」を考えることで、ゲームの展開や登場人物、必要な小道具等を明らかにできます。
2人とも『サルがネコをよけながらバナナをとるゲーム』という風に答えてくれました。
このようにゲームという、展開や登場人物という要素の詰まったモノ、を一文で表現してみることは【要約する力】にもつながりますね!
プログラミングで国語力もアップするかも(^^)/
『どんなキャラクターやモノがいる?』
全体像を把握したら次は要素に分解します。キャラクター(主人公・敵キャラ)やゴールとなるモノや背景を考えていきます。
2人とも『キャラクターはサルとネコとバナナ。背景はレンガの壁』と答えてくれました。
(ゲームにおいては、ゴールであるバナナが“逃げる”という難易度を上げるアレンジができるので、動く要素のものはキャラクターとして位置づけます)
このような【要素の分解】は論理的思考の一部です。複雑な問題を単純なものに分解して効率的なものに再構築する。
もれなくダブりなく分解することが肝心です(^^♪
『キャラクターの役割は?』
要素に分解できたら、それぞれの役割を考えます。
2人とも最終的に『サルの役割はネコをよけながらバナナをゲットする主人公、ネコはサルの邪魔をする敵キャラ、バナナはサルを待つゴールの役割』という答えにたどり着きました。
この質問は少し難しいかもしれませんが、とても大切な作業です。
キャラクターを明らかにして次に具体的な動きを考える、のではなく、具体的な動きを考える前に『どんな目的でそのキャラクターが存在するのか』ということを考えることで、ゲームの内容がより鮮明になります。
キャラクターとその動きだけでなく、キャラクター同士の関係性も明らかにできるからです。
キャラクターの関係性が分かれば、そこを工夫してゲームの面白さを倍増させることもできますね。
このようにゲームをただ『面白い』と感じるのではなく、『この部分がこうなっているから面白い。だからここをこう改良したらもっと面白くなるかも』とアレンジしていけるのです。
『キャラクターの動きは?』
ここで初めて、キャラクターの具体的な動きを考えます。この答えが、実際のコーディングの内容(コンピュータへの具体的な指示内容)となります。
ここでは『サルは上下のキーボード(↑↓)を押すと上下に動く。ネコは画面の真ん中で勝手に左右に動く。バナナはサルの真上で止まっていて、サルに触れると消える』という答えになりました。
いよいよコーディング開始!
ここまで来てやっとコーディングに移ります。
一つひとつのキャラクターに対して、この動きを再現するにはどういった指示をパソコンに伝えればいいのかを考えていきます。
スクラッチはビジュアルプログラミング言語なので、実際は『〇〇歩進む』といった、もともと指示が書かれているブロックを組み立てることで動きを再現していきます。
(組み立て方=アルゴリズムも大事です!)
長くなったので、実際のコーディングの様子は次回に。
初めのころは実際のコーディングよりもゲームを把握する段階に時間を使いますが、この過程こそが論理的思考力や想像力、自制力といったチカラを身につけていくステップでもあります。
あくまでも“自分で答えを導き出し”ながら、ゲームを把握していくことで、その後のコーディングやデバック(プログラムの修正)に主体的の取り組むことができる。
当レッスンではそのような主体的な学びを、楽しみながら経験していけるようお手伝いしていきます(^^)/
今後ともよろしくお願いします。
ミュージックブーケ主催。子供向け教室、生け花教室などを通して、皆様の人生に彩を与えることができればと日々奮闘しています。