田 露,徐 湛,職如昕
(北京信息科技大學信息與通信工程學院,北京 100101)
教育部于2020年5月印發《高等學校課程思政建設指導綱要》(以下簡稱《綱要》),《綱要》指出,不同學科的性質特點不同,思政元素也有所側重。《綱要》中明確指出,“理學、工學類專業課程要提高學生正確認識問題、分析問題和解決問題的能力……注重科學思維方法的訓練……培養學生精益求精的大國工匠精神,激發學生科技報國的家國情懷和使命擔當。”
程序設計類課程作為通信工程專業的基礎課程,應與時俱進,順應《綱要》文件精神要求,深入推進程序設計類課程教學改革,結合程序設計類課程特色和育人目標,深度挖掘和提煉程序設計類知識體系中所蘊含的思想價值和精神內涵,從科學思維、科技報國、工匠精神等多角度,授課、試驗等多形式的將思想政治教育貫穿至通信專業人才培養過程中。
程序設計編程語言一般由字母、數字、標點等組成,對語言的邏輯性和規范性要求較高,且編程語言本身具有一定的枯燥性,導致學生對學習程序設計類課程存在畏難情緒。當前大多數授課老師仍采用“重語法、輕思維”的傳統教學方法,單純的按照教材中的知識點去授課,使得學生學習興趣和學習主動性下降、效率降低,進而導致學生上課睡覺或玩手機,下課作業不會做。傳統的授課方法不重視培養學生理解問題、解決問題的求解性思維,使得大多數學生在面對實際問題時候束手無策,一定程度上限制學生科學思維的發展。此外,目前程序設計課程考核偏重于語法的規范性和準確性,未將學生分析、解決問題的能力納入考核范圍之內,直接導致學生對知識點死記硬背,而忽視科學思維能力培養。在傳統授課模式下學生專業課程學習效果不佳,思想政治教育也未很好的滲透融合,未能形成正向協同效應,未能落實落細課程思政建設“立德樹人”的根本任務各項要求。
在筆者《信息類程序設計基礎》課程目標達成的調查問卷中,針對“能用應用計算思維方法進行分析和解決實際問題”這一項,達成情況為68.3%,遠低于其他課程目標。因此為提高學生正確認識、分析和解決問題的能力,有必要對程序設計類課程進行教學改革,在教學過程中融入價值塑造、知識傳授和能力培養等方面內容,不斷提高通信專業人才培養質量。
卡內基梅隆大學計算機科學系周以真教授于2006年3月正式提出了“計算思維”的概念,指的是運用計算機科學的基礎概念進行問題求解、系統設計以及人類行為理解等涵蓋計算機科學之廣度的一系列思維活動[2]。為便于理解,周以真又進一步定義為是利用啟發式推理需求解答,也即在不確定情況下的規劃、學習和調度的思維方法[3]。
近年來國內相關學者對計算思維進行研究探討,并應用至教學領域,2013年教育部高等學校大學計算機課程教學指導委員會發布《計算思維教學改革白皮書(征求意見稿)》[4],周平紅等人將計算思維的概念與實踐融入STEM工程設計的各個環節,能顯著提升學生的STEM態度和計算思維能力,并且STEM態度對計算思維具有預測作用[5]。宋穎認為在計算思維視域下計算機信息技術教學改革的路徑包括突出學生的主體地位,高效融合相關專業和內容,優化教學速度,精準定位教學應用[6]。姚珺認為加強學生計算思維的培養是提高教學質量和學生能力的重要手段,可明顯提高學生應用計算機知識分析、解決問題的能力[7]。由此可見計算思維的核心思想和方法嵌入到課程設計類課程教學實踐將明顯改變當前現狀。
案例驅動教學法在程序設計課程中得到了廣泛應用,通過設計案例、分析案例、引導學生圍繞案例解決工程實踐過程中遇到的問題,達到提高學生參與學習活動積極性和主動性的目的。為更好發揮課程的育人作用,提高高校人才培養質量,提出基于計算思維模式下的案例驅動教學方法,通過體系化的方法設計案例,層次化的試驗難度設計、結構化的能力評估體系,實現計算思維訓練,并將價值塑造、知識傳授、能力培養等目標貫穿程序設計教學全過程。
以體系化的案例為載體,引導學生思考解決問題的方法,激發學生的思考,啟發學生的思維風暴,讓課堂教學目的更加明確,重點突出。針對北斗短報文通信的實際需求,結合各教學章節核心內容,設計教學引例,形成前后聯系緊密的理論教學,如圖1所示。在課程初期即建立學生頂層化、體系化思維,將北斗短報文通信的核心環節拆分為不同章節教學案例的主體內容,培養學生遞歸的逆向思維。通過“引例提出問題-學生思維引導-理論知識學習-實驗實踐應用-課后延伸拓展”的方式,引導學生采用計算機科學視角考慮解決問題,并形成抽象化、形式化、構造化、自動化的計算思維。

