中正大學課程大綱
課程名稱(中文): 網路程式設計 開課單位: 雲端計算與物聯網數位學習碩士在職專班(Master Program of E-Learning for Cloud Computing and Internet-of-Things)
課程名稱(英文) Network Programming 課程代碼 411A006_01
授課教師: 潘仁義 學分數 3
必/選修 選修 開課年級 碩士在職專班
先修科目或先備能力:
須修習電腦網路,須具備在Unix系統上撰寫及編譯C語言程式的經驗。
課程概述:
課程宗旨
培養學生之網路程式實作經驗,並具備學習新的網路技術與協定能力。

網際網路(Internet)的發展以重組了世界的面貌。網路的行程是以全球資源為力量,不僅徹底動搖由固定空間領域為基礎的國家會或任何形式的組織,也提供全新的機制突破時空限制,讓散布各處的資源得以整合運用來建立嶄新架構。網路是資訊時代最重要的基礎建設,熟練掌握網路編程方法並時刻把握最新前沿動態已是當今程式設計師們的共識。網路程式設計介紹網路城市之基本運作架構與相關程式語言及技術實作以及使用 C++進行 Socket 程式設計的方法,在本課程會一一說明。
同學在修完本課程之後應能夠對網際網度程式設計有理論基礎和實際開發的實力。

課程目標
(1) 能了解網際網路程式設計的概念與網際網路程式設計環境
(2) 能說明目前正使用及未來可能成功的網際網路協定運作原理
(3) 能指出在作業系統及應用程式中如何被實作
(4) 能具備學習新的網路技術與協定之能力

教授簡介
姓名:潘仁義
經歷:中正大學通訊系副教授
學歷:國立清華大學資訊工程博士
個人網頁:http://140.123.92.80/index.php
課程進行方式
混合教學(blended learning):12 小時面授(期初、期中各一次、期末兩次,每次 3 小時)、42 小時線上學習
線上辦公室時間:週六 09:10~12:00

(1) 程式作業八次佔40%。
(2) 期末專案作業(project)一次佔18%。
(3) 期中考(現場筆試)一次,佔8%。
(4) 非同步參與評量,佔18%。
(5) 非同步線上測驗評量,佔4%。
(6) 上線學習歷程,佔2%。
(7) 同步參與,佔10%。

軟硬體需求
因為學習平台是以WEB-Based來設計,故不論是教師或學員均使用一般具有WWW瀏覽器
最佳瀏覽尺寸請設為1024*768以上
網路需求:寬頻(觀看線上教學才不至於lag)
軟體需求:OS:WindowsXP
Web Browser:IE 6.0 or FireFox 1.xx
硬體需求:RAM:128MB以上即可 建議:256MB以上
CPU:800MHz以上即可
螢幕:15” 以上即可
聲音:喇叭或是耳機
課程介面說明
課程介面使用說明文件版提供下載(請至Ecourse2 使用教學觀看)
學生介面使用說明網頁操作版(請至Ecourse2 使用教學觀看)
教材版權宣告
本課程數位教材屬國立中正大學所有,任何人均不得任意修改、重製、散佈。
學習目標:
1. 能了解網際網路程式設計的概念與網際網路程式設計環境
2. 能說明目前正使用及未來可能成功的網際網路協定運作原理
3. 能指出在作業系統及應用程式中如何被實作
4. 能具備學習新的網路技術與協定之能力
教科書:
UNIX network programming, W. Richard Stevens, Prentice Hall, 1999 ISBN : 13: 9780130810816
自標教材
參考書籍:
1. W. R. Stevens, B. Fenner, and A. M. Rudoff, Unix Network Programming – The Sockets Networking API, VOL1, 3rd Edition, Addison Wesley, 2004.
2. S. Walton, Linux Socket Programming, Sams Publishing, 2001.
3. Randall R. Stewart、Qiaobing Xie, 「Stream Control Transmission Protocol A Reference Guide」, Addison-Wesley, 2001.
4. Andreas Jungmaier、Michael Tuxen「Documentation of the SCTP-Implementation」,April 3, 2001.
5. W. Richard Stevens, 「UNIX Network Programming Volume 1」, Prentice-Hall International Editions, 1998.
6. Daniel P. Bovet & Marco Cesati, 「Understanding the Linux Kernel」, O’Reilly Editions, December 2002.

課程大綱 分配時數 核心能力 備註
單元主題 內容綱要 講授 示範 隨堂作業 其他
課程導論與平台使用教學
課程導論與平台使用教學
面授 12345678
課程說明
Ch. 1 Introduction to Network Programming
1.1 General Issues
1.2 Network Architecture -Client/Server Model
1.3 TCP/IP Protocols and Ref
非同步 12345678
相見歡、破冰活動、助教DEMO、主題分配
Ch. 1 Introduction to Network Programming
1.4 Inter-process Communication
1.5 Socket Overview
1.6 Summary
同步教學 12345678
線上多媒體教材,討論區議題討論,線上測驗及作業,期末專題。
Ch.2 TCP Sockets Programming
2.1 General Issues
2.2 Elementary TCP Socket Functions
2.3 TCP Client/Server Example
非同步 12345678
期末提案報告、破冰活動
Ch.3 UDP Sockets Programming
2.4 Summary
3.1 General Issues
3.2 Elementary UDP Socket Functions
同步教學 12345678
線上多媒體教材,討論區議題討論,線上測驗及作業,期末專題。
Ch.3 UDP Sockets Programming
3.3 UDP Client/Server Example
3.4 Summary
非同步 12345678
期末專題背景知識介紹、破冰活動、搶答活動。
Ch.4 SCTP Sockets Programming
4.1 General Issues
4.2 SCTP Feature
同步教學 12345678
期末專題背景知識介紹、破冰活動、搶答活動
Ch.4 SCTP Sockets Programming Ch.5 Advanced Sockets Programming
4.3 Elementary SCTP Socket Functions & Client/Server Example
5.1 General Issues
5.2 I/O Multiplexing
非同步 12345678
線上多媒體教材,討論區議題討論,線上測驗及作業,期末專題。
Ch.5 Advanced Sockets Programming
5.3 Socket Options
5.4 Daemon Process
5.5 OpenSSL and Encryption

