摘要:“TCP/IP網(wǎng)絡(luò)設(shè)計及實現(xiàn)”雙語課程旨在從實現(xiàn)的高度幫助學(xué)生深入理解各種網(wǎng)絡(luò)協(xié)議和技術(shù),提高學(xué)生系統(tǒng)軟件編程水平,并利用雙語平臺增強學(xué)生的外語聽說能力,為學(xué)生今后的學(xué)習(xí)和發(fā)展奠定基礎(chǔ)。作者從分析課程的特點出發(fā),結(jié)合引入雙語教學(xué)的必要性和存在的問題,主要從教學(xué)內(nèi)容的選擇和組織、龐大源碼的講解、實踐環(huán)節(jié)的設(shè)置等方面,探討了該課程的教學(xué)模式。
關(guān)鍵詞:源碼;雙語教學(xué);實踐
“TCP/IP網(wǎng)絡(luò)設(shè)計及實現(xiàn)”雙語課程是我校計算機(jī)專業(yè)開設(shè)的一門專業(yè)課,主要介紹BSD Unix操作系統(tǒng)中TCP/IP協(xié)議棧軟件的設(shè)計思想與實現(xiàn)技術(shù)。一方面,該課程從實現(xiàn)的高度幫助學(xué)生深入理解各種網(wǎng)絡(luò)協(xié)議和技術(shù),提高學(xué)生系統(tǒng)軟件編程水平;另一方面,通過雙語平臺增強學(xué)生的外語聽說能力,培養(yǎng)學(xué)生以外語為工具獲取國內(nèi)外最新知識的能力,從而有利于學(xué)生更好地適應(yīng)今后的深入學(xué)習(xí)和職業(yè)發(fā)展的需要。
1課程的特點
1.1實踐性強
該課程以TCP/IP協(xié)議理論為基礎(chǔ),旨在使學(xué)生掌握多層協(xié)議設(shè)計方法和實現(xiàn)技術(shù),所以更多強調(diào)實踐性,對課堂教學(xué)無疑提出更高的要求。在以教師單向傳授為主的課堂上,講解BSD Unix操作系統(tǒng)中龐大的協(xié)議軟件的實現(xiàn)細(xì)節(jié),需要采用多種不同的教學(xué)手段。
1.2源代碼長
TCP/IP協(xié)議軟件代碼很龐大,達(dá)到幾萬行,這對教學(xué)過程提出了很大的挑戰(zhàn)。稍有不慎,課堂教學(xué)很容易使學(xué)生感到枯燥無味,從而失去學(xué)習(xí)的興趣。
所以,如何使靜態(tài)的代碼動起來,變得有吸引力,激發(fā)學(xué)生的好奇心,是教學(xué)亟需解決的問題。
1.3前期知識儲備多
按該課程的教學(xué)順序,要求學(xué)生具備一定的程序設(shè)計基礎(chǔ)、專業(yè)基礎(chǔ)和專業(yè)知識儲備。首先,協(xié)議源碼是用C語言編寫的,熟悉C語言的基本語法是閱讀代碼的前提和基礎(chǔ)。只有具備扎實的C語言功底,才能領(lǐng)會協(xié)議實現(xiàn)中的諸多巧妙之處。其次,TCP/IP網(wǎng)絡(luò)協(xié)議理論是設(shè)計和實現(xiàn)網(wǎng)絡(luò)協(xié)議軟件的根本依據(jù),所以在學(xué)習(xí)該課程之前,學(xué)生應(yīng)該具備一定的網(wǎng)絡(luò)理論基礎(chǔ)。最后,BSD Unix操作系統(tǒng)中協(xié)議軟件設(shè)計的一大特色是數(shù)據(jù)結(jié)構(gòu)設(shè)計得環(huán)環(huán)相扣,多嵌套,靈活性強。只有充分理解數(shù)據(jù)結(jié)構(gòu)設(shè)計思想,才能真正掌握協(xié)議軟件的精髓,從而很大程度上提高自己的系統(tǒng)設(shè)計能力。所以,“數(shù)據(jù)結(jié)構(gòu)”先修課程的學(xué)習(xí)是必不可少的。
2課程雙語教學(xué)面臨的問題
在我校該課程采用雙語教學(xué)已有多年歷史,目的在于迎合經(jīng)濟(jì)的全球化發(fā)展對高校的人才培養(yǎng)提出的要求,即不僅注重專業(yè)知識和技能,還需具備一定的國際交際交流能力。另外,計算機(jī)及其網(wǎng)絡(luò)技術(shù)的發(fā)展日新月異,為了研究與交流的需要,及時了解最新的技術(shù)成果和發(fā)展動態(tài)是十分必要的,而最新的技術(shù)資料和研究成果大多來自英語國家。因此,培養(yǎng)學(xué)生具備一定的專業(yè)英語能力,為其今后開展學(xué)術(shù)研究奠定了語言基礎(chǔ),推動了我國未來人才的科研素質(zhì)的提高。
不容忽視的是,雙語教學(xué)效果會受到一些客觀因素的制約和影響。首先,學(xué)生的外文基礎(chǔ)。普通高等院校中,學(xué)生的英文基礎(chǔ)參差不齊,聽說能力普遍不高,如果無視這個客觀事實,而一味開展大比例英文授課,結(jié)果只會妨礙學(xué)生對專業(yè)知識的理解吸收,影響課程教學(xué)的正常進(jìn)行。所以,雙語僅僅是教學(xué)形式,離不開根本的教學(xué)目的,即,使學(xué)生真正掌握課程知識,形成有效的專業(yè)結(jié)構(gòu)體系。這就要求教師密切關(guān)注學(xué)生的課堂反映,通過多種渠道及時了解學(xué)生的實際情況,并依此來調(diào)整課堂上雙語的比例,盡可能達(dá)到滿意的教學(xué)效果。其次,教師的英語表達(dá)能力。發(fā)音是否純正、表達(dá)是否流利、概念表述是否準(zhǔn)確,這些都會直接影響學(xué)生的聽課效果。就目前的普通高校,大多數(shù)教師很難真正做到這一點。即使有些老師可以做到表達(dá)流暢,發(fā)音正確,也難免會出現(xiàn)用語單調(diào),語氣乏味等現(xiàn)象。如果學(xué)校能夠多創(chuàng)造機(jī)會讓老師接受相關(guān)的語言培訓(xùn),提供一個提升英語能力的平臺,相信雙語師資隊伍的整體水平會得到很大程度的提高。最后,不同的課程的教學(xué)內(nèi)容難易程度差異很大,對于偏難的專業(yè)基礎(chǔ)課程而言,雙語教學(xué)的開展不是很好的選擇,因為即使用母語教學(xué),學(xué)生掌握課程仍然很困難,需要投入很多的精力,更別提引入雙語模式了。所以,大多高校都是針對專業(yè)課開展雙語教學(xué)。
3雙語教學(xué)形式下的教學(xué)模式
我們在開展雙語教學(xué)過程中,依據(jù)課程的特點,堅持以下幾點來改善課堂教學(xué)質(zhì)量,取得一定的教學(xué)效果。
3.1精選和組織教學(xué)內(nèi)容
本課程教學(xué)內(nèi)容以教材以本,又不局限于教材?,F(xiàn)采用的英文原版教材是由Gary R. Wright編寫的“TCP/IP Illustrated”(TCP/IP詳解)(文獻(xiàn)[1]),教材篇幅很多,內(nèi)容豐富,共有32章。由于課時限制以及教學(xué)大綱的要求,我們對內(nèi)容進(jìn)行了適當(dāng)?shù)暮Y選。依據(jù)教學(xué)大綱和教學(xué)計劃,教學(xué)內(nèi)容的選擇覆蓋了TCP/IP 體系結(jié)構(gòu)中的幾個主要協(xié)議的設(shè)計及實現(xiàn)技術(shù)。
在教學(xué)內(nèi)容的組織上,考慮到學(xué)生的認(rèn)知和思維習(xí)慣,不拘泥于教材中的組織順序,靈活合理地部署教學(xué)內(nèi)容。文獻(xiàn)[1]中是按照TCP/IP體系結(jié)構(gòu)協(xié)議分層自底向上(Bottom-up)的順序進(jìn)行講解,即從網(wǎng)絡(luò)接口的設(shè)計開始,依次進(jìn)入到網(wǎng)絡(luò)層、傳輸層和應(yīng)用層。在分析每個協(xié)議層的實現(xiàn)時,都是以數(shù)據(jù)結(jié)構(gòu)的定義為核心,以數(shù)據(jù)結(jié)構(gòu)之間的聯(lián)系為線索,在描述模塊和函數(shù)的功能基礎(chǔ)上,詳細(xì)講解協(xié)議軟件的代碼細(xì)節(jié)。這樣安排使課程結(jié)構(gòu)系統(tǒng)性強,知識體系很完整,但與學(xué)生的認(rèn)知和思維習(xí)慣不太合拍。學(xué)生在學(xué)習(xí)的過程中很容易感到迷茫,不知大量復(fù)雜的相互嵌套的數(shù)據(jù)類型定義到底有什么用處,目標(biāo)模糊,特別是前幾章中講解的接口層的實現(xiàn),涉及到部分硬件的細(xì)節(jié),增強學(xué)生理解的難度,從而一定程度降低其學(xué)習(xí)的興致。
在教學(xué)實踐中,若能嘗試按照自頂向下(Top-down)的順序開展課程教學(xué),會取得顯著的效果。所謂自頂向下,即從一個具體的網(wǎng)絡(luò)應(yīng)用程序開始,逐步引入插口操作中涉及到的系統(tǒng)調(diào)用,然后深入到傳輸層協(xié)議和IP協(xié)議的具體實現(xiàn),最后涉及網(wǎng)絡(luò)接口的數(shù)據(jù)發(fā)送和接收過程。正如魔術(shù)揭密一樣,這種順序也許更加符合人的認(rèn)知習(xí)慣和獵奇心理,易于被學(xué)生接受。從網(wǎng)絡(luò)的高層應(yīng)用到具體協(xié)議實現(xiàn)細(xì)節(jié),是一個從抽象到具體、打開黑匣子的過程,學(xué)生在好奇心的驅(qū)使下,一步步渴望理解更詳細(xì)的內(nèi)幕,直到完成整個課程的學(xué)習(xí)。
類似于非母語學(xué)習(xí)過程中推崇的“情景學(xué)習(xí)”,在講解具體協(xié)議的實現(xiàn)時,從鮮活的源代碼入手做情景分析,在分析過程中逐步引入相關(guān)的數(shù)據(jù)結(jié)構(gòu),再帶著學(xué)生一起畫出函數(shù)的邏輯流程,并從編程角度突出實現(xiàn)中運用的某些高超的技巧。這樣,引導(dǎo)學(xué)生一起分析、一起閱讀、一起理解、一起學(xué)習(xí),使學(xué)生在獲得成就感的同時,也激發(fā)了他們的學(xué)習(xí)興趣和進(jìn)一步學(xué)習(xí)的熱情。
另外,對同一問題的解決,提供多種方法,并進(jìn)行綜合比較分析,從而激發(fā)學(xué)生思考,開拓學(xué)生的思維。例如,在講解協(xié)議軟件結(jié)構(gòu)設(shè)計時,首先詳細(xì)講解教材中BSD Unix中的網(wǎng)絡(luò)協(xié)議軟件的分層結(jié)構(gòu)、設(shè)計理念和層間的交互方法。接著,脫離本教材,簡單介紹Xinu系統(tǒng)[2]中協(xié)議軟件的架構(gòu)。前者基于協(xié)議接口的系統(tǒng)調(diào)用,后者的層間交互采用進(jìn)程間通信的方式。最后,引導(dǎo)學(xué)生比較這兩種軟件系統(tǒng)體系的優(yōu)缺點,形成自己的觀點,再通過課堂討論的教學(xué)手段,通過交流加深學(xué)生的理解。
3.2源碼講解要注重思想、強調(diào)流程、解釋難點
基于源碼的教學(xué)是該課程的一大特色。要能準(zhǔn)確地理解協(xié)議軟件的實現(xiàn)方法,源代碼既是最準(zhǔn)確的說明書,也是最權(quán)威的教科書。但是龐大的源碼使教學(xué)面臨很大的挑戰(zhàn)。課堂上教師需要將具體的源碼抽象化,從龐大的源碼中提煉出設(shè)計思想,并舉一反三。如在講解內(nèi)存管理機(jī)制時,課堂從協(xié)議軟件的性能需求出發(fā)做情景分析,提出對內(nèi)存管理的要求,接著引導(dǎo)學(xué)生一起來設(shè)計基本存儲單元的結(jié)構(gòu),并分析其特點。當(dāng)學(xué)生對該機(jī)制有一定程度的理解之后,再給出mbuf數(shù)據(jù)結(jié)構(gòu)的定義,從而讓學(xué)生體會C語言中聯(lián)合體在定義與類型相關(guān)(type-dependent)的數(shù)據(jù)結(jié)構(gòu)中應(yīng)用。為了培養(yǎng)學(xué)生代碼閱讀和理解能力,以及更加深入地理解內(nèi)存管理在協(xié)議軟件中的應(yīng)用,課堂現(xiàn)場引導(dǎo)學(xué)生通過查看代碼來描述管理策略的實現(xiàn)方法,從具體代碼中抽象出具體的設(shè)計思想。最后,鼓勵學(xué)生積極思考,看看能夠想出其他行之有效的方法,并進(jìn)行分析比較。
對于冗長的源代碼,長篇累牘地逐行解釋,既不被有限的課時所允許,也容易造成枯燥無味的教學(xué)效果。若能通過有向圖,理清源文件、各協(xié)議處理函數(shù)之間的關(guān)系,學(xué)生就會比較容易掌握協(xié)議軟件的結(jié)構(gòu),從而準(zhǔn)確把握課程的重點,為學(xué)習(xí)指明方向。另外,在講解具體函數(shù)的時候,摒棄逐行解釋,而是在理清函數(shù)流程的基礎(chǔ)上,逐步驟講解。如在講解IP輸入處理函數(shù)過程中,對照協(xié)議的內(nèi)容和源碼,畫出函數(shù)流程圖,標(biāo)明每一個步驟的任務(wù)。其中,第一步是對輸入的IP數(shù)據(jù)報進(jìn)行校驗,包括頭長度合法性校驗、版本兼容性校驗、校驗和正確性校驗等。每個任務(wù)模塊對應(yīng)一段代碼。所以,在講解時,以功能段為單位講解更容易被接受。教師利用課堂寶貴的時間,理順程序?qū)崿F(xiàn)線索,突出重要的執(zhí)行步驟,并對于學(xué)生難以理解的部分,多花時間來講解。
3.3設(shè)置實踐環(huán)節(jié),加強實驗訓(xùn)練
課程的實踐性最終還應(yīng)該通過實驗環(huán)節(jié)來體現(xiàn)。為此,該課程為學(xué)生安排了一系列實驗。考慮到開源特性,我們采用與Unix內(nèi)核很相似的Linux操作系統(tǒng)作為實驗平臺。實驗分為驗證性和設(shè)計性兩種,前者主要包括通過對內(nèi)核源碼的查閱,熟悉協(xié)議軟件的結(jié)構(gòu)、協(xié)議模塊分布和關(guān)聯(lián);還包括實時查看和重新配置內(nèi)核中某些全局協(xié)議參數(shù),跟蹤配置后的結(jié)果,從而加深對協(xié)議實現(xiàn)細(xì)節(jié)的認(rèn)識;難度高一點的驗證性實驗包括根據(jù)要求對內(nèi)核進(jìn)行裁減等。后者主要是根據(jù)系統(tǒng)提供的網(wǎng)絡(luò)調(diào)用接口設(shè)計并實現(xiàn)一些熟知的高層應(yīng)用。如設(shè)計ping程序加深對ICMP協(xié)議的理解和應(yīng)用,實現(xiàn)traceroute程序利于學(xué)生理解IP協(xié)議原理和ICMP特定類型報文的使用等。通過這些驗證性和設(shè)計性實驗,目的在于使學(xué)生加深對操作系統(tǒng)中內(nèi)嵌的協(xié)議軟件的認(rèn)識,使其對協(xié)議實現(xiàn)的理解不僅限于工程使用,而是進(jìn)入到更高層次,培養(yǎng)其獨立思考和實踐動手能力,熟悉并掌握網(wǎng)絡(luò)編程的方法和技巧。
3.4注重課堂交互,促進(jìn)雙語教學(xué)
要想達(dá)到良好的教學(xué)效果,課堂交互是必不可少的一個環(huán)節(jié)。一方面,由于該課程的課堂教學(xué)采用雙語教學(xué)的形式,提高學(xué)生的英語聽說能力也是課程教學(xué)的一個重要目標(biāo)。如果忽略師生交互,課堂教學(xué)呈現(xiàn)單向模式,學(xué)生只聽不說,則很難達(dá)到教學(xué)目標(biāo)。只有多多使用外語進(jìn)行交流,才能創(chuàng)造一種外語學(xué)習(xí)的氛圍,提高學(xué)生的外語能力。另一方面,交互教學(xué)也適應(yīng)了該課程的源碼特色,教師引入一定的協(xié)議處理場景,通過課堂提問或討論的方式積極組織和引導(dǎo)學(xué)生去思考,并和學(xué)生共同解決問題,從而擺脫了知識單向傳授的格局,提高了學(xué)生學(xué)習(xí)的興趣。其實,在激發(fā)學(xué)生敢問敢答和敢于表達(dá)自己觀點的過程中,學(xué)生的外語能力勢必會提高很多。交互式教學(xué)不局限于課堂,在信息化的今天,網(wǎng)絡(luò)互動教學(xué)能夠達(dá)到有效和深入、全面、機(jī)會均等的互動[3]。當(dāng)然,要想達(dá)到良好的教學(xué)效果,學(xué)生課前要做好一定程度的準(zhǔn)備,包括學(xué)習(xí)內(nèi)容的預(yù)習(xí)、相關(guān)資料的閱讀參考等。
3.5搭建網(wǎng)絡(luò)平臺,輔助課堂教學(xué)
多媒體技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展不僅改變?nèi)藗兊纳罘绞?,也為高校教學(xué)改革帶來了契機(jī)。它可以打破教學(xué)的時間和地點的限制,將教學(xué)活動無限延伸,彌補教師課堂教學(xué)不可重復(fù)性的缺點,隨時幫助學(xué)生查漏補缺,鞏固課堂知識。具體形式多樣,教師可以利用校園網(wǎng),也可以在個人主頁上,上載精選后的教學(xué)內(nèi)容、有價值的教輔資料或者教學(xué)視頻,供學(xué)生在任意時間和地點下載學(xué)習(xí)。還可以開辟網(wǎng)上互動區(qū),其互動環(huán)節(jié)包括作業(yè)的提交和批改,在線答疑專區(qū),在線考場等。利用網(wǎng)絡(luò)平臺,教師可隨時發(fā)布課后作業(yè)題目及其要求,待學(xué)生提交完電子作業(yè),教師在線批改,并及時進(jìn)行反饋。通過設(shè)置答疑專區(qū),教師在為學(xué)生答疑解惑的同時,對學(xué)生的知識掌握情況也有一定程度的了解,并依此及時調(diào)整課堂教學(xué)活動的進(jìn)度,從而達(dá)到輔助課堂教學(xué)的目的。另外,為滿足學(xué)生自主學(xué)習(xí)的需求,還可以設(shè)置在線考場,從試題庫中按照一定規(guī)則搜集出若干習(xí)題形成試卷,對學(xué)生進(jìn)行在線考核??傊?,考慮該課程的實踐特色和雙語形式,網(wǎng)絡(luò)平臺尤為重要,成為課堂教學(xué)的有益補充,對教學(xué)目標(biāo)的實現(xiàn)具有很大的推動作用。
4結(jié)語
總之,針對“TCP/IP網(wǎng)絡(luò)設(shè)計及實現(xiàn)”雙語課程的特點,在課程教學(xué)過程中,教師有必要充分利用網(wǎng)絡(luò)教輔平臺,加強實踐環(huán)節(jié)教學(xué),圍繞專業(yè)教學(xué)計劃和要求,培養(yǎng)更多計算機(jī)專業(yè)的創(chuàng)新型人才。
參考文獻(xiàn):
[1] W. Richard Stevens. TCP/IP Illustrated Volume II: The Implementation [M]. 北京:機(jī)械工業(yè)出版社,2002.
[2] Douglas E. Comer. Internetworking with TCP/IP[M]. 北京:清華大學(xué)出版社,2000.
[3] 胡昌平,趙雪芹. 信息管理類專業(yè)課程互動式教學(xué)的實現(xiàn)[J]. 情報科學(xué),2008,(8):1123.
Discussion of Teaching Approaches to Bilingual Course of Design and
Implementation of TCP/IP Networks
WANG Xue-mei, YE Xiao-guo
(College of Computer Science, Nanjing University of Posts and Telecommunications, Nanjing 210003, China)
Abstract: The course entitled The Design and Implementation Of TCP/IP Networks aims to help students understand a variety of network protocols and techniques deeply , enhance their ability of programming system-level software, and increase their english ability in listening and speaking by adopting bilingual platform, thus forming a good basis for their study in the future. This paper begins with the analysis of the characteristics of this course, then discusses the necessity and problems involved in bilingual teaching, finally proposes the teaching mode in several aspects such as the selection and organization of the teaching contents, the way in explaining a great amount of source code, the introduction of practical part etc.
Key words: source code; bilingual teaching; practice
(編輯:彭遠(yuǎn)紅)