広島市立大学 前田香織学長

広島市立大学 前田 香織理事長・学長インタビュー

進化の速い情報分野だからこそ、原理について学ぶことが重要

もともと小学校のときは、自分は文系だと思い込んでいました。数学や理科が苦手だったというわけではないのですが、家の中では、弟は理系で私は文系、という感じだったのですね。

それが、中高一貫の女子校に進学して、数学を普通に勉強していたら、特に頑張った記憶はないのですが、試験ではそこそこ点数が取れて、成績がよかったのです。そのとき、たまたま理系が嫌い、苦手意識という女子が集まっていただけなのかもしれません。気づいたら「もしかしたら数学が得意かもしれない」と思うようになったんですね。その思い込みこそが、きっかけだったかもしれませんね。

そういう経緯もあり、大学では、数学や理系の勉強ができるところに行きたいと考えるようになりました。そして、広島大学の総合科学部に入学しました。

広島大学の総合科学部は、文系でも理系でも入れることを看板にしていました。教養部が改組されてできた新しい学部で、私は5期生に当たります。これもまた当時としては珍しいことだと思いますが、全学生を対象とするコンピュータ言語の授業もありました。私は、そこで情報の分野に興味を持ちました。

前田:そうです。ですから、総合科学部には、理系に2つ、文系に2つのコースがあって、入学するときは、理系・文系のどちらで受験していてもどのコースにも行ける、というのが謳い文句でした。ですから、カリキュラムのカバー範囲が非常に広くて、いわゆる教養のカテゴリーに入る科目は、伝統的なものから最新のものまで、ほとんど全部ありました。

とりわけ情報工学について言えば、私の学生時代は、ちょうど、さまざまなコンピュータ関連の知識や技術が出てきたり始まったりする時期でした。はじめは、大型のコンピュータで実習していましたが、その後、どんどんマイクロコンピュータに変わっていく時代の真っただ中でいろいろな経験をしました。そんな時代にコンピュータを勉強できたのは本当に良かったと思います。

総合科学部では、文系・理系関係なく1年生全員が“FORTRAN”を必修として学びました。その意味では、かなりチャレンジングでしたね。(注:FORTRAN:1954年に考案されたコンピュータ言語)

前田:プログラミング言語には、いわゆるFORTRANやPythonなど高級言語と言って、人間が理解しやすいように設計されたものと、機械が理解しやすい低級言語があります。今は、高級言語が主流になっていますが、昔のシステムは、機械が解釈しやすい低級言語で書かれています。低級言語は、人間にとっては分かりにくい代わりに、処理速度が速いのです。

高級言語しか学ばない教育カリキュラムになっているので、低級言語によるコンピュータの動きとの比較などは関心が向くことはないでしょうね。

情報科学部のカリキュラムにPythonを入れたときには、学部内でも相当議論がありました。それまでは、ほとんどの大学ではC言語を教えていました。Cは高速処理ができるので、「プログラムをするならCが当たり前」と考えられていたのです。

それでも、今時、Cでプログラムを作る場面は少なく、企業に入ってからも使うことはないだろう、ということも考慮してPythonになったのですが、CからPythonへの移行は、世の中全体で見ても、かなり大きな変革だったと思います。Cを使える人は、今後だんだん減っていくでしょうが、必要な場面もありますので、研究や仕事の必要性に応じて学べるとよいなと思います。

前田:その仕事で、どんな言語を使ってどのような開発をするかにもよる、とは思います。現代で言う、いわゆるアプリ開発だけであれば、Pythonだけ知っていても困ることはないと思います。さらに、言語を使わないプログラミングも出ています。しかし、いろいろなデバイス、ロボットなど機械の動作の処理プログラムを作ったり、さまざまなシステムを制御するプログラムを作ったりすることになると、高速処理が求められ、低級な言語で作ることも必要になります。そういったところに使うプログラムの処理結果は視覚的にわかりやすいとか、キラキラする画面でもなく、地道な作業で、興味を持つ人が少ないだろうとは思います。

初めてプログラミングを学ぶときなどには、画面がどんどん変わり、音や動画が出るなどアウトプットが分かりやすい方が楽しいですよね。

特に、通信などのインフラ系のシステムは、全く見えない世界の中にいろいろな通信路があって、その中をデータが流れていきます。これは、全てプログラムで動いているのです。しかし、今、そういった基盤やプログラムのベースになるようなものに興味を持つ学生が少なくなっているので、そこは心配ですね。

前田:そうですね。プログラムはどんな形であれ、学ぶと思いますが、そのプログラム自体の作り方、考え方は知っておくべきと思います。それから、あらゆるものがデジタルで動くことについて、論理的とまではいかないとしても、仕組みについては分かっておかなければいけないでしょう。

また、通信のベースやインターネットがどうやってできているのかということも理解しておくことが重要です。今の学生たちにしてみたら、インターネットの線がどこでどう繋がっているのかなんか、誰も気にしませんよね。しかし、基盤技術は重要です。

通信の基盤になる物理的、論理的なところが安定的に稼働しているからこそ、高速大容量のデータ通信ができるのです。今は、流れているデータの方ばかりに興味が行ってしまっています。高速で効率よくデータを流すためにはどうしたらよいか。セキュリティ上の安全を確保するためにはどうするのがよいか。このようなことを、根本的な仕組みから理解することは必要だと思います。

アプリケーションの見た目を変えるだけでなく、そもそもの機能的なところから変えようとするならば、やはりもっと下位のレベルにいろいろなものがあることを分かっていないとダメなのです。

一言で言うのは難しいですが、プログラムも含めて、ベーシックなところの考え方としては、アルゴリズムや、通信で言えば「情報理論」とか、「グラフ理論」といったものは、ぜひ体得しておいてほしいと思います。

関連記事一覧