長野県情報教育研究会
コンピュータ活用事例集Vol.6



AIドリルその後

長野市青木島小学校

田原 徹



目次

1 はじめに
2 文章題への対応
 1) 文章題の文をそのまま解析するに
 2) 解決法その1  「模範式からの処理
 3) 従来のオーサリングによるコースウェアでこのことを実現しようとするとどうなるか
 4) オーサリングソフトとのリンク
 5) 解決法その2、「構文解析入力による問題の入力」またの名を「文章題自動作成ソフト」
3 「単位量に対する対応」
4 最後に


1 はじめに

 本年度はいろいろな問題を抱えながらあまり進むことができませんでした。今回はAIドリル「すけ算」の考え方これからの展開、プログラミングのテクニック等について書きたいと思います。一応一昨年度の配布ディスクの中に入っていましたが、使ってみた人の話では何か使いにくいようですし改良が必要です。子どもが答えやすいようにと考えたのにかえって使いにくいのではどうにもなりません。しかしこのソフトはすぐに解決できるようなミニマムなソフトを目指しているのではないので、時間をかけてじっくりと解決していきたいと思っています。

2 文章題への対応

 昨年度速さの計算の文章題での、すけ算を利用した処理法法について検討してみたところ、何とかできそうであるということがわかった。ここでは、どんな文章題でも(小学校の算数,中学校の数学の一部の範囲内で)パソコンのソフトウェアだけで対応できるようにしていくためにはどんなことが必要か考えてみたい。

1)文章題の文そのまま解析するには
 文章題の文章をそのまま入力し、その問題をパソコンが直接解析し、立式までできるようにしていく(ソフトウェア内部でそれができなければ、児童が入力した解答が正解かどうか判断できない)にはかなり大変であると思われる。
 一時期第5世代コンピュータが話題になったときに、小学校4年生程度の問題が解けるようになったと新聞に大々的に報道されていたが、日本でもかなりの能力を持った人たちが集まって作ったスーパーコンピュータ用のソフトでさえあの程度のことができるようになってあの騒ぎとすると、しろうとが個人的にパソコン用のソフトで実現するのは,ほぼ絶望的と考える。しかしながら、文章題が扱えるようにならないと、このソフトの持っている意味が半減してしまう(文章題こそこのソフトの出番である)と思っているので、何とかしなければならない。考えてみれば、文章題には文章題特有の使い方があり、それだけを解析できるようにすればいいわけである、とはいってもかなり複雑な構文解析をして、式を作っていかなくてはいけないのであるから大変なことには変わりない。将来的には可能であることを視野に置きながら。

