楊 佳 鐘劍丹 陳 超
成都信息工程大學通信工程學院 四川成都 610225
隨著“中國制造2025”等一系列國家重要戰略的制定,新工科教育建設已成為我國經濟發展的迫切需求。新工科教育以探索工程人才培養的新理念和新方法為手段,著重培養和提升學生解決復雜工程問題的綜合能力與素質,為新一輪技術革新培養高質量的技術人才[1]。程序設計類課程是我國高等教育發展規劃當中的核心課程之一,是培養工程技術人才的重要環節。“互聯網程序設計”以Python語言為基礎,采用由淺入深的方式教授學生理解和掌握互聯網應用程序設計的基本原理和編程方法。作為一門重要的通信專業軟件類課程,“互聯網程序設計”在本學院的培養方案中起著承上啟下的關鍵作用。該門課程不僅融合了“C語言程序設計”“數據結構與算法設計”“數據通信與計算機網絡”等課程的基礎知識,更是引導學生采用先進的面向對象程序設計的編程思想和方法解決互聯網中的復雜工程問題,為后續以“互聯網軟件綜合設計項目”為代表的各類綜合實踐類課程以及畢業設計的順利開展奠定必要的理論和實踐基礎。在新工科背景下,借鑒教改成功經驗,深入剖析該門課程講授的不足之處,進行教學改革,具有非常重要的現實意義。
“互聯網程序設計”課程大綱的最初制定即遵循過程化管理考核的要求,從課堂測試、實驗、期末上機和綜合項目四大方面,循序漸進培養學生的編程能力,目前課程建設情況如下:
(1)課程組已經編制了對應的PPT教學資源和完整的實驗指導書,并且根據每年的實際教學情況進行教學和實驗內容的調整和完善。
(2)課題組老師借助PTA(程序設計類實驗輔助教學平臺)在線平臺,針對Python語言重要的序列結構、函數設計、異常處理、面向對象等關鍵知識點設計了以編程為主的題目集,為近400余人實現了線上實驗與考試。
(3)課程組開展了基于騰訊課堂線上、QQ作業等互動教學方式,將互聯網教學工具與傳統課堂教學結合起來。
(4)采用綜合設計項目的方式,讓學生充分利用互聯網資源庫調研并了解本課程相關技術發展和行業動態,通過綜合設計項目的設計與實現,進一步培養學生的動手能力及利用現代工具解決實際應用問題的能力,項目的檢查和答辯便于教師更全面地掌握學生的編程能力以及學生對知識的掌握程度。
盡管課程前期已進行了一定程度的建設,但在教學手段方面還存在問題,主要表現為課程還是以知識點教授為主,輔以知識點的應用例程講解,例程之間連貫性較差,未能對課程全部知識要點進行歸類、整合,學生的學習積極性未能被充分調動。因此,本次教學改革的核心任務是進行案例教學的研究,將知識通過案例串聯起來,增加學習的趣味性,使學生更直觀地感受到程序設計的應用價值。
程序設計類課程通常以講授語法為主,知識點多、散的特點造成課程講授缺乏連貫性,學生興趣不足。針對這一問題,以項目引導的教學內容改革逐漸得到了高校教師的重視。現階段教學改革在案例選擇、案例教學的實施、教學效果評價等各個重要環節都取得了顯著成果。
在案例選擇方面,蔡長安等[2]闡述了教學案例設計應該遵循的三大原則:真實性和有效性、目的性、可擴展性。陳月娟[3]討論了教學案例選擇的標準,即每個案例應該包含多樣相關性知識,案例分類應該體現知識的系統性和整合性并應具有一定價值。案例教學實施過程中,高望[4]提出了基于工程實踐的問題引導式教學改革措施,以簡單游戲的設計為主線引導學生學習和應用Python中的知識要點。羅曉麗[5]總結了趣味教學實施策略,創設情境,構建學生感興趣的案例,引導學生探究和交流、選擇合適的問題解決策略。劉鑫等[6]給出了以學生為中心和老師為主體的創新性案例教學實施關鍵步驟。張見威等[7]則是在案例教學過程中強調了語法產生的動機和原理,幫助學生更合理地應用所學知識。對于案例教學評價,邢旭峰等[8]首先從畢業要求和復雜工程問題的描述兩方面分析了工程教育的內涵,然后根據工程教育專業認證中產出導向(Outcome Based Education,OBE)的教學理念,提出了以學生學習結果作為教學效果評價的機制。周萌等[9]在考核機制方面也作了調整,用課程大作業形式代替傳統的考試模式,學生根據自己的興趣任意選擇機器人領域的某一課題完成一件作品。
目前,程序設計類課程的案例教學改革已取得了顯著的成效,但在新工科背景下,如何以專業為導向,從教學模式、教學內容及其考核方式全方面進行程序設計類課程的案例教學改革還有待研究,這也是本門課程亟須解決的問題。因此,本門課程緊密結合本專業工程教育要求,以打造具有高度靈活性和啟發性的課程教學為核心任務,積極開展課程教學改革。
根據《華盛頓協議》中提出的以學生為中心(SC:Student-Centeredness)、產出導向(OBE)、持續改進(CQI:Continuous Quality Improvemen)的教育理念,參考文獻[2]、文獻[3]和文獻[5]的做法,本門課程按照下列幾項依據進行案例的選擇和設計:
(1)案例的專業特色。本門課程主要面向通信工程專業的學生,以專業為導向,針對本門課程需要支撐的畢業要求,選擇能體現專業特色的案例。
(2)案例的真實性。新工科教育著重培養和提升學生解決復雜工程問題的綜合能力與素質,因此,案例選擇最基本的要求是案例應該真實,能反映出實際工程問題。這樣在解決案例問題時,才能真正起到培養學生工程實踐的能力的作用。
(3)案例的趣味性。案例應該具有趣味,這樣才能激發學生的學習積極性,從而達到更好的教學效果。
(4)案例的難易程度。在案例選擇時,應該充分考慮學生編程能力,選擇和設計符合學生認知規律的案例進行講解。
(5)案例的多樣性和連貫性。案例應該覆蓋多樣相關知識點,并且案例應該有連貫性,能合理整合整個教學內容。
(6)案例的可擴展性。選擇的案例應該留有功能再擴展和創新的空間,給學生進行二次開發的機會,促使學生提升自己的工程實踐能力。
根據3.1節教學案例選擇和設計的參考依據,課程組認真研讀了本門課程支撐的畢業要求,提煉出了課程教學目標:(1)使學生具有設計開發信息通信領域復雜工程問題解決方案所需的專業知識和技術手段;(2)培養學生利用信息通信領域的專業工具對專業問題進行預測與模擬的能力;(3)培養學生能夠針對信息通信領域的問題,設計實驗、分析處理和解釋實驗數據的能力。
根據教學目標,對課程內容進行總體劃分,其中Python序列知識、條件與循環、函數設計等教學內容支撐教學目標(1)的要求;面向對象程序設計和基于面向對象程序設計的用戶圖像界面相關知識作為目標(2)的教學支撐內容;互聯網通信應用的相關知識則支撐教學目標(3)的要求。在此基礎上,考慮到學生的編程能力,按照知識點的難易程度和相關性,創設了分層次案例教學的模式,圍繞教學案例整合教學內容,以此循序漸進培養和提高學生的編程能力。案例教學的層次架構如下圖所示:

