平成12年度未踏ソフトウェア創造事業


採択案件評価書

1.担当PM  6.竹内 郁雄
2.採択者氏名  兼宗 進 (株式会社リコー),御手洗 理英,中谷 多哉子,福井眞吾
3.プロジェクト実施管理組織  株式会社ゼータ
4.委託金支払額  4,918,798円
5.テーマ名  教育用オブジェクト指向言語とその実行系
6.関連Webサイトへのリンク  http://www.logob.com/dolittle/
7.テーマ概要

オブジェクト指向技術の導入により,初中等教育におけるプログラミング教育を可能にするシステムの提案である.プログラミングの専門教育を受けていない教員が限られた時間内で行なう授業の中で,

 ・プログラミングの楽しさを体験する.

 ・簡単なプログラムを完成して動かせる.

 ・生徒の将来に害を与えない.(計算機嫌いにさせない,変な癖を付けない)

ことを目標にする.

これらを実現するために,次の特性を取り入れたプログラミング言語とする.

(1) オブジェクト指向言語とする.あらかじめ用意された部品を利用することで,短いステップで高機能なプログラムを作ることができる.

(2) プロトタイプ方式とする.クラス方式と違い,クラス,インスタンス,継承といった抽象的な概念を扱わないため,理解が容易である.

(3) 簡潔なプログラムを可能にする.文を一つつ打ち込んでも動作し,1行程度のプログラムでもひとまとまりの動作を行なえるようにする.

(4) 日本語との対応を考える.初等 (小学校) からの利用を考えて,日本語の識別子を使えるようにする.また,カンマでなく句点 (,),かぎかっこの代わりに日本語の括弧 (「」) などを許す.

(5) オブジェクトが画面上でも見えるようにする.目に見えるオブジェクトを対象とし,相手に呼びかける形の構文により,自然とオブジェクトを中心としたプログラムが作れる.

(6) LAN上でオブジェクトを共有できるようにする.プログラミングは端末の前で行なう孤独な作業になりがちだが,オブジェクトを交換し合うことで新たな世界が生まれる.
8.採択理由

 PMが公募した「子供のためのプログラミング言語」のテーマに沿った唯一の提案である.本提案の狙いと哲学に共感を覚えた.大雑把にいうと,日本語との自然な対応を意図したプロトタイプ方式のオブジェクト指向で,短文でも画面の上でオブジェクトがわかりやすく動作するような言語である.

 ただ,子供のためのプログラミング言語はやさしそうで実は奥の深い問題である.本提案も提案時点での言語設計にまだまだ不満点があり,研究開発期間を考慮して計画をトーンダウンしてもらった.すなわち,半年という期間を勘案して,初等中等教育での情報科などの新設に先だった教育用プログラミング言語設計をタイミングよく行なって公表するというプロジェクトとして採択した.処理系はプロトタイプのみとする.

 なお,提案者たちが現場でオブジェクト指向プログラミングの実践の伝道者のような活動をしている若い人々であることも評価点に加えた.
9.得られた成果の概要

子どものためのオブジェクト指向言語ドリトル (Dolittle) のインタプリタとそれによって駆動される教育用小型ロボットのOSが開発された.また,これらに関する教材が2〜3種類作成された (高校生用,中学生用).

 ドリトルは提案の通りの言語 (Smalltalk-80にやや似た文法をもつ日本語表記のプロトタイプ型オブジェクト指向言語) であり,本プロジェクトの開始前にインタプリタがある程度動いていたものである.プロジェクトでは,言語仕様の再検討がPMも交えて行なわれたが,基本構造が変わることはなかった.

 ドリトルは,メッセージレシーバにメッセージで呼びかけるというメタファーを採用している.Smalltalkと同様,制御構造もすべてメッセージ送信の形にしているため,日本語プログラミング言語として見ると不自然なところがあちこちにあるが,インタプリタの意味論を最小限にするという狙いが明確に現れているといえる.

 プロトタイプインタプリタはJava2で書かれている.2月末時点でも若干の不具合が見られたが改善は時間の問題であろう.