2)解決法その1 (模範式からの処理)
 ちょっとごまかしではあるが、学習者に隠して、模範式を一つ入力しておくとこの処理はかなり楽になる。
 これはどのように行うかというと、例えば、「一つ50円のリンゴを5つ、一つ80円の柿を5つ買うと合わせていくらになるでしょう。」という問題に対しては、模範式として「(50+80)×5=」という式を一つだけあらかじめ入力しておく。しかしこの問題に対する子どもたちの答えは様々なものが考えられる。

 ア) 50×5=250 80×5=400 250+400=650
 イ) 50×5+80×5=650
 ウ) 50+80=130 130×5=650

 正解の解答としてはこのくらいであろうか。これらの式一つ一つについて式に対する答えがあっているか、結果として正しい答えが導けているか。また問題に対応した数値が使われているか、一つの式で書けているか、などの分析は今までの「すけ算」の機能を使うと比較的容易にできるのである。
 例えば,ア)の式では50×5=250の式と答えの確認、80×5=400の式と答えの確認、さらに250+400=650の式で、250と400は先の式から導かれたものか調べ、さらにその答えが模範式の答えになっているか(一番最後の式で模範式の解答と合っているか比べる)確認することにより、模範式と同等の計算をやっているかどうか調べることができる。
 児童の解答にある計算式の答えがすべてあっていても正しい解答が得られていないときは、計算はあっているが立式がいけなかったということが考えられる。式の計算が間違っているが、正しく計算をしてみると解答が導けるかどうか調べる。
 計算式が一つであれば簡単であるが、この例のように途中の答えが次の式に使われている場合は、もしはじめの式の答えが正しく計算されていない場合は、正しい答えを次の式に代入しなくてはならない。つまりどのようにするかというと。
 ア)50×5=200 (まちがい)
 イ)80×5=300 (まちがい)
 ウ)200+300=500(計算はあっているが問題の解答としては間違い)
 式ア)の正しい答え「250」を間違った答えが代入されている式ウ)」の「200」の代わりに代入する。式イ)についても同様に正しい答えを代入する。その結果式ウ)の答えが模範式の解答になっているか調べる。このようなことを式の数だけ繰り返す。
 以上のことから,もしそれで正しい答えが導き出せたら、立式までの児童の思考は正しかったことがわかり、どの計算と、どの計算が間違っているか指摘し、でも考え方はあっていますというメッセージを出すことができる。
 従って、このようにしてもし間違っていればどこで違っているか、立式がいけないのか計算がいけないのか学習者に伝えることができるのである。
 さらに立式での間違えについて、(50+80×650)などのように数値も使われている計算記号も合っているのに正しい答えが導き出せない式の場合は、カッコの付け間違いか、計算の優先順位の間違えが考えられるのでメッセージで学習者に伝えることができる。

3)従来のオーサリングによるコースウェアでこのことを実現しようとするとどうなるか
 オーサリングソフトを使ってコースウェアを作成した人ならおわかりと思うけれど、オーサリングのコースウェアでこの判断をあらかじめ入れておくには、具体的に
 80×5=400 50×5=250 400+250=650に類する解答例だけでも、正解だけでも
 5×80=400 50×5=250 400+250=650
 5×80=400 5×50=250 400+250=650
 50×5=250 5×80=400 400+250=650
 5×80=400 50×5=250 250+400=650
 5×80=400 5×50=250 250+400=650
 50×5=250 5×80=400 250+400=650
・・・・・・
などうんざりするほど解答例を考えておかなくてはならない。これに加えて誤答例も考えられうる限り挙げておかなくては学習者にどこでどう間違ったのか知らせることはできないのである。計算間違いの場合は、どう間違えるか予想できないので、予想解答をあらかじめ入力しておくことは不可能である。従ってオーサリングソフトで文章題のコースを考えるときには1つや2つの問題ならよいが、数多くの問題を子どもたちにやらせたいと思えばそのための労力は膨大なものになってしまうし、完全なものにはならないのである。
 しかしもしこのソフトウェアが完成し思うように動くようになれば、ただ単に「(50+80)×5=」という式を打ち込んでおくだけでよいのであるから、遥かに問題作成の効率が上がる
 このことが、「文章題こそこのソフトの出番だ」と考えている理由である。
 これらの式の分析がどのような問題に対しても対応できるかはひとえにプログラムのできにかかっている。
 例えば模範解答式が一つならよいが、複数になったときはどうするか、文字式の時はどうするか、考えていけばきりがない。すべてできることを考えず、とりあえずできる範囲を増やしていきたい。

4)オーサリングソフトとのリンク
 以上の機能は従来のオーサリングソフトとリンクして使うと便利であり、様々な問題を効率よく出すことが可能となることが予想される。オーサリングソフトのほうから問題を出題して、何らかの方法で模範式を「すけ算」に送り、制御を「すけ算」に移す。すけ算には式と答えを児童が書き、先に書いた方法で評価し、評価データをオーサリングの方に返して、再びオーサリングシステムの方に制御を移すのである。オーサリングシステムでは今までのように児童が書いた史記や答えをコースウェア作成者が評価するのではなく(つまり先に書いたように一つの問題について予想される解答例を何十も書いておくのではなく),「すけ算」から受け取った評価を元に分岐を決めればよく、コースウェアの作成効率が上がることが考えられる。
 問題はどのような評価を返したらよいかということである。
 またもう一つ深刻な問題は,これに対応したオーサリングシステムがまだないこと(できる可能性が少ないこと)である。産業教育センターのCAI部会で昨年度まで3年間検討された新オーサリングシステムはこのすけ算の機能を取り込むよう考えてきた。今年からは総合教育センターで実現に向けて作業が進められているがいまだいつになったら完成できるか見通しが立ってない。
 「すけ算」かオーサリングシステムに送られる評価としては次のようなものを考えている。
