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

科目基礎情報

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

到達目標

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

ルーブリック

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

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

教育方法等

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

授業の属性・履修上の区分

アクティブラーニング
ICT 利用
遠隔授業対応
実務経験のある教員による授業

授業計画

授業内容 週ごとの到達目標
後期
3rdQ
1週 ネットワークプログラムの基本構成 ネットワークプログラムの基本構成を理解する。D2:1-3
2週 ソケット ネットワークプログラミングにおけるソケットの役割を理解する。D2:1-3
3週 ソケット関連システムコール ネットワークプログラミングで使用する各種ソケット関連システムコールの役割を理解する。D2:1-3
4週 C言語の復習(ポインタ) C言語のポインタを用いたプログラムを書ける。D2:1-3, D3:1,2
5週 C言語の復習(構造体) C言語の構造体を用いたプログラムを書ける。D2:1-3, D3:1,2
6週 関数引数の値渡しとアドレス渡し 関数の引数を値渡しにする場合とアドレス渡しにする場合の違いを理解する。D2:1-3
7週 文字列処理 C言語における文字列の表現方法を理解する。D2:1-3
8週 中間試験
4thQ
9週 文字列処理演習 C言語を用いて文字列を処理するプログラムが書ける。D2:1-3, E3:1-3
10週 プロセスの状態遷移 ソケット通信実行時のプロセスの状態遷移を理解する。D2:1-3
11週 クライアント/サーバプログラム クライアント/サーバプログラムの構成と挙動を理解する。D2:1-3, E3:1-3
12週 ネットワークプログラミング演習 TCPソケットを用いたネットワークプログラムを書くことができる。D2:1-3, E3:1-3
13週 ネットワークプログラミング演習 TCPソケットを用いたネットワークプログラムを書くことができる。D2:1-3, E3:1-3
14週 ネットワークプログラミング演習 TCPソケットを用いたネットワークプログラムを書くことができる。D2:1-3, E3:1-3
15週 UDPプログラミング TCPとUDPの違いを理解する。また,UDPを用いたプログラムの挙動を説明できる。D2:1-3
16週 試験問題の解答

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

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

評価割合

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