• リベラルアーツ学群

    自然領域情報科学

    統合領域データサイエンス

有田 友和 准教授

Tomokazu Arita

有田友和先生がインタビューに応じている様子
  • 言語的ルールに基づく仕様の決定
  • アルゴリズムを学ぶことは重要
  • コンピュータに興味を持つ学生を増やしたい
有田友和先生がインタビューに応じている様子

アルゴリズムとプログラミングの橋渡しを探り、日本の情報教育の改善に貢献したい

プログラムの仕組みなどを考える「計算機科学」が専門分野

「アルゴリズムのアイデアを実際にプログラムに実装するには、コンピュータの仕組みにアイデアを落とし込む必要があり、そこに大きなギャップがあります」——そう語るのは、計算機科学を専門とするリベラルアーツ学群の有田友和准教授だ。大学時代からデータをルールに基づいて処理する計算機科学分野の研究に取り組んできた彼が今もっとも力を注ぐのは、プログラミングの学びにおいて、アイデアと実際のプログラムの関わりをどのように上手に伝えるのかという問いである。

有田准教授が本格的にアルゴリズムについての研究を始めたのは大学院のころ。プログラマが書いたソースコードをコンピュータが解析・実行できるように変換する「コンパイラ」などに応用させる言語理論を、より複雑なネットワーク図に応用するための共同研究などに参加していたのだという。

「日本語や英語に文法があるのと同じように、プログラミング言語にも文法があります。日本語などの自然言語では文法通りに話さなくても文脈や状況で理解できるかもしれませんが、プログラムはプログラミング言語の文法通りに書かなければ動きません。プログラミング以外にもWebページなども文法のルールに従って書かなければ表示できないのです。言語的なアプローチは無数にあるプログラムやデータに対して、その間違いを指摘するルール的な仕様の決定が可能です。例えば、様々な用途のプログラムがありますが、それらは言語に基づいて書かれていなければコンピュータで動かすことができません。つまり、無数のプログラムの仕様を言語が決めているといってもよいのです。

これらの文法は一列に並ぶ文字列を対象とするルールですが、図のようなものの中にもルールに基づいて作成するものがあります。例えばフローチャートのような流れ図もその一例です。使う記号や線のつなげ方に図としてのルールがあります。このようなネットワークを表す多方向に広がる図、我々はグラフと呼んでいますが、これらへの言語的なルールの適用によって、その構造の種類を限定し、仕様を決定することで、間違った図の生成ができないようにすることも可能です。私の研究は、仕様書などの表に対するグラフに基づくルール化から始まりましたが、このような方法は様々な課題を情報科学的に解決できるのではないかという思いで研究をしてきました。

一方で、グラフで表されるような構造は複雑で、実用的な処理方法を考案するのは難しいことも多いのです。問題によっては処理のアルゴリズム的な難しさに直面します。そこが研究の難しいところです」

解決する問いは同じでも、手順によって効率性が異なる

「プログラミングの研究」と聞けば複雑なコードを書き連ねる作業をイメージするが、アルゴリズムの研究はむしろアイデアが重要なのだと有田准教授は語る。コンピュータに解決させたい課題は同じであっても、その処理の手順によって計算の効率性、結果の精度が大幅に異なってくる。有田准教授はその一例として、「分割統治法」というアルゴリズムの設計手法を挙げた。これは、一度に解決することが難しい大きな問題を、小さな問題に分割して個別に解決。それらを結合して最終的な解を得るという手法だという。

「例えば私がすべてを比較整理しなければならない100個の仕事を抱えていたとします。問題が多いので、同じような方法で比較できるような50個ずつの集まりに分割して整理することにします。この50個を同様な方法でまた半分の25個ずつにわけていきます。これを繰り返すと、最後には1つの仕事になります。このとき、問題数が少ないので比較整理するのは簡単です。半分に分けたものを統合してまとめるとき、それぞれはあらかじめ整理されているので、少し整理するだけでそれらの仕事の統合は終わります。この統合を繰り返して、最後に50個ずつを統合して100個の問題を整理したとき、迅速に問題を解決したことになってしまうという方法です。小さく分けてから統合して戻すというアイデアが、普通に比較整理するよりも問題解決を速くしてくれるのです。」

