作るゲームはこの程度、しかも日本語です。これなら40人全員ができます。「今日はゲームを作った!」と生徒は非常に満足し、評判がいいです。これを踏まえて、「皆がやっているゲームは、もっとビジュアルに変化をつけたり音を鳴らしたり、という命令を書かなければいけないよね」という話をします。Scriptならブラウザが入っていればいいので好都合です。特別なソフトがいらないのです。Scriptの更にいいところは、世の中にものすごくたくさんの解説本が出ているので、先生方が自分で勉強することもできます。Scriptの経験がなくても、この授業は皆さんできるはずなのです。Scriptの進め方です。生徒たちにこれまでの2時間の流れから画面に文字を出してみよう、という話をします。プログラミングの指導を行ったことのある方は経験があると思いますが、一番の難点は、「つまらない」と言われることです。文字を出すとか、総和の計算で1から10までの総和が55と出るからと言って、だから何なの、と。いうのは、それが全てだと思っているからなのです。先ほどの前段でアルゴロジックやドリトルで、プログラミングの全体像を初めに見せてから「じゃあ、スモールステップで進んでいこう」ということで、文字を出してみるところから始めます。こちらが授業で使っているスライドです。この1時間は、とにかく使ってみる、経験してみることが目的です。プログラミングとはこんなものだよ、と説明し、大事なことはノートにメモさせます。全体像が見えないと分からなくなるので、必ず作る手順は明確に示しています。「今日は次のことを3回やります。プログラムを作成するソフトウエアを起動する。動いたかどうかを確認してする。動かなかったら直す、これをデバッグと言うんだよ」と。bugが挟まっていて、これを取り除いて正常に動くようにしたからデバッグと言うんだよ」と教科書の内容を補足します。保存については、本校は個人ドライブがZドライブで、ルート直下に作られると課題の採点が大変なので、フォルダーを作らせます。ここでPCの基礎操作のできない生徒が出てくるので、理解度を確かめながら進めます。この時は、エディターを起動して、ファイル名を付けて保存してから打つようにします。一回作ったものを名前を変えて保存すればいいのではという意見もいただくのですが、手順を身につけさせるために毎回この手順で行っています。学校のコンピュータには、環境復元ソフト(電源を切ると元に戻る機能)が導入されているので、保存場所を間違えていると作成したプログラムが再起動時に消えてしまいます。次の授業の時に、前回作成したプログラムがない。消えてしまったとならないように、保存したら自分のファイルが見えるか、確認は必ずしています。このように、きちんと生徒自身が提出したかしないかがわかるようにするのが、スムーズに授業を進めるポイントです。教科書に出ている、文字列を表示するプログラムを、まず私が一回素早く入力して見せて、ちょっとドヤ顔をします(笑)。「先生は30秒で打ったけど、みんなには3分やろう」とか言って3分の間にみんなの方を回って、とにかくこの青い部分の特別な意味は別として、こう書いた命令に対して「MITAKA」と出てくるよ、ということをスライドで提示します。実際に打った後でダブルクォートやセミコロンの説明をします。注意すべきは、日本語入力を使わないことです。Scriptを難しいという方は、このルールを守っていないのだと思います。先ほどの「MITAKA」もローマ字でしたが、出す文字に日本語は絶対に使わないこと。>を全角で入れてしまうのです。これは、メモ帳やテラパッド(フリーのエディタ)でも、半角か全角かというのはわかりにくいので、デバッグがしづらいのです。絶対に日本語はオンにしないという状態で授業は進行します。プログラムはどうしても字が小さいので、「ここ」というところが示しにくい。プロジェクターを指でさせればいいのですが、生徒は手元の中間モニターを見ているので、目に入りません。いう時は、コントロールキーを押したらポインターの位置を表示するオプションをオンにします。生徒たちに指示をする時やスライドをめくる時は、必ずゆっくり3回クリックするようにしています。プログラミングが得意な人の説明は、生徒からすると操作が速すぎるので、「はい、できたかい?ここだよ」1,2,3「じゃあめくるよ」1,2,3というペースで進めています。すると、ポヨンポヨンポヨンと3回やっているうちに、生徒たちは自分の手を休めてこちらを見るようになるので、置いて行かれた、という子がぐっと減ります。Scriptで書いたテトリスのコードを見せます。テトリス」で調べると出てきます。Scriptのコードっぽいものが出ているけど、まだ理解できないのは当然だよ、という前提でこれを動かしてみせます。知っているゲームなので、興味を持って見ます。エディターでプログラムの□(白い四角)のところをひらがなの「あ」に変えておきます。すると、今まで□が4個つながっていたものが、「あ」が4個つながった形で横になったり回転したりします。生徒からは歓声が上がります。ここで、コンピュータというのは、私たちが命令した通りに動く、ということを再確認するのです。この前段に、先ほどお話ししたドリトルの「かめた」のプログラムがあります。「ボタンを作る」しか命令を書いていなければ、ボタンしか出ない。ボタンを押したらどうなるか、というのは、このゲームであれば、壁に当たったらどうなるか、という命令を書いてあるわけですね。このプログラムのテトリスには周りにグラフィックがなくてシンプルです。それはそうですね、グラフィックを取り込む命令を書いていないのですから。君たちが普段触っているものは、こういうプログラムでできていること。別に全員がこれを作れるようになる必要はないけれど、せめて自分たちが触れている情報機器がどうなっているのか、仕組みを知ってみよう、という話をします。「今日はとにかくプログラムがどういうものかをやってみたよね。JavaScriptという言語を君たちは知らない、なぜなら、日本語や英語は授業でやっているけど、いきなりわけのわからない初めて聞く言語でパッと話しかけられたらできないのと一緒だよ。今日はとにかくJavaScriptという言語を使ってみた。教科書にはこの後続くから、もう何回かやっていくよ」と言って、次の「流れ図と制御構造」のスライドにつながるわけです。Script編(2)<流れ図と制御構造>ここでアルゴロジックが活きてきます。ここで大事なのは構造の呼び方ではなく、プログラムというのは順番にやるか、繰り返すか、それとも右に行くか左にいくか、ということです。戦闘ゲームなら、敵が全滅しているか、闘うか逃げるか、のような選択肢が出てくる判断、分岐。この手順を示すためにフローチャートというものがあるよ、と説明します。Scriptと言う言語で書いたからこうなったのであって、様々な言語の表し方がある。個々の言語でなく、手順そのものを伝えるときに、こういう図で書くこともあるんだよというところを1つ示して、じゃあ、前回の内容を流れ図で書いてみようか、ということで、前回の授業内容の定着も兼ねて書かせます。結果の違いは君たちが命令したことの違いだね、ということを話します。ここまできて、ようやく変数が出てきます。変数の概念は、特に高校1年生だと、数Iとの絡みで「=」は「等しい」であって、「代入」ではないという部分があるので、数学との変数の扱いの違いをきちんと勘違いしないように、とにかく右辺を左辺に代入する、等しいというのはこうなんだよというところをきちんと強調しておかないと、数学ができる子ほど混乱してしまうので注意します。ここでまた問題が発生します。どこの学校でも、コンピュータ室の機材が全部先生自身の思うとおりに設定されているかと言えば、決してそうではないです。Scriptでプロンプト命令等のポップアップを出すと、ポップアップブロッカーが出てしまいます。これも前もって「さっそくやりたい子もいると思うけど、このポップアップブロックが出るので、ここは×をして、もう一回リロードするとちゃんとプログラムが動くからね」ということをきちんと説明しておきます。要は、生徒たちが引っかかるポイントを我々がわかっていればいいのです。前半で言った「プログラムは難しい」、「デバッグが難しい」、というのは、生徒たちが「わからない」という原因になっているトラブルを我々が予想できていないからです。これくらいの内容なら、コードも10行くらいで、起こすエラーはクラスが違ってもだいたい一緒です。生徒が「先生、動きません」と言ってきたら「リロードした?」と確認すればたいてい解決したりします。いうところをきちんと押さえてあげれば、それほど難しい内容ではないのです。アルゴリズムの大きな柱が繰り返し命令です。先ほど3回MITAKAと書きましたが、では100個MITAKAと書きたかったら、100回書くのか?嫌ですよね。いうことで、繰り返し命令について説明します。いう時、生徒たちは4とか10とかではなく、ほとんど無限大みたいな数にしてくれます。すると際限なく文字が出て来て、「先生、コンピュータが止まらなくなった」となる。その前に「このスクリプトは無限に実行されますが、よろしいですか」と聞いてきているのですが、それに「はい」という子が必ずいるのですね(笑)。そこにはちゃんと前段が入っていて、提出課題はきちんと直してくれなければダメだけど、それまでは好きに変えてもいい、最終的にフォルダーに保存する時は、スライドと同じにしてね、と言っておくのです。すると生徒はいろいろ工夫します。要所要所を押さえてやれば大丈夫だと思います。このように、要点さえ押さえていけば、プログラムは決して難しい内容ではありません。今後プログラミング教育をもっとやらなければいけなくなった時、その前段として、まずは、コンピュータは命令したとおりに動くというところを授業の中に導入してみると、5年後10年後の先を意識した授業づくりができるのではないかと思います。今日は難しい内容はしませんでした。誰でもできる簡単な、最初のプログラミングについてお話ししました。これが、40人みんなが義務教育でこれくらいのことは学習済み、というすばらしい時代が来たら、次に情報科としてどういうふうにプログラミング教育をするのか、という先の話ができるのではないかと思います。本サイトは、経済産業省のキャリア教育事業の一環で作成した「わくわくキャッチ!」の独自コーナーとして、河合塾が作成し、運営しています。編集トップへ戻る閉じる。