鄭秋華等
摘要:本文分析了“網絡編程”課程教學中存在的問題,針對相關問題提出了具體的教學改革措施,編寫了合適的教材,引入了“演示過程,講練結合”“案例引導,任務分解”和“設疑自學,設錯分析”等教學模式,并針對前期教學過程中考核評價出現的問題進行了改進。實踐證明,上述教學模式比原有教學方法能讓學生得到更多的動手操作鍛煉,提高了網絡編程能力。
關鍵詞:網絡編程;講練結合;案例引導;教學改革
中圖分類號:G434 文獻標識碼:A 論文編號:1674-2117(2016)10-0083-03
引言
隨著計算機技術和通信網絡技術的迅速發展,社會對網絡人才的需求越來越強烈,網絡編程在程序設計開發領域變得越來越重要。“網絡編程”課程已成為計算機專業人才培養過程中的關鍵課程之一。[1-2]
目前,杭州電子科技大學計算機學院在計算機科學技術、網絡工程和物聯網工程三個專業開設了“網絡編程”課程,該課程是計算機類專業中重要的專業課程,每學年選課學生有200多人。
現狀分析
杭州電子科技大學計算機學院的“網絡編程”課程,主要講述基于C和C++語言利用socket API實現網絡客戶端和網絡服務器編程,著重于底層socket接口的關鍵細節講解和各種模型的服務器設計和實現。筆者所在學校的“網絡編程”課程組的教師具有個人能力較強、理論基礎扎實、知識面廣、項目實踐經驗豐富和大型服務器程序開發經歷的特點。在教學過程中,任課教師對課程的內容和知識點講授比較到位,課堂內容設計也較符合社會實際需求,學生在學習過程中可以更深入地理解網絡理論,熟悉各種網絡編程技術,提高實踐動手能力。但是,在教學實踐過程中,筆者也發現了許多問題。主要有以下幾個方面。
1.學生興趣不持久
網絡編程的學習在初期很容易引起學生的興趣,但由于網絡編程對學生的基礎課程要求較高,隨著學習的深入,學生所遇到的困難也越來越多。與其他課程相比,網絡編程的程序代碼量較大,普通的一個程序就可能在千行以上。而且很多大三學生僅僅具有程序設計的基礎知識,沒有編寫過大型程序,解決實際問題的能力還很弱。程序過大,就會出現各種編程問題,這讓很多學生產生了畏難情緒,使得他們不愿意更加深入地去學習。
2.缺乏合適的教材
市面上各種編程類書籍內容參差不齊,如何從中選擇合適的教材是一件困難的事情,這個現象在“網絡編程”課程中特別嚴重。總的來說,目前網絡編程類書籍可分為以下幾類。
(1)高校教師為了評職稱或其他原因而編寫教材。此類教材價格相對比較便宜,難度較為適合“網絡編程”課程,但也存在許多問題,主要有:①內容過全、過多,重點不明確;②編寫者缺乏工程經驗,思維落伍,教材中所用技術已經淘汰。
(2)業界人員編寫的網絡編程書籍。此類書籍對編程者來說,有較強的工程實際經驗,思維較先進,所用技術符合當前技術發展潮流,重點內容突出。但因為其面向對象不同,也存在一些問題,主要有:①價格高;②內容過全、過多;③內容過難,不適合初學者。
3.課時設置不合理
目前,“網絡編程”課程雖然在網絡工程專業中被列為專業核心課程,但課時只有48學時,因課程涉及簡單TCP客戶服務器模型、簡單UDP客戶服務器模型、多路復用客戶服務器模型、多線程客戶服務器模型、WSAAsyncSelect客戶服務器模型、WSAEventSelect客戶服務器模型、高級IO模型、協議設計、套接字選項設置等多項內容,教學課時明顯不夠,學生缺乏足夠的課內學習時間。
網絡編程教學改革實踐
鑒于目前“網絡編程”課程存在的上述問題,筆者提出對其教學模式進行改革,主要改進之處有以下幾點。
1.結合各教材優勢,自編教材
教材的選用,直接影響學生的興趣和教學質量。因此,要盡量選用注重實踐、有較多實例的教材。筆者發現目前并沒有很適合筆者所在學院學生的教材,因此筆者通過借鑒《Windows Sockets網絡編程》《UNIX網絡編程》和《TCP/IP網絡編程》等書籍,綜合各家之長,結合學院學生的實際進行內容篩選,目前已經完成了自編教材的初稿,并在這學期進行了試用,效果較好。
2.優化教學模式
教學中要注重培養學生的實踐能力、創新能力,因此必須要創新教學方法,采用多種教學手段,以達到良好的教學效果。在幾年的網絡編程教學中,筆者主要采用了以下教學模式。
①演示過程,講練結合。在“網絡編程”課程中,教師不僅要對知識內容進行講授,而且還要對IDE環境和UI開發進行講解。對用于演示知識點的系統代碼,也在課堂上進行現場編寫,從而提高了學生的動手能力和思考能力。
②案例引導,任務分解。[3]教學過程中多采用實例,利用step by step的方式來培養學生解決問題的能力。目前“網絡編程”課程設計采用的主案例是C/S模式的聊天室開發。講解簡單的UDP客戶服務器模型時,利用UDP方式實現相關程序;講解多線程客戶服務器模型時,則通過將UDP方式實現的聊天室程序修改為利用TCP和多線程方式;講解多路復用客戶服務器模型時,則將多程序TCP實現方式修改為多路復用方式實現,并加入多數據包重組功能;WSAAsyncSelect客戶服務器模型階段,則將聊天室程序客戶服務器端都改為WSAAsyncSelect模型方式實現;講解WSAEventSelect客戶服務器模型知識時,則將服務器改為用WSAEventSelect實現。使用上述方式,讓學生能學會用多種技術模型來實現系統,并了解它們之間的優缺點,同時使得學生在學習每個知識點時工作量不太大,能將精力集中在模型知識本身。
③設疑自學,設錯分析。在教學過程中,教師要求學生實現上述所有編程模型,并通過上機驗收。與此同時,在程序實驗中,教師人為加入一些Bug,要求學生進行改進并實現私聊、文件傳輸等其他功能。利用這些方式培養學生的自學能力,讓其進行自學摸索。
3.完善考核評價體系
教學過程中的一個重要環節就是教學效果評價,教師對學生能否做出正確、客觀、科學的評價,將在很大程度上影響學生的學習態度和學習興趣。[4]
為了保證學生在課后主動動手編程,課程組設置了6個知識點的編程小作業,并要求對各知識點的程序進行上機驗收。在前期實踐過程中,筆者由于沒有規定驗收截止時間,導致很多學生在后期才完成實驗,使知識點的銜接不連貫,給課程講解帶來了一定的困難。
為了解決這個問題,課程組在后續教學實踐中加入了驗收截止時間,并在課程學習群中及時公布驗收情況。
參考文獻:
[1]吳博.“任務驅動教學法”在“網絡編程”課程教學中的應用[J].中國大學教學,2010(7).
[2]鄭秋華,胡維華,姜明.基于復雜網絡的課程體系分析方法[J].計算機教育,2014(20).
[3]高應波.《計算機軟件技術與應用基礎》教學中案例任務驅動教學法的應用研究[J].軟件導刊:教育技術導刊, 2007(04):23-25.
[4]鄭秋華,張禎,姜明,徐明.基于項目驅動的“網絡編程”教學模式[C].浙江省計算機教學研究與實踐2015學術年會論文集.
項目資助:本文為浙江省“十二五”新興特色專業“網絡工程”(重點方向:網絡安全)建設項目(編號:GK140105205048)研究成果。