プログラミングの仕組みを可視化する教材で情報教育の改善を目指した

情報教育におけるアイデアと実践のギャップについて語る有田友和先生

情報教育の課題のひとつは、アイデアと実践の間にあるギャップ

分割統治法は、データの集合を規則に沿って並び替える「ソート」などに用いられている。Excelをはじめとするソフト上で、多くの人々が便利なソート機能を何気なく活用しているが、その背後にあるアルゴリズムの仕組みを意識することはほとんどない。ソフトウェアの実装において、どのようにプログラムを動かせばよいのか、多かれ少なかれ考える必要がある。しかし、コンピュータの動作はそれぞれが素朴であり、人間が簡単にできることとの間にはかなりのギャップがある。「自分の中にアイデアはあるが実装となるとコンピュータの動作に近いレベルの解釈が必要となる」というこのギャップは教育現場においての一つの課題であり、その点を支援したいと考えていると、有田准教授は話す。
「情報教育はここ数年で大きく変化してきました。中等教育の教育現場でIT化が進む中、情報を科学的な視点で理解し、なぜそのような仕組みになっているのかについて考察する力がますます求められていると感じています。ただ、仕組みをじっくり学ぶことは非常に難しい。教育の手法や教材を開発することによって、その改善を手助けできたら幸せだと考えています」

どのようなシステムを作成するにしても、その基礎にあるプログラミングやデータの知識は欠かすことができない。テクノロジーの進化に伴って開発の環境も急速に変わりつつあるが、根本にある仕組みを理解しないままシステムを活用することや、新しいアイデアでプログラムを書くことは依然として難しいだろうと有田准教授は話す。

「その点、問題解決の手段そのものであるアルゴリズムを学ぶことには、大きな意味があると思っています。もちろん言語を勉強すれば、試行錯誤の結果としてプログラムを動かすことは可能でしょう。しかし、『それがなぜ動いているのか』『もっと効率的に動かす方法はないのか』といった探究を行うためには、アイデアを生み出す根源となる論理的思考力を養わなくてはなりません。ただ、アイデアばかりを考えていても実践はできるようにならないので、そこにジレンマを感じながら情報教育の改善に取り組んでいるところです」

確実性を求めるのか、それとも現実的なスピードを求められるのか

高等学校を念頭に置いたプログラミングの導入教育に関する研究の一環として、有田准教授は問題解決の処理の過程を可視化する教材を提案した。これは「整数の要素をもつ集合が与えられたとき、中央値以上の整数をどれか1つ求める」という問題を例に、プログラムの背景にあるアルゴリズムの効果的な活用を体験的に理解してもらうものだった。

この教材では、並べ替えたり、確率的に求めたりするような数種類を検討。妥当な解を確実に求められるものもあれば、正答がなかなか出ないものもある。また、確実性と処理速度とのトレードオフの関係も考えることになります。その実行例をタイミングを合わせたアニメーションで可視化することによって、各アルゴリズムの処理速度や精度の違いをわかりやすく体験させる効果が期待される。

「確実に答えを求められるアルゴリズムはありますが、多くの要素を走査しなくてはならないというデメリットがあります。データが増えれば増えるほど、処理に時間がかかることは明らかです。それに対し、必ずしも正しい答えを導けるとは限りませんが、より少ない手順である程度は正解に近似した解を得ることのできるアプローチも存在します。時間がかかって解けないよりは、やや精度は落ちるものの近い解を得るほうが効率的な場合もある。初学者にその違いを可視化する教材を通じて、主体的かつ合理的な判断を意識するための動機づけを行いたいと考えました」

数学とコンピュータへの興味から大学で応用数学を学ぶ

