秦董洪,葛麗娜
(廣西民族大學信息科學與工程學院,南寧 530006)
《網絡編程》教學改革研究與探索
秦董洪,葛麗娜
(廣西民族大學信息科學與工程學院,南寧 530006)
針對《網絡編程》課程特點,結合學生實際情況以及用人單位的技能需求,分別在教學內容組織、教學方法、編程實踐、考核方式四方面進行教學改革研究與探索,在實際教學中取得較好的教學效果。
網絡編程;教學內容組織;教學方法;編程實踐;考核方式
隨著互聯(lián)網技術及其應用蓬勃發(fā)展,對計算機類專業(yè)學生來說,除了熟練掌握當前主流的編程語言(如C++)以外,還需要掌握相關網絡編程技術?!毒W絡編程》作為《計算機網絡》的后續(xù)課程,在計算機類專業(yè)課程體系中占有十分重要的位置,是計算機類專業(yè)的必修課。本課程要求學生在理解計算機網絡的基本理論的基礎上,運用Java語言進行軟件開發(fā),具備開發(fā)網絡軟件系統(tǒng)的能力。
2.1 理論教學
《網絡編程》是一門理論性與實踐性相結合的課程,它不僅涉及到計算機網絡理論,如網絡分層模型[1],而且涉及到與各層有關的網絡系統(tǒng)開發(fā)。根據我校學生的專業(yè)情況和就業(yè)需要,課題組只針對網絡分層模型中的應用層和傳輸層進行了重點講授;開發(fā)語言選擇了支持互聯(lián)網、具有跨平臺特性的Java語言。為統(tǒng)一學生的編程知識,我們對Java的基礎知識進行了簡要的回顧復習,增加了多線程、I/O數據流以及界面設計等內容,并根據課題組的教學改革共識,重新編制了理論教學的知識結構(如圖1所示)。
圖1 課程內容體系結構圖
為了便于教學,我們根據《網絡編程》教學大綱,篩選了一些核心知識點。
●界面設計(UI Design):介紹如何編寫用戶與系統(tǒng)交互的操作界面,以實現信息的錄入與系統(tǒng)結果的顯示。
●多線程技術(Multi Thread):介紹在網絡環(huán)境下多任務并發(fā)操作的實現技術。
●流套接字(Stream Socket):是基于TCP/IP協(xié)議的傳輸層接口,提供面向連接的可靠的數據傳輸服務。
●數據報套接字(Datagram Socket):是基于UDP協(xié)議的傳輸層接口,提供面向無連接的、“不可靠”的數據傳輸服務。
●數據庫連接(JDBC):是Java進行數據庫設計的編程接口。
●后端應用程序(Servlet):是一種接收客戶端請求并構建動態(tài)Web頁面的Java程序。
●組件模型(JavaBean):是一種Java語言編寫的可重用組件。
●Structs是一個MVC框架,包括3個核心的模塊:模型(Model)、視圖(View)和控制器(Controller)。模型是由實現業(yè)務邏輯的JavaBean組件組成,在Struts框架中對應的是ActionForm;控制器由ActionServlet和Action來實現;視圖就是由一組JSP文件構成。
●Hibernate是一個基于Java的開源的持久化中間件,它對JDBC做了輕量的封裝,它提供了對象-關系的映射服務(Object/Relation Mapping,ORM),把關系數據庫轉化為對象。
●Spring是一個支持J2EE開發(fā)的輕量級框架,它由IoC(反轉控制)、AOP(面向方面編程)和Spring抽象服務構成。
2.2 實驗教學
《網絡編程》的首要目標是提升學生的網絡系統(tǒng)開發(fā)能力。軟件開發(fā)水平的高低取決于知識掌握程度及其運用能力的高低,因此知識運用或實驗教學也將成為課程所關注的重要環(huán)節(jié)。
為了增強學生編寫實際項目的體驗以及培養(yǎng)團隊合作能力,課題組選擇了我校的合作企業(yè)“廣西應龍高科技公司”的“互聯(lián)網訂餐交易系統(tǒng)平臺”作為課程的實訓項目。針對實際教學需要,課題組按照知識點設置情況將項目劃分成若干基于知識點的模塊程序,以達到對相關知識點的鞏固和運用。實訓項目的具體分解與模塊程序的設計詳見表1。模塊程序的設計遵循了兩條基本原則:(1)與課程的重要知識點一一對應,要有較強的針對性與啟發(fā)性。程序是針對某類知識點設計的,可以解決特定的技術問題;同時也要有一定啟發(fā)性,能觸類旁通地解決其他相關的技術問題;(2)程序要有明確的目標和完整的結構。學生應在確保程序完成特定目標以及具有輸入、處理、輸出的完整結構以外,要自覺養(yǎng)成探索意識,利用各種知識靈活解決實際問題。
傳統(tǒng)教學通常采用“教師主講、學生受聽”的教學模式,其弊端在于它是一種“填鴨式”教學,無法充分發(fā)揮師生的主觀能動性。為此,課題組探索了“以教師為主導,以學生為主體”教學模式。該教學模式要求教師和學生都應成為教學活動的積極參與者,即教師負責課程知識點的講授與梳理;學生課后根據教師的要求自主地進行鞏固和拓展學習。為了充分發(fā)揮師生的主觀能動性,我們將整個教學劃分為四種基本活動類型:理論講授、專題匯報、成果演示、自主學習。理論講授是在課堂上以教師為主并由師生共同完成,教師通常概括、選擇性講授一些重要的知識點,要求學生課后拓展學習。專題匯報就是教師安排某些學生就某個專題進行文獻調研,分析并整理學習材料,然后在課堂上進行匯報。成果演示是在實驗室以學生為主并由師生共同完成,學生在掌握理論知識的基礎上,結合教師布置的任務要求,通過自主探索、同學討論、互相幫助等完成初步作品,然后將該作品提交給教師驗收。自主學習就是要求學生利用課余時間進行探索式學習,對教師講授內容的深入研討和拓展,或者運用知識編程實踐。在這四類教學活動中,自主學習是以學生為主體的重要教學活動,學生要有深刻認識,因為自主學習活動開展的質量將最終決定學生的學習效果與收獲。
3.1 教師講授
在傳統(tǒng)教學中,教師通常要講完課程所有知識點并試圖讓學生理解和掌握。在有限的時間(課時)和空間(課堂)內要求教師有效完成這些任務是非常困難的,也是不現實的。為了鼓勵學生自主探索學習,教師應在課堂上采用“概括講授”的方法,即教師串講有關重要的核心知識點,重點布置學生需自學鞏固的內容以及待完成的作業(yè)。學生在課后可以探索學習:通過上網搜索相關知識、到圖書館參閱相關文獻,達到熟練掌握課堂教學內容;通過與同學討論交流,增進對知識的理解;通過動手編程實踐,運用所學的技術編寫高質量的軟件程序。
3.2 學生團隊組建與匯報
課程開課后,教師將全班學生分成若干學習小組。根據教師布置的課程任務,小組成員之間要分工合作,交流討論,然后在課堂上集體匯報學習成果。具體任務包括:(1)確定成員分工。各小組在獲得教師布置的項目開發(fā)和課堂講授的任務后,根據任務的實際情況,成員之間要做好合理分工,明確各成員的具體職責,確保整個任務順利完成。(2)講授內容的選擇與組織。學生要順利完成課堂講授,具有一定的挑戰(zhàn)。這需要團隊成員認真研讀課程內容,選擇匯報內容,在充分交流討論的基礎上對匯報內容要達成共識。(3)課件制作。要精心設計演示文稿(PPT),對于報告內容,既要重點突出,又要條理清楚。(4)課堂匯報。要求成員在課堂上介紹有關技術知識和項目開發(fā)情況,并面向其他同學進行答疑。
在小組報告后,教師和其他同學可以進行提問和點評。其他學生可以對本報告的重點或難點、或者自己不清楚的問題,進行提問并要求回答,也可以直接指出報告中存在的問題。在教師點評階段,針對整個報告的組織與演示進行評價,例如報告內容的選擇,PPT課件制作、項目開發(fā)的可行性等。另外,教師可以針對學生沒有講到的重點內容進行補充說明。
表1 項目及其程序模塊一覽表
為了有效地鞏固課堂教學效果,培養(yǎng)學生運用技術知識解決問題的能力,需要在整個教學過程中進行針對性的編程訓練。根據多家用人單位對實驗教學的要求,課題組精心編制了實驗模塊,如表1所示。首次上課時,教師除了介紹課程教學目標、教學內容、考核要求之外,還要完成兩項工作:(1)介紹課程項目情況及其程序模塊的劃分;(2)要求學生自行組建團隊。為了便于統(tǒng)一考核,課題組選擇了“互聯(lián)網訂餐交易系統(tǒng)平臺”作為實訓項目,然后將項目分解成7個模塊程序,這樣保證了項目與實驗程序的合理性,也有利于實驗程序的重用,在不增加任務的情況下,達到對各技術知識的單項訓練和綜合訓練的目的。關于團隊組建,考慮到團隊的合作效率與質量,團隊人數設定為5人,每個團隊都要完成項目開發(fā)和5個模塊程序,每個成員至少要參與2個模塊程序編寫。第一次上課結束后,教師要將相關的技術資料與項目資料發(fā)給學生,以便盡早進入項目開發(fā)階段。
在具體編程實踐方面,課題組要求學生按時按質完成教師布置的各項任務。實驗設計包括了7個程序模塊和1個軟件項目,前者是以鞏固和應用專題知識的小型程序設計,后者是用于整合的網絡軟件項目。為了提高學生的編程效率和質量,課題組針對兩類實驗分別設計了相應的開發(fā)框架模型。
4.1 面向小型程序的開發(fā)框架
為了簡化編程邏輯,課題組開發(fā)了IPO開發(fā)框架模型,強調以輸入(I:Input)、處理(P:Process)和輸出(O:Output)為思維重點的開發(fā)框架模型。
圖2 簡易程序的開發(fā)框架
從邏輯上講,軟件程序通常包含輸入(Input)、輸出(Output)和數據處理(Process)三部分。數據輸入I的來源可以是輸入設備(如鍵盤、鼠標等),磁盤文件或網絡設施。數據輸出O的目地可以是輸出設備如屏幕、磁盤文件或網絡。對于數據輸入輸出,系統(tǒng)還可能包括交互界面的設計與開發(fā),即UI編程。數據處理P一般是指業(yè)務處理,以可以稱為算法。在比較復雜的程序設計中,數據處理P分為數據訪問處理、業(yè)務處理、邏輯處理等。編程實踐中采用了IPO框架模型來對簡單程序進行分析、建模,IPO模型將一個程序從邏輯上劃分為三部分,將有助于理清程序設計與實現的思路,使得學生對整個程序的分析與開發(fā)演變?yōu)閺妮斎?、輸出和算法三個角度入手,簡化了程序的設計。然后有重點地去分別考慮使用那些中間件或組件來設計和實現這三部分。
4.2 突出項目實戰(zhàn)的網絡系統(tǒng)開發(fā)框架
項目實戰(zhàn)有利于培養(yǎng)學生組織項目開發(fā)的能力,為此按照軟件項目的生命周期來進行項目開發(fā),包括需求分析、系統(tǒng)設計、系統(tǒng)編碼三個階段。
需求分析。該階段主要目的是根據項目情況分析項目的功能需求并制定需求清單。項目開發(fā)中最重要的環(huán)節(jié)之一就是對軟件系統(tǒng)進行需求分析和功能分解。需求分析是行業(yè)領域知識與需求工程相互結合的產物。盡管這兩者不屬于純粹的“網絡編程”的技術,但對于項目開發(fā)是至關重要的。需求分析要在充分掌握和行業(yè)領域知識和需求工程的基礎上進行,而功能分解就是在需求分析的基礎上,編寫系統(tǒng)總體功能結構圖,并對功能結構圖中各模塊功能進行準確的描述說明,為系統(tǒng)設計奠定堅實的基礎。
系統(tǒng)設計。系統(tǒng)設計就是繪制軟件系統(tǒng)的結構藍圖,包括三方面工作:一是系統(tǒng)架構和設計模式的選擇。例如采用P2P、CS還是B/S架構。二是界面設計,包括輸入和輸出界面。初步的界面設計可以使用Pho?toshop等畫圖軟件繪制。三是核心算法設計。核心算法一般指對于系統(tǒng)的安全、可靠和效率有重要決定性的代碼。根據項目情況,要精心選擇并編制核心算法。系統(tǒng)編碼。按要求編寫系統(tǒng)要求的各個模塊。為了編寫高質量的程序代碼,養(yǎng)成良好的編程習慣,學生應做到如下三點要求:(1)嚴格遵守編程規(guī)范,包括變量、函數命名,友好的程序注釋等;(2)統(tǒng)一函數模塊接口要求,便于接口的使用和修改;(3)可重用的組件開發(fā)。在日常編程中,學生要有意識地編寫一些公共組件,并重復用于以后的項目開發(fā)中。
考核評價是測量學生知識與技能掌握程度、考核其能力的重要手段??己嗽u價體系主要包括測量項與指標項的設置以及互相之間比例關系的確定。網絡編程課程的測量項目主要包括作業(yè)、測驗、實驗、專題匯報、課程報告。設測量項為pi,i=1…n(n為測量項的數目),ai表示測量項目的權值。最后課程成績S可由如下公式計算:
表2 測量項與權值
在考核評價體系中,許多高校都將溝通、表達能力的培養(yǎng)作為培養(yǎng)目標的重要組成部分。鑒于此,我們也將溝通與表達能力的考察引入到成績評價體系中。例如,在項目演示測試項中,考慮用技術、寫作與口頭表達三指標來綜合評價,其權重分配如下:技術占30%,寫作占35%,口頭表達占35%。今后計劃將這種細化評價也推廣到其他測試項目之中。
針對《網絡編程》課程教學中存在的挑戰(zhàn),課題組通過學生代表座談、用人單位現場走訪等方法,梳理了教學中可能存在的原因,提出相應的教學改革共識:精心選擇教學內容、采用“以教師為主導,以學生為主體”教學模式、以項目實戰(zhàn)為載體的編程實踐。通過與學生座談并結合實際考核結果發(fā)現,與課程教學改革之前相比,學生對網絡編程課程的認識以及軟件工程師的素質教育得到了一定程度的鍛煉,經過該課程的學習,具備了未來軟件工程師的一些基本素質。這表明課題組提出的教學改革方法在網絡編程課程教學中已經取得了預期的良好效果。
[1]葉樹華.網絡編程實用教程[M].北京:人民郵電出版社,2015.
[2]郭珍,王國輝.JSP程序設計教程(第2版)[M].北京:人民郵電出版社,2013.
[3]劉永華,于春花.Java網絡編程技術[M].北京:清華大學出版社,2009.
[4]楊磊,陳凌云.精通Eclipse Web開發(fā)-Java體系結構、工具、框架及整合應用[M].北京:人民郵電出版社,2006.
Abstract:According to the characteristics of network programming course,combining with the student current situation as well as job skill needs,shows some research and exploration in the following aspects such as teaching content organization,teaching method,programming experi?ence and assessment way.And all these reforms have achieved some better results in the teaching quality.
Keywords:Network Programming;Content Organization;Teaching Method;Programming Experience;Assessment Way
Research and Exploration of Network Programming Teaching Reform
QIN Dong-hong,GE Li-na
(School of Information Science and Engineering,Guangxi University for Nationalities,Nanning 530006)
1007-1423(2017)25-0036-05
10.3969/j.issn.1007-1423.2017.25.010
廣西高等教育本科教學改革工程項目(No.2015JGA193)
秦董洪(1974-),男,廣西全州人,博士,副教授,研究方向為計算機網絡、算法設計
葛麗娜(1969-),女,廣西南寧人,博士,教授,研究方向為計算機網絡
2017-08-11
2017-08-30