#contents ------ *マルチメディアプログラミング実習 2016年度後期 [#s6662b38] **欠席状況 [#l124acfe] 3/4以上出席してください。(欠席は3回まで)欠席4回で自動的に不可になります。 //欠席3回以下なら不可にはなりませんが、成績が下がるかもしれませんので、心当たり無ければ連絡ください。 **javaのマニュアル [#beafbfad] //http://sdc.sun.co.jp/java/docs/j2se/1.5.0/ja/docs/ja/api/index.html //http://java.sun.com/javase/ja/6/docs/ja/api/index.html //http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/index.html http://docs.oracle.com/javase/jp/8/docs/api/index.html **レポート提出方法 [#ac87d6ac] /home/isstaff/siio/Public/Drop Box/. に提出してください。ターミナル.appからなら cp 123456siioitiro.zip /home/isstaff/siio/Public/Drop\ Box としてください。ファインダーからなら、メニューから「移動」「フォルダへ移動...」を選んで 以下のように入力して、移動ボタンを押して、そこに現れるドロップボックスホルダに、ドラッグアンドドロップしてください。 http://siio.jp/gyazo/dropbox.png ** 出来上がったプログラムの提出方法 [#bd9cbbf8] - フォルダを作ってその中にjavaファイルとclassファイル //と、取扱説明書ファイルと、それ以外に必要なファイルがもしあればそれら を入れてください。 フォルダの中のclassファイルをダブルクリックしたらプログラムが起動することを確認してください。 -このフォルダに名前を付けてください。フォルダの名前は、「出席番号+氏名(ローマ字の姓名)+必要ならばバージョン番号の数字」にしてください。たとえば09020999siioitiro01のように。なお全部半角英数字でお願いします。 -このフォルダを圧縮してください --フォルダを選択してファイルメニューから圧縮を選択します -圧縮したファイルを以下の手順で /home/isstaff/siio/Public/Drop Box/. に提出してください。ターミナル.appからなら cp 123456siioitiro.zip /home/isstaff/siio/Public/Drop\ Box としてください。ファインダーからなら、メニューから「移動」「フォルダへ移動...」を選んで 以下のように入力して、移動ボタンを押して、そこに現れるドロップボックスホルダに、ドラッグアンドドロップしてください。 http://siio.jp/gyazo/dropbox.png --書き込み専用なので確認できないけどokですかという意味のダイアログが出るかと思いますが問題ありません。 -レポート提出用フォルダは書き込み専用で見ることができません。アップロードできたかどうか不安でしたら教員まで質問してください。 -授業中でしたら、[[ココを見ると:http://siio.jp/lecture/java_report.html]]一覧をみることができます。 -同じ名前のフォルダを投げ込むと、エラーになります。ということで新しいバージョンができたら別の名前のフォルダを作って提出し直してください。(フォルダ名最後に数字をつけてください) ***教科書 [#a7e1ce26] http://gyazo.com/de3288074dae1c75f6df4ef3c0b9b3d4.png http://www.amazon.co.jp/dp/4883732258/ 買ってください。もしくは、先輩から安く譲ってもらってください。 *** この講義の目的 [#l5592b29] +Javaでプログラムする +オブジェクト指向の概念を理解してプログラミングする +GUIプログラミングをする *** この講義の順序 [#gcf48d66] +Javaになれる(C言語などのプログラミング手法の復習) +オブジェクト指向について理解する +GUIプログラミングについて理解する(イベント駆動) +お絵描きプログラムを作ってみる *** 成績評価 [#c732dbb9] +お絵描きプログラムの完成度,作り込み +毎回の宿題の達成(参考程度) +出席状況(参考程度) **第1章および第2章 [#y3ae1beb] *** Mac OS XでJavaを使う [#g3e7de3f] Mac OS XはJavaと相性が良く、最初からjavaがインストールされています。 ということでWindowsより簡単に(というか何もしなくても)javaが使えます。 *** terminalを起動する [#ia8beba9] //#ref(How2Java/terminal.png) http://siio.jp/gyazo/7366bfab668207c6598c4d88ef70d2d4.png - terminalは、/Applications/Utilities/の中にあります。 ちなみに、/Applicationsはファインダでは/アプリケーションと日本語として見えます。 /Applications/Utilities/は、/アプリケーション/ユーティリティ/と日本語として見えています。 - ダブルクリックすると起動します。 よく使うことになると思いますので、dockにドラッグアンドドロップして 登録しておくと良いかと思います。(うちの子はこのアイコンを「顔テレビ」と呼んでいます」) - メニューのターミナル/環境設定...を開きます。 ここで、テキストを選んで、「テキストをアンチエイリアス処理」に チェック入れておくとフォントが奇麗なのでおすすめです。 http://siio.jp/gyazo/8aa6f5ab8878bc57c0657b94f5ae7a58.png - おなじウィンドウの「詳細」に、「文字エンコーディング」というのがあります。 Javaの場合、ここで「Unicode (UTF-8)」を選んでおきましょう。 (日本語コードにはいろいろな種類があって混乱しますが、21世紀に生きるみなさんはUnicodeで統一していきましょう) //http://gyazo.com/1b36039be113ef9e8ed04842aaeb3da6.png - ターミナルから、javac helpとタイプしてみてください。Javaがすでに入っているので、 オプションの説明が日本語で出てくると思います。 --最近のMac OS X (Mountain Lionなど)では、Javaが標準で入っていない場合もあります。 その場合は、ダインロードするかどうか聞かれますので、ダウンロードしましょう。 --ここでの日本語表示が化けていたら、javaがUnicodeじゃなくてShift-JISなどのコードで動いていることになります。ターミナルをShift-JISなどに設定しても良いのですが、ここは、JavaをUnicodeで動かすようにしましょう。 -JavaをUnicodeで動かす(前項で文字化けした場合の対処) --javacを起動するときに、javac -J-Dfile.encoding=UTF-8 とオプションを付けます --javaを起動するときには、java -Dfile.encoding=UTF-8 とオプションを付けます。 --面倒なので、.bash_profileに登録しておきましょう -- ~/.bash_profileを開いて以下の行を追加します alias javac='javac -J-Dfile.encoding=UTF-8' alias java='java -Dfile.encoding=UTF-8' *** miを用意しておく [#qfba9e5b] http://siio.jp/gyazo/2c0e58d1b83d396e1fbe6f5d247670ff.png - Javaのプログラムを作るエディタです。一番簡単にはterminalからviとかemacsとかpicoとかタイプして エディタを呼び出せば良いです。 - でも日本語の設定などが結構難しいので、GUIベースのエディタを使ってみましょう。 - いくつかありますが、おすすめの一つはmi (みみかきエディタ) という、便利なフリーウェアのテキストエディタです。 - miを使うには、http://www.mimikaki.net/からダウンロードして~/Applicationsにコピーします。 - これも便利なのでdockに入れておくとよいと思います。 http://siio.jp/gyazo/7579915fefe1ecd9c0e4e2ddfa55177d.png *** 超簡単なプログラム(hello world)を作ってみる [#v4ccc293] - ターミナルから、vi Hello.javaとかemacs Hello.javaとかpico Hello.javaとかタイプしたり、 もしくは、miを起動してファイル/新規/javaを選んで新しいファイルを作って開きます。 - ここで、以下のようなプログラムを書いてみます。 class Hello { public static void main (String args[]) { System.out.println("hello java world!"); } } -このときmiで改行コードをLF (UNIX)にしておいてください。またUTF-8になっていれば日本語も正しく出るはずです。 http://siio.jp/gyazo/20121004010107.png - これをHello.javaという名前で保存して、コンパイル実行します。すると以下のようになります。 javac Hello.java (コンパイルする) java Hello (実行する。.javaなどの拡張子は不要) hello java world! (結果) - 次に簡単なウィンドウを出してみましょう。 授業の最後の方で紹介する,Swingというフレームワークを使ってウィンドウを出してみます. import javax.swing.JFrame; public class SimpleWindow { public static void main(String argv[]) { JFrame f = new JFrame("私が作った最初の窓"); f.setSize(200,100); // f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); } } これをSimpleWindow.javaという名前で保存して、 javac SimpleWindow.java java SimpleWindow とタイプしてコンパイル/実行します。 このプログラムは,ウィンドウのクローズボタンを押しても終了しません. プログラムを停止するには,ターミナルでコントロール-cを押します. #ref(How2Java/simplewindow.png) ------------ *ヒューマンインタフェース 2016年前期 [#q0729239] //**宿題 [#i19fb64a] //***人の反応速度を測定するプログラムを作って測定してください。(2014.4.24) † [#jbad7411] //-連休明けの授業(5/15)の開始時に、A4, 1枚(両面印刷でも可)で提出してください。 //--用紙の上辺に学籍番号、学年、氏名を1行で書いておいてください。 //-C 言語では,次のようなプログラムで、”hit now”という文字を表示した後、リターンキーが押されるまでの時間を測定できます。 //--http://siio.jp/hci/hitnow.c //--このプログラムは固定時間(5秒)後にhit nowが表示されます。乱数を使って表示までの時間を変える改良をしてもらっても良いです。(改良したらそのこともレポートしてください) //-これによりあなたの応答速度を複数回実測して、人の応答速度が 300ms 程度であることを確認してください。 //-また個人差や年齢などで結果は変わるかもしれません。周りの複数の人に被験者になってもらって調査しても面白いかもしれません。 //-また何度も測定することで、習熟して速度が向上したり、それでも限界があったり、さらには、逆に疲労により速度が低下することがあるかもしれません。 //--そのような現象が観察できたら、これも報告してください。(教科書8章の学習曲線を参考にしてください) **出席状況 [#id495fc6] 学部「ヒューマンインタフェース」は出席重視の授業です.そのため70%以上出席お願いします. 授業回数が15回程度と見込まれますので,欠席が4回を超えた場合は単位が出ません. 以下に授業全体の欠席状況を示しておきます. 欠席回数は成績に大きく影響しますので、間違いありましたら至急お知らせください. |学籍番号|4月8日|4月15日|4月22日|5月6日|5月13日|5月20日|5月27日|6月3日|6月17日|6月24日|7月1日|7月15日|7月22日|7月29日|出席点| |1420501|出|出|出|出|出|出|出|出|出|出|出|欠|出|出|| |1420502|出|出|出|出|出|出|出|出|出|出|出|出|出|出|| |1420503|出|出|出|出|出|出|出|出|出|出|出|出|欠|出|| |1420504|出|出|出|出|出|出|出|出|出|出|出|出|出|欠|| |1420505|出|出|出|出|出|出|出|欠|出|出|出|出|出|出|| |1420506|出|出|出|出|出|出|出|出|出|出|出|出|出|出|| |1420507|出|出|出|出|出|出|出|出|出|出|出|出|出|出|| |1420508|出|欠|出|出|出|出|出|出|出|出|出|出|出|出|| |1420509|出|出|出|出|出|出|出|出|出|出|出|出|出|出|| |1420510|出|出|出|出|出|出|出|出|出|欠|欠|出|出|出|| |1420511|出|出|出|出|出|出|出|出|出|出|出|出|出|出|| |1420512|出|出|出|出|出|出|出|出|出|出|出|出|出|出|| |1420513|出|出|出|出|出|出|出|出|出|出|出|出|出|出|| |1420514|出|出|出|出|出|出|出|出|出|出|出|出|出|出|| |1420515|出|出|出|出|出|出|出|出|出|出|出|出|出|出|| |1420516|出|出|出|出|出|出|出|出|欠|出|出|出|出|出|| |1420517|出|出|出|出|出|出|出|出|出|出|出|出|出|出|| |1420518|出|出|出|出|出|出|出|出|出|出|出|出|出|出|| |1420519|出|出|出|出|出|出|出|出|出|出|出|出|出|出|| |1420520|出|出|出|出|出|出|出|出|出|出|出|出|出|欠|| |1420521|出|出|出|出|出|出|出|出|出|出|出|出|出|出|| |1420522|出|出|出|出|出|出|欠|出|出|出|出|出|出|欠|| |1420523|出|出|出|出|欠|出|出|出|出|出|出|出|出|出|| |1420525|出|出|出|出|出|出|出|出|出|出|出|出|出|出|| |1420526|出|出|出|出|出|出|出|出|出|出|出|出|欠|欠|| |1420527|出|出|出|出|出|出|出|出|出|出|出|出|出|出|| |1420528|出|出|出|出|出|出|出|出|出|出|出|出|出|出|| |1420529|出|出|欠|欠|出|欠|出|出|出|出|出|出|欠|出|| |1420530|出|出|出|出|出|出|出|出|出|出|出|出|出|出|| |1420531|出|出|出|出|出|出|出|出|出|出|出|欠|出|欠|| |1420532|出|出|出|出|出|出|出|出|出|出|出|欠|出|欠|| |1420533|出|出|出|出|出|出|出|出|出|出|出|出|出|出|| |1420534|出|出|出|出|出|出|出|出|出|出|出|出|出|出|| |1420535|出|出|出|出|出|出|出|出|出|出|出|出|出|出|| |1420536|出|出|出|出|欠|出|出|出|出|出|出|出|出|出|| |1420537|出|出|出|出|出|出|出|出|出|出|出|出|出|出|| |1420538|出|出|出|出|出|欠|出|出|出|出|出|出|出|出|| |1420539|出|出|出|出|出|出|出|出|出|出|出|出|出|出|| |1420540|出|出|出|出|出|出|出|出|出|出|出|出|出|出|| |1420541|出|出|出|出|出|出|出|出|出|出|出|出|出|出|| |1220116|出|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|不可| |1220121|出|出|出|欠|出|出|出|欠|出|出|出|出|出|出|| //** ヒューマンインタフェースのレポート 2015年前期 [#o7c956d4] //案内が遅れてすみません。案内が遅れたことを配慮して締め切りを予告より1週間延期しました。 **期末レポートのお知らせ [#ha061f9f] - 提出は任意です.もし良いレポートを提出いただけたら出席点の加算に使用します.(出席点不可はくつがえりません) - 締め切り2016年8月31日水曜日 //- 締め切りその他は未定です -形式分量:A4, ページ数は2-3ページ程度 -提出先・提出方法:PDFにしてsiio@mac.comまでメール添付で送付 --メールの標題は「ヒューマンインタフェースレポート: 14205XX」としてください。数字部分は出席番号です。 --提出いただいた方はここのページで学籍番号でお知らせします。提出してしばらく経つのに、 //--提出いただいた方は以下のとおりです。提出してしばらく経つのに、 自分の番号がなかなか表示されない場合は,受付されていないかもしれません.もう一度催促してください (提出を確認出来るよう締め切りより早めに提出していただくことをお勧めします) --提出したことを学籍番号で公開されたくない方は、秘密のペンネームをおしらせください。 |提出日|学籍番号もしくはペンネーム| |2016/8/31|1420512| |2016/8/31|1420513 | |2016/8/31|zzz| |2016/8/31|1420507| //|1320501| //|あこがれは早寝早起き| //|ヒューマン| //|学籍番号|受理日| //| 1320516 |2015年8月19日| //| 1120506 |2013年9月6日| //| 1120513 |2013年9月6日| //| 1120503 |2013年9月6日| //| 1120532 |2013年9月6日| //| 1120537 |2013年9月6日| //| 1120507 |2013年9月6日| //| 1120528 |2013年9月6日| **期末レポートの課題 [#bbbfc878] +身の回りの携帯機器、家電製品、機械製品、コンピュータソフトウェア、 道具、日用品、調度品、設備などから、 使いにくいと思われる道具を見つけ出して欲しい。 +そして、それがなぜ使いにくいのかを、 授業で説明した、 制約、マッピング、Affordance、モデル、 エラー対策、 標準化、直接操作、メタファー、モードなどの用語を使って分析せよ。 (全部の用語を使う必要は無い) +また,自分ならこのように設計して使いやすくするというアイディアを、 これも授業で使った用語を交えて、述べよ. ** ヒューマンインタフェースの予定 2016年前期 [#u19fb704] -4/8 -4/15 -4/22 -5/6 -5/13 -5/20 -5/27 -6/3 -6/10 授業なし -6/17 -6/24 -7/1 -7/8 椎尾学会出張のため休講 -7/15 -7/22 -7/29 //**宿題 // //***人の反応速度を測定するプログラムを作って測定してください。(2014.4.24) † [#jbad7411] //-連休明けの授業(5/15)の開始時に、A4, 1枚(両面印刷でも可)で提出してください。 //--用紙の上辺に学籍番号、学年、氏名を1行で書いておいてください。 //-C 言語では,次のようなプログラムで、”hit now”という文字を表示した後、リターンキーが押されるまでの時間を測定できます。 //--http://siio.jp/hci/hitnow.c //--このプログラムは固定時間(5秒)後にhit nowが表示されます。乱数を使って表示までの時間を変える改良をしてもらっても良いです。(改良したらそのこともレポートしてください) //-これによりあなたの応答速度を複数回実測して、人の応答速度が 300ms 程度であることを確認してください。 //-また個人差や年齢などで結果は変わるかもしれません。周りの複数の人に被験者になってもらって調査しても面白いかもしれません。 //-また何度も測定することで、習熟して速度が向上したり、それでも限界があったり、さらには、逆に疲労により速度が低下することがあるかもしれません。 //--そのような現象が観察できたら、これも報告してください。(教科書8章の学習曲線を参考にしてください) //***GUI黎明期のPC性能を調べてください(2014.4.17) [#ba9db6ff] //-GUI黎明期PCのCPU名、CPUクロック、メモリ容量、画素数を調べてください //--現在,Windows を使っている人は,最初の Windows が出荷された 1985 年当時に使われていたIBM PC/AT //--Mac OS Xを使っている人は,1984に出荷された最初の Macintosh //-今あなたが使っているコンピュータと比較してください. //-次回の授業(4/24)最初に配布するA5サイズの用紙に各自で記入して提出してもらいます **教科書 [#r47d2493] http://ec2.images-amazon.com/images/I/51SsP4P1UiL._SL500_AA300_.jpg http://www.amazon.co.jp/dp/4781912605/ **授業資料 [#lca8065f] +http://siio.jp/lecture/humaninterface/HCI_c1.ppt.pdf +http://siio.jp/lecture/humaninterface/HCI_c2.ppt.pdf +http://siio.jp/lecture/humaninterface/HCI_c3.ppt.pdf +http://siio.jp/lecture/humaninterface/HCI_c4.ppt.pdf +http://siio.jp/lecture/humaninterface/HCI_c5.ppt.pdf +http://siio.jp/lecture/humaninterface/HCI_c6.ppt.pdf +http://siio.jp/lecture/humaninterface/HCI_c7.ppt.pdf +http://siio.jp/lecture/humaninterface/HCI_c8.ppt.pdf +http://siio.jp/lecture/humaninterface/HCI_c9.ppt.pdf +http://siio.jp/lecture/humaninterface/HCI_c10.ppt.pdf (授業開始直前や直後に差し替えされている可能性があります。) **教科書サポートページ [#a8165368] -http://lab.siio.jp/index.php?CSL11HCI //**宿題:ボタンを押すたびに点灯/消灯を繰り返す(トグルする)プログラム (2015/7/17提出)[#s369672d] // //以下は、Arduinoの2ピンに接続された押しボタンスイッチを押すとLEDが点灯するプログラムです。これを改造して、押しボタンスイッチを押すたびに、点灯/消灯を切り替えるプログラムを作ってください。 //ちなみにHIGHとLOWはintの値で、int型の変数で保存することができます。 // // int outpin=13; //An LED is connected to ping 13 // int inpin=2; //A switch is connected to pin 2 // // void setup() { // // initialize the digital pin as an output and input. // pinMode(outpin, OUTPUT); // pinMode(inpin, INPUT); // } // // void loop() { // if ( digitalRead(inpin) == HIGH) { // digitalWrite(outpin, LOW); // set the LED on // } // else { // digitalWrite(outpin, HIGH); // set the LED off // } // delay(30); // wait for 30 second // } // //**宿題:人の反応速度を測定するプログラムを作って測定してください。(2015.5.1) [#gc9f981e] //-連休明けの授業(5/8)の開始時に、A5, 1枚に書いて提出していただきます。 //-C 言語では,次のようなプログラムで、”hit now”という文字を表示した後、リターンキーが押されるまでの時間を測定できます。 //--http://siio.jp/hci/hitnow.c //--このプログラムは固定時間(5秒)後にhit nowが表示されます。 //-- 乱数を使って表示までの時間を変える改良をしてもらっても良いです。(改良したらそのこともレポートしてください) //-これによりあなたの応答速度を実測して、人の応答速度が 300ms 程度であることを確認してください。(複数回実測して平均とってもらえるとさらに正確ですね) // ------ このページについてのお問い合わせはsiio@is.ocha.ac.jpまで。