式の間違い
 立式不能
 数値も、計算記号も間違っている
 式に使われている数値はあっているが計算記号は違っている
 計算記号はあっているが数値の使われ方が間違っている
 式は間違っているが、書いた式の計算は合っている
 式は間違っており、計算も間違っている
式は合っている
 必要以上に複雑
 一つの式にまとめられるのに、二つ以上の式でかかれている
 式の計算がすべて間違っているが考え方は合っている
 二つ以上の式で途中までは計算が合っている
 計算もすべてあっている
計算の間違いの情報
 足し算、引き算のミス
   一位数の足し算、引き算の計算ミス
   繰り上がり,繰り下がりのミス
 かけ算、わり算のミス
   九九の計算ミス
   繰り上がり繰り下がりのミス
   位取りのミス
 足し算引き算かけ算わり算の混合式の計算の優先順位のミス
単位の使い方の間違い
 単位が全くついていない、部分的についていない
 単位をそろえずに計算した・・・その結果計算ミスになった
 単位を変換するときに間違えた・・・その結果計算ミスになった
 計算式で単位を間違えて付けている
 計算結果の単位を付け間違えている

 これで全部ではないと思うが、これから具体的な実践の中から考えて行くしかないと思っている。
 蛇足ではあるが、以上の評価は学習の終了後教師に今後の学習に生かしていくようにするため渡すことができるようにしたい。これは今までの「すけ算」でも予定していながらまだ実現していないものである。どのようなデータを学習記録として残しておくか考えておかなくてはならない。今後の学習にいかしていけるためには、その子の学習状態が一目でわかるかたちがよいが、前々から考えてはいるがどのようにしたらよいかなかなか考えがまとまらない。よくわからない数字がずらりと並んでいても、それを見て利用しようとする人は多くないだろう。例えば何回か繰り返した時の様子についてもわかるようにできたら,そのこの変化がわかり学習指導に役に立つと思われる。
 このようにして、模範解答を一つあらかじめ入力しておくだけで子どもたちの学習に様々なアドバイスを与えながらコンピュータの手助けで文章題の学習が進められるのではないかと考えられる。しかしこの方法では、問題を入力するのは先生または出題者に限られる。子ども(学習者)が自由に問題を入力し、自分の考えを入力して検証していくことは、不可能となる。児童生徒自ら学習する意欲を育てその手助けになるのにコンピュータを使うことを考えると,学習者自身が問題を入力して解答しそれに対する判断ができるようにすることがどうしても必要になってくると考えている。その為に、もう一つの方法を考えた。

5)解決法その2、「構文解析入力による問題の入力」またの名を「文章題自動作成ソフト
 まずあらかじめ枠を用意し、問題の中に含まれる情報を,その枠組みに従って入れていくようにする。ここですぐ気づかれると思うけれど、どのような枠を,どのような表現で、いくつ作るかが問題である。枠の作り方によっては何をどうしてよいやらわからなくなる可能性がある。小学校低学年向け、中学年向けのように学年によって枠をかえる必要がある。中学の数学の内容にすべて対応できる枠ができるかは未知数である。(相当に困難であろうと思うが)少なくとも小学校には対応できるのではないかと考えているが。思いもよらない問題がでてきたらその限りではない。
 具体的にどのようなものであるか下に示す。実際にはもっと親しみやすいものでなくてはいけないと思うが。

