プログラミング演習III 雪田のページ(工事中-->休工)
プログラミング入門IIを履修した人を対象としている。この演習ではネットワークゲームを題材にして、通信プロトコル、イベント駆動、マルチスレッドのJavaプログラミングを体験する。サンプルプログラムはプロフェッショナルな書法からは大きく隔たっている。演習に際して問題点、改善点を説明するので、受講者が立派なプログラムに発展させていくことを期待している。この演習で所定の課題を達成した諸君は、以下のような知識、技能を獲得しているはずだ。
- ネットワークアプリケーションの通信プロトコルを設計することができる
- マルチスレッドとイベント駆動を適切に組み合わせてアプリケーションのロジックを実現する
- 素朴なテスト、デバッグの手法が使える
以上の体験が、今後どのようなプログラミング言語を学ぶときに大いに役立つ。もちろんJava言語で更に上級のオブジェクト指向プログラミングを学ぶ上でも前提条件となる。
Q and A のページ ==> こちら?
基礎知識
通信プロトコルとは
(to be filled)
マルチスレッドの考え方
(to be filled)
簡単なデバッグ手法
(to be filled)
スケジュールと課題
以下の課題は選択(サブ項目は複数選択を勧める)とする。ソースコード1000行が最低ライン。友達と組んでやるのも可。ただし、2人のチームなら2000行、3人のチームなら3000行というように要求されるソースコードの分量は人数に比例する。
課題(選択)
- GUIイベント駆動とマルチスレッド のサンプルを参考に
- メッセージの表示を複数行化
- 接続から終了までをGUIからできるように変更
- 多人数のチャットへ機能拡張
- 三目並べ のサンプルを参考に
- ゲームの進行をプログラム側で管理するような機能の追加
- 接続から終了までをGUIからできるように変更
- 鬼ごっこ ゲームのサンプルを参考に
- 自分のアイデアでもっと面白く改造
参考と注意事項
- ブロックしないI/Oもあるので興味があったら調べてみるとよい。New I/Oというキーワードで。
- サンプルではSynchronized処理を一切省いている。マルチスレッドでは共有データへのアクセスを排他制御する必要があるので、必要と判断される場所にきちんと入れるべきである。
第1週
最初の一歩 のサンプルを理解する。第2日までに上記のどの課題に挑戦するか決め、計画書を書く。
第2週
提出された計画書に基づき課題を決定する。