[村川猛彦]

情報ネットワーク演習(村川担当分)

対象学年・日程など (1月17日改訂)
  • この科目は今年度,第6セメスターの科目となります.2年生はこの科目ではなく,同じ曜日・時限に開講される情報通信システム実験を受講するようにしてください.
  • 村川担当の演習実施日は以下の予定です.いずれも木曜日の13:10〜16:20です.部屋は,6階演習室(A601)です.
    • 2012年10月: 4, 11, 18, 25日
    • 2012年11月: 1, 8, 15日
  • 2013年1月24日(木)の授業では,A601にいるようにします.面談のほか,村川担当分の課題について質問を受け付けます.
  • 面談ならびに作業記録提出の期限は2013年1月31日(木) 16:30とします.その日の19:30すぎに回収したファイルを,成績評価に使用します.
授業実施にあたっての注意
  • 村川担当の課題を通じて,「通信プログラム」について学びます.今年度は,以下のとおりです.
    • 課題1: ソケット通信
    • 課題2: Apache HTTP Serverのビルド
    • 課題3: Webアプリケーション(クライアント)
    • 課題4: Webアプリケーション(サーバ)
  • Linuxを使用します.授業開始時に,Vine Linuxを起動させ,ログインしておいてください.
  • 答案はメール提出ではなく,指定の位置にファイルを置くものとします.毎週木曜日の19:30すぎに収集します.パス名やパーミッションが間違っていると,回収・採点できないので,各課題の要領を守ってください.
    • 回収対象の通常ファイルのパーミッションは604 (ls -lを実行したとき「-rw----r--」と表示),ディレクトリと実行可能な通常ファイルのパーミッションは705 (同「drwx---r-x」)としてください.パーミッションを変更するには,chmodコマンドを使用(忘れた人は復習)してください.
  • 演習時間中に作業記録をつけてもらいます(用紙は配付します).筆記用具を用意しておいてください.A4のクリアファイルやクリップボードがあれば,なおよしです.いくつかの課題で,面談をしますので,その際に持参してください.
  • ファイル回収状況のページを設置しました.指示通りにファイルを作ったのに,学生番号や○印のない人は,ディレクトリ名・ファイル名とパーミッションを見直してください.それでも問題ないという人は,連絡ください.
  • メールで相談したい人,授業時間外の面談を希望する人は,takehiko@sys.wakayama-u.ac.jp まで
課題1
実施内容と意図  ペアとなって動作する通信プログラムのデバッグおよび等価な書き換えを行います.
 この課題を通じて,クライアント/サーバモデルに基づく通信の実現方法を学びます.
使用可能なファイル ~takehiko/network-enshu2012/1/server0.c:サーバプログラム
~takehiko/network-enshu2012/1/client0.c:クライアントプログラム(バグあり)
~takehiko/network-enshu2012/1/server.c:サーバプログラム(不完全)
~takehiko/network-enshu2012/1/client.c:クライアントプログラム(不完全)
課題1-1server0.c および client0.c がペアとなって動作するよう,client0.c を修正しなさい.
課題1-2server.c および client.c に関数を定義し,それぞれ server0.c および(課題1-1で修正した) client0.c と同じ動作になるようにしなさい.
面談課題1-1および課題1-2を終えた時点で,面談をします.
回収対象ファイル ~/network-enshu2012/1/client0.c
~/network-enshu2012/1/server.c
~/network-enshu2012/1/client.c
キーワード(自習すること)システムコール,低水準入出力,ディスクリプタ,クライアントサーバモデル,ホスト名とIPアドレス,ポート番号,名前解決(DNS,正引き・逆引き)
課題2
実施内容と意図  Apache HTTP Serverのビルドを行います.
 この課題を通じて,HTTPサーバの構成要素と,オープンソースソフトウェアの活用方法を学びます.
使用可能なファイル ~takehiko/network-enshu2012/2/httpd-2.2.23.tar.gz:Apacheのソースファイル
~takehiko/network-enshu2012/2/welcome.cgi:CGIプログラム
課題2-1~/network-enshu2012/2/httpd 以下の適切なディレクトリに実行プログラムなどが配置されるよう,ビルドしなさい.
課題2-2シェルスクリプトファイル build.sh を作成し,このコマンドを実行すれば,課題2-1の内容(ビルドなど)を行うようにしなさい.
課題2-3welcome.cgiをCGIプログラムとして,課題2-1または課題2-2でビルドしたサーバ上で動かしなさい(この課題は成績評価の対象ではありませんが,課題4を実施する際の前提となります).
面談面談はしません.教員巡回中に質問をすることがあります(成績や,課題3の進行には影響しません).
回収対象ファイル ~/network-enshu2012/2/build.sh
キーワード(自習すること)HTTP,オープンソースソフトウェア,Apache,ビルド,tar.gz,configure,make,シェルスクリプト,設定ファイル,管理者(root),特権ポート,CGI (Common Gateway Interface)
課題3
実施内容と意図  検索プログラムのデバッグおよび機能拡張を行います.
 この課題を通じて,HTML,XML,JavaScriptを連携させたWebアプリケーション(クライアント側)の開発手法を学びます.
