久野先生の学生時代について教えてください
自分の学生時代についてですが、学生時代って随分前の頃ですので、 自分の良いことしか覚えていないというのはちょっとあります。それで もやはり自分のタイプとしてはいわゆる「良い生徒」でしたね。学校も いろいろ問題とか、悪いところとか言われていますけど、自分には日本 の学校は結構合っていて、楽しい学生時代を過ごしました。
どのようにして東京工業大学への進学を決めましたか
僕の出身高校は学芸大附属高校でした。そこで高校3年生の時に初め てミニコン*1に触れました。ミニコンを触らせてもらったらすごく面白 くて。それまではオーディオか、何かそういう分野に行きたいと思って いました。急にコンピュータがすごく面白いと思うようになり、それで 情報科学があるような学校を探して、東工大にあるということで入学し ました。
*1. ミニコンはミニコンピュータの略称であり、1960 年代から1980年代に使われた中規模のコンピュータで、メインフレーム とPCの中間に位置する。安価で小型ながら、複数ユーザーの同時利用や 中規模の処理が可能で、企業や研究機関で広く活躍した。
では高校の頃から結構理系だったんですね
理系でしたね。物理が一番得意でしたから。
東京工業大学に入学されてから、どこの研究室に行かれましたか
大学4年の時に研究室が決まったけれども、その時に情報科学科の木 村泉先生の研究室に所属しました。そこでいろいろ研究して、自分は耳 が悪いので、会社勤めとかは無理と考え、大学勤務の方が絶対いいんじゃ ないかと思ったので、修士、博士に進みました。
先生の専門分野について、教えてください
さっきお話したように、ミニコンを初めて触って、プログラミング が面白くて情報科学科に進みました。それと関係が深いプログラミング 言語、CとかJavaとかあるんですけども、プログラミング言語はとても 面白く、一番興味深い研究ということで始めました。
計算機を使っている上で、エディターとか様々なツールがあります。 そういうツールを自分で作るのがすごく面白くて、ユーザーインター フェースとしていろいろ工夫できるのが面白いということがありました ので、今言ったプログラミング言語とユーザーインターフェースが結局 自分の研究分野となりました。そして、この2つが主な研究分野だった んですけども、終わりの方になって、以前から頼まれ仕事としてやって いたセンター試験の「情報関係基礎」の出題委員とか情報処理学会の初 等中等教育委員会とか、そういうところがあったりといううちに、情報 教育がメインになったという風な感じです。
先生は主にプログラミングから入られてUI周りの研究をさ れて、さらに情報教育についても初期から携わられたりしていますよね
終わりの方では情報教育ばかり研究してましたね。
まさしくそれがコンピュータリテラシーとか基礎プログラ ミングおよび演習(以下”基礎プロ”)につながっていくということでしょ うか
もちろんそれはそうですね。内容そのものがコンピュータかどうか というより、プログラミングもそうですし、リテラシーの方もコンピュー タが使われている、そういうことがもともと自分の研究の前半でいろい ろやっていたのが土台になって情報教育に活きたというのは結果的によ かったと思っています。
研究分野で面白いエピソードとか印象に残っていることな どあればお聞かせください
自分で初めの頃はオブジェクト指向言語とかオブジェクト設計とか やっていました。その中でこういうのがあったらどうだろうと自分の先 生にお話したけれども、先生からあまりいい反応がなくてやらなかった ということがありました。それが、後になったらそういう色々なものが 出てきて、あのときにやっていれば今は先駆者になれたなと思ってます。
先生の師事されてた木村先生は結構認知科学の分野を研究 されていた先生ですよね
木村先生も初めのうちはやはりコンピュータとか理論とか、あとシ ステムプログラミング、つまりOSなどに関係する部分のプログラミング とかそういうのがメインだったんですけれども、最後は認知科学とかそ のようなものをやっていたという感じですね。だから、僕はだいたい木 村先生がシステムプログラムとかやってた終わりの方でした。そういう OSに近いプログラミングが面白くてやっていました。僕と木村先生の研 究はそこから後は離れたけどその時は結構面白いことをいろいろ教わっ たと思っています。
先生の書かれた中で特におすすめの著書や論文はございま すでしょうか。
私は著書は多いんですけども、「コンピュータもの」ってしばらく すると古くなるという性質がどうしてもあるので難しいのですけれども、 割とその中では「Rubyによる情報科学入門」っていう本がありまして、 これはRubyによって情報科学の様々な基本的なアルゴリズムを動かして みるというものなので、基礎プロの内容の前身にあたるものですけども、 この本は自分としては教え方が面白いと思っています。ただ電通大生の みなさんはまあ基礎プロの方をやっているので、そういう意味ではご存 じということになってしまいます。それからもう一つは「Javaによるプ ログラム入門」。やっぱりJavaによるプログラムをどういう風に利用す るかというのを考えて書いたのでこれなんかも教えたい。
それからコンピュータリテラシーの内容にちょっと近い内容として は「UNIXによる計算機科学入門」というような関係の本もあります。そ ういう本もあるんですけど、それはやはり情報リテラシーですね。内容 としてはコンピュータリテラシーの前身のようなそういうものですね。 どれもやはり内容的には電通大で授業を受けている人は聞いたことがあ るようなものですが、授業では時間がやっぱり限られているんですよね。 それでいうと本の方がある程度好きなことを書いてるというのがありま すよね。
先生がどのように研究室を決められたかについてお聞かせ ください。
学部の授業を大学入って受けましたよね。東工大の場合は、1年は全 然コンピュータに関するものがなくて、2年から学科に入って、いろい ろあったんです。2年と3年の間の2年間で、いろんな先生の授業を受け たんですけども、その中で、木村先生の内容が一番面白くて、自分の好 みに合っていたという感じです。で、木村先生の研究室を第1希望にし たら、無事に配属されたという感じです。そういう意味では電通大の皆 さんがいろいろ苦労して競争をしたり、自分の希望するところに入れな かったりということが、あったりして大変だと思いますね。
先生が当時興味を持たれた木村先生の授業というのは、ど のような授業でしたか
コンピュータとか、システムを使うとか、そういう部分について、 先生がやられていたのでそういう内容ですね。例えば、アセンブリ言語 とかその他のプログラム言語とか、OSとかそういう内容なんですけども、 その端々にですけどいろんな経験談とか雑談とか、そういうものが僕と しては面白かったという感じですね。
先生を見て選ばれたのも結構あるということですね
先生を見て選んだというのは私はそうですね。ただ実際、大学の先 生というのは、授業が非常に上手い先生もいれば、授業は下手だけど研 究は強いとかいう先生もいるわけですから、授業が上手いというだけで 選ぶのがいいかどうかはちょっと分からないですけども、木村先生は非 常に授業も面白くて、研究内容はさっき言ったように最初のうちは僕の やりたいことが非常に大きくあっていたのでよかった。その後は少し離 れてしまったけれど。
今、研究室選びを悩んでいる学生が多分たくさんいると思 うのですが、どのように決めればよいでしょうか
私が言えることは、多くの先生と直接話をすること。そういうのが 非常に大事だと思うんですね。授業の時間だとあんまり先生と話をする というのは機会がないじゃないですか。ですから、所属を考える間にな るべく多くの先生と話をして、実際にどういう研究なのかとか、どうい うところが大変なのかとか、どういうようなお話をするのかとか、そう いうことは先生方で全然違いますから、ぜひいっぱい先生と話をするの をお勧めします。
先生も木村先生も、木村先生以外にもたくさんの先生とお 話されたんですか。
僕の配属期間中に木村先生は在外研究期間で日本にいなかったんで す。だから僕の場合は先生と話はできなくて、授業だけで選んだんです けども、できれば話をした方がいいのは絶対そうだと思います。
先生の好きなプログラミング言語とその理由についてお聞 かせください。
だいたい、自分で研究とか教育で自分がある言語を使うなど、また その流れに沿うという感じで使ってるんです。そういう意味では時間順 に言って最初はCLUっていう、あまり知られてない純粋なデータ抽象(オ ブジェクト指向より理論ぽい考え方)の概念を作らせた言語で、非常に それが画期的なんですね。それが結構好きでそれでいろいろ論文も書い たり、教えたりしたこともあります。その後のオブジェクト指向言語で はデータ抽象の機能はあるんですけども、少し他の面も混ざっていて、 オブジェクト指向言語がそういう意味では純粋じゃなくて、純粋なデー タ抽象というのは非常に面白いと思います。
その次はCです。C言語はやはりOSと関係がすごく大きい、そういう 関係がすごく魅力的でOSに近いようなプログラムもいろいろ書けるのが 非常にありがたくて、非常に好きでした。そのうちに今度はJavaが流行っ たんです。Javaはその当時新しく出た言語が、こうやって普及するよう になったっていう。そういう時期にリアルタイムでそういう経過を見ま したから、非常に印象をよく覚えています。
これまでは型のある言語をやってきたんですけども、型のある言語 でオブジェクト指向を作ろうという点ではJavaはやはりいいと思います。 そのあとRubyなんですけど、Rubyはオブジェクト指向言語でデザインが 綺麗で、書きやすさを重視していて、そのままできる。スクリプティン グ言語だから型は必ずしも書かなくてもいいと。だいぶ今までの言語と 違うんですけども。教育用ではやっぱり型の無い言語の方が簡単ですぐ 書けているじゃないですか。だからそういう意味ではRubyで良かったな と思っています。
先生は、やはり時代をいろいろ見てこられたと思いますが、 今流行っている言語、例えばPythonなどについてはどう思われますか。
RubyとかPythonとでどっちがいいというのは、いろいろ議論はある し。ただ僕は個人的にはRubyはやっぱりいいんですね。良いアイデアと か、あるいはいろんな書きやすさのための道具を重視している。Python は誰が書いても同じようなプログラムを書ける。そういう言語が必要な ときは、まあいいですね。あとオブジェクト指向が基本的にRubyでは重 視されてるとかそういうところで、だから今となってはPythonが教育に 使われてるのはわかりますけども、ただPythonのプログラムでいろいろ やるというのは、結局そのライブラリとしてPythonの様々なルーティン を使うために使うという感じで、裸から自分で書くのであれば結局どの 言語を教育で使う上であまり変わりはないので、Rubyでプログラミング を始めるのは悪くはないと思うわけですけどね。
あといろいろ多分プログラミングって言語っていろいろま とめ方があると思うんですけど、その中に関数型プログラミング言語と いうのがあるじゃないですか。先生はこういうスタイルについてはどう 思われますか。
そうですねだから関数型の場合は非常に副作用がなくて、短く書け るとかそういう風な利点はありますけども、すごい数学に近い深い感じ がするんじゃないかな。ああいう言語が好きな人は使う方がいいと思う んですけども、なんか中学高校から普通の言語を使ってやってきたって 人が急に新しく関数型をやりますよとかそういう風にやるのは結構辛い んじゃないかなという気はしますね。あとやっぱり僕はバックグラウン ドとして関数型よりはオブジェクト指向という人なので自分の好みとい うのもありますけども、好みというものだけじゃなくて関数型のちょっ ととっつきの悪さというか、それがまだちょっと現代ではまだ自由に使 うような段階でないという気がしてますね。
プログラミング言語のパラダイムがどう進化していくと思 われますか。
それは例えば僕がこういう風と言っても大体それは外れて、新しく できたものがこう非常に画期的で使われるという世界に今までもなって るから、これを僕が何か言っても全然当たりそうにないです。今はまだ オブジェクト指向の時代が続いてるけどもこの先は分かんないっていう 風に思いますね。一つはやっぱり可能性があるのは並列性ですね。並列 性っていうのはつまり順番に実行されていくことを前提としない言語で、 関数型はそちらに近くできるというのが利点なんですけども、関数型よ りもさらにこう並列性が自由に使えるような言語っていうのは必要とい うか求められていますけど、あんまりそれはこうしたらいいというのは 分かってない気がしますね。
GPUとか並列処理みたいなのは流行りかなと僕も思います。
それはもちろんスピードが出るようにするためには並列性は大事な んですけども、ただ並列性を最初から取り入れている言語はうまく書く ことが非常に難しいので。並列性を今の言語でこうやるとするといろい ろとこう思わぬ落とし穴にはまったりとか思ったように動かないとか、 そういうことがどうしても起きるので。そこをうまくできるような、そ ういう方向での研究というのが非常に求められているんじゃないかと思 いますね。
プログラミング教育において先生はどのようなことが重要 だと思われますか。
私のペーパーの中にも書いてあるんですけど、「離陸ファースト」。 離陸ファーストっていうのはまず離陸ってのは自分の思ったプログラム を作れるようになっていくんですね。だからまず非常に簡単な範囲、言 語の本当に少しでも最低限の小さな機能だけでいいので、自分で思った ものを作れるようになることをやると。で、そういう風になってからそ の作れる状態を維持して、様々な新しい機能というのをだんだん増やし ていって覚えていくと、最後まで離陸した状態を維持してどんどん自分 のできることが増えていくのがいいと思いますね。
多くの先生は、最終的な目標って例えばソートのプログラムだとか 探索プログラムとか、そういう例題があって、それを全部覚える。ある いは全部そういうのを書けるようになる、ということを目標にしてたり、 そういうテキストが見えますけど、そういうのってやっぱり結構重いか ら、自分で書けるようになるのは難しいですよね。そのままいくらやっ ても、自分で書けるようにはならないじゃないですか。そうじゃなくて もっと簡単なプログラムでいいから、自分で書けるようになって、それ から段々増やしていくというのが重要だというふうに思っています。
僕自身もそうなんですけど、プログラミングスクールみた いなので教える、講師としてやるっていうのが、電通大の周りとかでも、 結構バイトとして一般的になってきてるかなって感じていて、そういう 人たちに向けて、プログラミングをどう子どもたちに教えるか、コツと かがあれば教えていただきたいです。
僕の場合は子ども向けに教えているというのではないんですけども、 やっぱりこれも離陸ファーストだと思っていますね。自分で書ければ、 自分で思ったものが自分で書けるようになったら、離陸して、自分でし たいように、いろいろ書いてみるというのをやったらいいと思うんです ね。だからそういう意味ではさっきと同じなんですけど、まず簡単なプ ログラム、簡単な機能だけでいいから自分で書けるようになると。書け るようになったらば、ちょっとずつ機能を増やしていく。そういう風な 方が絶対いいんじゃないかと思うけど、どうですかね。
そうですね、僕自身も教えていて、すごい難しいなと思う のは、if文とfor文があれば、大体のものは書けるわけじゃないですか。 でも、そのif文とfor文自体がよくわからないとか、例えば、もしこう だったときこうしようとか、じゃあこれを何回繰り返してみようみたい なのを組み合わせるのが結構難しいというか、日常生活で何かに指示を 明確に構造化して与えるみたいな、そういう思考にまず入ることが難し いのかなと思っていて、そういうパラダイムを理解するみたいなのをど う教えたらいいのかなっていうのが結構悩みなんですけど。
それはさ、まず最初にif文に行っちゃうのはもう行き過ぎてるから。 最初はだからまず変数ですね。変数を自分の思うように、あとはこう与 えてとか、あるいは、こちらの変数のこちらに移すとか、そういうこと を練習して、まずそれからできるようになるのが最初。その次は、変数 を使った上で、どういう風にするかっていうのをもう少しやって、それ をやって始めて、if thenだけのもの。その後で、if then else、else ifという風に、非常に少しずつ材料を増やさないと、いっぺんにという のは難しいと思いますね。そういう意味では、今まで変数の方というの は、意外と重視されないというか、みんな見過ごされている。まず最初 は、if文とか、while文とか、そういうのは行き過ぎだという風に、僕 は思ってますね。*2
*2. このインタビューの後、情報処理学会情報入試委 員会から久野先生執筆の「プログラミングの基本トレーニング」が公開 されました。 ( https://sites.google.com/a.ipsj.or.jp/ipsjjn/home ) Pythonを 用いた5つのレッスンを通してプログラミングの基本をマスターし、 「書けるようになる」ことを目指す問題集です。言語はPythonですが、 基本から丁寧に解説されているので基礎プロなどにも役立つと思います。 プログラミングに苦手意識のある学生の皆さんはぜひ一読してみてくだ さい!
2002年に小中学校、2003年に高等学校での、学習指導用内 容が改訂され、初等・中等教育において、情報教育というのが本格的に スタートしたという歴史があるんです。先生は、その試作教科書の段階 から関わられていたと業績のリストの方で伺っております。その先生か ら見て、我が国の20年にわたる情報教育をどう振り返られますか
それはもう、なるべく早く情報が広がって良かったですけども。今 まで情報という科目がなかったのが、とりあえず新しくできたんですよ ね。それが20年前。それが最初のうちは、情報って今までなかった科目 だから、なくてもいいもの、ちょっと教えてもいいんだけども一応こん なのなくてもいいというか、そういうふうに、すごく冷遇されている時 代が長かったんですね。今でもまだそうかもしれないけども、それから、 少しずつ広まって今度はいよいよ来年からセンター試験に入って、国立 大の人はちゃんと受けてください、というふうになりますね。そういう 意味では、非常にゆっくりとした歩みだったけれどもようやくここまで 来たなというふうな感じに、自分としては思ってます。
先ほどちょっと出たんですけど、電通大が情報1を国立大 学の二次試験として初めて導入することについての評価はいかがですか
それはもう電通大というのは国公立大学の中では、というか国立大 学でも非常に名前を知られているとは言い難いですね。なんだけど、こ の問題については電通大がここでトップに踊り出てきたというのは非常 に素晴らしいことだと思いますね。ぜひこれは成功して他の大学にも 「電通大上手くやったり」と言われる状態になってほしいですね。僕は 東工大のOBですけど、電通大も非常にシンパシーを持っているから、そ ういう風になってほしいと思いますね。
情報教育のこの先はどうなると思いますか
まず本当はプログラミングというのは非常に重要なんだけども、今 プログラミングは初めての人がやるのは非常に難しいといって、いろい ろ揉めてますよね。揉めてるというか難しいですね。試験問題について も、やっぱり他の分野の情報の内容よりもプログラミングの問題の方が 点数的にもよくないんですよね。だからそのプログラミングをちゃんと 教えて、楽しいプログラミングができるというのはもう少し我々の研究 の結果が発展していって、大体プログラミングがそんなに特別なもので ないという風になってほしいと思いますね。ただその一方で、これが次 に出るんですけど、LLMとかだとプログラム書かなくてもいいじゃん? 全部LLMに書かせればいいじゃん?そういう風なやつなんですね。どう いう風にするかというのは難しいものだなと思ってますね。
コンピュータリテラシーとか基礎プロでもLLM、ChatGPTな どを使用すればといった動きについては先生個人としてはどう思われま すか
LLM *3というのは非常に強力な道具であって、レポートで今までは できなかったことが書ける、書いたものは先生が見ても分からない、 LLMで書いてもいいと思う。そういう風な時代になったから、その状態 でじゃあどうあるべきかというのは、でもLLMがあればじゃあ仕事にな るかって、そうじゃないですからね。やっぱり LLMがあっても難しい 問題は、今でも残ってる。だから今、次の段階で言うと、コンピュータ リテラシーでも何でもLLMはこういう風に使えばいい、ここまでできる。 でもこの先はちょっと人間がいないと難しいという、そういう分担を具 体的に教えるようになるという必要があると思いますね。だから私の用 意したコンピュータリテラシーのテキストでは、それは全然LLM以前な のでできてませんけども、次はコンピュータリテラシーがそういう風に 変わっていく必要があるんだと思うんですけども。
*3. 大規模言語モデル
LLMをプログラミングで課題として使う学生もたぶん表に 出て来ない中でたくさんいると思うんですよね。そういう学生について 先生はどう思われますか
結局、LLMでできるような課題しか出さなかったらそれで止まってし まう。だからコンピュータリテラシー、基礎プロの様々な課題というの は、LLMですぐには解けないと思うんですね。非常に簡単なんだけど、 他でやってないことをこの課題では求めている。そういうのばっかりで すね。そういう風に、前の人がどこかでやったようなことはAIに結構で きるけども、新しいものだと難しい。それがやっぱり基礎プロなどを LLMをツールとしてインスパイアして、学生さんも分かるようになれば、 それはもちろんどうしても書けない人はある程度あると思うんですけど も、ある程度両立というか、ある程度LLMと人間が両方、プログラムを 書くようなことが必要という、そういう理解が学生さんに持ってもらえ るのではと思います
教育に対する哲学やこれまで学んだ経験から学んだことが あればお聞かせください
はい。自分は勉強するってことがとても大きくて、勉強は面白かっ たし、勉強にすごく価値があったと思うんですね。でもそういう人間ば かりじゃないと分かっているんですけども、私としてはその勉強は面白 い、勉強することに価値があるというのを分かってもらうことが教育の 重要な価値だと思う。だから教育って勉強することの面白さを知っても らうための場所という風に思えばいいんじゃないかと思いますね。
東工大、筑波大、電通大と先生は3つの大学で、教育をさ れてきたと思うんですけども、それぞれの大学の学生の雰囲気の違いや 似ている部分についてありますでしょうか
私は東工大の出ですけど、東工大はやっぱり電通大に比べると非常 に大きくて部門はいっぱいあるんで、それでも私の知ってる範囲ってい うのでは情報系のあるいは理学部の一部という場は結構似てますよ。電 通大と東工大の私の知ってる範囲がそっくりだという感じがしますね。 ちょっと偏差値の違いじゃないけど。そんなのはどうでもよくて、やっ ぱりいろいろあるということは同じだと思います。で、筑波の方はです ね、私は筑波でも東京地区の社会人大学にずっといたんですよね。だか ら学生さんってみんな仕事してる人たちで夜に大学に行って勉強すると いう感じです。そういう意味では他の職場の仲間たちが酒とか飲んでる 間に勉強する。自分は勉強するんだっていう風な。だからやっぱりさっ き言ったように勉強することが自分にとって価値があるんだという風な のは僕は思うし、学生さんもそういう感覚だというのでは私には合って いたと思いますね。問題はそうじゃない人がいっぱいいる世の中で、そ ういうのは難しいですけど。
ありがとうございます。先生が今もし学生だとしたら、東 工大、筑波大、電通大どこを選びますか
そうですね、それは難しいですね。もう一回同じ教育というのはま あいいんですけども、次はちょっと別のところでやったりみたい、とい う気もしますけども。そういう意味では筑波の本校の方は全然知らない ので、あんまり知らないのは筑波大の方なんじゃないかな。あとは、東 大とかでもいいけどね。でも東工大でも筑波大でもある意味同じという か、だって結局人の問題で、そういうところの人だってみんな話をする と結局ある意味では同じようなことをやってるんですね。だから皆さん やっぱり大学受験の弊害ですかね。「僕は電通大に受かったから東工大 には敵わない」とかそんなのは全然嘘です。もう社会に出たらどっちで も変わんないです。だからそこでやっぱり今は自分のこの力をなるべく 増やしていくか、その辺が大事なんじゃないかなと思いますね。
今のメッセージはだいぶ電通大の学生に強く響くメッセー ジだと思います
もう本当にそうあってほしい。電通大はだってさっきの入試の時も みたいにこれからの日本をリードしてほしいですね。
社会人全員がプログラミングを習得すべきなのかという議 論があります。先生はこの点についてどうお考えでしょうか?
やらないといけないかどうかまではちょっと言い切りにくいですけ ども、プログラミング出来て悪いことは全然ないから、適度にプログラ ミングできるようになったらいいですね。プログラムを実際にできるか とか、実際に作るかっていうことは、それは人によって得意、不得意、 全然あってあたりまえなんで、その中で、特に好きな人は、電通大みた いなコンピュータ多くやるところに行って、プロになって、そこらへん の他の仕事をする人も、プログラムを知ってるからこれがあったら自分 でできるとか、これはちょっと自分ではできないけども、プロに頼めば これは活用できるだとか、これはAIを使ってもちょっと難しいだとか。 そういう風な考えができるようになるとですね、非常に日本の社会を変 えると思いますよ。
プログラミング教育の普及によって、理系学生だからプロ グラミングができるという状況ではなくなりつつあります。そうなると、 理系学生はプログラミングに加えて何かプラスアルファのスキルを身に つける、あるいはプログラミングをさらに極めていく必要があると思い ます。先生はどのような方向で進んでいくべきだとお考えでしょうか?
それはプログラムの中でもちょっと専門性が高い、こういう分野、 ああいう分野はというのは電通大にもいろんなその先生がいるわけです よ。そういうのの勉強をしてみるというのは非常に効果が大きいと思い ますね。普通のコンピュータ関係ない学校に行ったらそういうのはない から、その中ではそういうものが必要になるんで。これからだから電通 大みたいな大学の4年生、研究室以降の仕事がこれから生きると思いま す。で、多くの人たちがこうプログラム作るときに初歩的なプログラム できたけど、もっと強力なものが必要ならどうするっていう時に頼れる のはプロっていう風になると思います。
前半はここまでですが何かありますか
勉強が面白いと思う人っていうのは多くないんですかね。でも自分 では面白いから、それで僕が話をすると勉強が面白くて当然という話に なって、人によっては反発があるとは思うんですよね。でも電通大でも コンピュータを勉強したくないと思う人もいるわけですしね。それを何 とかさせようと思っても、向き不向きの問題はずっとあるのですけども、 でも自分では勉強が楽しいし、定年になった後も勉強ができるしという のでいいことだとそういうふうに思っています。
プログラミングが好きじゃないという学生はいるのかなと 思うんですけど、そういう学生がどんどんプログラミングをできるよう になったらいいんだろうなと思います
そうですね.そういう意味ではChatGPTみたいなものを使って、プロ グラミングはあんまりやらないんだけども、でもプログラミングを作る ことはAIをサポートにしてできるとか、そういうようなことができるよ うにしてくれればいいのかもしれない。ただ何も知らない人が無理やり プログラムを作るというふうにやっても、できたものが正しいかどうか は何をやったらいいか分からないから。
AIが役に立ったらいいんですよ。ある程度別のところで勉強した人 は自分ではいっぱい書けないけども、でもAIの助けを求めて書いたもの はこういうふうなものですとは言える。 それはそういうふうに思って います.様々な分野の人が、自分なりに正しいデータを、正しいプログ ラムによって使うから大丈夫なんじゃないかとそういうふうに思います ね。
コンピュータリテラシー、基礎プログラミング演習のカリ キュラムを作るにあたって意識された点を教えてください。
二つの科目とも、それ以前に私が教えたことなどを元にしています が、ある程度分かっている人も、分かっていない人も受講します。だか ら、どちらにとっても楽しめること、少なくとも理不尽ではないことを 目指しています。それは、難しいことです。1年間の必修科目で、長い 時間座っているのに退屈だったら、大学に行くのが嫌になってしまいま す。そうではなくて、易しい問題もあるけれど、少し考えさせる問題は 考えたら面白いとか、あるいは全然知らなかったけれど、やってみたら 面白かった、というように様々な人が、楽しくなる科目を大学の1年生 では学んでほしいと思っています。そういうものを目指している、と言 えばいいかなと思います。
現在の電通大の入試科目にプログラミングがあるわけでは ないので、新入生のプログラミン能力には幅があると思うのですが、プ ログラミングが得意な学生はコンリテ/基礎プロの授業の中でどういう ことをしていけばいいと思われますか。
それは好きなことなので、自分の興味のあることを勝手にやって、 それで単位の条件を満たして単位を取ればいいんじゃないですか。だか ら、そういう意味では「好きにやってください」という感じですね。ど ちらかというと、できない人に何とか面白くプログラミングをやっても らう、ということに重点を置いています。ただ、それだと上のレベルの 学生はつまらないかもしれない。だから、上の学生は自分の興味がある ことを深掘りして、それで単位を取ればいいんじゃないかな、と考えて います。
先生としては、プログラミングが初めての学生を離陸ファー ストの教材で救えたと思いますか。
僕は、それがいいと思ったんだけども、ただ基礎プログラミング演 習でそれができているかは難しいですね。なぜなら、最初の簡単な部分 でも全然自分では書かないで、写すとか適当に済ませている人もいるわ けじゃないですか。写したら絶対に書けるようにならないじゃないです か。そういう人に、もう少し訴えかける方法、今日していただいている インタビューでは、そういうものがあるだろうと思われていたかもしれ ないんだけども、そういう風な妙案が本当は必要なんだなという風に思 いますね。
基礎プログラミング演習の特色としては、半期でRubyとC 言語の2つ行うというのが結構特殊かなと思うのですが、この意図につ いてお聞かせください。
まず、プログラミングを初めて習うときに型があるのはちょっと大 変だから、Rubyのようなスクリプト言語は絶対いいと思いました。でも、 型も必要なときもあるだろうから、終わりの方では型も学ぶと。そうい う風に、2つっていうのはしょうがないことだと思ってますね。
Cについては、電通大では他のカリキュラムでC言語を中心とした科 目が結構多いので、Cがないといろいろ不便であるってことでCをやって るんで、もし、可能ならJavaとかでやってみたかったんですけども、電 通大の場合は他の科目との関係でCという感じですね。
もう一つ、コンピュータリテラシーの独創的な点として、ア センブリ言語を自分で入力して、小さなコンピューターのシミュレーター を実行する、という回があります。現代において、コンピューターサイ エンスを専攻する学生はアセンブリ言語を実際に使用する機会は少ない んじゃないかと思うんですけれども、このカリキュラムを用意した理由 について、お聞かせください。
アセンブリ言語を学ぶことが大事というよりは、コンピューターの 原理を理解することが大切です。コンピューターってこんな単純なこと しかできないんだけど、それがものすごいいろんなことができる。そう いうことが、プログラミングを学ぶ理由じゃないですか。その過程で、 アセンブリ言語を学んだり、じゃあコンピューターってロジカルにこう いう風に動くんだな、と理解したりすることは大切です。しかし、「コ ンピューターとはこういうもの」という説明の後、急にC言語などのプ ログラムを学ぶとなると、その間の過程が抜けていくのは良くないとい うか。コンピューターの中がこういう風になっている、というお話はあっ ても、それがどういう風に具体的に動くのかが分からなければ意味があ りません。少し大変かもしれないけども、1回だけでも実際に動かして みて、「こういうものなんだ」と実感することは、良い経験になると思っ たから、カリキュラムに取り入れています。
では、そういうカリキュラムを独創的に用意されて、その 影響というか結果どうだったかっていうのは先生はどう評価されていま すか?
1回やってみて良かったかどうかなのですが*4、授業の評価では「これ は良かった」「面白かった」という声は多くありました。しかし、最後 まで行った学生にとって本当に良かったかどうかは、私のところではわ かりません。そういう意味では、ぜひ皆さんのほうで調べていただける と面白いと思うんですけど、僕も実際のところどうだったか気になりま すね。
*4. 久野 靖, 江木啓訓, 赤澤紀子, 竹内純人, 笹倉理子, 木本真紀子, コンピュータサイエンス入門教育の題材としてのアセンブ リ言語 プログラミング, 情報処理学会論文誌教育とコンピュータ (TCE), vol. 4, no. 2, pp. 1-14, Jun 2018.
先生にとってはRubyは結構重要な言語というか、入門とし て適切という認識ですか?
スクリプト言語の中では一番自分が書きやすいし、良いと思ってま す。ただ必要があればPythonでもPerlでもなんでも書きますけども、こ の2つに比べて言えば、Rubyは非常によいと思っています。
コンピュータリテラシー/基礎プログラミング演習での試験 は、短冊型のプログラミング試験がよく出題されていますが、この形式 になった理由をお聞かせください。
コンピュータリテラシーの場合は、一部が短冊型なんですけども、 とにかくこの2科目は全学の人が受けるので、すごい人数が多いですか ら、CBT/自動でテストをして自動で採点するというふうにしないと、自 分たちの首を絞めるというか大変なんですね。だから、自動採点をする ようにしてたけど、センター試験みたいな穴埋めを作るのも大変なんで すね。短冊型はいわゆる普通のプログラムで、こういうプログラムを書 けっていう文章と短冊があればできるので、簡単にできる。それから、 穴埋めっていうのは、プログラム書かなくても、こういうふうな穴は大 体こういうふうに埋めるんだというふうに解けてしまうことがあるんだ けど、短冊型は普通のプログラムが書けない人にはなかなか難しいです よね。だから、そういう意味で、短冊型もいいなと思って、採用した。 短冊型そのものは、その前から研究としてやっていたんだけど、大規模 に採用してもらったのは、この2つの授業が初めてですね。
じゃあ、先生の研究の集大成というか。
はい。その前に、様々な情報教育の中で、プログラムの問題だとか、 部分的には最初は自動採点ができなくて、手動で採点ってやってたんで すけど、それは大変だから、自動採点しようとなった時に、短冊型を作っ たらいいんじゃないかなと思って作ったんですね。そうしたら、それと 同じような短冊型はアメリカでも先行研究があったので、深堀りしてだ んだん仕上がって現在の形になった感じです。
情報教育の自動採点とCBTのテストの実施っていうのは、 共通テストとかでも結構議論がある内容だと思うのですが、先生はどう 思われますか?
自動採点、CBTができれば絶対楽なのですが、今は機材とかが問題な んですね。ただ、電通大も一部の試験ではCBTがだんだん増えてくると 思います。短冊型は別にどうとでもできるけれども。自動採点でない場 合は別に記入欄に記入してもいいわけで、そういうくらいできるんです ね。
短冊型とは別に、競技プログラミングみたいに正解不正解 を自動判定するっていう手もあったと思うんですけど、これについては どう思われますか?
それは途中まで研究していたのですが*5、今は病気になり、その部 分は止まっています。あくまでも正解・不正解の自動判定というよりは、 「あなたのプログラムはこういうところに気が利いている」ということ を、ある程度自動的にアドバイスしてくれた方が良いのではないか、と いうような研究もしていました。それは一回だけ発表し*6、一応それで 表彰も受けました。
*5. 正解不正解の判定だと正/誤の「1ビット」しか情 報が得られない。電通大でやっていたように短冊だと「部分点」が付与 できる。
*6. 久野 靖, 短冊型問題を用いたプログラミング学習 アドバイスツール, 情報処理学会第61回プログラミングシンポジウム報 告集, pp. 129-139, Jan 2020.
基礎プログラミングの最後の授業で総合実習として映像を 作るという授業がありますが、あれは先生としてはどういう意図で組み 込まれた授業でしたか?
自分の思ったものを作る、それを一番はっきりと分かる形で表現で きるのが画像であり、動画です。「これは俺の作った画像だ、これは俺 の作った動画だ」と実感できるのは、自分で考えたものでなければなり ません。そういう意味で、題材として扱いやすいという点が一つ。もう 一つは、動画も絵も原理はシンプルです。二次元配列に色を入れれば絵 になり、それを時間経過に合わせてたくさん用意すれば動画になります。 だから、そうした環境で覚えてもらえば、比較的すぐに制作できるよう になります。学ぶのは簡単で、自分が得意なものを形にできるのです。 そういう点で、離陸ファーストに非常に良い題材だと思うからやってた んです。
最後の総合実習の回は、チームでの演習になりますが、こ れにも意図などはありますでしょうか。
それはもちろん。皆さんが仕事でソフトを作ると、一人で出来る仕 事なんですけども、少し大きくなると、複数の人がチームでやることに なりますね。そういうチームでやるということは絶対必要なので、1年 生の早い段階ではあるんだけど、何人かで分担してやるというものを、 一回経験してほしいと。そういう経験を持って、先に進んでほしいと思っ たから、絶対入れようと思ってたんですね。もちろん、そういうのをや ると、全然仕事しないで、レポート出すとかそういう人はいっぱい出て しまうことがあるんですけども、でもそれも、15回の1回ぐらいはそう いうことになってもいいんじゃないかと。
先生はほとんどもう、基礎プログラミングとかコンピュー タリテラシーには関わられてないって聞いてるのですが、今の先生から 見て、コンピュータリテラシー/基礎プログラミングに何か手を加える としたらなにかあるでしょうか
LLMのための対応をどうするかっていうのが重要なことで、それは非 常に難しいものだけど、やらなきゃいけないかなと思います。ただ、そ れは僕も今のところアイデアがないので、思ってるだけ。もう1つは、 あまりやる気がない人にも、これは面白いんだということは納得しても らうのに、もっと広報するという、広報の努力がちょっと足りなかった なと思っていますね。その2つですかね。
では最後に、コンピュータリテラシー、基礎プログラミン グ演習を受けている学生に向けたメッセージをお願いします。
この2つの科目が必修なわけで、どうせ受けるなら楽しさとか、コン ピュータとかプログラミングとかを身につけていけるといろいろ便利と いうか、楽しさとか面白さとか、そういうものを思うので、その分大変 かもしれないけども、せっかく来たんだから自分の時間を投資してやっ ておいた方が人生にとって役に立つと思う。ぜひやって欲しいですね。
*7. Brian Kernighan, John Bentley, まつもとゆきひ ろ他著, Andy Oram他編, 久野禎子, 久野 靖訳, ビューティフルコード, オライリー, 2008.
先生がインターネットを始められた最初の頃のネットニュー ス fjと呼ばれるものについての思い出とか印象深い出来事があれば教 えてください
例えばX(旧Twitter)では運営というのはプロがやっていますが、fj の中ではそういう管理というのは全然ないですから、ニュースグループ 管理委員会とか自発的にやりたい人が出てきて、総合選挙をやって、そ ういう風なネットコミュニティの始まりというのはいろんなことをそう いう風にやったので、それは面白かったですね。それから私がハマった のはfj.soc.smokingで、喫煙する時にタバコ吸いたい人は吸いたいけれ ども、吸わない人にとっては害があって、そういうことをどうするかは 議論はずいぶんあったんですけども、そこはいろいろ議論をして、最後 はオフラインミーティングまでやったりしたんですね。そういうのは非 常に面白いから、自分の昔の思い出というか懐かしいというか、そうい うのがありました。
先生はこのfjでニュース管理委員会の委員とかも務められ ていらっしゃいましたよね
それは毎年改選があるので、その中で3期ぐらい委員やったことはあ るんですけども、委員といっても事故は普通なかったので、だいたいど ういう風にしますかとか、どういうところはどういう方針にしますかと か、方針の文章はこうしますかとか、そういうのは普通の議論ですよ。 だから皆さんが、雑誌や学内広報を作るとかみたいな感じかな。
先生が務められたってことはやっぱりfjに愛着というかな んかそういうものがあったのですか
それはもう非常にありました。ただfjのニュースフィードがやっぱ り供給がなかったので、それで今は参加してないですね。ちょっと残念 だとは思います。
fjは、98年、2000年前後ぐらいまでだいぶ勢いがあったと 思うんですけど、その後2ちゃんねるとかが勃興してきたわけじゃない ですか。2ちゃんとfjのどちらかというのはありましたか
2ちゃんねるもありましたね。2ちゃんねるには自分のアイデアとか、 そういう意見を書き込むことができた、というのもありました。ただ、 2ちゃんねるでは、料理とか、その一部の人たちが専門家としてどんど ん自信をつけていったりとか、そういうのは自分には及ばないな、とか もありました。だから、全部自分たちで作り上げていくというのは、純 粋に面白かったけど、2ちゃんねるの、多種多様な人がいるとか、強力 なサポーターがいるとか、そういうところはすごいなと思っていました。
fjのアーカイブを見ると先生がRubyの作者である松本ゆき ひろ先生と交流を結構とられていたなと思うのですが、この経験がRuby をカリキュラムに組み込むことに影響しましたか?あるいは、Rubyに特 別な思い出などありますか?
僕がfjをやっていたころの松本さんって、最初は院生ですよね(まつ もとゆきひろ氏より当時は学部生であったとの訂正をいただきました*8)。 だから学生さんの一人で、普通にお話はしたけども、そんな特に変わっ たことはなかったですね。Rubyっていう言語を作ってみた*9とか、それ は色々言語を作るという人はいるので、まあ普通のこと。そういう意味 では、学生時代の松本さんからは何かってことはなかったですね。ただ、 Rubyという言語を自分で作って様々なところに広めていって、その努力 がすごいと思うし、僕が知ってから松本さんと様々にお会いしたり話し 合ったりする上で、そういうことは非常に尊敬を感じていました。松本 さんの方は、僕のbitの連載でCLUっていう言語についてさっきお話しま したけど*10、CLUの話とかで結構気に入ってくれて色々と話をしたので、 そういう意味では松本さんとの交流はありましたね。ただ、それが決定 的だったということはなくて、スクリプト言語で、Rubyの頃は、Rubyか Pythonか、Perlなどと比べてRubyはさっきの話の通り、書きやすい、型 がなくて、しかもendがあって、様々なオブジェクトを自由に、必要に 応じて書きやすいという意味では、そういう意味で言語そのものの良さ からRubyを選んだというふうな気がします。
実は、Rubyを使って、東京大学で非常勤で担当した入門科目があっ たんです。その時、東京大学のRubyコミュニティの、笹田耕一さんとい う方が着任され、一年で教育をRubyで行う授業改革をされたことがあり ました。私は当時、非常勤でやっていましたから、彼に賛同して一緒に Rubyによる入門科目を始めたのです。それがうまくいったので、伝統的 に残っているというのがあります。
*8. https://x.com/yukihiro_matz/status/1874085965326934405
*9. Rubyは1995年12月21日,fj.sourcesにてver.0.95 が初めて公開されました https://groups.google.com/g/fj.sources/c/bCc2JimcmAo/m/ONqCnbyG7LMJ
*10. インタビュー前半第二週
インタビュー後の雑談をまとめました。
LLMの話で、AIがここまで、例えばChatGPTなどはここまで できて、そこから上が人間のできる領域、LLMができない範囲の課題を 出していこう、というようなお話をされていました。*11今後授業するに あたって、そうなると生徒側の知識の認識のアップデートに加えて、教 員側の認識、教員側もそれを理解した上で課題を作っていかなければい けないのかなと思うのですが、そうなると教員側の認識、教員側も勉強 していく必要があるのかな、ということが気になりました
*11. インタビュー前半第三週
そうですね。コンピューター自体でやっていた目標などは、自分の 頭で考えて自分でいろいろ工夫してやる、というふうに変わっていくわ けですから、それをサポートするためにLLMをどう使うか、ということ が重要だと考えています。そのような方向に進むのは良いことです。世 の中の勉強の中には、すべて暗記した方が簡単だ、というようなものが 多くあります。そのような暗記するだけのつまらない勉強はどんどん淘 汰されていくでしょう。電通大では、そのようなものではなく、やはり 自分の研究に関係して、面白い勉強をしていくというふうに思っていま す。そのようにこれから世の中が変わっていけばいいなと思いますね。
僕自身、大学に入るまで一切家にパソコンがありませんで した。大学に入ってから初めてパソコンに触れ、プログラミングにも触 れていったんです。その中で、「コンピュータリテラシー」と「基礎プ ログラミング」の授業は、僕にとって情報教育の初歩的な部分、そもそ もプログラミングに触れるという点で、すごく助けられました。小さな コンピューター、Ruby、Cといったものを、序盤の段階、1年生の段階で 教えてもらえたことは、すごくありがたいなと思っています
ありがとう。私の「コンピュータリテラシー」や「基礎プログラミン グ」の演習の中で、どういうアルゴリズムや、どういうことを教えるか というのは、結局、私が学んできた様々な科目の中から組み上げてきた ものです。こういうことは満足とかいうのが、合わせてできると。つま り、私が用意したものは、私が学生として学んだものから来ているとい うことです。私が学んだものを皆さんが受け取ってくれ、そして、皆さ んが他の人に教える機会には、そういうエッセンスがもたらされていく。 そうやっていかないと、どんどん学ぶ内容が増えてきて大変なんですよ ね。色々な知識が増える一方なのだから、自分の大事なエッセンスを絞っ ていって、それに新しいものを加えていくということをしていかないと、 人間は進歩できないんじゃないかな。そういう流れの中で、授業という のはできているんだと思いますね。
先生がSNSを通じて発信されているっていうところが、先 生をインタビューするきっかけだったんですけども、なかなか普段では 聞けないお話を聞くことができて、非常に我々としてもいい機会になっ たかなと思います
私としても、こういうお話をするっていうのはあんまり機会がなく てですね、X(旧Twitter)では書けることっていうのはほんの少しなんで、 こういう今日みたいなまとまったものをお話しさせていただくっていう のは非常にいいことだったと思うんで、ありがとうございます。
ありがとうございます。一応質問としては一通り終わって るんですけども、もし先生の方から何かあれば
授業は生き物であって、本当はどんどん改善していかなければなら ないけれども、僕はもう引退してしまったから、次の人が僕が作った授 業を元に何かっていうのはまた続いてほしいなっていう気持ちがあるっ ていうのが、一番ですかね。
この度、久野先生にはお忙しい中、2時間にもわたるインタビューの お時間を頂戴し、誠にありがとうございました。結果的に長時間となり ましたが、先生ならではの視点から、数々の貴重なお話を伺うことがで き、大変実りある時間となりました。特に、ただ履修するだけでは知る ことのできない教材制作の意図などについては今後の学習に大いに役立 つものと確信しております。本シリーズが、来年以降も新入生たちの参 考になることを願っています。
しかしながら、インタビューから記事掲載までに時間を要してしま いました。これは、ひとえに私の不徳のいたすところであり、関係者の 皆様には多大なるご迷惑をおかけしましたことを、お詫び申し上げます。 そのような中でも久野先生には、未熟な我々の拙稿に対し、迅速かつ的 確なご校閲を賜りましたこと、重ねて御礼申し上げます。先生の細やか なご指導のおかげで、記事の質を格段に向上させることができました。
久野先生には、この場をお借りして改めて感謝を申し上げますとと もに、今後一層のご自愛をお祈り申し上げます。*12
*12. こちらこそ、ありがとうございました。(久野)