2時間目(3)優しきプログラムと、新しいクラスメイト
ゴーレムに想定外の事が起こったらどうなるのでしょう?
たとえば転んじゃうとか、何かとぶつかるとか。
「でも何が起こるかを全部考えて、プログラムを組むなんて無理だよ」
「だから悩んでるんだよ」
「うーん?」
「キリがないよ。考えつかないしさ」
確かにレンの言う通り、何が起こるかわかりません。じゃぁ起こりそうなことをあらかじめ想像して書いておいたら?
『歩く』→『転んだら立ち上がる』
『歩く』→『ぶつかりそうになったらよける』
『歩く』→『空から植木鉢が落ちてきたらよける』
たしかに、いくらでも考えついてきりがありませんね。
あらためて黒板を見てみると、『歩く』『運ぶ』『曲がる』といった基本的な動作が書かれています。そのほかに『判断』という項目があります。下には『障害物』『危険』『○○は正しい?』といった事も書かれていますから、これらを使うのでしょうか。
『歩く』→『障害物をよける』
『歩く』→『危険なことをよける』
『歩く』→『○○が正しいなら転んだら立ち上がる』
紙のはじっこのほうにメモとして書いてみます。なんとなくですが、こんな感じでしょうか。
「どうしました? 姫子さん、レンさん。なにか困っていますか?」
マキナ・アイ先生が私たちに気がついて声をかけてくれました。
「あ、はい。ゴーレムが困ったときどうればいいか困ったんです」
「レン、その言い方だと先生が困るでしょ」
「じゃぁどう言えばいいんだよ?」
レンがつっかかってきます。もう少していねいに言わないと。
「えーと、ゴーレムが困ったとき、うまく対応する方法はありますか?」
「おなじじゃんか」
「ちがうでしょ」
うまく言えた気がします。レンは日本語の勉強からしてきなさい。
「オーケー! 良いことに気がつきましたね、姫子さん、レンさん。ゴーレムが困ったらどうするか……!? そこに気がつく人を待っていました」
マキナ・アイ先生が青い瞳を輝かせながら両手を広げます。クラス全体に聞こえる声だったので、なんだかちょっとほめられた気分です。質問をしただけなのですけれど。
「転んだり何かにぶつかったりしたとき、どうすればいいのか考えはじめたらキリがなくて。プログラムの書きかたが、わからなくなったんです」
レンがぎっしりと書きこまれたプリントを見せました。
色々な動きのパターンを考えたのでしょう。ぎっしりと書きこまれています。失敗したとき、事故にあったとき、壊れたとき。考えつくことすべてを矢印で結んでいます。おかげでかなりごちゃごちゃしています。
「姫子さんやレンさんの心配に、気がついた人はいますか? ゴーレムが失敗したとき、どうするか考えましたか?」
マキナ・アイ先生の問いかけにクラスメイトは顔を見合わせます。利久くんがスッと手をあげました。さすがです。
「気がついていたけど、考えないことにしました」
あっけらかんとした声は花園さんでした。同じ事に気がついていた人はいたんですね。
「実は、プログラムは単に『動かし方を書けばいい』というものではありません」
魔法の杖をふり、マキナ・アイ先生は黒板のチョークを動かし始めました。
「実際のコンピュータ用のプログラムの場合、エラーが起きたときの対応についてあらかじめ書いておく決まりになっています。『エラー』というのは、最初に二人が質問してくれた『困ったこと』と同じ意味になりますよ」
「エラーについて準備しておくのね」
「やっぱり、いろんなパターンかんがえなきゃだめ?」
クラスメイトたちは手元の紙をみなおします。
「書き方は今から説明します。ちなみに、現実世界のコンピュータ用のプログラミングでは、使われるプログラム用の言語ごとに書き方は異なります。少し難しい言い方になりますが、『例外処理』というかたちで、最初に書くのが一般的です」
・『例外処理』:エラーがおきたときの処理を最初に書いておく。
マキナ・アイ先生の言葉に反応して、黒板に説明が書かれました。
どうやら実際のコンピュータの世界では、エラーが起きたときの対応をあらかじめ書いておくようですね。
先生が最初から説明しなかったのは、ゴーレムをプログラミングしているうちに、私たちに気がついてほしかったからでしょう。いきなり『例外処理』と言われても、難しくてちょっと困ったかもしれません。
「例外処理……つまり『困ったとき』の対応をプログラムしましょう。書き方は『判断』という命令を使います。まず、みなさんのプリントの最初のほうに、『エラー処理』と書いてください。あとはパターンをいくつか書いておくだけでくだけで良いですからね」
黒板には、書き方のお手本が示されます。
『エラー処理』
・『何かがぶつかった』→『判断』
→異常あり:『とまる』
→異常なし:『つづける』
・『とつぜん転んだ』→『判断』
→異常あり:『とまる』
→異常なし:『立ち上がり作業をつづける』
「犬にかまれたら……パンチ」
「ピザが顔にぶつかったら……たべる?」
「ぎゃはは」
安藤くんや山田くん、男子たちが悪ふざけで言いだしますが、それは書いても意味がない気がします。
「確かにエラー処理は考え出すとキリがないです。面白いことも考えついちゃいますよね。だから今は『教室の中で起こること』だけを考えましょう。考えつく範囲で構いません。……犬とピザ、私もすきですけれど」
マキナ・アイ先生は微笑みます。その優しい声に男子たちは震えあがりました。
悪ふざけもたいがいにしないと、犬とピザにされちゃうかもしれません。
「魔法使いの先生がいる時点で、起こる事が想像つかないのですが」
「利久くん、それを言ったらダメだよ!?」
利久くんのつぶやきに、花音さんがあわてます。そりゃぁホウキで空を飛んできた先生が、ぶつかるかもしれませんからね。
確かに考えつく範囲を絞らないといけないようです。
「お手本を参考に『エラー処理』を書いてみてくださいね」
書き方さえわかればこっちのものです。
さらさらと、プリントのうえに書き加えました。
「あっと、いけないもうこんな時間! クラス全員のエラー処理を試すのは、残念ながら時間がありません。だから……代表として姫子さん」
「ふぁっ!?」
いきなり名指しされて変な声が出てしまいました。
なんで私……!? と思いましたが、最初に質問をしたのは私とレンです。何よりも私ってば、クラス委員長なのです。
「どんな『エラー処理』を書いたか、実際に試してみましょう」
「はっ……はい」
マキナ・アイ先生にうながされて、プリントを妖精のオペレッタちゃんに見せました。
『なるほど、わかったぜー!』
プログラムがゴーレムに登録されたようです。
合図とともに、ゴーレムの『マユ次郎』が歩き出しました。最初にプログラミングしていたものです。10歩いてターンする普通の動きです。
「誰か、その……ゴーレムにぶつかってみてください」
私がクラスを見回すと、すぐに杉田くんが手をあげました。
「まかせとけ!」
「や、やさしくお願いします!」
叫びましたが遅かったです。
サッカー部の杉田くんは真横から体をぶつけました。ガッターン! と音がしてゴーレムの『マユ次郎』が床にたおれました。すごいタックルです。容赦ありません。
「あっ!?」
「きゃ!」
悲鳴じみた声があがりました。妖精のオペレッタちゃんは空中に浮かんだまま、あぜんとしています。
「どうだ!」
「どうだ……って、杉田くん」
サッカーってタックルするスポーツでしたっけ?
「さぁ『エラー処理』が動き出しますよ」
マキナ・アイ先生の言う通り、ゴーレムの『マユ次郎』がゆっくりと立ち上がりました。
体に異常はないようです。どこも壊れていないみたいでホッとします。
立ち上がって姿勢を保つような動作、歩くといった基本動作は、妖精のオペレッタちゃんが肩代わりしてくれています。
ギギ、ギ……と関節をならしながら立ちあがった『マユ次郎』は、首を回して杉田くんに狙いを定めました。
クラスメイトたちは「ゴーレム怒ってる?」「反撃か?」とささやきます。
「お……?」
杉田くんが、たじっ……と後ろに下がります。
すると『マユ次郎』は近づいて、右手を差し出しました。
『ダイジョウブデスカ? オケガハアリマセンカ?』
「え? お……おう!」
『ヨカッタ。キヲツケテクダサイネ』
「す、すまなかったな、いきなり倒して」
やりました。プログラム通りです。杉田くんは照れ笑いをしています。
「な、なんと!? 自らが倒されても相手を思いやるとは……!」
「うん! 優しい気配りだね!」
メガネをくいっとさせながら利久くんが言うと、夏帆さんも同意します。
「さすが姫子ちゃんのプログラム!」
「えへへ」
やりました。プログラム通りです。成功したことよりも、みんなの反応が嬉しいです。
私が書いたプログラムは、こうでした。
・『だれかがぶつかる』→『判断』
→異常あり:『とまる』
→異常なし:『「だいじょうぶ?」と相手のケガを確認する』
・『相手のケガ状態』→『判断』
→異常あり:『保健の先生や、誰かに助けを求める』
→異常なし:『「きをつけてね」と言葉をかわす』
「うん、実にいいですね! すばらしいですよ姫子さん。ゴーレムが実際の家庭用ロボットとして、人と共に働く事を考えたのですね。こうした気配り、相手に対する優しさが、プログラムには必要なんです」
マキナ・アイ先生が手放しで喜んでくれました。
そしてクラス全体を見回しながら、まとめの言葉を述べられます。
「今日のお勉強、わかりましたか? プログラムはコンピュータに、目的の実現方法を教える手段です。さらに、予想外のことへの対応を記述するのが『エラー処理』です」
みんながうなずきます。
「ですが、実際に使う側で何が起こるかわかりません。安全を第一に考えて、異常があれば止めるように工夫したり、処理を続けるべきか判断をしたり。そこではかならず、使う人への気配り、優しさを忘れないでくださいね」
プログラムは仕事の手順を、ゴーレムやコンピュータに教え込むだけのものじゃないのですね。私たちと共にくらすために、優しさもひつようなのですね。
「「「はいっ!」」」
終業のチャイムが鳴り響きました。
マキナ・アイ先生に礼をして、授業の終わりのあいさつをします。
「それと、ゴーレムの『マユ次郎』くんは、教室においておきますね。新しいクラスメイトとして迎えいれてください」
「えぇええ!?」
「37人目のクラスメイト……!?」
どうやら、私たちのクラスに、あたらしい仲間が増えたみたいです。元マネキンのゴーレムくんですが。
『おまえら、こらからよろしくなー!』
ゴーレムの頭の上で、妖精のオペレッタちゃんがはね飛びました。
「よろしく!」
「妖精、かわいい!」
「魔女の先生に、ゴーレムと妖精までがいるクラス……」
みんなそれぞれ喜んでいるようです。
「みんなで『マユ次郎』に、どんどん新しい事、出来ることをプログラムで付け加えてかまいません。あたらしい事ができるように、『命令』を書いた一覧をあとで壁に貼りますから。色々な仕事や、作業を出来るようにしてくださいね。休み時間を利用して、どんどんオペレッタちゃんに教えてあげてください。安全第一、エラー処理も忘れずにね!」
「はーい!」
教壇に戻ると、マキナ・アイ先生はちょっと背筋を伸ばしました。授業で疲れているのでしょうか。
「みんなで素敵なクラスメイトを育ててくださいね。相手への思いやりを忘れないことが重要です。たとえば……先生を三階まで運んでくれる、優しさに満ち溢れたゴーレムなんて素敵ですよね。ですよね!?」
マキナ・アイ先生は、きらっとかがやく笑顔をクラスメイトたちに向けました。
「「「あ、あはは……!」」」
「アイ先生、あきらめてなかったのか」
「三階まで運ぶの、みんなでつくろうか」
私はちょっと苦笑しながら、レンと顔を見合わせました。
新しいゴーレムのクラスメイト、大歓迎です。いろいろ教えちゃいましょう。
<つづく>




