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等多言語への拡張
© Copyright 2024 ExpyDoc