児童向けプログラミング学習について

前提として

ボクは現在31歳となり、いわゆるパソコン教育を受けた第1次世代にあたる人間です。

小学生のころから学校教育の場でパソコンに触れましたが、両親の職業的理由もあり、家庭には既にパソコンが導入され、学校以外でもパソコンに触れる機会がありました。

当時のパソコン教育は正直手探り状態という印象が強く、小学生のうちはビデオゲームに教育ソフトによって学習が進行され、中学生以降はMicrosoft Officeを中心に学習するというスタイルでした。

中学生以降のMicrosoft Officeを中心に学習するという形態はおそらく社会が求めたより実務的に近いように組まれたカリキュラムである可能性が高く、教師による授業は教師自身の業務の中から得たノウハウを紹介する形態であり、ついには中高生である期間の内にパソコン学習のためのテキストが配布されることはありませんでした(小学生時代の最初期はカリキュラム選定に迷走していたのかいきなりLotus 1-2-3をやらされたこともある)。

その中で悪名高いワードアートやExcel方眼紙のバッドノウハウを学ぶという機会もあり、パソコンのパワーユーザが多いグルドン民の皆さんが聞くとクラクラと眩暈するような授業が普通でした。

・・・いや「パソコンの授業があるだけマシ」と仰るかも知れませんが(笑)

もしかしたら「バッドノウハウ継承してゴメン!」と仰って頂ける方が居るかも?(30代が学生なら40代は新任教諭)。

児童向けプログラミング学習の現状

パソコン教育が時代の変貌でIT教育となり、現在ではプログラミング教育となっています。

表現の変更がなされたことによりカリキュラムも大幅に見直しがなされているのか、文科省関連の資料を引いてみると、ボクの時代よりも改善されていることがわかります(良くも悪くも表現の変更がないと見直さないのは日本の悪い癖ですが)。

特にボクの時代では一切説明のなされていなかった「社会とコンピュータの関わり」や「コンピュータの動作」の説明が必須として扱われているのが非常に好印象です。

これらの見直しはコンピュータ市場の広がりから関わる人口も増え、より良いカリキュラムの選定がなされたものと思われます。

更に「プログラミング的思考」としてフロー方式の思考学習がなされているのもボクの時代とは大きな違いです。

現在のプログラミング学習について総じて言えることは「想定していたよりも凄く良い」ということです。

現在のプログラミング学習に足りないもの

現在のプログラミング学習に足りないもの、それは「保護者の参加率」です。

保護者の参加率は悲しくなるくらい低く、ほとんどの保護者は「学校教育としてプログラミング学習をしてもらえている」ということに満足をし、現状子供たちがどんなプログラミング教育を受けているのか?を知らない

現代の保護者は家庭内で国語や算数の疑問質問には応じることができても、プログラミングに関する疑問質問に応じられないということへの危機意識が低く、より良いプログラミング学習とするための力が全くないのです。

現状のプログラミング学習の良いところ、悪いところの切り分けができず、プログラミング学習について意見することもできない、非常に危うい状況にあることに気付いてない。

保護者は今こそプログラミングを学ぶべき

現在の保護者世代はボクと同じ30代前後が占め、中途半端なコンピュータ教育を受けた世代です。

カリキュラムは二転三転をし、学校によってはビデオゲームするだけの授業となり果て、Microsoft Officeのバッドノウハウを継承し、社会とコンピュータの関わりを一切説明しない、そんなコンピュータ教育を受けた世代です。

こんな悪い教育を受けた我々の世代が、悪い教育を受けたことを理由として我が子からの疑問質問に応じることを放棄するのは本当に良いだろうか?と同世代の親の皆さんへ投げ掛けたい。

我が子から「今日学校でScratchで○○を作ったよ」と言われアナタたちは何と応じるのか?
我が子から「else if構文がわからないんだけど」と言われアナタたちは何と応じるのか?

我が子からのこういった言葉に応じられず「今の時代プログラミング教育は重要です」と考え、あまつさえ口にしているとするのなら無理解・無責任にもほどがあるとボクは言いたい。

練習問題

学校教育で広く採用されているプログラミング教材にScratch というものがあります。

詳細はScratchのWikipedia に詳しいですが、プログラミング教育を受ける児童のほとんどが経験する教材だと思われます。

そこでプログラミング学習を受ける児童を抱える保護者へ対してScratchで解く練習問題を示し、プログラミングの初歩理解をして頂くということを考えました。

ただ、練習問題と言っても小難しいものではなく1つのゲームを作って頂きます。

Pong

まずは動画観てどんなゲームか掴んで頂きたいのですが、このレトロなゲームは「Pomg(ポン)」と呼ばれているタイトルです。過去に日本でも「テレビテニス」という名称で販売されたこともあるビデオゲーム初期を語るには外せないタイトルの1つです。

続いて実際にプレイしてみましょう。今回の教材のScratchでPongを作成された方が入るのでScratchのPongへアクセスして頂ければプレイできます。

そしてScratchの学習について参考になるWebページとしてScratchで始めるプログラミング教育 - @IT があり、動画ではScratch 2.0入門 (全19回) - ドットインストール がありますのでお役立てください。

Pongを作成する意義

今回の練習問題Pongは例で出しているものを完全再現する必要はありません。Pongゲームとして最低限の体を成していれば良いでしょう(パドルでボールを打ち返せる程度)。

ボクがPongをプロラミングの練習問題として推す理由はプログラミングの基礎的な処理の殆どが含まれているからです。

一部を挙げるのであれば、四則演算、繰り返し、条件分岐、入出力、自動化など多くの処理がこのシンプルなゲームに含まれています。

そして昨今話題のAIも、いわゆる対戦CPUとして実装することが可能で、初歩的なAIの理解に役立ちます。

何よりPongの実装を真に理解すると、例えばシューティングゲームやマリオのようなアクションゲームなどは単なる応用にすぎず、プログラミングできるものは大幅に増えるでしょう。

そういうこともありボクはプログラミングに興味のある方へPongを推します。

最後に

保護者がプログラミングの基礎を理解することで、きっと子供たちとの会話の範囲も広がると思います。

やはり子供はビデオゲームが好きで、今回のPongは原始的なビデオゲームで、Pongの実装の理解は子供がプレイする現代のビデオゲームの実装の理解に繋ります。

子供がビデオゲームをプレイしてるときに保護者が言うわけです。

「知ってるか?最強の対戦CPUは簡単に作れるんだ。バトルゲームなら敵を無敵にすりゃ良いし、レースゲームならコースの真ん中や最短を走らせれば良いし、野球ゲームならバットがボールを追従すりゃ良い。
でもそんなゲームは面白くない。本当に面白いゲームはプレイヤが苦労して頑張ったときにギリギでリ負けてくれる対戦CPUがあるゲームなんだよ。このゲームがどうやって面白く作られてるか一緒に考えてみようか?」

これをするには保護者が少なくともプログラミングの基礎を理解しておかなければなりません。家庭内学習というものはやはり保護者の基礎理解があってできるものだと思うのです。

この記事が皆さんのお役に立てれば嬉しく思います。