キャンパス内で佇む有田友和先生

家庭用コンピュータ黎明期に感じたプログラミングの面白さ

有田准教授の少年時代は、国内にコンピュータが浸透する黎明期とともにあった。小学生の頃には、家庭用ゲーム機の原点ともいえる「ファミリーコンピュータ」に多くの小学生が熱中。そのような時代背景のなか、中学生からのPC-8800シリーズによるプログラミング体験が、コンピュータの仕組みに興味を持ったきっかけだったという。
「最初はゲームをつくりたいと思って『BASIC』というプログラミング言語を学び始めたのですが、完成させることはできませんでした。ただ、プログラムを書けば自分では時間がかかるような小数点以下の計算も簡単に実行できたりと、それだけで楽しかったのを覚えています」

コンピュータと並行して好きになったのが数学だった。中学生になると数学の難しい問題を解くことに喜びを感じた。しかし、高校数学になった途端に予期せぬ挫折を味わう。新しい数学記号の理解不足が原因だった。

「それまで数学には自信があったのですが、今まで使ってきた記号が新しい記号に変わっただけで、授業内容を理解できないという経験をしました。それをリカバリーするのには時間がかかりました。それでも、自分の興味は絶えず数学にあり、コンピュータが好きだったこともあって、応用数学の道に進むことに決めました」

人生を振り返った時、教育者になる道が開けた

応用数学科に入学すると、中学時代に遊んでいたプログラミングを学問として学び直すことになった。ここで有田准教授は、プログラムの書き方だけでなく、処理速度や効率性を高めるための手順——すなわちアルゴリズムについて学びを深める。

「問題を解くためのアイデアを出す点に魅力を感じたのです。一方で、3年次のゼミ選択では理論とプログラム開発を重視するところに所属しました。その両方の経験があったからこそ、アルゴリズムの理論をどのように社会に実装するのかということを自然と考えるようになったのだと思います」

恵まれた環境でコンピュータの研究に取り組んでいるうち、やがて卒業を意識するタイミングに差し掛かった。これまでの自分の人生を繰り返し見つめ直す中で出会った新たな目標が、教育者として生きる道だった。

「就職活動で自分を掘り下げていると、何かを教えているときは生き生きしているなということに気がついたのです。教職課程の学びが終わりに近づくにつれて、教師を強く志望するようになっていきました。そうであれば研究を続けておくことが強みになると思って、教員免許を取得しつつ大学院で研究することを決めました」

教育に携わり続けることが人生の目標に

リベラルアーツ学群で授業を受け持つ現在は、教育者として「丁寧さ」と「感謝」を心がけていると話す有田准教授。情報科学に興味を持ってくれた学生への感謝を忘れず、丁寧な授業で学生を到達目標に近いレベルまで引き上げることを大切にしているのだという。これからも専門分野を活かしながら、教育に携わり続けたいと今後の目標を語った。

「アルゴリズムは意識しなければ見えない“縁の下の力持ち”です。例えば、普段電車に乗っていても車輪のスムーズな動きを意識することはないでしょう。しかし、効率的に動く車輪が開発されることによって、私たちの生活の利便性は確実に高まっているはずです。だからこそ、大学での授業等を通じ、アルゴリズムを意識させたり、そのアイデアをわかりやすく伝えることには意味があると思っています。プログラミングの背景にある情報科学の世界を見せることで、コンピュータに興味を持つ学生の数を増やすことに貢献したいと考えています」

教員紹介

Profile

キャンパス内で佇む有田友和先生

有田 友和准教授

Tomokazu Arita

1976年神奈川県生まれ。1998年に日本大学文理学部応用数学科を卒業。2000年に日本大学大学院総合基礎科学研究科地球情報数理科学専攻修士課程を修了、2003年に同博士課程を単位取得満期退学。博士(理学)。同年より東京電機大学理工学部数理科学科で助手を務め、2004年より桜美林大学に講師として着任。2013年より現職に至る。

教員情報をみる