ネットワークプログラミング

科目基礎情報

学校 香川高等専門学校 開講年度 平成30年度 (2018年度)
授業科目 ネットワークプログラミング
科目番号 2051 科目区分 専門 / 選択
授業形態 授業 単位の種別と単位数 履修単位: 2
開設学科 通信ネットワーク工学科(2018年度以前入学者) 対象学年 5
開設期 通年 週時間数 2
教科書/教材 小高知宏 監訳 「TCP/IP ソケットプログラミング C言語編」 オーム社
担当教員 高城 秀之

到達目標

本授業は,現在のインターネットを支える技術であるTCP/IPやソケットに関する基礎知識を習得した上で,学生自身がそれらの技術を用いた基本的プログラムを開発する能力を身に付けることを目標とする。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1ポインタ、構造体、関数を用いたC言語プログラムを書くことができる。ポインタ、構造体、関数を用いたC言語プログラムの内容を説明できる。簡単なC言語のプログラムを作成できない。
評価項目2ソケット通信で用いられる各種システムコールの挙動を説明できる。ソケット通信のしくみを説明できる。ソケット通信のしくみを説明できない。
評価項目3独自のプロトコルを定義して、クライアント/サーバ型のプログラムを開発できる。与えられたプロトコルを実装したクライアント/サーバ型のプログラムを開発できる。簡単なクライアント/サーバ型のプログラムを書くことができない。

学科の到達目標項目との関係

教育方法等

概要:
低学年で学んだC言語を用いてソケット通信のプログラムを開発する。主にTCPを対象とするが、UDPとの違いや、同期型と非同期型の違いや、ユニキャストとマルチキャストの違いなども説明する。授業の後半では、教科書のプログラムを応用し、独自のプロトコルを各自で定義し、それを実装したクライアント・サーバ型のプログラム開発を行う。
授業の進め方・方法:
本授業では前期は主に,ネットワークプログラミングに関する専門用語や基本技術について講義する。後期は,前期のTCPソケットに続いてUDPソケットについて学んだ後,ネットワークプログラミングに必要なC言語の復習を行う。続いて前期で学んだ知識をもとにソケットを用いたプログラム開発を行い理解を深める。
注意点:
本科目の履修には、4年次のコンピュータネットワークIの履修が必要。
オフィス・アワー(月曜 16:00~17:00)

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 授業ガイダンス
2週 OSI参照モデル OSI参照モデルの各層の役割を言える。D3:1,2
3週 TCP/IP TCP/IPの各層の役割を言える。D2:1-3
4週 インターネットとTCP/IPプロトコル インターネットでTCP/IPがどのように使われているか理解する。D2:1-3
5週 パケット,アドレス,プロトコル パケット,アドレス,プロトコルの用語の意味を言える。D2:1-3
6週 クライアントとサーバ クライアント/サーバモデルの概要を説明できる。D2:1-3
7週 インターネット インターネット上の各種アプリケーションの概要を説明できる。D2:1-3
8週 中間試験
2ndQ
9週 試験問題の解答
10週 ソケットの作成と破棄 ソケットとは何かを説明できる。D2:1-3
11週 TCPソケット TCPソケットの構造を説明できる。D2:1-3
12週 UDPソケット UDPソケットの構造を説明できる。D2:1-3
13週 データのエンコード 通信時にデータがどのようにエンコードされるかを言える。D2:1-3
14週 エンディアン ネットワークバイトオーダを説明できる。D2:1-3
15週 フレーミング パケットのフレーム構造を言える。D2:1-3
16週 試験問題の解答
後期
3rdQ
1週 UDPとTCPの違い UDPとTCPの違いを説明できる。D2:1-3
2週 ユニキャストとマルチキャスト ユニキャストとマルチキャストの違いを説明できる。D2:1-3
3週 UDPによるメッセージの送受信 UDPを用いた通信の概要を説明できる。D2:1-3
4週 ポインタ,構造体 ポインタと構造体を用いたプログラム説明できる。D2:1-3
5週 システムコールとライブラリ関数 ソケット通信で用いられるシステムコールを理解する。D2:1-3
6週 文字列処理 C言語によける文字列処理の方法を理解する。D2:1-3
7週 文字列処理 文字列処理のプログラムを書くことができる。D2:1-3
8週 中間試験
4thQ
9週 試験問題の解答
10週 クライアントプログラミング クライアント側プログラムの構造を説明できる。D2:1-3, E3:1-3
11週 クライアントプログラミング クライアント側プログラムを書くことができる。D2:1-3, E3:1-3
12週 サーバプログラミング サーバ側プログラムの構造を説明できる。D2:1-3, E3:1-3
13週 サーバプログラミング サーバ側プログラムを書くことができる。D2:1-3, E3:1-3
14週 独自プロトコルの設計と実装 独自のプロトコルを定義することができる。D2:1-3, E3:1-3
15週 独自プロトコルの設計と実装 独自のプロトコルを実装したプログラムを書くことができる。D2:1-3, E3:1-3
16週 試験問題の解答

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週

評価割合

試験発表相互評価態度ポートフォリオレポート合計
総合評価割合85000015100
基礎的能力0000000
専門的能力85000015100
分野横断的能力0000000