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