曾霞霞
(閩江學院 計算機科學系,福建 福州 350001)
《網絡通信程序設計》是高校網絡工程、通信工程與計算機應用等本科專業的專業必修課,是一門應用性、實踐性很強的網絡應用類課程。課程教學的目的是使學生理解計算機網絡體系結構和網絡協議的工作原理,掌握基于不同網絡層次協議的編程技術,學會運用高級語言開發通信實例,再從實踐中總結原理,讓學生的邏輯思維與創造性思維能力得到培養。課程的學習使學生學會分析問題,建立編程模型,進行功能程序設計,以解決網絡通信具體問題的能力。
《網絡通信程序設計》是面向本科高年級學生開設的課程,要求學生學過《操作系統》、《計算機網絡基礎》以及至少學過一門“高級語言程序設計”課程。由于課程知識專業應用深度高,學生基礎不一樣,教學過程出現如下問題:
(1)編程語言基礎不牢固,編程容易出錯,消弱了學習積極性。學生在選修網絡通信編程課程之前已開設過“C++程序設計”課程,但由于C++語言本身比較抽象,學習有難度,存在學生學習質量不高的癥狀。由于語言基礎不扎實,學生在網絡編程課程學習中,容易出現程序語法上錯誤,調試程序占用較多時間,個體創新能力被限制,自然對課程的學習產生消極心理。
(2)學習方法不對,學生有死記硬背的現象。學生習慣性的沿用了應試教育的思維,知識的接受上選擇被動教育的方式,采用被動記憶程序的方法。由于網絡體系結構的復雜性及通信協議的多樣性,網絡通信編程有一定的靈活性,所以網絡通信實例的開發注重編程模型的設計、編程流程的構思和開發方法的選擇,這些很需要學生自主思維和創造思維的能力。
(3)實踐教學環節薄弱,學生的實踐動手能力有待提高。目前的教學條件,實踐教學主要以開設實驗課程與上機輔導的方式進行。由于實驗課程內容任務性不強、實驗項目間關聯性不大,造成實驗課內學習效果不明顯,學生抄襲作業現象嚴重。
(4)考核方式模式單一,缺乏評測的多面性。課程學習效果的評測仍然沿用傳統的試卷考核的模式,考核重理論輕能力、重結果輕過程[1],學生的實踐能力受模式限制很難得到較好評價,這樣嚴重影響自主學習的積極性。
網絡通信程序設計課程注重培養網絡通信專項應用能力,針對不同學校不同專業的學生在課程的教學內容安排上應該有所不同。如果課程知識過于抽象或理論難度過深,學生學習起來會比較艱難,這樣會影響學習的積極性;若課程內容選擇過于簡單,又達不到教學的目的,學生個體能力得不到鍛煉。
隨著網絡技術的發展,TCP/IP協議其高效、可靠、實用等特點確立了它在網絡協議中的地位,基于TCP/IP協議棧的套接字網絡編程技術,是網絡通信程序設計的核心技術[1]。把握網絡編程課程的教學重點,針對不同專業不同層次學生的知識背景,合理安排該課程的教學內容,是保證課程教學質量的首要思考。就一般本科院校網路工程專業學生而言,學習網絡編程課程更應把握重點、有的放矢的學習。傳統的教學內容安排以不同類型的網絡編程為線索,各章節以知識介紹、實例分析和學生實踐驗證的模式開展,各章關聯性小,學習過程顯得乏味。
經過教學實踐的摸索,對教學內容的安排進行調整,如表1所示。改進后的方案,舍去了應用并不多、知識抽象的NetBIOS編程,降低學生學習難度;增加了winsock編程[2]的內容比重,更加詳細的分析Winsock編程原理及多樣性。課程的核心內容在于介紹WinSock從低級到高級的編程,改變了原來各章知識關聯性不大的狀況,在教學進度上可以選擇一個綜合性網絡通信案例教學,該案例可以囊括表1(b)中第2至6章節的知識。教學內容的調整,讓教師教學更加靈活,引入“項目驅動法”[2]教學,增加師生互動,有益于培養學生自主學習的能力。

