到達目標
情報通信ネットワークの普遍的な考え方・設計について、これまでに学習してきた知識を組み合わせた例題や具体的応用例を多く取り入れて講義する.
現在のインターネットに使用されているイーサネットとTCP/IPに関しては実際にネットワークに対して働きかける演習を取り入れて理解を深める.
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
評価項目1 | 情報通信ネットワークの普遍的な考え方・設計について説明できる | 情報通信ネットワークの普遍的な考え方・設計について知っている | 情報通信ネットワークの普遍的な考え方・設計について知らない |
評価項目2 | C言語にて、TCP/IPのネットワークプログラミングができる | C言語にて、TCP/IPのネットワークプログラミングを知っている | C言語にて、TCP/IPのネットワークプログラミングを知らない |
学科の到達目標項目との関係
学習・教育到達度目標 RB2
説明
閉じる
JABEE JB3
説明
閉じる
教育方法等
概要:
情報通信ネットワークの普遍的な考え方・設計について、これまでに学習してきた知識を組み合わせた例題や具体的応用例を多く取り入れて講義する.
尚、全体を通して企業等の実務経験者が指導を行う。
授業の進め方・方法:
現在のインターネットに使用されているイーサネットとTCP/IPに関しては実際にネットワークに対して働きかける演習を取り入れて理解を深める.
注意点:
この科目は学修単位科目「B」です。授業外学修の時間を含めます。
毎回、授業外学修のための課題を課します。
本科目は企業で情報ネットワークを担当していた教員が、その経験を活かし、ネットワークプログラミングについて講義形式で授業を行う。
本科(準学士課程)の学習教育目標 : RB2(◎)
環境生産システム工学プログラムの学習教育目標:JB3(◎)
関連科目:オペレーティングシステム(本科3年),計算機構成論Ⅱ(本科4年),通信システム(本科5年) ,情報理論Ⅱ(本科5年),情報通信システム(生産システム工学専攻2年)
学習教育目標の達成度評価方法:2回の試験の平均を総合評価とする.
但し、総合得点50点以上60点に満たないものは、10点満点の課題もしくは再試を課す.
学習教育目標の達成度評価基準:総合評価60点以上を合格とする.
尚、全体を通して企業等の実務経験者が指導を行う。
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
後期 |
3rdQ |
1週 |
概要,Linux環境準備 |
シラバス説明,およびハンズオン環境構築.WindowsパソコンでLinuxを使用するいくつかの方法を理解する.(VirtualBox,Windows Sub system)
|
2週 |
Linux,システムコール,I/O |
Linux上のプログラミングでの,ライブラリとシステムコールの違いを理解する.またLinuxにおける入出力の抽象化について簡単なプログラムを作成しながら理解を深める.
|
3週 |
Ethernet,IP,TCP,HTTP |
各プロトコルを利用するにあたり,情報ネットワーク基礎で学んだ概念を復習する.
|
4週 |
ソケットプログラミング |
ソケットとはなにかを理解して,socket,bind,listen,accept,connectなどのシステムコールを使えるようになる.
|
5週 |
TCPサーバ・クライアントプログラミング |
TCPを使うプログラミング時の留意点,TCP自体の特性を理解する.誤った使い方による通信の不具合を軽減させる技術を習得する.
|
6週 |
TCP並行サーバ |
並行化しなければならない理由,およびプロセスとスレッドの特性の差異を理解して適切な方式を選択できるための知識を習得する.またUNIXにおけるinetデーモンを使った簡易的な並行サーバの作り方も理解する.
|
7週 |
UDPプログラミング |
UDPの特性と,どのような場面で利用すべきかを理解する.UDPを使ったネットワーク性能測定ツールを作成することで,UDPの理解を深める.
|
8週 |
中間試験 |
|
4thQ |
9週 |
仮想マシンとネットワーク |
VirtualBoxを使い,1つのPC内に複数仮想マシンを生成する.この環境で,仮想マシン間に複数のインタフェースを生成し, 一つのインタフェースに複数のIPアドレスを割り当てて,複雑で大規模なネットワークの設定の要領を理解する.複数のIPアドレスをもつサーバで特定のIPアドレスだけで待ち受けるTCPサーバのプログラミング技術も習得する.
|
10週 |
イベントドリブンネットワークプログラミング |
同時に数千コネクションを待ち受ける大規模なサーバを開発するための技法としてイベントドリブンを理解する.Linuxのlibeventライブラリの使い方とプログラミング方法を習得する.
|
11週 |
HTTPサーバの実装 |
HTTPプロトコルを処理する簡易なプログラムを作成して,ブラウザからアクセスして通信できることを確認する.HTTPプロトコルおよびHTTPヘッダの解析および生成について理解する.
|
12週 |
HTTPSサーバの実装 |
OpenSSLを使って証明書を作成し,前週作成したHTTPサーバにTLS層を挿入することでHTTPSサーバとする方法を習得する.ブラウザからアクセスすると鍵マークがついたHTTPSとして動作していることを確認する.HTTPSサーバの仕組みについて理解する.
|
13週 |
Webフレームワーク1 |
多くの動的サーバで採用されているJava+tomcatによるサーブレットフレームワークについて,開発環境であるeclipseを使ってアプリケーションを実装する.ソースコードは教材として準備されるので,それらを使ってWebサーバを構築する方法を習得する.
|
14週 |
Webフレームワーク2 |
近年広く使われてきたpyhton+Djangoフレームワークについて,開発環境であるPyCharmを使ってアプリケーションを実装する.特にORマッパーでのRDBMSへのアクセスでは,データベースを意識しないプログラミングになっていることを理解する.ソースコードは教材として準備されるので,それらを使ってWebサーバを構築する方法を習得する.
|
15週 |
期末試験 |
|
16週 |
まとめ |
解答とまとめ
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | ソフトウェア | コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 4 | |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 4 | |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。 | 4 | |
コンピュータシステム | 集中処理システムについて、それぞれの特徴と代表的な例を説明できる。 | 4 | |
分散処理システムについて、特徴と代表的な例を説明できる。 | 4 | |
情報通信ネットワーク | プロトコルの概念を説明できる。 | 4 | |
プロトコルの階層化の概念や利点を説明できる。 | 4 | |
ローカルエリアネットワークの概念を説明できる。 | 4 | |
インターネットの概念を説明できる。 | 4 | |
TCP/IPの4階層について、各層の役割を説明でき、各層に関係する具体的かつ標準的な規約や技術を説明できる。 | 4 | |
主要なサーバの構築方法を説明できる。 | 4 | |
情報通信ネットワークを利用したアプリケーションの作成方法を説明できる。 | 4 | |
有線通信の仕組みと規格について説明できる。 | 4 | |
基本的なルーティング技術について説明できる。 | 4 | |
基本的なフィルタリング技術について説明できる。 | 4 | |
評価割合
| 試験 | レポート | 合計 |
総合評価割合 | 100 | 0 | 100 |
基礎的能力 | 30 | 0 | 30 |
専門的能力 | 70 | 0 | 70 |
分野横断的能力 | 0 | 0 | 0 |