圖1 教學案例設計
本項目開發的北斗短報文通信教學案例屬于綜合的教學案例,通過模塊化學習,最終合理地組成更大的程序,實現體系化教學。在程序語言語法規則部分,將各類知識點融入精心組織的項目案例中,在案例中學習掌握各類知識點,一定程度上避免了學生因程序設計語言枯燥、煩瑣而產生的厭倦情緒,增強學生的文化認同感,提高學習的積極性與興趣性,鍛煉了學生計算思維能力,使其可以愿意學、主動學、快樂學、有效學。
在體系化的教學案例基礎上,面向北斗系統工程實踐需求,實驗內容在理論教學的綜合案例基礎之上,還融合了通信專業知識、工程實際應用,豐富完善實驗內容結構,可進一步加深學生對知識的理解和應用能力。
另外一方面考慮學生學習能力的差異性,另一方面考慮培養學生精益求精的鉆研精神,有必要優化實驗難度要求,以計算思維核心方法為指導,建立了入門、提高、精通分級遞進的實驗難度要求體系,進而分層次教學,如表1所示(P195)。

表1 難度分級遞進的實驗設計
入門為實驗難度的最低要求,對學生能力要求不高,學生可以使用已經掌握的程序設計規則解決工程實踐中遇到的簡單問題即可。提高為實驗難度要求的第二層次,要求學生在掌握基本計算思維方法、基本策略或算法的基礎之上進行變通,進而解決類似問題。實驗難度的最高層次為精通,擬培養學生解決綜合問題的能力,學生可以對一些綜合性或復雜性較高的問題進行分析與思考,將所學到的知識融會貫通,采用正確的方法解決問題。
學生通過三個層次的實驗訓練后,可輸出一套完整的北斗短報文通信的收發程序,以層層遞進的難度培養了學生精益求精的大國工匠精神,實現“科—產—教”融合,將科技、產業和教育在課堂內外串珠成鏈。
傳統的考核評價體系一般以結果為導向,認為程序設計結果滿足功能要求即達到考核要求,而并未關注其設計過程,學生思維能力鍛煉程度未能在評價結果中體現,因此需把學生計算思維能力考核納入評價體系中。計算思維的特征主要包括構造性和簡潔性兩方面,因此在程序設計類課程考核評價體系中要充分考慮構造性和簡潔性,建立以計算思維為導向的考核測評框架,即通過平時題目測試和實驗作品分析的方式進行思維考核。
在此基礎上構建以計算思維培養為導向的綜合評價體系,其中一級指標包括準確性、構造性、簡潔性。一級指標又可進一步細化。
3.3.1 準確性
平時題目測試準確性和實驗結果準確性。
3.3.2 構造性
方法形式化:采用約定的格式、文字或語法等形式化的方法準確、無歧義的表達所要實現的功能。
過程關聯化:每個計算過程都是有機相關的,不同操作過程實現不同的功能。
3.3.3 簡潔性
基本操作簡單化:將復雜操作簡化為簡單操作,這樣可以快速完成復雜的功能。
表達方式簡潔化:程序設計要使用邏輯結構,簡潔明了,使得表達方式容易理解和修改。
在此基礎上建立“計算思維培養導向的程序設計綜合評價體系”,并且引入量化考核,分別給予各級指標權重系數,并制定評分標準,以便系統實現評價自動化、科學化、系統化等目標,通過多維度的考核評價,正確了解學生計算思維鍛煉水平,進而更好的有針對性地開展教學工作。
程序設計課程案例驅動教學改革實施,將計算思維訓練作為程序設計類課程的重點目標,體系化設計教學案例和實驗內容,建立思維培養導向的綜合考核方式,引導學生正確認識問題、分析問題和解決問題,培養有思想、有情懷、創新能力強的“新工科”人才。培養學生掌握編程語言、編程工具等方面的基本理論和方法的同時,兼具豐富的實踐經驗及創新能力,能夠綜合運用所學軟件知識解決實際工程問題,促進“科—產—教”融合。