表1 課程教學內容的安排
為改善網絡通信程序設計的教學現狀,經過教學內容的調整,選擇適合的教學方法是改善教學質量的便捷途徑。屏棄傳統的以“教師為本”、“教材為中心”的講授方式,采用“學、練、新”為一體的綜合模式教學,有益于提高學習進度的關聯性,保持學生學習的熱情,培養動手實踐和思維創新的能力。
案例教學是程序設計類課程教學普遍采用的方法,網絡編程課程教學可以選擇一個綜合性的通信案例 (如多用戶的網絡聊天軟件、文件傳輸服務軟件),讓教學案例以項目開發的形式貫穿于課程教學的始終。選擇一個難度適中、知識點豐富的項目,是項目教學的首要任務。其次,根據知識點分解項目,生成子項目或者子任務,再把這些子任務映射到各章節的教學中。教師為教學子任務準備好教學中需要的理論知識和可能出現的問題,搜集相關的資料向學生介紹與分析,共同探討解決問題的方法,并通過項目的進展來驗證方法的可行性。采用“項目驅動法”[2]教學,讓學生從簡單到復雜,從零起步開始進行網絡編程[3];把復雜的網絡知識分解到項目應用中,能夠幫助學生更好地理解所學知識;通過任務驅動的方式,模塊化地進行任務規劃與設計。這樣的學習方法讓學生保持良好的學習熱情,培養主動思考和分析問題的能力。
讓學生主動思考地去寫程序是是實驗教學環節的任務,經過教學改革的探索,采用引導學生跟隨上課教學進度在實驗時間自主完成項目子任務類似“舉一反三”練習的方法。教師需根據進度設計囊括不同知識點的實驗教學用例,提出關鍵問題,讓學生思索解決問題的辦法,在實驗課上自主完成實驗任務。根據表1中教學內容的安排,針對重要知識及疑難點制定專題實驗,其中會話套接字通信、數據報套字通信、多線程實現編程等必做實驗任務;異步模型通信編程,原始套接字編程等為選做實驗。這樣既讓學生在實驗練習中達到課程知識訓練的目的,又能靈活選擇喜歡的實驗項目,提高學習的趣味性,逐步培養分析問題和解決問題的實踐動手能力。
“項目驅動法”教學中教師需從項目開展中歸結知識點,讓抽象的網絡知識具體化,使學生更容易吸收,同時在每一講結束后進一步啟發學生思維,跳出簡單的程序編寫細節回到項目應用中,促進學生自主思考、尋求推動項目進展的方法。比如在講解數據報組播通信模式時,讓學生思考“客戶端如何加入工作組”問題。再把課堂學習來的知識,舉一反三應用于課程大作業中,鼓勵學生大膽實踐、勇于創新。
“學、練、新”為一體的教學方法既要求學以致用[4],又鼓勵推陳出新。學生在學習項目開發的過程中,教師設置問題讓學生在實驗中解決,再把學習到的方法應用到自選主題的課程大作業中,這種方法充分調動學生學習的自主性和創造性。
由于教學方法的多樣性以及教學過程加大了實踐動手能力的培養,傳統的以試卷考核的單一模式已不能滿足對學生能力評測的需要,經過教學團隊的探討決定采用實踐考核與理論考核并重的雙模式。實踐考核以課程大作業的形式,在幾次專題實驗后,大概在第7周開始就讓學生分組自主選題、老師把關,大作業的進行模擬課堂教學“任務驅動”的方式,老師與組長共同監督項目過程,并在期末組織教師、組長及企業導師共同評價的大作業考核方式。理論考核仍可以沿用試卷考試的方式。考核方式的改革是“項目驅動”教學模式的延續,課程大作業的制作并讓學生參與評價,培養學生協作精神、自主學習的能力,同時也促使學生在評價中深化知識的理解。
經過對網絡通信程序設計課程的教學內容、教學方法和考核方式三個方面教學實施過程的改進,學生對該課程學習的積極性明顯提高,大部門同學都能自主完成課程大作業并在作業答辯中準確回答通信的原理,教學質量顯著提高。通過教學改進策略的思索,在一般本科院校中對培養出創新意識強、善于自主學習和實踐動手能力強的計算機應用型人才進行探索性實驗[5]。當然,教改工作中也有很多亟待改進和提高的地方,通過不斷改革實踐,總結教改經驗與策略為同類課程的教育教學提供借鑒意見。
[1]陳鋒,吳明暉,顏暉.影響應用型人才培養質量的關鍵環節探討[J].中國大學教學,2011(5):23-25.
[2]劉琰,常斌,羅軍勇,等.面向能力培養的網絡編程技術課程教學方法探討[J].計算機教育,2010(18):52-55.
[3]李鵬.網絡編程技術課程的教學改革思路[J].西安郵電學院學報,2010(2):166-168.
[4]高全芹.面向應用型人才《測試原理與技術》課程的教學探討[J].長沙大學學報,2012(2):115-116.
[5]劉漢興,劉才興,鄺穎杰,等.“網絡編程”教學方法的探索[J].計算機教育,2010(3):91-93.