[ドリトルの画面.左にプログラムが書かれている.それの実行結果が右の画面である.このプログラムの全体はよく見えないが,川をペンが流れるように描いていくらしい.左上に見えるのはカメ (タートル) が筆に変身しているもの.]

 このプロジェクトは,ドリトル自体の開発というよりも,すでにある程度動いていたドリトルを教育の現場で使って子供たちの反応を確かめ,子供のプログラミング教育に関していろいろな知見を得るということに重点がおかれたようである.筑波大学付属高校と静岡大学付属島田中学校での実験授業はどれも好評であり,教育の成果が上がっている.これによると,中学3年生になると十分にオブジェクト指向プログラミングが理解できるらしい.

 ドリトルが標準的に用意した教材はLOGOと類似したタートルグラフィックスである.たしかにこれは子供を最も早くプログラミングに没入させることのできる題材である.このプロジェクトでは画面上でカメを動かすだけでなく,教育現場でも容易に導入可能な安価な (3,000円台) オモチャのロボットキットをドリトルから制御できるように改良して,教材とする実験を行なった.これにより,生徒がバーチャルなカメと現実のカメ (ロボット) を同じプログラムで制御することが可能になる.これは現実世界と仮想世界の関連を考えさせるのによい仕組みになっている.


[試作されたロボットキット.子どもは自分の好きな部品などを足して自由な形にこれを組み上げる.そうした上で,ドリトルで制御する.なかなか思うように動いてくれないようだが,そのこと自体が子どもには新鮮な体験らしい.]

 開発されたロボットは512バイトのメモリですべてをまかなうので,圧縮されたわずかなバイトコード (40バイトのメインルーティンと48バイト内に収まるサブルーチン群) で制御されるようになっている.これは生徒には見せないものだろうが,興味をもつ生徒も出るであろう.島田中学校での実験授業がこれからも続けられるはずである.
10.プロジェクトや成果に対するコメント

 上でも述べたが,このプロジェクトではプログラミング言語の設計論には結果的に重点が置かれなかった.当初PMはそれを期待していたので,ちょっと残念に思う.言語設計の哲学を詰めないで,すぐ教育現場に持ち込むのは,フィードバック重視という視点ではいいのだが,不完全なまま現場に広がってしまう危険性もある.広がってしまうと抜本的な改良がしにくくなる.

 ドリトルのいいところは,意味論が非常にシンプルなところである.深層の意味論をあまり変えないでも,表層,つまり構文論的にもっと工夫をすることができたように思う.そういった議論を開発者たちと何回か行なったが,あまり反映されなかった.構文をいじる実験自体は簡単なはずなので,そのあたりの思考実験と実装実験をもっと積極的にやってほしかった.もっとも,主開発者の兼宗さんは社会人大学院生であり,本来業務との兼ね合いで時間の工面がいろいろ大変だったと伺っている.

 また,教材として用意されたのがLOGO風のタートルグラフィックスで,よく見るとそれを超えているのだが,見掛けで新規性を見誤られるかもしれない.その点ちょっと損をしている.PMのみならず,PMが同席した学会発表の場でも,ほかのジャンルのプログラミング例をもっと追求すべきという意見があった.ドリトル自体は十分に汎用的な言語なので,そのあたり,意を注いでもらいたい.

 とはいえ,ドリトルの素質で素晴らしいと思うのは,中学生でも自然に並行プログラミングができることである.こんな言語はほかに存在しないと思う.

 プロジェクトの成果として特記すべきは,教育現場で実験授業を現場の教諭が行なったということである.LOGOとの差異が一見わかりにくいものの,オブジェクト指向が中学生にも理解できるという発見は大きい.また実際のロボットを制御させて,生徒に現実と仮想の差異を発見させるという発想も高く評価したい.
11.今後の展開に向けてのコメント

これ以上現場での実験を拡大する前に,もう一度,プログラミング言語論の立場から,言語の見直しをしていただきたい.ドリトルが現場の教師や,教育関係者,さらにはプログラミング言語の専門家に深く知られるようになると,言語仕様の欠陥やキズが目立ってくる恐れがあるからである.

 それと同時に,プロジェクト開始の冒頭でも進言したとおり,タートルグラフィックス以外のよい題材もつくってもらえればと思う.授業はタートルグラフィックスだけでもいいのだが,そこから踏み出そうという子供がいたときに応用分野の懐の深さがないと辛い.

 実機ロボットをドリトルで制御し,それを教育に使うというアイデアは素晴らしい.上記の問題がクリアできたときに,ぜひ大々的に展開していただきたい.いろいろなビジネス,特に教育ビジネスが考えられるのではないだろうか.
12.評価の定量的なまとめ

[1] 未踏性 B+ Smalltalk-80からもう一皮むけているともっとよいのだが
[2] 発展性 A 教育現場への展開という強い期待を込めてAとしたい
[3] 完成度 B 言語仕様 (特に構文) をもうちょっと頑張ってほしい
[4] 生産性 B- プロジェクト実施期間中でのドリトル自体の進展が少かった
[5] 戦略性 A- 現場への積極的な導入は高く評価できる
[6] 意外性 B+ 実機ロボットへの展開が面白い