┌──┬─────┐  ┌──┬─────┐  ┌─────┐

│名前│HBの鉛筆│  │名前│2Bの鉛筆│  │持っている│

├──┼─┬─┬─┤  ├──┼─┬─┬─┤  │人        │

│量  │5│単│個│  │量  │3│単│個│  ├─────┤

│    │  │位│  │  │    │  │位│  │  │1        │

└──┴─┴─┴─┘  └──┴─┴─┴─┘  └─────┘

    (わくの中に書き込む)                                

┌────────┐  ┌────────┐  ┌─────┐

│どうするか      │  │答えること      │  │あげる人  │

├────────┤  ├────────┤  ├─────┤

│@、あわせる    │  │1、いくつ残って│  │1        │

│2、わける      │  │  いますか    │  │          │

│3、きる        │  │2、一人分はいく│  └─────┘

│4、たべる      │  │  つですか    │                

│5、            │  │B、全部でいくつ│                

│                │  │   ですか      │                

└────────┘  └────────┘                

    (マウスでクリックして選択する)                      

以上の入力をすると、
「HBの鉛筆5本と2Bの鉛筆が3本ありました。合わせて何本になるでしょう」
という問題が自動的に作成され、内部データに「5+3=」という模範解答がセットされるようにする。
 例えていえば、これは最近よくある手紙文作成ソフトのようなものと考えていただければよいと思う。つまり指定された項目にデータを入れると自動的に文章題が作成されるというものである。ただ単に文章題が作成されるだけでなく、内部データには構造化されたデータが蓄積され、それによって問題解法のための式、答えが自動的に作成される。プログラミング的には内部のデータ構造をどのようにしておくかが,どんな問題にでも対応できるようにするための必要事項であり大問題である。
 この方法の欠点は,入力方法になれないと使い方が難しいことである。ある種の子どもたちにとっては大変困難な場に立たされることになることが予想されるため、どの場面でも使えるわけではない。
 反面、ここに入力することにより、文章題を構造的にとらざるを得なくなることも考えられる。従ってこの枠の中に入れることができた段階でほとんどの子どもは解決方法をつかんでいるであろうことが想像される。つまり文章題作成ソフトは、これを使うことで児童の数学的な思考を練らせるための独立したソフトとしても存在価値があると考えてはいる。
3 「単位量に対する対応」
 文章題を扱う上で必ず考えていかなくてはならないのが単位の扱いである。従って計算処理についても、単位量に対応する処理を付け加えて行かなくてはならない。また手軽に単位を入力できなくてはならないし、また単位を認識できなくてはならない。
 ソフトウェア的には単位量に対する処理を後からくっつけ,計算部分はそのままでいいので,この問題の解決はそれほど難しくはないが、たとえば、途中単位がつけてなかったりしたときどう処理するかなど想定することは多く、かなり面倒な処理となる。
 例えば
 10cm+1m=1m10cm
 10cm+100cm=110cm
 0.1m+1m=1.1m
の様に単位換算が入り組んでくると複雑になってくる。これに例えば単位を付けない式を児童が書いた場合、「単位を付けましょう」とすると簡単ではある。しかし一応途中計算の段階では単位なしを認め、どの単位で計算しているのか見極める処理をプログラムに付け加えることは、かなり面倒なこととなる。
その場合 10+1=11 の様になっていた場合にはせめて10と1の「単位はそろっていますか」ぐらいのメッセージは出したいものであるが、これを判断するにはかなり難物である。これが長さの計算の時と限定されていればいいのだが、そうとは限らないからである。

最後に
このように書いてくるとまだまだやらなくてはならないことが山ほど残っていることに気がつき、頭を抱えてしまう。思っていた以上に、「どんな状況にも対応するソフト」を作るということは大変であることがわかった。この拙文を読んでくださって興味を感じられた方、少しでも「すけ算」にさわられた方のお知恵もお借りできたらと思っているこの頃である。