IPA


IPAトップ





2004年度未踏ソフトウェア創造事業(未踏ユース)  採択案件評価書


 



1.担当PM


 筧 捷彦   (早稲田大学教授)



2.採択者氏名


 代表者

山ア 秀輔  (大阪大学工学部)

共同開発者

なし



3.プロジェクト管理組織


  株式会社びぎねっと



4.委託支払金額


 2,652,044円



5.テーマ名


  情報教育に特化した視覚表現豊かな統合開発環境「双葉」の構築



6.関連Webサイト


  http://www.futaba-ide.net/   http://hp.vector.co.jp/authors/VA040884/



7.プロジェクト概要


 初学者向けの統合開発環境「双葉」の開発を行った。対象とするプログラミング言語には,C ++ を選んだ。「双葉」が備える主要な機能は,「初学者向けインタフェース」「各種データ構造に対応した可視化コンポーネント」「学習を支援するサンプルプログラム」の三つである。





8.採択理由


 

 デバッガの機能は最小限に抑えて,プログラムがどのように動作していくかを視覚化する機能を充実した形で組み込んだデバッガをもった初心者向きプログラミング環境を作る。視覚化については例示も多数もっている。
 なによりプレゼンが面白い。同様のことに興味があるだけに成果を見守りたい。
 でも,C, C++, Java を覚させるところは,山崎さんがいっているほど簡単にはいかないかもしれない。その熱意の中からうまい着想が得られることに期待する。






9.成果概要

 当初から,大多数のPCの上で使えるようにするするため, .NET framework を使う,という作戦を立てていた。さらに,初学者が使うプログラミング言語としては, C/C++ でも C# でもいいようにする予定であった。 デバッガエンジン部分には CLR(Common Language Runtime) のデバッガ用 API を利用するのも作戦の一部であった。

 

 C# の処理系は, CLR の上で動作するオブジェクトコードを生成する。 C/C++ の処理系には, CLR の上で動作するオブジェクトコードを生成する managed C/C++ と, CLR の外で動作するネイティブコードを生成する unmanaged C/C++ とがある。デバッガ API は, unmanaged C/C++ からだけ使うことができる。応募時には, C# で生成した CLR コードに対してこの API でデバッグ情報にアクセスできることが確認してあった。

 

 プロジェクト開始後, managed C/C++ で生成した CLR コードに対してこの API でアクセスして得られるものからデバッグ情報を復元する方法が公開されていないことが判明した。マイクロソフト社に問い合わせたが,公開しないとの回答しか得られなかった。やむを得ず,初学者に使ってもらうプログラミング言語を C# に限定することなってしまった。やむを得ないことではあったが,残念なことであった。

 

 統合開発環境のユーザインタフェースは,初学者でも知っている「メモ帳」や「 Internet Explorer 」などのユーザインタフェースをベースにした分かりやすいデザインを採用したものにしてある。また,可視化は,ユーザの開発したソフトウェアの中から可視化可能なデータ構造を自動的に見つけ出して行うようにしてあるので,システム定義済みのデータ構造の場合,ユーザは何もする必要がない。加えて,専用のクラスライブラリを利用すれば,単純なデータ構造だけでなく複雑なデータ構造に対しても可視化が行われるようにしてある。

 

 ふんだんにサンプルプログラムを用意した教科書が組み込んである。利用者は,教科書を読みながら,すぐにサンプルプログラムを動かしてデータの動きを追いかけ,プログラムの動きを追いかけて理解を深めることが可能になる。

 

 開発したシステム「双葉」は, Web を通じて公開してあり,すでに多くの利用者を得るに至っている。





 



10. PM評価とコメント


 開発者の 山ア秀輔さんは,情報系学科に在学する大学生である。アルゴリズムとデータ構造の勉強は,大切なものであっても,なかなかに難しい。そのアルゴリズムやデータ構造を実装したプログラムを見せられても,動かしてみても,にわかには理解できるものではない。そうした苦労を少しでも軽減する支援が欲しい。だれでもそう思ったに違いない。(山崎さん自身がそうであったかどうかは疑わしい。実はすいすいと理解できてしまったのではないかと疑ってみたくなる。)

 

 そこで,初学者向けに支援環境を作ろう,というのが今回のプロジェクトである。比較的最初の段階で,目論見と違って CLR のデバッギング API を使うには C++ でないとうまくいかないことが判明し,“どこでも,どんな言語ででも”使える環境にしようというひそかな望みは今回のプロジェクトに関して捨てざるを得なくなってしまった。残念と言えば残念であるが,自分でデバッギングエンジンまで作るとなると,プロジェクトが成り立たなくなるから,やむを得ない決断であった。

 

 可視化の仕組みをどこまでどう作るかも,大きな決断である。プロ管にも相談にのってもらって,“典型的な教科書に出てくるデータ構造やアルゴリズムをうまく表示できるものを揃える”というところで線を引くことにした。そして,何より,アルゴリズムとデータ構造を一通り勉強できる教科書付の統合開発環境とすることに徹底したのである。正確にいうと,アルゴリズムとデータ構造を一通り勉強できる教科書に,その勉強用に統合開発環境も付いてます,というべきかもしれない。

 

 仕上がりはなかなかのものであり,高く評価していい。教科書もよく書けている。未踏ソフトのユースである,という枠でスーパークリエーターの称号を授けたい。


 開発環境,という視点以上に,アルゴリズム・データ構造の学習環境だ,ということを更に発展させていって欲しい。つまり,可視化機能のついたプログラミング環境を組み込んだオンラインテキストブックというものとして発想したら,どんなものができ上がるか,ついでに対象もアルゴリズム・データ構造に限定せず,それこそ初学者向けのプログラミング入門のオンラインテキストブックならどんなものがつくれるか。山崎さんの力を存分に発揮してみて欲しい。



  ページトップへ   






  Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004