案例教學層級架構圖
第一層次,以Python序列為核心知識,輔以條件與循環、函數設計的講解。首先以加密技術為主線,對列表、元組、字典和集合等序列中分散枯燥的知識點進行了整合。在此基礎上,以文字處理為主線,整合了實現文字處理的相關技術,提高教學趣味性,拓展其知識面,同時也有意識地突出Python與C語言的不同之處,培養學生理解和掌握具有Python風格的編程方法,使學生具有設計開發信息通信領域復雜工程問題解決方案所需的專業知識和技術手段。
第二層次,以Python面向對象程序設計作為核心知識,以基于圖形用戶界面的人機交互作為案例,引導學生接受、理解和掌握面向對象程序設計的風格和編程方法,提升學生編程邏輯思維,培養學生利用信息通信領域的專業工具,對專業問題進行預測與模擬的能力。
第三層次,以Socket通信為案例,融合前兩個階段的知識要點,回顧和拓展與計算機通信相關的互聯網知識,輔以文件操作、異常處理與調試的講解,幫助學生理解和掌握網絡通信中數據存儲與傳輸的方法,以及提高編程效率的技巧,培養學生能夠針對信息通信領域的問題,設計實驗、分析處理和解釋實驗數據的能力。
本文以加密技術案例為例,簡單說明案例教學的實施細節。列表、元組、字典與集合四大基本序列是Python基礎編程的核心知識。此部分授課主要是講解各序列主要功能函數的使用,知識點較為枯燥,因此,創設了以加密技術為主線的案例教學,將各序列分散枯燥的功能函數進行了整合,提高教學趣味性,并拓展學生的知識面。
在案例教學的實施過程中,首先進行授課內容引導(10分鐘時間),以特工攻略之秘密信息的講解開始,導入愷撒加密、密碼棒與摩爾斯電碼三種加密方式的介紹,使學生產生好奇心,探究加密與序列結構之間的聯系,提升其學習主動性。然后以加密技術為主線,設計了4個案例。案例1是愷撒加密與列表,首先簡述愷撒加密的原理,接著說明加密時的關鍵步驟,最后分析采用列表相關操作實現加密的方法。這樣就把列表創建、刪除、元素操作等比較枯燥的知識點通過案例串聯了起來。案例2密碼棒和列表推導式、案例3摩爾斯電碼與字典與案例1的設計與實施步驟一致。案例4針對加密中隨機數的產生問題,對基于列表與集合兩種方式產生隨機數的程序進行了性能對比,在此基礎上引出集合與字典的數據存儲方式的講解,以及集合所特有的序列結構特點。在此部分對列表和字典相關知識進行回顧,并進一步說明了各序列的應用場景,以此提升學生的編程能力。
在教學模式上,采用學生為中心的教學方式,充分調動學生自主學習的積極性,盡量讓每一位學生參與到課堂學習當中。具體來說,針對加密的每一關鍵步驟的實現,主要通過提問引導的方式,促使學生通過查閱教材和資料,積極思考怎樣用序列相關功能函數實現加密功能,然后老師進行程序演示并引導學生一起進行功能代碼分析,在適當的時候進行課堂測試,加深同學們對知識要點的理解和掌握。
課程按照工程教育專業認證中OBE的教學理念,采用“剛柔并濟”的方式,通過當堂測試、實驗、上機考核和項目設計幾大環節來綜合考核學生對知識的掌握和應用能力,避免了期末考試“一刀切”的問題。當堂測試和上機考核統一考核學生是否有過硬的編程基礎知識,而實驗和項目設計則針對學生個人能力和特點進行更靈活的考核。四大考核環節所得分數按照一定的分值比例進行計算,最終給出學生能力的綜合測評結果。多元化考核方式有助于教師及時了解學生學習進度、個人能力特點,發現學生存在的問題,調整教學進度、側重點和完善教學手段。
本次課程改革以專業為導向,緊扣學院制定的工程教育專業認證的畢業要求,創設了層次化案例教學方案,整合了分散枯燥的知識要點,并采用學生為中心的教育模式,充分調動學生自主學習的積極性,盡量讓每一位學生參與到課堂學習當中。在整個教學過程中利用了多元化考核手段,一方面促使學生具備過硬的編程基礎知識,另一方面針對學生個人能力和特點進行考核,使整個評測方式更加綜合和全面,有助于教師及時了解學生學習進度、個人能力特點,發現學生存在的問題,循序漸進地培養學生相應的工程實踐能力。