同步教學 12345678
線上多媒體教材,討論區議題討論,線上測驗及作業,期末專題。
期中考
期中考
面授 12345678
期中考、期末專題背景知識介紹、助教DEMO
Ch. 6 IPv4 Multicast Programming
5.6 Case Study: Chat Room
5.7 Summary
6.1 General Issues
同步教學 12345678
期末專題背景知識介紹、破冰活動、搶答活動、投票活動
Ch. 6 IPv4 Multicast Programming
6.2 Elementary Multicast Socket Functions
6.3 Multicast Client/Server Example
6.4 Summary
非同步 12345678
線上多媒體教材,討論區議題討論,線上測驗及作業,期末專題。
Ch. 7 IPv4/IPv6 Programming Migration
7.1 General Issues
7.2 Comparison of IPv4 and IPv6 Socket Functions
7.3 IPv6 Client/Server Example
同步教學 12345678
期末專題背景知識介紹、破冰活動、搶答活動
Ch.8 Remote Procedure Call (RPC)
7.4 Summary
8.1 General Issues
8.2 External Data Representation
非同步 12345678
線上多媒體教材,討論區議題討論,線上測驗及作業,期末專題。
期末計畫提案
期末計畫提案
同步教學 12345678
期末專題背景知識介紹、破冰活動、搶答活動、助教DEMO
Ch.8 Remote Procedure Call (RPC)
8.3 RPCGen
8.4 RPC-based Client/Server Example
8.5 Summary
非同步 12345678
線上多媒體教材,討論區議題討論,線上測驗及作業,期末專題。
期末專題報告
期末專題報告
面授 12345678
檢討考卷、期末專題報告、期末檢討會議
期末專題報告
期末專題報告
面授 12345678
檢討考卷、期末專題報告、期末檢討會議

教育目標
1.具雲端計算及物聯網相關科技產業研發及創新之能力
2.具團隊合作精神及專案執行之能力
3.具自我挑戰與終身學習能力之人才
4.具有專業倫理及國際觀之人才

核心能力
1.具有雲端計算與物聯網領域之專業知識。
2.具有創新思考、問題解決、獨立研究之能力。
3.具有撰寫專業論文及簡報之能力。
4.具有策劃及執行專題研究之能力。
5.具有溝通、協調、整合及進行跨領域團隊合作之能力。
6.具有終身學習與因應資訊科技快速變遷之能力。
7.認識並遵循學術與工程倫理。
8.具有國際觀及科技前瞻視野。

請尊重智慧財產權,不得非法影印教師指定之教科書籍

教學要點概述:
1. 教材編選(可複選):自編簡報(ppt)教科書作者提供
2. 教學方法(可複選):講述板書講述
3. 評量工具(可複選):上課點名 0%, 隨堂測驗4.00%, 隨堂作業40.00%, 程式實作0%, 實習報告0%,
                       專案報告18.00%, 期中考8.00%, 期末考0%, 期末報告0%, 其他30.00%,
4. 教學資源:課程網站 教材電子檔供下載 實習網站
5. 教學相關配合事項: (1)需依課程安排每週上網閱讀電子教科書及數位教材。 (2)需依規定參與討論。 (3)教學平台為本校自製網路教學平台。

課程目標與教育核心能力相關性        
請勾選:12345678
1 具有雲端計算與物聯網領域之專業知識。()
為何有關:
網路程式設計為網路應用程式的基礎知識,熟悉網路程式設計的基礎後再實作其他的網路應用如VoIP、FTP、WWW等,皆有事半功倍之效。
達成指標:
了解網路架構、OSI Model、課程所提到之協議及Socket的理論基礎。
評量工具(可複選):
透過期中考及線上測驗評量理論基礎。
4 具有策劃及執行專題研究之能力。()
為何有關:
以專題計畫方式,訓練學生完整開發一套小型的網路服務或設備軟體,以培養規劃與執行通訊工程特定領域專題之能力。
達成指標:
完成特定主題的網路應用程式及期末專題。
評量工具(可複選):
特定主題之網路應用程式的創意及功\能完整度、期末專題的創意及功\能完整度。
5 具有溝通、協調、整合及進行跨領域團隊合作之能力。()
為何有關:
以專題計畫方式,訓練學生完整開發一套小型的網路服務或設備軟體,於學期中提出構想,並於學期末實作完成並上台報告,以學習溝通與表達的能力。
達成指標:
完成特定主題之網路應用程式報告及期末專題報告。
評量工具(可複選):
透過特定主題之網路應用程式報告表現及期末專題報告表現來評量。