八幡さんは研究室の中でどのような研究をされているのですか?
概要としては小学生の低学年を対象としてローマ字を学習させるというものなのですが、学習する方法として、体を動かしながら学習しようということをテーマにして研究をおこなっています。
普通の学習では紙にペンを使って書き取りをしたりすると思いますが、僕の研究では「ひ」という文字が画面に出て、これに対して体を大きく動かして「hi」を書いてみる、という感じになります。Microsoft社のKinectで人の動作を認識し、それを利用して体を動かしながら学習します。
研究の対象とされている小学生低学年の子供たちに、実験として数名集めてやってもらっています。このような入力デバイスがまだ珍しいので、Kinectがあって自分たちの姿が映っているというだけでかなり第一印象は良かったという感じです。
−なぜこのような研究をやってみようと思われたのですか?
体を動かしながら学習することの先行研究をされている先輩がいました。Kinectの技術自体にも興味がありましたし、僕もやってみようかと思ったというところです。プログラムのソースコード自体はC++で書いています。行数は1000行くらいです。
–もともとC++を書いたことはあったのですか?
C言語自体は授業でもやりましたし、自分でもそれなりに勉強しましたが、C++はあまりやっていませんでしたね。プログラミングを知って勉強し始めたのは高校生になってからですが、当時の僕には難しくて、切ない挫折がありました(笑)本格的に始めたのは大学に入ってからですね。
–やってみて苦労したことはありますか?
やはりC++自体にあまり触っていなかったので、どうするのが一番効率的かというのは悩みました。また、こういったコンピューター以外のハードウェアを使ったプログラミングというのはあまり経験がなかったので、どのようにライブラリを使えばKinectからデータを取り出せるのかというところについては悩みました。
–個人的に何か作ったり書いてみたというものもありますか?
個人的にはあまり大きなものは作ったことがありません。どちらかというと言語の勉強をするのが好きなので、LISPあたりが個人的におもしろいかなと思い、勉強を始めてみたりだとか。マイナーだけれども使われている言語というのは結構魅力的に感じていて、プログラムを作るより言語を勉強するほうが僕は好きです。
大学時代はどのような授業を受けていらしたのですか?
いま修士一年ですが、ざっくり言うと最初の一年はC言語の概要というか機能を一通りやる感じで、二年あたりからアルゴリズムについて考え、三年からは文法の知識とアルゴリズムの知識を組み合わせて実際に少し複雑なプログラムを作ってみたりという感じです。
–例えばどういったアルゴリズムの授業がありましたか?
一例としてはソートですね。クイックソートないしヒープソートなど代表的なソートアルゴリズムを4つか5つ、自分たちで実装します。あとはデータ構造なども自分たちで実装していったり、そういったものを組み合わせて簡単な迷路などを解くとき、深さ優先か、幅優先かというものを考えたり、といった感じです。
–電気通信大学のどこに所属している人が今のカリキュラムをやることになるのでしょうか。
今だと情報・通信工学科ですね。
–4年半学校に在籍されて、成長したと特に実感した点はありますか?
カーニハン&リッチーのC言語についての本があるんですが、あれが高校時代は読めなかったのが、気づいたらリファレンス的に引けるようになっていたというのはありますね。特になにをしたという訳ではありませんが。
研究室ではどのような形で研究内容を決めたり、情報共有していますか?
まず研究の決め方は、基本的にうちの研究室は自由で、自分の興味のある分野について自分で調べて決めています。最近は、赤澤さんの研究の関係で教職課程とのつながりが強いものですから、教育に関するシステム開発に興味を持っている人も多いですね。
–先輩から何か教えて貰ったり情報を引き継ぐ際はどのようにアプローチするのですか?
プログラミングについてはあまり教えてもらったことはなくて、むしろ論文の書き方、参考文献の探し方など、技術面だけでなくそういう体裁を整えることなどについても多く勉強させてもらったと思います。
–いま所属されている中山先生の研究室を選ばれた理由はどういったものなのでしょうか。
正直なことを言いますと、第一希望のところを僕は落とされまして(笑)。形としては第二希望のところに来たのですが、もともとプログラミングに興味があったので。
最後に、プログラムをやっている学生さんに対して一言お願いします。
好きなものは苦しくても続けたほうがいいと思うよ、といったところでしょうか(笑)。正直プログラミングは好きですけれど、授業中の実験とか課題といったものはそれなりに苦痛です。それでも結果的には今こういうものを作って、これ自体は楽しいので、やはり好きなことは苦しくても続ければ楽しいことにつながるかと思います。
次は赤澤さんにぜひお話を伺いたいと思います。一度就職されてからまた大学に戻られたということなのですが、戻られてからどのようなことをされているのですか?
私は大学に入った頃は教員になりたくて、教職免許を取って大学を出たあと、ソフトウェア開発をする会社に入って、開発をしていました。でも子育てがあって辞めて、次に大学に戻ってくるときに、教育のことも活かしたいし、ソフトウェアのことも活かしたい、と思って中山先生に相談しました。教育の情報化というものがすごく進んでいるので、その中でできることはないかと。
今、高校で情報という教科がありますが、そこから始めるよりもっと小さい時から始めたらよいのではないか、情報教育をどうやって、いくつくらいから始めたらよいのかなど、そういったことを研究していこうと思っています。
–就職してからいつでも大学でまた学べるというようなプログラムは電通大の中で整備されているのですか?
入試に関しては、社会人選抜があります。カリキュラム上、社会人の考慮はありませんが、私の場合は,研究指導に仕事や子育ての都合を考慮してもらえています。
–働かれているときと大学では、違うなと感じられたことなどはありましたか?
働いているときと大学での違いは、責任だと思います。大学では、チャレンジできるところがいいのだと思います。仕事をしているときは、当然仕事なのでプログラムに穴があってはいけないし、想定外のことが起きた場合には想定外のことが起きたとちゃんとわかるような、穴のないプログラムを書くということが仕事の上ではいちばん大事です。でも今はこういうことをやりたくて、実現するにはどういうプログラムを書いていったらいいのかというところに主眼をおいているので、そこは少し違うなと思います。
–卒業前にこちらで学ばれていた時は、所属はどちらだったのですか?
情報工学科というところがあり、そこに所属していました。学部の時はアルゴリズムを専門に研究していて、ゲーム木探索のためのハッシュ表をどう作ったらいいかという研究をしていました。
院に入ってからは並列分散の研究を始めるのですが、各プロセッサに分かれて一つのものを計算してもらうとき、効率よく計算するにはどうやってハッシュ表を共有したらよいのかという研究をしていました。
–もともとそういうところに関心があったのですか?
もともと情報系に興味があって大学に来たのですが、この研究をしたいからこの研究室に入ったというよりは、先輩からこの研究室はいろいろなことができるからいいよ、と言われて、先生と面談をして「僕のところに来ていいよ」と言われたので入ったという感じです。
大学に行くことに対しての考えを一言お願いします。
企業では自分の好きなコーディングや自分の好きなものを書けるわけではないので、興味があることができるというのは大学のすごく良いところだと思います。今はオンラインで授業の動画を見ることもできますが、大学では仲間と一緒にそれに対して話し合うなどしてお互いに成長しあえることがすごくいいなと思います。
学部での実験は地味なのですが、そのとき培ってきた緻密さや基本的なことが本当に社会に出てから役に立ちました。社会に役立つ実験は本当に重要だと思います。
では最後に中山先生にお伺いします。いまお二人にお話しいただいたシステムの研究以外で、研究室でされている研究はあるのでしょうか。
もともと私の興味があるのは計算機のシステムソフトウェアで、それともう一つ、大学時代から並列処理の研究をしていました。
大学に来てからプログラミングの勉強をするという人がほとんどなのですが、これからこの国で計算機に関する研究が活発になっていくためには、おそらく高校だけでなく中学校や小学校の段階から、情報の教育すなわち計算機が使えるだけではなくて、計算機がどう動作しているのかということがわかるような教育が必要になってくると僕は思っています。
そういうふうに情報教育に関する研究というのも最近の研究テーマになっています。
博士号をとろうとしていた赤澤さんと、計算機のシステム、Kinectなどを利用してどうやってプログラムを作ったらいいのか興味をもっていた八幡君がうまく合わさって、いまは体を動かしながらのローマ字の学習をするシステムを作っています。1年前は別の大学院の学生が体を動かしながら数字の入力をするというものを作っていましたので、それを利用して九九の勉強をするシステムを作って、学童保育クラブに行って40人くらいの小学生に使ってもらったりというようなことをやっています。
こうやってお話ししているとなんでもやっているということになってしまうのですが、基本的には計算機そのものを研究している研究室ということになります。
–研究室には何名ぐらいいらっしゃるのですか?
今は博士後期課程の学生が2名と、博士前期課程の学生が7名。それから学部の学生が5名です。今年の修士一年生は3人ですが、来年はひとり、もしくは二人です。
僕が電気通信大学に着任したのは今から21年前ですが、このような形で研究室を作ったのは今から15~6年前で、博士課程に進むのは赤澤さんが四人目です。だから四年に一回ずつくらい、博士課程の学生がいるかいないかという感じです。
電気通信大学のカリキュラムについて教えてください。
情報処理学会にJ07という計算機の専門教育のためのカリキュラムの骨格となるものがあって、電気通信大学の情報工学科や電気通信大学の情報・通信工学科のコンピュータサイエンスコースはそのカリキュラムにのっかっています。
今の電気通信大学では学科によらず、初年次は本当に基礎的なプログラミングしかしません。二年次になってくると計算機専門学科のためのアルゴリズムの勉強とそのためのプログラミングの勉強をして、三年生になるとシステムソフトウェアの構成の方法や言語処理系の構成の方法などソフトウェアの勉強とハードウェアの勉強をします。
さきほど八幡君が実験でくじけそうになったと言っていましたが、計算機専門の実験などはハードです。八幡君もそれに則って勉強してきました。僕が最初に赤澤さんと接したのは三年生の専門実験のときです。女の子なのに夜の九時くらいになっても実験をやっていました。
すごく手前味噌な言い方なのですが、アプリケーションどうこうではなくて計算機そのものをどうやって作るかという、計算機の専門家を育成するための教育システムになっていると思います。もしかしたら辛い実験も多かったかもしれないし、地味な実験が多かったかもしれないですね。
見栄えがいいような、それこそ体を動かしてKinectでモノを取って動かすような応用的なことができたのは大学院にいってからの話で、学部の三年生あたりの実験は地味ですね。
最後に先生からも一言お願いします。
昨年の六月に「世界最先端IT国家創造宣言」という閣議決定がありました。小学生からプログラミングの教育を始めるべきだとか、セキュリティの教育を始めるべきだと言われていて、それがすぐに実現するのは大変かもしれませんが、たぶんこれから10年先くらいになってくると、望ましいこととしては小学生くらいのときから、プログラミングとはどういうものなのかとか、計算機はどのような動作原理で動いているのかということを勉強できる世の中になってほしいと思っています。
それが中学高校でも発展的に勉強できるようになっていて、大学に来た時には計算機の専門の教育をする人は専門教育を、もちろん簡単なプログラミングを小学校中学高校でやってきてその他のいわゆる人文系・社会系の勉強をする人もいていいと思います。
この国ではもうちょっと教養としてのプログラミング教育がされてもいいのではないかと思います。それと、電気通信大学にきて計算機の中身そのものを研究していく人がこれからも増えるといいと思っていて、そういう学生が増えてくれたら嬉しいなと思います。