使用可能なファイル ~takehiko/network-enshu2012/3/index.html:検索プログラムのHTMLファイル
~takehiko/network-enshu2012/3/search.js:検索プログラムのJavaScriptファイル
~takehiko/network-enshu2012/3/jkl-parsexml.js:XML解析ライブラリ
~takehiko/network-enshu2012/3/words_r.xml.gz:r~zから始まる英単語リスト
課題3-1このプログラムは動作に時間がかかりすぎる.円滑に動作するよう,search.jsを修正しなさい.
課題3-2他のファイル名またはURLの(同じ形式の)XML文書からでも検索できるよう,index.html および search.js を修正しなさい.
課題3-3同じ形式のXML文書を作成し,検索できることを確かめなさい.ファイル名は mylist.xml とし,item数は200以上とすること.
面談課題3-1および課題3-2を終えた時点で,面談をします.
回収対象ファイル ~/network-enshu2012/3/index.html
~/network-enshu2012/3/search.js
~/network-enshu2012/3/mylist.xml
キーワード(自習すること)HTML,JavaScript,XML,DOM (Document Object Model)
課題4
実施内容と意図  Webアプリケーションを開発します.目的および意図は自分の言葉で表すこと.
使用可能なファイルなし
課題4-1課題3-1で修正をしても,ページを開くとき(またはリロードしたとき),利用可能になるまで時間がかかる.この不具合は,サーバと通信することで解消できる.検索プログラムの概略(サーバ,クライアント,通信)を設計しなさい.
課題4-2課題4-1で行った設計に基づき,実際にアプリケーションを作成しなさい.動作手順などは report.txt に記述すること.また,動作に必要なファイル名のリストを files.txt に書き,各ファイルは回収対象ディレクトリにコピーすること.
面談1課題4-1を終えた時点で,面談をします.概略を,活動記録の裏面またはノートなどに手書きし,持参すること.
実施しません.
面談2課題4-2を終えた時点で,面談をします.
実施しません.
回収対象ファイル ~/network-enshu2012/4/report.txt
~/network-enshu2012/4/files.txt
回収しません.
キーワード自習し,実施に重要なものを選んで report.txt に記載すること.
成績評価方法の変更について

課題4について,みなさんの状況が思わしくないので,がんばっている学生には申し訳ないけれど,以下のとおり採点方法を変更します.

  • 課題4は基本的に採点の対象としません.ファイル回収も行いません.
    • もし,これまでに実施していたら,作業記録に書き,作成したファイルを~/network-enshu2012/4に置いてください.加点要素とします.
    • 成績と関係なく,課題4の面談をしてほしいという学生は,相談ください.
  • 課題3までの面談をに合格(マイナーでもかまいません)し,前半課題を終了するという人は,作業記録を,学科事務室横のボックスに提出してください.
  • 「課題3までの各課題に取り組み所定のファイルを作成した」「面談に合格した(課題1および課題3)」「作業記録を提出した」の3点を満たし,いずれの内容も十分なものであれば,村川担当分は満点(50点)とします.
    • 合格(マイナー)や,不備のあるファイル,14コマ(週2コマ×7週)かけて実施したことが読み取れない作業記録は,減点します.
    • 回収対象ファイルの名前やパーミッションが不適切だと,回収の対象外となるので,各課題の要領,およびファイル回収状況をよく見るようにしてください.

面談および作業記録提出の期限,ならびに最終的なファイル回収の日時は,塚田先生と協議して決めますが,1月下旬または2月上旬の予定です.前半も後半も,課題をしっかり進めてください.

授業中にも言いましたが,今年度は課題設定のミスがありました.重ねてお詫びを申し上げます.次年度,演習内容の改善を図ることにします.

リンク

takehiko@sys.wakayama-u.ac.jp
Last modified: Thu Jan 17 11:20:55 JST 2013