◎ 毛紅閣 陳東
C#網絡編程課程應用微課教學的探索與實踐
◎ 毛紅閣 陳東
網絡編程課程是一門實踐性很強的課程,要求有較強的編程能力,為了提高教學效果,本文嘗試將微課引入網絡編程課程教學中,使微課成為課堂教學的重要資源,同時增強學生的學習主動性,增加課堂活力,改善了學習的靈活度。
網絡編程課程是網絡工程專業高年級學生的一門核心專業課程。這門課程包括網絡基礎知識、網絡編程技術、TCP/IP編程、基于網絡應用原理的網絡編程實現四大核心部分。理論知識的牢固掌握是實踐應用的前提,網絡應用編程是將理論知識內化為實際應用能力的過程。扎實地完成每一個網絡應用項目是提高編程能力的必修課。
目前,大部分教學活動是在課堂完成的,課堂內容質量的高低是影響學生是否高效掌握知識點的重要因素。對于計算機編程課程,教師一般先講授知識點,接著舉例應用,這在一些代碼量不是很多的程序中,方法簡單可行,結果一目了然。對于項目案例的講解,教師如果用演示結果、解釋代碼的方式來講課,學生對于操作過程不清楚,如同霧里看花。但是教師如果把整個項目完整的制作過程在課堂上演示一遍,教學課時又不允許。在課堂上講冗長的代碼,學生理解不到位或者由于思想開小差而沒跟上講課的思路,學生可能會失去學習代碼的興趣。在上機練習中,由于對知識點的生疏并且項目代碼的量稍大時,學生的上機時間明顯不夠,同時也失去了老師的輔導機會,在課后學生需要花費大量的時間去完成作業。由于課下作業是在失去監督的情況下完成的,作業完成的情況并不一定能真正反映一個學生的真實水平。對于現在課堂教學出現的問題,作者引入微課對課堂教學活動進行改革。
微課是指按照新課程標準及教學實踐要求,以視頻為主要載體,記錄教師在課堂內外教育教學過程中圍繞某個知識點(重點難點疑點)或教學環節而開展的精彩教與學活動全過程。本文以網絡編程中HTTP編程一節為例,闡述基于微課的教學改革過程。
(1)課前準備
a.教師:在新課之前,教師根據該節內容的重點、難點錄制好微課,將視頻放置到FTP服務器上。例如制作利用WSHttpBinding掩飾請求應答模式的視頻、基本HTTP綁定的實現視頻、WSDualHttpBinding中單向模式的基本用法視頻、WSDualHttpBinding中雙工通信的基本用法視頻,同時通過微信群發需要預習的課程內容,需要學生實現的項目的功能,以及思考題。
b.學生:根據教師布置的任務,學習HTTP的工作過程、HTTP綁定方法、單模式的用法、雙工通信的基本用法,去服務器下載并看觀看教師制作視頻,完成項目中需要補充的功能。
(2)上課中
首先教師測試學生課下預習的情況,了解學生課下學習的深度及廣度,對于重點、難點知識是否已經掌握,針對掌握情況不是很好的知識點,重點講解,舉例說明。
為了讓學生對HTTP編程有更深入的理解,通過互聯網實現一個網絡對戰五子棋游戲,之所以選擇五子棋作為例子,是因為五子棋本身的規則不太復雜,按照規則實現其功能需要的代碼不多,為了讓學生將注意力集中在代碼實現上,例子的重點在于服務端如何管理多個游戲玩家以及服務端和客戶端如何通信這方面。網絡編程的關鍵是服務端和客戶端如何通信。對服務端來說,假設游戲有一個游戲大廳,大廳內有許多個小房間,每個房間放有一張游戲桌子,每張游戲桌旁只能坐兩個玩家:黑方和白方。為了簡單起間,例子中不考慮旁觀的情況。
當客戶端登錄到游戲大廳時,客戶端必須知道誰來了,叫什么名字,進入后是留在游戲大廳,還是進入某個房間。另外,用戶登錄時服務端還需要告訴該用戶,游戲大廳和各個房間內一共有多少人,游戲室一共開設了多少個房間等。
通過互聯網下棋,由于各方都在自己的計算機上操作,因此玩家必須將自己操作的情況告訴服務端,服務端再根據游戲規則決定是通知另一個玩家,還是告訴該玩家下一步應該怎么辦。如果一個客戶希望和另一個客戶通信,實際上并不是直接連接到另一個客戶而是經過服務器中轉的。
為了讓通信雙方都能順利解析對方發送過來的信息,就必須事先規定每條信息的格式,即服務端和客戶端:
a.客戶端發送給服務端的請求:客戶端發送給服務器端的命令以及服務器端操作的規定包括:客戶的登錄,推出、就坐、起身、開始、請求棋子、說話這些規定。
b.服務端發送給客戶端的命令:客戶端與服務端連接成功后,客戶的每一個動作都應該由服務端發送的命令來決定,服務端發送給客戶端的命令在服務端定義,定義的動作有:顯示登陸、顯示退出游戲、返回游戲廳、顯示開始、發出對話、顯示棋子位置、游戲開始、游戲獲勝方、各桌玩家情況。
服務端的主要設計如下:IGobangService.cs文件中分別聲明需要服務端實現的接口以及需要客戶端實現的接口,CC.cs文件用于保存連接的用戶數以及每桌游戲情況,User.cs文件用于保存每個登錄用戶的游戲狀態等信息,GameTable.cs文件用于管理每桌游戲。
客戶端的主要設計如下:客戶端游戲界面在ClientWindow.xaml文件中,為了方便觀察,這個例子在同一個項目中同時創建兩個客戶端窗口,用于分別模擬不同的用戶,所以在MainWindow.xaml創建兩個用戶。將Client設置為啟動項目,運行程序,測試游戲效果。布置作業:設計一個簡易的HTTP服務端的程序,監聽80端口。支持多客戶連接,能滿足客戶的HTTP方法,包括GET、POST、Head請求。同時再設計一個客戶端,向服務器發送請求,并響應結果。討論該題目如何實現,實現過程有什么難點,如何解決。
(3)課后
根據興趣分成兩人一組討論交流,完成教師作業并且錄屏。
在教學中引入微課教學,給沉悶的課堂添加了色彩元素,激活了課堂活力。實踐探索表明,學生的學習主動性明顯提高,有效地增進學生和教師對課程知識的互動性,大大提高了學生的學習效率。雖然微課在教學活動中的優勢越來越明顯,但在實施中還存在一些問題,例如:如果學生課前不看微課視頻,課堂效果不一定理想;如果教師的視頻制作的水平有限,對學生的學習興趣有一定的影響。因此。微課教學的道路任重而道遠,我們還需要不斷探索和實踐。
河南省高等學校重點科研項目。項目編號:16672
南陽師范學院軟件學院)