常州工學院 錢 誠 徐煜明
針對當前面向對象程序設計課程中內容設置系統性不強的問題,提出了案例法教學,介紹了依托C#語言的案例設計、選擇和實施,通過案例的理論講授和實驗操作完成面向對象程序知識點的有機整合,最后對案例法教學實施效果進行了總結。
引言:面向對象程序設計是計算機科學與技術專業的核心課程(王紅鷹.基于計算思維為導向的程序設計基礎實踐教學改革分析[J].電子世界,2018(05):33-34;石博文.淺談面向對象和面向過程程序設計[J].電子世界,2017(01):59-60),對于學生后續軟件設計與工程能力的培養和提升起著至關重要的作用。傳統的教學內容設置上偏重于語法知識點的介紹,往往會忽略知識點的綜合運用,這容易導致學生程序設計能力偏弱,工程實踐能力無法滿足社會實際需求。為了切實培養學生運用面向對象程序設計方法解決實際問題的能力,在教學過程中,主要通過案例來講解面向對象程序設計思想(胡浩.案例教學在工程技術類課程中的應用研究[J].藝術教育,2016(01):217;張少博,張紹陽,張淼艷,安毅生.計算機專業面向對象程序設計課程教學實踐與探索[J].軟件導刊(教育技術),2017,16(11):51-53),旨在將語法知識輸入向編程能力培養轉變,試圖通過在面向對象程序設計教學中引入案例解決教學內容單一枯燥、教學效果差的問題。
當前,面向對象程序設計課程對于學生能力的培養目標定制得不夠清晰,目標僅限于對學生專業能力的培養(肖麗,鄒曉兵,石熙.以程序設計能力培養為導向的實踐教學體系改革探析[J].電子世界,2018(14):52-53),忽視了工程實施過程中的溝通能力、協作能力的培養,目標相對狹隘,學生的能力提高有限。
面向對象程序設計課程主要依托C#語言講解,在教學形式上將課堂理論講授和上機實驗操作相結合來實施教學。課堂理論講授部分,單一的語法知識點介紹對于學生而言,容易使得學生陷入語法細節中,不利于面向對象設計思想的吸收和消化。在上機實驗操作部分,通過驗證型程序讓學生編制小程序來熟悉語法知識,但是驗證型程序由于規模較小,一方面在鍛煉學生程序設計能力上缺乏足夠的系統性,學生無法融會貫通,另一方面這些小程序與實際應用存在脫節,這在一定程度上降低了學生的學習興趣,實驗完成度較低。另外,每次課堂講授環節和實驗環節都只注重若干個知識點,而多個知識點的綜合應用被忽視,學生學習目的不夠明確,最終導致學習效果不佳。
通過案例法教學,能夠在一定程度上縮小理論知識點認知與知識點運用之間的差距,通過案例加深學生對于知識點的理解。因此,案例庫的設置對于面向對象程序設計教學效果有著重要的影響。在具體案例庫的設置上,加入了以下要素的考慮:(1)盡可能覆蓋面向對象程序內的知識點;(2)具有一定的實用性、趣味性;(3)在難度上形成循序漸進的過程。
相應地,課堂講授環節的案例庫具體如表1所示,其涵蓋了類、繼承、多態、虛函數、集合、數組、委托、文件讀寫、網絡編程等知識點。
課堂的案例講解,通過現場編程演示,展示應用程序的具體開發過程,讓學生在學習語法知識點的時候,可以了解面向對象程序開發步驟,以及一些必要的調試過程。所產生的源程序作為基礎性程序,當進入實驗操作性環節,要求學生在這些源程序的基礎上進一步做功能的添加和程序的改進。通過該類實驗的設置,讓學生的學習能夠沉浸在具體應用場景中,理解基礎性程序,并能夠綜合運用所學知識解決一些實際問題,以此激發學生的學習熱情,切實提高學生的動手實踐能力。

表1 案例庫設置情況
此外,在案例的構成上,是通過對一些較為復雜的實際工程案例進行功能上的裁剪所形成,只保留與知識點相關度較高的程序模塊,一方面降低了程序的復雜度,使得學生能夠讀懂程序,另一方面,可以使得學生更多地集中于知識點的運用方式上,而不是僅僅停留在對于語法的記憶和練習。
在案例法教學實施步驟中,一般先給出程序設計需求,引導學生思考、討論方案,并通過課堂問答,收集學生的方案思路,進行點評,然后給出參考方案,該方式可以調動課堂氛圍,促使學生集中注意力,緊跟授課進度。上機操作過程中,通過分組能夠讓學生在一起探討程序設計思路,形成有效的分工合作,培養了溝通能力和團隊合作精神。
在使用案例法實施面向對象程序設計教學后,學生在課堂的聽課效率有明顯提升,課程實驗的主動性、參與度有所加強,實驗的完成度較高。由于所要求的實驗內容比課堂內容略微復雜,使得學生需要借助于微課、課外書籍來完成整個實驗,因此間接地培養了學生查閱資料的能力。在使用面向對象思想對具體案例建模時,學生對于知識點的掌握情況能夠較為及時地反映出來,以此也可以形成一個閉環的持續改進過程。
本文針對傳統面向對象程序設計課程中教學缺乏一致性、系統性問題,提出引入案例法教學。該教學方法將孤立的知識點有效地串接了起來,形成了一個系統,提高了學生學習的熱情和主動性。另外,通過案例的進一步深入,使得學生能夠充分發揮主觀能動性,掌握面向對象程序設計思想,并能夠針對一些應用問題設計解決方案。在以后的教學過程中,將進一步引入工程性更強的案例,構成更為豐富的案例庫,以此提高案例法教學效果。