

摘要:網(wǎng)絡(luò)工程是近年來為滿足社會對網(wǎng)絡(luò)和信息化人才的迫切需求而設(shè)立的本科專業(yè)。網(wǎng)絡(luò)程序設(shè)計是各高校網(wǎng)絡(luò)工程及相關(guān)專業(yè)廣泛開設(shè)的一門專業(yè)課。本文依據(jù)網(wǎng)絡(luò)工程專業(yè)的培養(yǎng)目標(biāo),結(jié)合個人教學(xué)過程中的體會,對該課程的教學(xué)基本問題,包括課堂教學(xué)的內(nèi)容設(shè)置與學(xué)時分配、實踐環(huán)節(jié)內(nèi)容與安排等進(jìn)行初步探討,闡述作者的理解和認(rèn)識。
關(guān)鍵詞:網(wǎng)絡(luò)工程專業(yè);網(wǎng)絡(luò)程序設(shè)計課程;教學(xué)內(nèi)容
截至2008年,我國已經(jīng)有143所高等學(xué)校開設(shè)了網(wǎng)絡(luò)工程本科專業(yè),其中大學(xué)類高校89所,“211”大學(xué)21所,學(xué)院類高校54所,高校所在地覆蓋全國26個省和直轄市[1]。網(wǎng)絡(luò)工程專業(yè)培養(yǎng)的是具有良好科學(xué)素養(yǎng),系統(tǒng)地掌握網(wǎng)絡(luò)工程技術(shù)的基本理論、方法與應(yīng)用,有較強的獲取新知識的能力、創(chuàng)新能力和實踐能力,能從事網(wǎng)絡(luò)工程及相關(guān)領(lǐng)域中的系統(tǒng)研究、設(shè)計、運行、維護(hù)和管理的高級工程技術(shù)人才。因此,該專業(yè)不僅要求學(xué)生掌握與網(wǎng)絡(luò)工程相關(guān)的基礎(chǔ)知識與理論,以及各種網(wǎng)絡(luò)系統(tǒng)設(shè)計、建設(shè)與維護(hù)技術(shù),如網(wǎng)絡(luò)協(xié)議體系、網(wǎng)絡(luò)互連技術(shù)、網(wǎng)絡(luò)服務(wù)、信息安全、組網(wǎng)實踐、網(wǎng)絡(luò)測試與管理等相關(guān)知識,也要求學(xué)生掌握基本的網(wǎng)絡(luò)應(yīng)用軟件與系統(tǒng)開發(fā)知識與技術(shù),滿足畢業(yè)生在今后的工作與學(xué)習(xí)過程中的多元需要。
為了讓網(wǎng)絡(luò)工程專業(yè)的學(xué)生掌握一定的網(wǎng)絡(luò)應(yīng)用軟件與系統(tǒng)開發(fā)知識,很多高校都開設(shè)了網(wǎng)絡(luò)程序設(shè)計或網(wǎng)絡(luò)編程課程。然而,由于網(wǎng)絡(luò)工程專業(yè)在大多數(shù)高校的開設(shè)時間不長,相關(guān)任課教師對網(wǎng)絡(luò)程序設(shè)計課程的教學(xué)還缺乏足夠的經(jīng)驗,因此對教學(xué)活動中的一些基本問題,如課程內(nèi)容設(shè)置與學(xué)時分配、實踐環(huán)節(jié)內(nèi)容與安排等還缺乏統(tǒng)一的認(rèn)識[2-3]。本文依據(jù)網(wǎng)絡(luò)工程專業(yè)的培養(yǎng)目標(biāo),結(jié)合我們在教學(xué)過程中
的體會,對該課程教學(xué)活動中的基本問題進(jìn)行了初步探討,闡述了作者對這些問題的理解和認(rèn)識。希望本文能引起更多同行對網(wǎng)絡(luò)程序設(shè)計課程的關(guān)注,從而盡快提高該課程的建設(shè)水平。
1教學(xué)目標(biāo)與特點
1.1教學(xué)目標(biāo)
根據(jù)網(wǎng)絡(luò)工程專業(yè)的培養(yǎng)目標(biāo),我們認(rèn)為網(wǎng)絡(luò)程序設(shè)計課程的教學(xué)目標(biāo)是讓學(xué)習(xí)者了解網(wǎng)絡(luò)程序設(shè)計的基本概念和常用的網(wǎng)絡(luò)編程接口,理解網(wǎng)絡(luò)程序設(shè)計的基本原理,掌握基本的網(wǎng)絡(luò)程序設(shè)計模型,同時具備進(jìn)一步學(xué)習(xí)新的網(wǎng)絡(luò)編程知識與技術(shù)的能力。網(wǎng)絡(luò)工程專業(yè)的網(wǎng)絡(luò)程序設(shè)計課程應(yīng)重點教授基于網(wǎng)絡(luò)編程接口的網(wǎng)絡(luò)程序設(shè)計基礎(chǔ)知識,為后續(xù)使用和開發(fā)網(wǎng)絡(luò)應(yīng)用系統(tǒng)打下基礎(chǔ)。有別于信息管理類專業(yè)面向Web的網(wǎng)絡(luò)程序設(shè)計,本課程的中心內(nèi)容是基于操作系統(tǒng)套接口的客戶/服務(wù)器程序開發(fā)技術(shù)。
1.2課程特點
程序設(shè)計課程對計算機類專業(yè)的學(xué)生來說并不陌生,但其多針對具體的程序設(shè)計語言,以學(xué)習(xí)某種程序設(shè)計語言的基本語法和用法為主。網(wǎng)絡(luò)編程接口在本質(zhì)上與編程語言無關(guān),因此網(wǎng)絡(luò)程序設(shè)計與以前
作者簡介:紀(jì)其進(jìn)(1974-),男,講師,工學(xué)博士,研究方向為計算機網(wǎng)絡(luò)與多媒體通信;朱艷琴 (1964-),女,教授,工學(xué)博士,副院長,研究方向為計算機網(wǎng)絡(luò)與信息安全。
的程序設(shè)計課程并不相同。網(wǎng)絡(luò)應(yīng)用程序具有以下兩方面的主要特點:
1) 程序結(jié)構(gòu)較為復(fù)雜。網(wǎng)絡(luò)程序至少涉及客戶端與服務(wù)器兩方面,且需要雙方協(xié)同配合,因此程序的結(jié)構(gòu)和邏輯都比較復(fù)雜。
2) 網(wǎng)絡(luò)程序設(shè)計對操作系統(tǒng)知識和網(wǎng)絡(luò)知識的依賴性很強。比如,多線程技術(shù)是避免程序在交互過程中發(fā)生阻塞的基本手段,因此開發(fā)者至少需理解操作系統(tǒng)的進(jìn)程與線程的概念及多線程程序設(shè)計技術(shù)。再如消息驅(qū)動是Windows系統(tǒng)的基本機制,Windows網(wǎng)絡(luò)應(yīng)用程序開發(fā)也需要理解消息驅(qū)動機制。利用網(wǎng)絡(luò)接口編程需要理解底層網(wǎng)絡(luò)協(xié)議,特別是與網(wǎng)絡(luò)接口直接相關(guān)的運輸層協(xié)議知識。
2內(nèi)容設(shè)置與學(xué)時分配
運輸層以下的網(wǎng)絡(luò)協(xié)議功能在操作系統(tǒng)內(nèi)核中實現(xiàn),或利用系統(tǒng)應(yīng)用編程接口(API),通過專業(yè)的函數(shù)庫實現(xiàn)[4]。盡管IEEE已經(jīng)制定了網(wǎng)絡(luò)編程的接口標(biāo)準(zhǔn),各操作系統(tǒng)通常也支持標(biāo)準(zhǔn)接口,但一般會結(jié)合系統(tǒng)自身特點,對標(biāo)準(zhǔn)接口進(jìn)行修改或擴(kuò)展。因此,實際網(wǎng)絡(luò)編程接口實現(xiàn)與操作系統(tǒng)密切相關(guān)。當(dāng)前,Windows系統(tǒng)占據(jù)了工作站(含臺式機)與小型服務(wù)器市場的主要份額,Unix系統(tǒng)(含Linux)則在服務(wù)器特別是大型服務(wù)器市場中仍然占據(jù)主導(dǎo)地位。考慮到學(xué)生畢業(yè)后的實際工作情況,接觸Windows系統(tǒng)的機會應(yīng)該更多。因此,教學(xué)內(nèi)容選擇的指導(dǎo)思想是以Windows平臺網(wǎng)絡(luò)編程接口為主,同時兼顧標(biāo)準(zhǔn)網(wǎng)絡(luò)編程接口。
網(wǎng)絡(luò)程序設(shè)計是網(wǎng)絡(luò)工程專業(yè)的一門骨干專業(yè)課程,教學(xué)內(nèi)容較豐富,實踐性要求高。根據(jù)網(wǎng)絡(luò)程序設(shè)計課程的教學(xué)目標(biāo)和特點,我們?yōu)樵撜n程安排了以下課堂教學(xué)內(nèi)容:
第1章 網(wǎng)絡(luò)程序設(shè)計基礎(chǔ)知識。本章介紹網(wǎng)絡(luò)編程相關(guān)的基本概念和知識,內(nèi)容包括網(wǎng)絡(luò)程序設(shè)計概念、進(jìn)程與線程的基本概念、TCP/IP協(xié)議及其在操作系統(tǒng)中的實現(xiàn)、基于客戶/服務(wù)器模式的網(wǎng)絡(luò)應(yīng)用程序模型等。
第2章 基于Berkley套接口的網(wǎng)絡(luò)程序設(shè)計。Berkley套接口是事實上網(wǎng)絡(luò)編程接口標(biāo)準(zhǔn),它出自于Unix系統(tǒng),Windows系統(tǒng)也盡可能地與之兼容。本章重點闡述Berkley套接口的基本用法,包括套接口編程的基本概念、面向連接的套接口編程、無連接的套接口編程及原始套接口編程等。
第3章 Windows程序設(shè)計基礎(chǔ)。在Windows平臺上進(jìn)行網(wǎng)絡(luò)程序設(shè)計離不開Windows系統(tǒng)編程知識。本章介紹Windows編程的基礎(chǔ)知識,包括Windows操作系統(tǒng)的基本原理、Windows API的實現(xiàn)機制與調(diào)用方法及Windows消息機制。
第4章 Winsock網(wǎng)絡(luò)編程接口規(guī)范。Winsock是Windows系統(tǒng)中的套接口實現(xiàn),經(jīng)歷了Winsock1.1到Winsock2.2版本的發(fā)展。本章在第3章的基礎(chǔ)上全面介紹Winsock網(wǎng)絡(luò)接口規(guī)范及其使用,包括Winsock1.1及Winsock2.2的擴(kuò)展能力。
第5章 基于MFC 套接口類的程序設(shè)計。MFC利用面向?qū)ο蠹夹g(shù),對基本的Windows API進(jìn)行了封裝。Winsock編程接口的主要功能被封裝成為CAsyncSocket和CSocket兩個類。本章將通過實例說明這兩個類的用法。
第6章 Windows多線程網(wǎng)絡(luò)編程技術(shù)。多線程可以避免網(wǎng)絡(luò)應(yīng)用程序被某個調(diào)用阻塞。本章介紹多線程技術(shù)的必要性、Windows系統(tǒng)的多線程機制、MFC對多線程的支持及多線程機制在網(wǎng)絡(luò)編程中的應(yīng)用等。
第7章 Winsock編程接口I/O模型。支持異步網(wǎng)絡(luò)程序開發(fā)是Windows系統(tǒng)的特色,為此Winsock引入了5種I/O模型實現(xiàn)非阻塞的套接口工作模式。本章分別介紹5種異步I/O模型的原理與使用。
第8章 Winsock編程接口選項與I/O控制命令。套接口選項和I/O控制命令是在套接口建立以后對其各種屬性進(jìn)行操作。本章介紹Winsock編程接口的基本選項及主要I/O控制命令的用法。
第9章 網(wǎng)絡(luò)程序設(shè)計實例。網(wǎng)絡(luò)編程技術(shù)具有很強的實踐性,學(xué)習(xí)與分析實例可以更好地理解基本知識與技術(shù)。本章通過講解分析實例中的各種網(wǎng)絡(luò)編程技術(shù)鞏固前面所學(xué)的知識,為以后的綜合應(yīng)用打下基礎(chǔ)。
本課程重在教授網(wǎng)絡(luò)編程的基礎(chǔ)知識與技能,內(nèi)容選擇主要是為了滿足教學(xué)需要,而非求全求深。因此,部分網(wǎng)絡(luò)編程相關(guān)知識沒有在課程中出現(xiàn),如Winsock對網(wǎng)絡(luò)服務(wù)質(zhì)量的支持、IPv6版本套接口等。
本課程的重點內(nèi)容在第3~6章。其中第3章是整個網(wǎng)絡(luò)編程的基礎(chǔ)部分,而第4章和第5章則包括了Windows平臺下網(wǎng)絡(luò)程序設(shè)計的基本知識,第6章的多線程技術(shù)是無阻塞同步網(wǎng)絡(luò)編程的基本技術(shù)。第7、8兩章內(nèi)容與操作系統(tǒng)關(guān)系較密切且較抽象,是課程的難點。我校為該課程安排64 學(xué)時,其中理論講授48學(xué)時,實驗教學(xué)16 學(xué)時。根據(jù)重點難點內(nèi)容分析結(jié)果,我們按表1分配課堂教學(xué)學(xué)時。
3課程實踐環(huán)節(jié)
3.1實踐環(huán)節(jié)的必要性
傳統(tǒng)的網(wǎng)絡(luò)課程教學(xué)方法多以講授計算機網(wǎng)絡(luò)基礎(chǔ)理論為主、少量的驗證性實驗為輔。網(wǎng)絡(luò)程序設(shè)計本身是一門實踐性非常強的課程,對引導(dǎo)學(xué)生掌握最新的網(wǎng)絡(luò)編程技術(shù),培養(yǎng)學(xué)生的動手能力、協(xié)作精神和創(chuàng)新能力都具有重要作用。在學(xué)生學(xué)習(xí)過程中,如不注重理論和實踐緊密結(jié)合,則不僅所學(xué)基本知識難以得到深入理解和鞏固,更不能將其靈活運用于解決新的問題。因此,教師在系統(tǒng)講述網(wǎng)絡(luò)編程基礎(chǔ)知識的同時,要充分調(diào)動學(xué)生的主動性,認(rèn)真完成網(wǎng)絡(luò)編程實驗的教學(xué)。
3.2教學(xué)組織與學(xué)時分配
實驗是基本的實踐教學(xué)手段。通過實驗教學(xué),學(xué)生可以更快地實現(xiàn)從概念理解到實際編程能力的轉(zhuǎn)變。每次實驗前,教師首先講解實驗的設(shè)計目標(biāo)、要求和所需的編程技術(shù),要求學(xué)生做好充分的準(zhǔn)備工作,進(jìn)行初步的需求分析和程序設(shè)計。在實驗過程中,教師通過解答學(xué)生提出的需求分析、設(shè)計與實現(xiàn)問題,為學(xué)生提供幫助。實驗結(jié)束后,學(xué)生需按一定的格式規(guī)范按時提交實驗報告;教師通過實驗報告檢查和評價學(xué)生的實驗質(zhì)量。如有條件,可組織學(xué)生對實驗結(jié)果進(jìn)行簡短的討論,讓學(xué)生總結(jié)和分析自己的實驗體會。
我們根據(jù)網(wǎng)絡(luò)程序設(shè)計課程的教學(xué)大綱和實驗大綱制定了實驗計劃。實驗包括驗證型、設(shè)計型和綜合型實驗三種。驗證型實驗主要讓學(xué)生理解所學(xué)的網(wǎng)絡(luò)編程知識,通過重復(fù)課堂示例掌握某一項網(wǎng)絡(luò)編程技術(shù)。設(shè)計型實驗需要學(xué)生利用某一項網(wǎng)絡(luò)編程技術(shù),根據(jù)具體問題要求設(shè)計并實現(xiàn)一個網(wǎng)絡(luò)應(yīng)用程序。綜合性實驗需設(shè)計并實現(xiàn)一個相對復(fù)雜的網(wǎng)絡(luò)應(yīng)用程序,其中需用到多種網(wǎng)絡(luò)編程知識和技術(shù)。全部實驗內(nèi)容包括Berkley套接口編程實驗,Winsock套接口編程實驗,利用原始套接口進(jìn)行PING 程序的設(shè)計及實現(xiàn),基于MFC套接口類的網(wǎng)絡(luò)編程,電子郵件程序的設(shè)計與實現(xiàn)(SMTP客戶端、POP3 客戶端程序)或FTP客戶端實現(xiàn)及聊天室軟件的設(shè)計及實現(xiàn)。實驗報告與其他課程基本類似,有相應(yīng)的實驗題目、實驗?zāi)康呐c要求、實驗步驟和實驗結(jié)果等內(nèi)容。實驗結(jié)果要包括實驗過程中的問題分析、解決方式及心得。表2總結(jié)了實驗的內(nèi)容與學(xué)時分配計劃。
有條件的學(xué)校還可以集中1周左右的時間進(jìn)行課程設(shè)計。課程設(shè)計以課程教學(xué)內(nèi)容為基礎(chǔ),實現(xiàn)一個具有一定規(guī)模和實用價值的網(wǎng)絡(luò)應(yīng)用系統(tǒng)。課程設(shè)計對所學(xué)的理論知識及實驗中所學(xué)的各種方法與技巧進(jìn)行綜合性應(yīng)用,對培養(yǎng)學(xué)生綜合分析能力、編程動手能力具有重要作用。課程設(shè)計報告包括系統(tǒng)需求分析、功能設(shè)計及各模塊詳細(xì)設(shè)計等,類似于計算機類畢業(yè)設(shè)計論文格式。
4結(jié)語
網(wǎng)絡(luò)工程專業(yè)是近年來為滿足社會信息化需求而出現(xiàn)的相對較新的專業(yè)。該專業(yè)目前還沒有一個明確的規(guī)范,開設(shè)該專業(yè)的各個院校對某些課程的教學(xué)尚缺乏統(tǒng)一的認(rèn)識。本文以該專業(yè)的培養(yǎng)目標(biāo)為依
據(jù),結(jié)合個人教學(xué)過程中的體會,探討了網(wǎng)絡(luò)工程專業(yè)網(wǎng)絡(luò)程序設(shè)計課程的基本問題。文中討論了該課程的教學(xué)目標(biāo)與特點,給出了具體的課程內(nèi)容設(shè)置和實踐環(huán)節(jié)安排建議,希望對完善網(wǎng)絡(luò)工程專業(yè)以及網(wǎng)絡(luò)程序設(shè)計課程建設(shè)具有一定的借鑒意義。
參考文獻(xiàn)[規(guī)范格式]:
[1]\