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

科目基礎情報

学校 仙台高等専門学校 開講年度 令和04年度 (2022年度)
授業科目 ネットワークプログラミング
科目番号 0107 科目区分 専門 / 必修
授業形態 授業 単位の種別と単位数 学修単位: 2
開設学科 総合工学科Ⅰ類 対象学年 4
開設期 後期 週時間数 2
教科書/教材 教科書:「TCP/IPソケットプログラミング C言語編」Michael J. Donahoo, Kenneth L. Calvert(Ohmsha)
担当教員 矢島 邦昭

到達目標

これまで学習してきたプログラミング言語,ネットワークの知識を活用し,ソケット通信などのTCP層のプロトコルに則った,サーバ,クライアントのシステムを作成する.

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
TCP/IPの理解Webサーバの動作を理解し初歩的なWebサーバを実装する.Webサーバの動作を理解し,Webサーバについて説明する.Webサーバの動作などについて,理解できていない.
サーバ構築クライアントとサーバプログラムを実装し,独自のサービスを構築する.クライアントとサーバの機能について,理解し説明できる.クライアントとサーバの機能について,説明ができない.
ソケット通信の理解ソケット通信を用いたネットワークプログラムを開発ができる。ソケット通信を用いたネットワークプログラムが理解できる。ソケット通信を用いたネットワークプログラムが理解できない。

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

JABEE (A) 実践技術者としての高度でかつ幅広い基本的能力・素養

教育方法等

概要:
I.ネットワーク上のプロセス間通信と,TCPのポートやIPアドレスについて理解し,II.Webサーバとクライアントプログラムを自ら実装することにより,それらの動作原理について理解する.
授業の進め方・方法:
【事前学習】
シラバスの内容を確認し、関連する内容を調査し,理解をすすめておくこと。
【事後学習】
授業中に提示された課題に取り組み,自分自身での調査や実習を行うこと。

C言語による開発環境にて,ソケット通信のプログラミングを行い,自らの手でWebサーバとクライアントプログラムを実装する.授業は講義と実習の時間を設け,実習時間で,グループによるサービスの開発と実装を行う.
レポート(50%)と発表(50%)で評価する
注意点:
この科目は「コンピュータリテラシ」「ネットワーク基礎」,「プログラミング基礎」,「プログラミング」を基礎とする。
またインターネットの仕組み,特にウェブの仕組みを正しく理解していなければならない。
また,サーバなどを実装するため,いままで学んできた知識を活用する必要がある.
具体的には,どのようなことが,どのような順番で実際に起こっているのかを理解することを心がけることが重要である。
たとえ見た目上,よいものを作ることができても,その背景で何が起こっているのか(アルゴリズム)を正しく説明できないものは評価しない。

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

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

授業計画

授業内容 週ごとの到達目標
後期
3rdQ
1週 Ⅰ. ガイダンス
コンピュータネットワーク,コンピュータネットワークの目的,ネットワークの形状,情報の通信モデル,コンピュータネットワークの説明
コンピュータネットワーク
コンピュータネットワークの基本概念,目的を理解できる。
ネットワーク接続ツールについて説明できる。
2週 Ⅰ. TCP/IPによるネットワーク
階層モデル,ネットワークプロトコル,トランスポート層へのインタフェース
ネットワーク上のプロセス間通信
プロセス間通信について説明できる。
ソケット,プロトコルについて説明できる。
3週 Ⅰ. ネットワーク上のプロセス間通信
プロセスとプロセス間通信,ファイルディスクリプタ,ソケットに関する説明
TCP/IPによるネットワーク
LANとワークステーションの構成概念を理解できる。
プロトコルの働きを理解し,具体的機能を説明できる。
4週 Ⅰ. 1対1通信プログラム
1対1通信専用ライブラリ,同期通信,非同
期通信に関する説明
1対1通信プログラム
1対1通信専用ライブラリの概要について理解できる。
同期通信,非同期通信について説明できる。
5週 Ⅰ. 1対1通信プログラムの実装 サーバアプリケーションのプログラムを実装できる。
6週 Ⅰ. 1対n通信プログラム
1ポートによる多重コネクション,サーバの受け付け動作,その応用プログラムの説明
1対n 通信プログラム
1ポートによる多重コネクションについて理解できる。
サーバの受付動作を説明できる。
7週 Ⅰ. 1対nプログラムの実装1 複数クライアントを想定したサーバプログラムを実装できる。
8週 Ⅰ. 1対nプログラムの実装2 サーバへの引数の追加による通信プログラムの改良を行う。
4thQ
9週 Ⅱ.ウェブサーバ Webサーバについての基礎について理解し,Webサーバがどのように動くのかを説明できる。
10週 Ⅱ. Webサーバの実装1 Webサーバの実装を行う。
11週 Ⅱ. Webサーバの実装2 前週で行ったWebサーバの実装の続きを行う。
12週 Ⅱ.ブラウザ ブラウザの動作について理解し,作成したwebサーバのプログラムがブラウザによってどのように処理されるのかを学ぶ。
13週 Ⅱ. Webトラッキング Wiresharkなどを利用し,TCP/IPの情報伝達について,調査できる.
さらに,サーバ,クライアント間の通信を知ることで,ネットワークプログラミングのデバッグを行える。
14週 III.セキュリティに関するアクティブラーニング1 世界で発生しているセキュリティインシデントについてグループで調査し、その原因等について議論し、問題につてまとめる。
15週 III.セキュリティに関するアクティブラーニング2 前週にまとめた問題に対する解決方法を基に、プロジェクトとして立ち上げるまでのまとめを作成し、全体共有する。
16週 Ⅱ. まとめ,講評

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

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野情報通信ネットワークプロトコルの概念を説明できる。3
プロトコルの階層化の概念や利点を説明できる。3
ローカルエリアネットワークの概念を説明できる。3
インターネットの概念を説明できる。3
TCP/IPの4階層について、各層の役割を説明でき、各層に関係する具体的かつ標準的な規約や技術を説明できる。3
主要なサーバの構築方法を説明できる。3
情報通信ネットワークを利用したアプリケーションの作成方法を説明できる。4
ネットワークを構成するコンポーネントの基本的な設定内容について説明できる。3
基本的なルーティング技術について説明できる。4
基本的なフィルタリング技術について説明できる。4

評価割合

レポート発表合計
総合評価割合5050100
基礎的能力301040
専門的能力103040
分野横断的能力101020