スオウパーティ流プログラミング教育

PUBLISHED ON 2020年04月02日 — TECH
スオウパーティ流プログラミング教育

スオウパーティという名前で IT 塾を始めて 3 ヶ月が経ちました。 手探りで自分なりプログラミング教育をやっているので共有します。

スオウパーティでは、教材に Scratch を使っています。 ブロックを繋げて行うビジュアルプログラミングです。 メインターゲットは小学校高学年で、ゲーム制作にフォーカスしています。 というのも、子供が興味を持ち他の人にすぐ遊んでもらえて楽しいのと、プログラミングを含めたプロダクト制作のエッセンスがたくさん詰まっているからです。 塾で大事にしている事は、作りたいアイデアや気持ちを最優先にすることです。 Scratch のブロック機能を 1 つずつ順に教えるようなことはしません。 ゲーム制作の設計や難易度を上げていく過程で、Scratch の新しい機能(概念)を 1 つずつ教えていきます。

Scratchのサッカーゲームのサンプル

これは無料体験で使っている簡単なサッカーゲームのキャプチャです。 下記 3 つの作り方を教えて、まずはプログラミングに触れてもらいます。 同じキャラクターや背景の題材にはせず、野球やバスケットボールなどに変えてもらいます。

・邪魔者が一定速度で動く

・スペースキーを押すとボールが一定の方向に動く

・ボールがゴールに到達するとゲームクリア、邪魔者に当たったらゲームオーバー

この次になんと画面(シーン)の分割と遷移の概念を頑張って教えます。画面切り替えのメッセージを作成し、その送り手と受け手が離れることで、ブロックの集合が画面単位に別れます。これをやらずに 1 つのブロックが巨大になってしまうと、作っている子供はおろか、教えている先生も理解と指導ができなくなってしまうからです。

画面の分割

さらには、初期化の概念と位置まで教えます。 その画面の背景変更はその画面の処理の冒頭でやる、といった感じです。 これもやっておかないと、同じブロックが散らばってバグを探すのに苦労してしまいます。

メッセージと画面の関係

これらの基礎的な管理はゲームを作り続けるための土台です。 プログラムがバグで動かなくなって 10 分解決できなければ、子供の興味も集中力も一瞬で吹き飛びます。 先生も煩雑になってしまったコードを見るのは非常に辛いです 。

塾に通い上達してきた男の子とはこういう会話をよくします。

「この処理はどっち(どこ)でやるべきか」

もうプロのエンジニアのやり取りと変わりません。 さらには、背景の絵や音の変更を 1 つのキャラクターが持つことに違和感を感じるまでになった時は、即興で「グローバル」という括りを提案してみました。 言葉はちょっとあれかもですが、絵が空っぽのキャラクターを用意して、そこにキャラクターと直接関係ないブロックを集約させました。 キャラクターが演者だとすると、これは黒子や監督に近い存在だと伝えました。 キャラクターのコードは自身の振る舞いに集約され、いわゆるオブジェクト指向に近くなってきます。 「あるべき場所にある、それが直感的で気持ちが良い」という感覚を教えています。 これはもはや煩雑な説明やドキュメントを依存しない必要としない、プロジェクトの技術です。

他にも色々教えています。 変数やブロックの命名が大事ということ。他人のみならず自分が後で見返した時に適切な名前になっているかどうか。 また、ランダム値を使ってゲームの中に意外性や揺らぎを与えること。 変な動きをする、時々ワープする、といった際限のない楽しさや面白さを追求することで、 他者にサービスを提供する+ α を膨らませることを意識させています。

生徒の作品は了承を得て公開しているのでぜひ見てください。 一部ですが、3 ヶ月でこれだけ色々なゲームを作りました。

https://thwoo.party/#school

以上です。 プログラミング教室ではなく IT 塾と謳っているのは、上記のようなことを教えるという自負があるからです。 IT のツールやブラットフォームが変わっても、それらを駆使して作りたいモノをうまいこと作り上げる能力を鍛えます。 ある程度 Scratch ができるようになれば、次は Web 制作をやろうかと考えています。

TAGS: 2020