プレゼンPPT(日本語)

GTEdit:ジェスチャを用いた視覚
的なLisp教育環境
原 謙治
理学部情報科学科 11030
五十嵐研究室
初心者へのプログラミング教育
について
• 扱いやすいプログラミング言語、環境の選
択が大切
• 言語にはシンプルさからSchemeを選択
• Schemeプログラミング環境にはテキストエ
ディタが一般的に用いられている
初心者の使用における
テキストエディタの問題点
•
•
•
•
木構造がわかりにくい
括弧のタイプによる木構造の編集は非直感的
編集している様子を見てもその意図がわかりにくい
タイピングに不慣れな人にはタイピングの負担もある
視覚的Lisp教育環境:GTEdit
(Gesture-based Tree Editor)の提案
GTEditの特徴
• S-式を視覚的に表示
• ジェスチャを用いた直感的な編集操作
• ペンのみでも使用可能
関連研究
• 数多くのVPL(Visual Programming
Language)が提案されている
–
–
–
–
–
Prograph [Cox ‘89]
Cube [Najork ‘94]
VIPR [Citrin ‘95]
Form/3 [Burnett ‘98]
VFPE [Kelso ‘02]
• どれもLisp用ではない
Tinkertoy [Edel ‘90]
• Lispのグラフィカルな開発環境
• テキストでS-式を書いて木を作成
• すでにある木のノードをグラフィカルに動か
して編集
Tinkertoyのジェスチャ(1/2)
a)pick up
b)pull
away
c)result of node
desconnection
Node disconnection gesture in Tinkertoy
Tinkertoyのジェスチャ(2/2)
a)drag start
b)drag
continue
c)result
node
connection
of
Node connection gesture in Tinkertoy
Tinkertoyの問題点
• 新たなS-式はテキストで入力しなければならない
ので、Lispを知らないと扱いにくい
• ジェスチャが少なく(ノード接続, 切断のみ)操作の
直感性に欠ける
• S-式の表示に広い場所を必要とし、木も整列化
されないので巨大なプログラムを扱いにくい
• タイピングは相変わらず必要
• 評価実験がなされていない
GTEditのインタフェース
ノードの構成
ハンドル
ボディ
• ハンドルを利用して豊富なジェスチャ操作を可能に
デモ
Tinkertoyとの違い
• S-式を完全にグラフィカルに構成可能
• 豊富なジェスチャによる編集操作の直感性
• 木の整列表示、表示法変更による巨大な
プログラムの扱いやすさ
以上の点でTinkertoyの問題を解決
評価実験
実験内容
• GTEditとテキストエディタを比較
– 被験者は6人のLisp未経験者
– 1対1でSchemeプログラミングを教える
– 被験者はペン、マウス&キーボード、キーボードのう
ちからGTEditの操作に使うデバイスを選択
– 内容は1.簡単な式、2.変数定義、3.関数定義、4.if-式
– 4つのセクションのExerciseA,Bを異なるエディタを用い
て解く
– 実験の公平性のために前半2セクションはEx.Aを、後
半はEx.Bを先に解く
デバイス選択結果
• ペンを使った被験者はいなかった
• 被験者は日頃使い慣れているデバイスを選択
正答率
• Exercise A (A1, A2, A3, A4)についてはど
ちらのエディタを使った場合でも全問正解
• Exercise Bの正答率は以下の通り
解答時間
• Ex.A in GTEdit = Ex.B in Text Editor
• Ex.A in Text Editor = Ex.B in GTEdit
使いやすさ (アンケート結果)
GTEditの長所 (アンケート結果)
•
•
•
•
•
木構造がわかりやすい(6/6)
Syntax Errorが起きにくい(5/6)
操作(特にNode removal)が直感的(4/6)
楽しい(2/6)
考えながらプログラムを書くならツリーエディタの
方が良い(2/6)
これらの要素はプログラミング教育時に重要と考え
られる
テキストエディタの長所
(アンケート結果)
• 決まった短いプログラムを書くならテキスト
エディタの方が良い(2/6)
この要素は初心者にとってはそれほど重要
ではない
評価実験のまとめ
• GTEditを使用した方が同じ労力でより深い
理解が得られる
• プログラミング教育に重要と思われる要素
はGTEditに多い
まとめ
• テキストエディタの問題を解決するシステ
ムとしてGTEditを提案
• Tinkertoyに存在した問題も解決
• 評価実験により初心者の使用における
GTEditの有効性を確認
End
おまけ
基本操作 (デモ)
•
•
•
•
Node addition
Node removal
Text entry
Program execution
上級操作1 (デモ)
•
•
•
•
Keyword completion
Copy-and-Paste
Node insertion
Node elevation
上級操作2 (デモ)
• Open-and-Close
• Free-hand Comment
(ただし、コメントはノードに関連付けられて
いない)
他の特徴(デモ)
• マウス&キーボードでの操作可能性
• 巨大なプログラムの扱いやすさ
• 木の整列表示
Exercise1
• 以下の算術式をschemeの式に変換して評
価してください
– (A1) (23 + 49) × (511 - 43)
– (B1) 12 × (2 - 13) + 87
Exercise2
• yを3に定義して以下の計算をしてください
– (A2) 3 × (y + 5)
– (B2) y × 5 - (7 - y)
Exercise3
• 以下の関数を定義してください
– (A3) (x + 3) × y を計算する関数 (f x y) を定
義し、(f 3 5) を計算
– (B3) Xの自乗を求める関数(square x)を定義し
(square 29)を計算
ExerciseA4
• x と y の大きい方を返す関数 (max x y) を
定義し、(max 3 6) を実行してください
( x と y を比較して、x の方が大きかったら
x を、 そうでなかったら y を返す関数。
※ x と y が等しい場合は x でも y でも答え
は同じ)
ExerciseB4
• 以下のような2引数関数 (g x y) を定義して
ください
– y=0 ならば 1
– y=1 ならば x
– y=2 ならば x * x
を返す関数
Tinkertoy
ペンの特徴1
• 文字入力については熟練した場合を比較
するとキーボードの方が早い(70wpm :
30wpm)
• ダイアグラム編集速度がマウスの2倍(by
T.D. Kimura)
• ペンを使っている時には学習機能と関係
のある運動神経を使う(in "Silicon Paper
and a Visual Interface for Neural Networks)
ペンの特徴2
• 数学を学ぶ際にはキーボードやマウスより
ペンの方が自然(by Hall)
• 絵や落書きを描くことは代数の場合正しい
解法へ繋がる(by Hall)
List(Consセル)表示について
• テキスト表示も可能
Future Work 1
• ペンを使った場合の評価実験
• 1対1ではなく、1対多の授業形式の場合の
評価実験
• エキスパートが使用した場合の評価実験
(スピード、感想)
Future Work 2
• アニメーション実行
• モード切替による並行したテキスト編集
• ML, XML等多言語への拡張