情報システム学会 メールマガジン 2009.7.25 No.04-04 [6]

会員コラム
「情報システム技術者の育成」

大岩 元(帝京平成大学) ohiwa■sfc.keio.ac.jp

情報技術者育成をしない日本

 情報技術者の育成に関しては、ACMが1968年に発表したCurriculum '68によってComputer Scienceの教育が世界中で始まり、日本でも1970年に国立5大学私立1大学で教育が始まった。しかし、その後に日本で作られた情報関係学科は、情報工学科という名前から電子工学にFORTRANプログラミングを加えた程度のものがほとんどで、Computer Scienceに関する教育を受けたものの人数は極めて少なく、その数も把握されていない。

作業手順しか教えないで仕事をさせる

 1960年代に立ち上がった情報産業は、最初の頃こそ優秀な社員にComputer Scienceを勉強させて、システムの開発を行ってきたが、1970年代に入ってIBMがソフトウェアの価格分離を行ってから、優秀な技術者が顧客のために直接プログラムを書くことはなくなった。この結果、IBM等を始めとするシステムの元請企業では、顧客のためにソフトウェアを書く経験は新入社員教育の時だけとなり、開発管理しか行なわなくなった。このため、技術力が著しく低下してしまった。
 COBOLの開発を例にとると、専門学校出のコーダーが間違えなくコーディング出来る範囲のソフトウェア技術しか使わず、その後のComputer Science の発展に全く追随しようとしていない。技術者には、作業手順を教えるだけで、考えて作ることを行なわせないために、顧客が要求するオブジェクト指向を実現するための言語であるJavaの開発に、上記の制限されたCOBOLの開発環境が使われるというような他国には例を見ない開発方法がとられている。

ユーザーの満足度が情報システムの評価基準

 企業等の組織体が使うソフトウェアを制作する情報システムを研究する情報システム学が生まれ、その教育についても米国でACM、AIS、AITPによってIS'97が作られた。現在では、これが発展して情報技術一般の教育体系であるACM/IEEEのComputing Curricula 2001の中にふくまれることになった。これを受けて、情報処理学会内でも情報システムの教育体系が検討されたが、そこでソフトウェア工学等の類似分野との相違として「顧客満足度」をシステムの評価基準とするとこが提唱された。これは、情報システム学の存在意義として大きな意味を持つ。
 情報技術の発展によって、利用したい所ではどこでも利用できる状況が生まれている。今までだれも経験したことがない情報システムを、人類はこれから数十年にわたって作り続けていくことになる。そこで問題となるのは、どのように使るかに答えるComputer Scienceだけでなく、何が問題なのか、何を作れば問題が解決されるのかを考える部分が解くべき問題の大きな部分をしめることになる。この領域では従来の工学的な技術より、人間に関する理解、社会に関する理解が問題を解決する技術者に要求されることになる。
 筆者の研究室では、2006−7年に文部科学省の現代GP(Good Practice)の助成を受けて、学部学生を行なうソフトウェア開発のマネジメントに企業の技術者がプロジェクト・マネジメントの実地体験として参加する授業を行ってきた(http://crew-lectures.sfc.keio.ac.jp/gp/)。この経験で分ったことは、ユーザーを授業担当者が見つけて、開発はユーザーの満足度(開発したものを継続して使い続けることを目指す)で評価するのが、学生にも、マネージャーにも最適の行動基準となることが分った。

仕事の意味を理解するのは日本語

 顧客は自分が情報システムに行なわせたい仕事について知っているが、それが情報技術として実現可能であるのかについては知らないのが普通である。一方、情報技術者は顧客の望むものを理解して、それが実現可能であるかどうかを判断した上で、かけられる費用の最小化しながら、それを実現することが求められる。
 顧客と情報システム技術者は、互いに自分が知らない分野を持ちながら、そこを共同作業によって相互に深く理解して、必要な情報システムを構築することになる。そこで問題になるのは、意思疎通の質であり、それを決めるのは言語能力、日本人であれば日本語力ということになる。

日本語は仕事の記述に最も適した言語である

 日本語の語順は、仕事を記述に最も適した構造を持っている。数の計算は典型的な情報処理であるが、カッコを用いた数式記述は、人間にとって分り易いが逐次処理のコンピュータには、どこで開いたカッコが閉じるのか分らない数式の存在は自動的な処理が難しく、数式を機械命令に展開するFORTRANの実現まで、約10年の期間を要した。
 FORTRANコンパイラは、1+2のように演算子が演算対象の間にはさまる中置形式から、日本語のように「1(と)2(を)足す」のように、演算子が演算対象の後ろにきて、カッコを必要としない後置形式に変換した上で、逐次計算を実行するのである。英語のように、演算子が先に来る前置形式を用いると、演算対象を記憶するスタックだけでなく、演算子を記憶するスタックも必要となるので、人間の頭では複雑な計算を行なうことが容易でない。日本語は計算に最も適した語順を採用しているので、日本人は暗算が得意なのである。
 実際、APLやFORTH、PostScriptなど、日本語の語順を使う言語を欧米人が開発して使っているのは、日本語の語順が有利なことの証拠の一つである。コンピュータに対する指令がCUIの場合は、英語の語順のコマンドが使われたが、それがマウスによるGUIに変わったとたんに、「ファイルAを消去せよ」のように、日本語の語順に変わったことも、このことを裏付けている。

日本語でプログラミング教育が変わった

 筆者の研究室では、日本語でプログラムを書く研究を行ってきた
(http://garuda.crew.sfc.keio.ac.jp/kotodamaCommunity/ , http://www.crew.sfc.keio.ac.jp/squeak/ )。
 この結果、プログラミング教育が大きく変わることが分った。タイルスクリプティングと呼ばれる文法エラーが起きない環境で、日本語でプログラミング教育を行なうと、自分の書いたプログラムを日本語として読むことができるので、その意味を特別な言語知識を持たなくても考えるこができるようになった。この結果、プログラムを書くということがどんなことであるか、だれでも特別な文法訓練を行なわなくてもできるようになったのである。
 何を作るかを考えることが、情報システム構築の重要部分であるが、ここも日本語で考える他なく、その結果は、日本語で表現されることになる。こうしてできた日本語の仕様を日本語のプログラムに書きかえて行けば、情報システムが構築されることになる。我々は、アセンブラーも日本語で書けることを確認している。

日本人の日本語力が落ちている

 一つの大きな懸念は、昨今は日本人の日本語力がすっかり落ちてしまっていることである。日本語は修得が難しい言語のように考えられているが、実は極めて易しい言語である。従来の日本語教育が非効率であったために、難しいという誤解が生まれたが、実際、全く日本語知らない外国人に対しても、「てにをは」の使用は12日間の訓練で可能になる(http://www.ilpd.jp/)。こうした効率的な日本語教育を日本人に対しても行なう必要が出てきたと言える。
 情報システム技術者の教育としては、日本語で論理的な表現が自由にできるようにすること、人間と社会に関する基礎知識を持つこと、Computer Scienceの基礎につきるように思われる。