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

科目基礎情報

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

到達目標

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

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1ポインタ、構造体、関数を用いたC言語プログラムを書くことができる。ポインタ、構造体、関数を用いたC言語プログラムの内容を説明できる。簡単なC言語のプログラムを作成できない。
評価項目2ソケット通信で用いられる各種システムコールの挙動を説明できる。ソケット通信の概要を説明できる。ソケット通信の概要を説明できない。
評価項目3独自のプロトコルを定義して、クライアント/サーバ型のプログラムを作成できる。与えられたクライアント/サーバ型のプログラムの挙動を説明できる。簡単なクライアント/サーバ型のプログラムを書くことができない。
評価項目4TCPを用いたプログラムとUDPを用いたプログラムの違いを説明できる。TCPとUDPの違いを説明できる。TCPとUDPの違いを説明できない。
評価項目5ソケット通信時のプロセスの状態遷移を説明できる。プロセスの状態遷移とは何かを説明できる。プロセスが状態遷移する仕組みや理由を説明できない。
評価項目5C言語を用いて文字列処理ができる。C言語での文字列の表現方法を知っている。C言語での文字列の表現方法がわからない。

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

教育方法等

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

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 授業ガイダンス
2週 ネットワークプログラムの基本構成 ネットワークプログラミングの基本構成を理解する。D2:1-3
3週 ソケット ネットワークプログラミングにおけるソケットの役割を理解する。D2:1-3
4週 ソケット関連システムコール ネットワークプログラミングで使用する各種ソケット関連システムコールの役割を理解する。D2:1-3
5週 ポインタ ネットワークプログラミングで必要となるC言語のポインタ操作ができる。D2:1-3, D3:1,2
6週 ポインタ演習 C言語のポインタを用いたプログラムを書ける。D2:1-3, D3:1,2
7週 構造体演習 C言語の構造体を用いたプログラムを書ける。D2:1-3, D3:1,2
8週 中間試験
2ndQ
9週 試験問題の解答と解説
10週 分割コンパイルとヘッダファイル C言語での分割コンパイルの方法とヘッダファイルの役割を理解する。D2:1-3
11週 関数引数の値渡しとアドレス渡し 関数の引数を値渡しにする場合とアドレス渡しにする場合の違いを理解する。D2:1-3
12週 コマンドライン引数 C言語でコマンドライン引数を持ったプログラムの作成方法を理解する。D2:1-3
13週 関数作成演習 C言語で関数(サブルーチン)を作成できるようになる。D2:1-3, D3:1,2, E3:1-3
14週 アドレス構造体,エンディアン ソケット通信で用いられるアドレス構造体の内部構成と値の指定方法を理解する。また,エンディアンの違いを説明できる。D2:1-3
15週 アドレス構造体とシステムコール アドレス構造体を引数にとる関数の呼び出し方法を理解する。D2:1-3
16週 試験問題の解答と解説
後期
3rdQ
1週 文字列処理 C言語における文字列の表現方法を理解する。D2:1-3
2週 文字列処理 C言語で文字列処理を行う場合に,配列を使う方法とポインタを使う方法の違いを理解する。D2:1-3
3週 文字列処理演習 C言語を用いて文字列を処理するプログラムが書ける。D2:1-3, E3:1-3
4週 文字列処理演習 C言語を用いて文字列を処理するプログラムが書ける。D2:1-3, E3:1-3
5週 プロセスの状態遷移 ソケット通信実行時のプロセスの状態遷移を理解する。D2:1-3
6週 クライアントプログラム クライアントプログラムの構成と挙動を理解する。D2:1-3, E3:1-3
7週 サーバプログラム サーバプログラムの構成と挙動を理解する。D2:1-3, E3:1-3
8週 中間試験
4thQ
9週 試験問題の解答と解説
10週 ネットワークプログラミング演習 TCPソケットを用いたネットワークプログラムを書くことができる。D2:1-3, E3:1-3
11週 ネットワークプログラミング演習 TCPソケットを用いたネットワークプログラムを書くことができる。D2:1-3, E3:1-3
12週 ネットワークプログラミング演習 TCPソケットを用いたネットワークプログラムを書くことができる。D2:1-3, E3:1-3
13週 ネットワークプログラミング演習 TCPソケットを用いたネットワークプログラムを書くことができる。D2:1-3, E3:1-3
14週 マルチキャストとブロードキャスト ユニキャストと,マルチキャスト/ブロードキャストの違いを理解する。D2:1-3
15週 UDPプログラミング TCPとUDPの違いを理解する。また,UDPを用いたプログラムの挙動を説明できる。D2:1-3
16週 試験問題の解答と解説

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

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

評価割合

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