残留開始まで


[[Classes]]
*ネットワークプログラミング FI科3年4年21004教室 [#z05d0c5d]
//*13回学力期末考査 [#me9225fa]
//-[[2016NetworkProExam]]
*注意点 [#da368bc2]
-有線LANを用意すること。(LANのインタフェースがない人はアダプタを買ってください。)
-9:30から1限を開始します。出席は9:40時ぐらいにとります。9:00-9:30は演習の予習復習をしておいてください。


*最終課題(1・17発表会 1チーム5分)[#v29b839d]
-無理をしないこと 第一グループは9:30からスタートしますので9:20分には集合してください。
-出席番号順に1班5分で1-2限通して行います。
-デモができる状態で準備しておいてください。自分の目標のまず最低ラインをクリアすること。

自分の2回前の人の発表時に、前に出て準備をお願います。

|順番|学籍番号|順番|学籍番号|
|1|14fi121、14fi88|16|14fi066|
|2|14fi116、14fi25|17|14fi064、14fi034|
|3|14fi115、14fi58|18|14fi049|
|4|14fi113|19|14fi043|
|5|14fi110|20|14fi041|
|6|14fi107|21|14fi015|
|7|14fi102、14fi097|22|13fi122|
|8|14fi087|23|13fi095|
|9|14fi098、14fi072|24|13fi043|
|10|14fi099、14fi082|25|14fi009|
|11|14fi081、14fi004、14fi063|26|14fi062|
|11|14fi081、14fi004、14fi063|26|14fi062、14fi093|
|12|14fi080、14fi010|27|14fi126|
|13|14fi078、14fi055|28|14fi125|
|14|14fi054|29|14fi124|
|15|14fi042、14fi069|30|14fi093、14fi062|
|15|14fi042、14fi069|30|%%14fi093、14fi062%%|
|||31|13fi123|

//*最終課題(1・17発表会 1チーム5分) [#k4f1c024]
 最終課題発表会の詳細
  ネットワークのTCP/UDP通信をつかった通信プログラムを作りなさい。(1:1 1:n n:m マルチキャストのいずれの通信モデルでもよい)  
  二人一組のチームでプログラムを作成することも勧めるが、その場合は役割分担を明確にわけること。クオリティは一人でやるチームの1倍以上を期待する。採点は別々に行うので役割分担を明 確にすること。(3人でやる場合は1.08倍のクオリティを期待する)

  最終発表会は1/17日に設定する。学籍番号順。pptの説明資料(企画書の発展版)。プログラムが当日うまくいかなかった場合の動作説明のスクリーンショット、役割分担、シーケンズ図、アピールポイント、将来展望を明記すること。ソース発表日当日9:20にすべて提出すること。Eclipseのエクスポートでプロジェクトファイルとしてzipで提出してもよい。最後の回の第15回フォルダに提出してください。採点はチームではなく役割に応じて個別に行われるため、それぞれのメンバー全員が提出する必要があります。

*13回学力期末考査 [#me9225fa]
//-[[2016NetworkProExam]]

*12回 ChatServerBufferedReaderWhile,ChatClientPrintWriterWhile [#a7520e94]
-資料
--https://drive.google.com/open?id=0B-dr-NDmcOmVTndEemdQS1dCTTQ

*模擬試験 以下の問題を9時45にopenします。10時30までに回答してください。 [#e5f78d86]
 持ち込み可、ネット検査可、過去の自分のプログラムや授業資料をみるのも可能です。
 終わったら、自分の最終課題に取り組んでください。

 ■模擬試験A(20点) 英国数社理のセンター試験の科目名と点数を
 コンストラクタ内でランダムに0-100点の間で整数の点数が自動に入力されるものとする。
 (1)各科目のそれぞれ個別点数と(2)5科目全体平均点と(3)最高点科目とその点数を
 表示する関数を実行するプログラムを作成せよ。配列で処理すること。以下のクラスやその属性を必ずもつものとする。
 提出先 課題提出フォルダ/12/(自分の学籍番号)/Exam/a
 CenterKamokuManager.java
 CenterKamoku.java
 method: printAverage();
 method: printMaxKamoku();
 実行イメージ
 英:67
 国:40
 数:56
 社:89
 理:45
 5科目の平均は:61点
 最高点は89点の社です。
 (パッケージ名はなしでアップロードしてください)
 ※余裕があれば100人*5科目の二次元配列の問題を解いてもよいものとする。+1点

 ■模擬試験B(20点) サーバクライアント通信でコンソールから入力した数字を送信し、
 その数が素数であるかどうかを判定するプログラムを作成せよ。
 なお返信は"x is Prime", "x is non-Prime"と返信すること。
 またクライアントは何度でも送信可能とすること
 終了は"q"または"exit"を送信した場合とすること
 PrimeServer.java PrimeCelinet.java(パッケージ名はなしでアップロードしてください)
 ChatServer ChatClientを改造すること。
 提出先 課題提出フォルダ/12/(自分の学籍番号)/Exam/b

 ■模擬試験C(20点) Threadを10個数生成し1秒間隔、2秒間隔、3秒間...10秒間隔で10回カウンターを表示するプログラムを作成せよ。それぞれスレッドIDとカウンターを表示せよ。
 ThreadCount10Main
 CountTenRunnableImpleC
 提出先 課題提出フォルダ/12/(自分の学籍番号)/Exam/10/c
*第11回 12/6 企画書チェックの日[#s7700b72]
-https://drive.google.com/file/d/0B-dr-NDmcOmVaUJyQzhDY3g0U3M/view?usp=sharing

出席
-https://goo.gl/forms/EbGM3Fd6rphCqpx72

-授業内課題。
 サーバクライアントChatClientPrintWriter.java とChatServerBufferedReader.javaを改造しなんども何度もコマンドラインに打ち込んだ文字列をサーバ側に送信できるようにしよう。"q" "exit"が来たらサーバ及びクライアントを停止させよ。
 送信する字列はカンマ区切りとするその文字列の中でカンマで区切った文字列の領域の総数とその中領域の中で長さの最大の文字列の長さを返信するプログラムを作成しよう。クライアントでその内容を表示しよう。
 例 “ABC,DEFH,G” -> “カンマで区切りられる文字列の領域=3,その領域の中でも最大も文字列の長さ4"をサーバ側で計算しクライアントに返信する。

**12/13 模擬テスト(9:30~) [#j8c4c195]
    テスト解説
    最終課題進捗確認

**12/20 テスト本番(一限 9:10~ テストスタート) [#c164bd7c]
--LANケーブルを忘れないように
--ネットワーク上に提出するので忘れた場合(ネットに繋げない場合)は0点です。

**1/10 休校日 [#pa3c2e44]

**1/17 最終発表会 [#g1043f09]
--通信を用いたプログラム
--WebAPI使ってもよい(山田先生の課題と同じものはNG)


-11/1は休講日です。

*日程 [#o7850f12]
-11/22 [#g927486a]
--最終課題テーマチェック
--チーム決め

-11/29 [#necb1f6b]
--休講です。

-11/28 大学院紹介ガイダンス 5限 トレンドマイクロ 佐々木研の三村さん

-12/6 [#f49839c9]
--最終課題テーマチェック
--最終課題進捗確認

-12/13 模擬テスト(9:30~) [#j8c4c195]
--テスト解説
--最終課題進捗確認

-12/20 テスト本番(一限 9:10~ テストスタート) [#c164bd7c]
--LANケーブルを忘れないように
--ネットワーク上に提出するので忘れた場合(ネットに繋げない場合)は0点です。

-1/10 休校日 [#pa3c2e44]

-1/17 最終発表会 [#g1043f09]
--通信を用いたプログラム
--WebAPI使ってもよい(山田先生の課題と同じものはNG)

-http://www.soe.dendai.ac.jp/kyomu/portal/2016_schedule.pdf

*第10回 WebAPI [#a633cfb5]
--https://drive.google.com/drive/folders/0B0sFWZsSyPZGQ2RzcEd5WnBQakU?usp=sharing
--https://github.com/cpslab/NetproApiClient

*第9回Thread(応用),PrintWriter,GUIBall,Listener[#z0863f10]
--PrintWriter,Exthread1,ExThreadsMainTest,StringProcessing, Dishes(オブジェクト配列復習),GUIBall,GuiChat,Threadpool 
--https://drive.google.com/drive/folders/0B0sFWZsSyPZGQ2RzcEd5WnBQakU?usp=sharing
--前回の課題が今週の課題となります。クライアントからの文字列angly,happy,nornal送信ででサーバーの顔の表情をかえてください。
--https://github.com/cpslab/NetproApiClient
--最終課題の企画書案パワポ1枚以上

*第8回UDP、Singleton、GUI [#b95929b9]
第8回の課題はありません。授業中ないにだした問題はPrintWriterを用いているGuiMultiClient.java GuiMultiServer.java あるいは
ChatClientPrintWriter.java CharServer.javaを用いるとできます。第9回で再度解説します。
-https://drive.google.com/drive/folders/0B0sFWZsSyPZGeWFTYlJXYzRSck0?usp=sharing
-出席
-https://goo.gl/forms/EbGM3Fd6rphCqpx72

*第7回オブジェクトのやりとりの応用とUDP [#nc997ca6]
-資料先週と同様
--https://drive.google.com/drive/folders/0B0sFWZsSyPZGWENya3ZNVUZJR0k?usp=sharing

-第7回オブジェクトのやりとりの応用、UDP通信、他 [#z500a2cf]
-課題(難しい)
 XmasPresentサーバクライアントを改造し、
 Serializable,ITaskが実装されたTaskObjをサーバとクライアントでやりとりし
 計算のみサーバで実行させるサーバクライアントを完成させよ。
 ※ 計算は最大素数を求めるもの
 ITaskインターフェースに以下の3つのメソッドが必ずあることとする。
 public void setExecNumber(int x); //クライアントで最初に計算させる数字を入力しておく関数
 public void exec() , //サーバで計算を実行をさせる関数
 public int getResult() //クライアントで結果を取り出す関数
 
 サーバクライアントはTaskServer,TaskClientという名前にすること。
 トラブルを避けるためデフォルトパッケージで実行すること。
 サーバ上で計算された最大素数は、クライアントでint getResult()で取得できるように実装せよ。
 サーバ側で実行するメソッドはexec()関数のみ
 クライアントから入力された値の最大素数がかえってくるプログラムを実装せよ。
 ヒント: 素数判定は与えられたNに対して2からN平方根の数を一つ一つ割り切れるか調べればよい。もっとよい計算問題あります。
 
  応用編:ユーザからの入力を繰り返し受付、サーバに素数計算を返すように改良せよ。whileを用いよ。
 名前はTaskServerWhile,TaskClientWhileを完成させよ。
  終了条件は1以下の値が入力された場合にサーバおよびクライアントは終了するようにせよ。
  Eclipseである程度確認できたらコマンドプロンプトでフォルダをサーバとクライアントにわけ(パッケージはどちらもなし)実行せよ。
 入力数を大きくし、サーバでcpuに負荷がかかっている様子をスクリーンキャプチャして課題提出フォルダに一緒にいれよ。

 超応用問題:サーバ側の処理を Thread化(WorkerThread等)し複数のクライアントからの要求を処理できる形に改良せよ。TaskServerThread,TaskClientThreadというファイル名にせよ。

*第6回オブジェクトのやりとり [#nc997ca6]
-資料
--https://drive.google.com/drive/folders/0B0sFWZsSyPZGWENya3ZNVUZJR0k?usp=sharing

-第6回課題
--XmasPresentにint moneyを追加し、クライアントで入力した内容をサーバ側で1.1倍した値をクライアントにお返しするプログラムを記述せよ。
--提出するファイルは3つ、XmasPresent、サーバ、クライアントファイル。
--自分のipaddressはipconfigコマンド、ネットワーク到達性はpingコマンドを利用してください。packageはなしのデフォルトパッケージで通信させてください。
--第6回課題フォルダ
--次週はwhileでサーバクライアント連続送信、tdp通信を行います。

*第5回TCP/IPソケット通信1 [#tdc50916]
-ソケット通信各種
-出席
--https://goo.gl/forms/EbGM3Fd6rphCqpx72
-授業資料(もしかしたら先週の資料も使うかもしれません。)
--https://drive.google.com/drive/folders/0B0sFWZsSyPZGdU85WDYwQ0FQSm8?usp=sharing
--先週の資料
---https://drive.google.com/drive/folders/0B0sFWZsSyPZGbVJmRmxNZkRWX2s?usp=sharing
//-第6回課題
// 今日の課題:XmasPresentサーバクライアントを改造し、Serializable,ITaskが実装されたTaskObjectをサーバに実行させるサーバクライアントを完成させよ。ITaskインターフェースにはpublic void exec() , public int getResult()がメソッドとして存在していることとする。サーバクライアントはTaskServer,TaskClientという名前にすること。


-第5回課題
 DendaiTCPClient2Age.java,DendaiTCPServ2Age.javaを改造し、1-40の数字入れるとその数字の平成を西暦に変換し、1989以上の数をいれると平成の元号の年数に変換するプログラムを作成せよ。それ以外はサーバに「入力エラー」と返信するプログラムをかけ。

 隣通しで挙動を確認せよ。ipconfigで自分のipアドレスは確認できる。サーバの2重起動しないように注意すること。(Eclipseのコンソールのバツボタンや赤ボタンできっちり終了させること。)

 第5回フォルダに提出のこと。授業中のミニ課題とあわせて、3つのファイルを提出すること。ファイル名は変更しなくてよい。


--来週中間テストです。9:30−10:30
---Javaの基礎、パッケージ,private,public修飾子の意味、Interfaceを継承について、インナークラス、拡張for文、Object配列、文字列処理、ソケット通信基礎
---持ち込み不可、ペーパーテスト、筆記用具をもってきてください。
---2限も授業があります。

*第4回オブジェクトの配列とキャストといんねークラスとGUI [#e306fe23]
-防災とIoT
--http://smartcity.connpass.com/event/41445/
-Google Dev Fes Tokyo@TDU
--http://gdg-tokyo.connpass.com/event/38927/
-出席
--https://goo.gl/forms/EbGM3Fd6rphCqpx72
-授業資料
--https://drive.google.com/drive/folders/0B0sFWZsSyPZGbVJmRmxNZkRWX2s?usp=sharing
-第4回課題
 P77-80ページを参考にオブジェクト配列での顔を3x3以上の個数で完成させよ。
  一つ一つの顔の表情と色を変化させよ。
 第4回フォルダーにいれてください。


*第3回オブジェクト指向とオブジェクトの配列 [#vedbcf42]
-出席
--https://goo.gl/forms/EbGM3Fd6rphCqpx72
-https://drive.google.com/drive/folders/0B0sFWZsSyPZGNkpJQkk2MlBVaTA?usp=sharing
演習3-A
 コマンドラインのプログラムにてユーザに生年を西暦で入力させよ。その結果として、オリンピックが開催する2020年のユーザの年齢とユーザが誕生した年の元号n年(明治、大正、昭和、平成)が表示されるプログラムを作成せよ。
 入力がqあるいは0の場合は終了するようにせよ。
 入力した現在の年齢がマイナスおよび120歳以上の場合は再入力を促すようにせよ。
 なお元年(1年)を優先すること。

演習3-B課題
 HeikinAを参考にHeikinBを完成させよう。java.util.RamdomとnextInt()を使おう。100人の点数を入力させてその平均を出力します。自分で調べてがんばりましょう。
演習3-C課題
 FaceMain.javaを改造してオブジェクト指向で書かれたFacesMain.javaを提出しください。fobj1.faceDraw(g);のような書き方をすること。顔は一つ以上であること。

 

*第2回 9/20 [#y5637392]

-javacで文字化けが起こる場合
--javac -encoding utf8 Hello.java
--コマンド履歴は上矢印

-packageの場合のコンパイルと実行
--javac  -encoding utf8 jp\ac\dendai\im14fi000\Hello.java
--java jp.ac.dendai.im14fi000.Hello 1234 5678

--Eclipseダウンロード&展開
---http://mergedoc.osdn.jp/
---ダウンロードしたファイルはjarコマンドで解凍するとうまく解凍できます。
---jar xvf pleiades-e4.6-java-jre_20160622.zip

--課題 提出チェックは本日はありません。
-AさんとBさんとCさんのテストの点数を入力し平均点を出力するプログラムをつくれ。
 ヒント1 (文字列連結)
 Calc1.java
 ヒント2 (二つの数をたす)
 Calc2.java
 クラス名:  Calc3


-講義資料&ソースコード
--https://drive.google.com/open?id=0B0sFWZsSyPZGTlVZYUh6VE1QREE
--↑で第2回資料が見えない人は↓からダウンロードしてください。
--http://bit.ly/2cLZvry


*第1回 9/13 [#f41164cd]


**(1)9/16 ガイダンス 導入 復習1 [#w03b4de4]
-JDKインストール(自分のプロンプトでjavac -versionコマンドが実行できれば問題ないです。)
--http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

-javacコマンドへのpathの通し方、設定の仕方
--win8
--http://blog.yoshikawa.64kb.net/2014/01/12/1385
--win10
--http://www.programing-style.com/java/java-jdk-install-windows10/

-コマンドプロンプトの開き方。windows10
--http://pc-karuma.net/windows10-open-command-prompt-window/

-javacで文字化けが起こる場合
--javac -encoding utf8 Hello.java
--コマンド履歴は上矢印

-講義資料&ソースコード
--https://drive.google.com/open?id=0B0sFWZsSyPZGTlVZYUh6VE1QREE

-課題(第1回) 次回9月20日までに行っておくこと。開発環境を整える。
 Eclipseのインストール できれば最新版に (一人で問題なく対応できるひとはIntelliJ IDEA でもかまいません。第一回講義の最後の記載。)
 Eclipse 4.6 Neon ネオン SR0 for Windows ベース 
 Java 64bit full edition for windows

--http://mergedoc.osdn.jp/
---ダウンロードしたファイルはjarコマンドで解凍するとうまく解凍できます。
---jar xvf pleiades-e4.6-java-jre_20160622.zip

//-授業中に出した課題を授業フォルダにいれておくこと

-for mac 日本語環境(未確認自己責任でお願いします。)
--http://qiita.com/Chrowa3/items/3d43667da2e3c25f7797
--http://tech.pjin.jp/blog/2016/08/02/tips_mac_eclipse_neon_ja/
--Eclipse本体
--https://eclipse.org/downloads/
--インストーラからeclipse IDE for java developersをインストールしてください。

--pleiades plugin for mac and linux
--https://osdn.jp/projects/mergedoc/downloads/66003/pleiades_1.7.0.zip/


-IntelliJ IDEAをEclipseの替わりに使いたい人向け
--Eclipseより人気の開発環境です。
--https://github.com/cpslab/NetworkPrograming
--http://qiita.com/opengl-8080/items/108102d692b49f804dbd



*第2回 9/19 [#i9b89a92]
--(オブジェクト指向プログラミングでSをとった事がある人 || あるいは自分の中では間違えなくSの感触であったがAの単位だった人)&&プログラムに自信があるひと。
--第2回、第3回、第4回は出席をとりませんので本ページで授業資料をキャッチアップするだけでかまいません。第5回から出席してください。

*全体スケジュール [#l9650558]
 (1)9/12 第1回 Java理解度チェック 
 (2) 第2回 Javaプログラミング基礎1
 (3) 第3回 Javaプログラミング基礎2 TCP/IPの復習  TCPサーバ   
 (4) 第4回 TCPクライアント/サーバ通信 チャットプログラム 
 (5) 第5回 UDP通信   
 (6) 第6回 中間学力考査 (持ち込み不可 紙提出) 
 (7) 第7回 スレッド基礎 サーバのスレッド化 マルチスレッド 
 (8)第8回 デザインパターン ファクトリメソッド シングルトン 
 (9)第9回 ノンブロッキングI/O   Javaプログラミング応用 
 (10)第10回 マルチスレッド スレッドプール 
 (11)第11回 Webクライアント  
 (12)第12回 WEBサーバ,プロジェクト設計 
 (13)第13回 プロジェクト実装1 
 (14)第14回 プロジェクト実装2 
 (15)第15回 学力考査 (持ち込み可 プログラミング提出) 

//-[[2016NetworkProExam]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS