Docs.com へのサインインに使うメール アドレスまたは電話番号を入力してください。 Office など、Microsoft の他のサービスで既にお使いのアカウントがあれば、そのアカウントを入力してください。
アカウントを記憶する
または次の方法でサインインします:
サインインすると、コンテンツのダウンロードや「いいね!」をすることができ、作成者が認識します。
埋め込みコード: Programming Environments - 東京大学「ユーザインタフェース」講義資料
サイズの選択
2016年度の東京大学「ユーザインタフェース」講義で利用した発表資料です。
講義のWebページはこちら:
http://docs.f3js.org/courses/user-interface-2016/
Programming Environments
( 元) 東大情理IS/CS 五十嵐研究室
産業技術総合研究所 研究員
加藤 淳
http://junkato.jp/
http://junkato.jp
加藤 淳 : 創作支援環境研究者 @ arcatdmz http://junkato.jp
TextAlive (textalive.jp)
f3.js (f3js.org)
東大 五十嵐研 / 未踏本体 / 学振 DC1 / Microsoft Research/ Adobe Research / 産総研 研究員
Human-Computer Interaction 分野が専門
とくにプログラミング環境
Programming Methods
End-user Programming (Programming-by-Example)
Visual Programming
Support for Programming Activities
Code Editor Enhancements
Debugger Enhancements
External Support (Tools and Toolkits)
Integrated Support (IDEs and Beyond)
Programming by Example (Programming by Demonstration)
ユーザの振る舞い (入力と出力のペア )を見て、入出力間のプログラムを推測、実行する手法
繰り返し操作を検出してマクロを生成する簡単実装 (Dynamic Macro)から、 SMTソルバで関数を組み立てる本格実装 ( FlashFill )まで、さまざま
繰り返し動作を検知、
楽に繰り返せる
Dynamic Macro [Masui et al., CHI ‘94]
“Program Synthesis”
という用語を提唱
FlashFill [Gulwani et al., POPL ‘11]
実世界で PBE
Topobo [Raffle et al., CHI ‘04]
Pure Data
Google Blockly
視覚的にプログラミングを行える手法全般
実はいろいろな種類がある
ふつうの Visual Programming
Blocks Programming
Spreadsheet Programmming
Pixel Rewriting
Spreadsheet は
格子と誰が決めた?
Forms/3 [Burnett et al., ’91-]
これも Sheet
AgentSheets [Repenning et al., IEEE VL ‘93]
最近の Spreadsheet研究
Gneiss [Chang et al., UIST ‘14]
Pixel Rewriting (BitPict) [Furnas, CHI ‘91]
画像の書き替え ルールを複数定義
ルールを画像に適用することで、簡単な画像処理や算術を実現できる
ソースコードエディタを改良する研究
と一口に言ってもいろいろな機能がある
ナビゲーション
表示内容
コード補完
ファイル毎から 処理 (関数など )毎へ
CodeBubbles [Bragdon et al., CHI ‘10/ICSE ‘10]
画像を文字参照ではなく画像として表示
Sikuli, Picode [Yeh & Kato et al., UIST ‘09 & CHI ‘13]
コード補完の UIで サンプルコード検索
Blueprint [Brandt et al., CHI ‘10]
リポジトリから みんなの使い方抽出
IDE 2.0 (Eclipse) [Brunch et al., FoSER ‘10]
デバッガを改良する研究 (Back-in-time Debug)
と一口に言っても必要な UIはアプリによりけり
GUI の見た目がおかしい?
カメラの前と PCの前を行ったりきたり?
ブラウザで非同期イベント追うのがつらい?
どうして こうなった? に答えるデバッガ
Whyline for Java [Ko et al., ICSE ‘08 & CHI ‘09]
録画・再生・再評価で机を離れず済む 実行履歴プレイヤー
DejaVu [Kato et al., UIST ‘12]
録画・再生できる 実行履歴プレイヤー は Webでも有効
Timelapse [Burg et al., UIST ‘13]
External Support
プログラミング環境には手を加えない支援
2000 年代まで多かった
ツールキット (API)
外部ツール (IDEに統合されていない )
Arduino よりもっと前
USB+API で抽象化
Phidgets [Greenberg et al., UIST ‘01]
OpenCV のAPI を GUI で教示しやすく
Eyepatch [Maynes et al., UIST ‘07]
使ったことある人も いるのでは?
D3.js [Bostock et al., InfoVis ‘11]
Stanford Vis Group ➡ University of Washington Interactive Data Lab
Integrated Support
※ 開発フロー全体にわたって
プログラマを支援する
プログラミング環境全体をアプリ毎に最適化
実装コスト
でも現実的になってきた (OSS / API / Web …)
Physical Computing の
開発、テスト、分析
d.tools [Hartmann et al., UIST ‘06]
機械学習アルゴリズムの開発とテスト
Gestalt [Patel et al., UIST ‘10]
歌詞アニメーションの制作と配信
TextAlive [Kato et al., CHI ‘13]
PBE/VPL
Coding & Debugging Support
Toolkits & Tools
IDEs and Beyond
今後さらに「体験」寄りの研究が増えていく (UI ➡ UX)
講義課題スケジュール
6/16 出題 ( 本日)
6/23 構想発表
A4×1 枚 図入りの概要プリントを1 部印刷して持参
1 チーム数分で紹介
6/28, 30, 7/5, 7/7 レーザーカッター利用日
7/14 成果発表
7/19 レポート提出〆切
Dynamic Macro は慶應大の増井先生という人がCHI ’94 で発表したものです。直前の繰り返し動作をキー一つで何度も実行できるものです。増井先生はApple 社でiPhone の日本語入力を実装したことで一番有名かもしれません。実はかつて産総研にいらっしゃったこともあります。
PureData, Max/MSP, LabVIEW, …
gramming Activities