許智宏,呂 華,馬建紅,董永峰
(河北工業大學人工智能與數據科學學院,天津 300401)
面向對象程序設計是計算機類專業開設的一門專業核心課程,要求學生既要掌握面向對象程序設計的基本概念、特性、理論等,又能結合具體編程語言和環境進行程序設計。雖然傳統教學模式具有知識傳達有效性、高效性、課程評估統一性等優勢,然而對于程序設計課程的教學而言,仍具有一定的局限性。究其原因,傳統教學受課堂教學形式和學時限制,存在理論教學與實踐環節相脫節、教學內容難以深入和擴展、學生課堂參與度不高等問題,難以提高學生解決復雜工程問題的能力。
BOPPPS 教學模型是北美國家諸多名校所推崇的教學模型,強調以學生為中心的教學理念,對課堂教學過程進行模塊化分解,將課堂教學環節依次分為導言、明確學習目標、前測、參與式學習、后測、總結6 個階段,但主要應用于線下課堂教學。王曉巖等明確指出,線上教學為課程注入了新經驗、新資源和新工具,制定了“小規模限制性在線課程(Small Private Online Course,SPOC)+騰訊會議+雨課堂”三位一體的線上教學模式。在河北工業大學人工智能與數據科學學院2019 至2020 學年面向對象程序設計課程中,結合疫情期間無法實施線下課堂教學的實際情況,對BOPPPS 教學模型的具體教學環節進行調整,設計各個教學環節,進行基于BOPPPS 教學模型的線上教學探索。
隨著我國推進國際工程教育認證、開展新工科建設等一系列舉措,促使教育界不斷探索新的教學模式,具體落實到具體專業課程教學上,則需要基于目標導向(Outcome based education,OBE)設計以學生為主體、教師為主導的教學模式。本文針對計算機專業面向對象程序設計課程,基于OBE 制定課程教學目標,分析教學內容和資源;基于BOPPPS 設計教學過程組織方法、選擇線上線下混合式教學平臺等工作。
依據工程教育認證以學生為中心的OBE 制定課程目標,使學生適應工程教育要求,在技術性能力、非技術性能力和素養方面打下良好基礎。具體教學目標如下:
(1)使學生掌握面向對象程序的基本概念和思想,了解中封裝性、繼承性和多態性的意義和實現方法,利用面向對象程序設計的思想對實際工程問題建立模型。
(2)使學生掌握C++語言面向對象程序的設計方法,結合實際應用開發平臺對實際工程問題給出解決方案。
其中,前者重點培養學生的計算思維能力,后者則重點培養學生的系統思維及解決復雜工程問題的能力。
面向對象程序設計是包括計算機科學與技術、軟件工程、網絡工程、物聯網工程等計算機類專業學生一年級第二學期的課程。此時,學生已具有C 語言程序設計基礎,初步掌握了結構化程序設計思想。
因此,課程教學內容將以面向對象程序設計三大特性為重點,覆蓋主要知識架構,基于C++語言進行設計實踐,突出面向對象程序設計與結構化程序設計的聯系、區別、特性及優勢。具體的教學內容包括以下6個模塊:
①面向對象程序設計概述。分析面向對象程序設計與結構化程序設計方法的關聯與區別,了解C++對C 語言的共同點與改進之處。②封裝性。通過案例分析如何從現實世界中發現和提取類與對象。③繼承性。通過案例分析面向對象程序設計的復用機制。④多態性。通過案例分析如何優化面向對象程序設計。⑤異常處理。⑥C++流。
為解決大型開放式網絡課程(Massive Open Online Courses,MOOC)無法對高校學生實施個性化教學的現狀。河北工業大學人工智能與數據科學學院教學團隊通過自制教學資源,根據教學方案制定學習指導書,設計課件、習題集、演示案例,并將內容、知識點錄制為視頻。同時,將課程直播演示制作為微視頻進行發布,供學生隨時觀看進行學習。除教學方案外,還將學習指導書、課件、習題集、知識點講解視頻、案例演示視頻等學習資源進行整合,為學生提供豐富的課外學習資源。
基于BOPPPS 教學模型對疫情期間線上教學過程組織方法進行設計,具體包括4 個階段:①將導言和明確學習目標進行合作為課前階段,制定學習指導書,明確學習目標,督促學生作好課前準備;②上課時首先進行前測,了解學生對前序知識的掌握情況,必要時先進行討論、講解,再導入新的教學內容;③教學過程中進行重、難點精講并隨時進行提問和討論,通過案例分析、師問生答、學生典型問題你問我答等形式模擬線下課堂參與式教學,必要時進行后測和總結,深化學生的理解,并適當增加課后學習拓展內容;④課后督促學生完成基礎知識作業、程序設計作業及實驗,以進一步固化、拓展所學知識,強化程序設計能力。線上BOPPPS 教學模型示意圖如圖1所示。

Fig.1 Curriculum design teaching system圖1 課程設計教學體系
教學工具、環境設施等教學資源需求取決于教學材料。由于在疫情期間,線上教學中需要進行線上直播、現場討論、發布教學資源、布置和評判作業、布置和檢查程序設計實驗等一系列工作,當大量課程集中在線教學平臺上進行教學時,會造成平臺擁堵甚至癱瘓。為此,本文經過多次測試,選擇結合兩種平臺進行使用,以確保授課過程中的穩定性。具體措施如下:
(1)組建課程學習專用QQ 群進行教學文檔、知識點視頻等教學資源的發布并組建線上討論平臺,同時使用QQ群分享屏幕功能進行課程直播。
(2)使用程序設計類實驗教學輔助平臺PTA 布置和評判作業與程序設計實驗。
將教學實施分為教學準備、課前測試、線上課堂教學和學習成果鞏固與拓展4個階段。
教師主要進行教學方案設計、課件制作、課程視頻錄制、直播腳本書寫及演練、課前測試題設計、案例演示程序設計與調試、實驗題目設計、作業題目集設計等工作,最后將組織好的教學目標、教學內容、教學資料、課堂參與要求、課后作業要求等編制為《學習指導書》。其中,《學習指導書》的主要作用是導言和明確學習目標。并將課件、課程視頻、《學習指導書》等課程資源發布至學習群;課前測試題集、實驗題目集、作業題目集發布至PTA 平臺。
為檢測學生對教學內容基礎知識的掌握情況,通過單選題回顧前驅概念、分析程序運行結果等方式幫助學生回顧前序相關教學內容。該方法具有以下優點:①通過問題討論與解答,利用少量時間導入新的教學內容;②便于教師及時了解學生對知識的掌握情況,對于一些共性、掌握不好的知識點可進行針對性強化;③輔助學習過程評價,利用PTA 平臺自動評判和記錄學生實踐成績,作為平時成績評判依據。其中,課前測試輔助主要記錄學生的考勤情況;通過PTA 平臺分析學生參與測試的時間,發現遲到或曠課的學生。
相較于傳統線下教學,線上課堂可留出更多時間供學生進行課間討論。其中,討論環節的包括重點概念辨析、程序運行結果分析、程序設計方案對比、案例分析討論等內容,具體討論形式包括師問生答、學生你問我答、學生自問自答等,通過模擬線下課堂參與式教學,實現線上翻轉課堂。
參與式線上教學的成敗關鍵在于討論范圍和效果。由于學生間的能力參差不齊,若設計的討論題目過于簡單,能力較強的同學就會缺乏收獲感;反之,能力稍差的同學課堂參與度較差。因此,本文在提升學生收獲感、參與感方面重點開展了以下兩方面工作:
(1)選取、設計適當的程序設計案例進行討論。預先準備多個設計、實現版本的討論案例。具體的,第1 版方案要保證程序結果正確;第2 版方案要確保程序設計合理;第3 版方案要使得程序風格良好;第4 版方案要考慮系統化需求(包括用戶友好性支持、程序架構利于團隊合作、便于擴展等)。在案例討論中,能力稍差的同學先嘗試完成第1 版方案,爭取做到第2 版或第3 版方案;能力較強的同學可輕松完成第1、2 版方案,但未必會注意到第3 版方案中的細節問題;還存在極少數學生能夠完成第4 版方案,接近規范軟件甚至系統開發要求。如此,能夠使不同能力層次學生都能在案例分析中有所收獲,全面提升了學生的收獲感與參與感。
(2)對積極參與討論的學生給與適當獎勵,以鼓勵學生討論。對主動發問并引發有效討論、主動解答問題并提供有效答案、解決自身問題并總結出對其它學生有所幫助、教師抽查提問回答正確的學生,在平時成績上給予一定的加分,并定期公布獎勵名單。此外,建立線上實驗互助討論小組,選拔實驗完成早、實驗效果好、編程能力強的學生組成志愿助教組指導實驗有困難的學生,并給予一定的加分。
通過設計、選擇基礎知識題目,發現線上教學中的知識點漏洞及學生掌握不扎實的知識點,并布置程序設計練習驗證所學知識。例如,設計綜合性實驗題目——圖書館管理系統設計與實現,結合教學進度引導學生逐步完成和優化設計方案。由于教學課時限制,可能無法完全展開講解課程的全部相關內容,例如STL、可視化界面程序設計等。教師可制作拓展教學資源、思考題目、練習,供學有余力的學生進行學習,加強學生的自主學習意識。
對河北工業大學人工智能與數據科學學院2019-2020年春季學期的多個班進行隨機抽樣,對學習過程討論參與人均次數、經常參與討論人數百分比、作業按時完成度、作業平均成績、實驗按時完成度、實驗成果平均成績等進行統計,具體數據如表1所示。

Table 1 Analysis of students'learning situation in the spring semester of 2019 and 2020表1 2019-2020年春季學期學生學習情況分析
由表1 可知,2020 年網上教學學生參與積極性普遍高于2019 年;經常討論人數百分比顯著提高;作業按時完成度、作業平均成績、實驗按時完成度、實驗成果平均成績均明顯優于2019 年。4 個抽樣班在討論參與、作業完成情況和實驗完成情況上存在一定的差異性,但總體情況較為均衡。
為了解學生主觀體驗,本文設計了問卷調查學生對教學內容、方法、資源、平臺、實驗平臺、參與環節、案例選擇、測驗題目難度、程序設計作業、實驗難度等方面的感受,現有130位同學填寫了問卷,總體調查結果如表2所示。
由表2可知,課程的項目滿意度超過了80%,僅有教學方法、教學資源、參與教學環節三項分別存在1.54%、1.54%、1.54%的學生尚不滿意。通過問卷調查統計看出,學生對現階段教學設計和教學實施的滿意度較高。

Table 2 Statistical table of teaching satisfaction survey in spring semester of 2020表2 2020年春季學期教學滿意度調查統計 (%)
雖然本文提出的教學模式對面向對象程序設計課程的教學效果較好,但畢竟是特殊時期作用下的結果,仍需要認真總結,爭取將經驗推廣到常態化課堂教學中,充分發揮教學模式的優勢。
BOPPPS 作為諸多名校所推崇的教學模型,有其固然優點,若在實施過程中結合課程和學生特點靈活運用,能夠顯著提高教學質量。
在河北工業大學人工智能與數據科學學院2020 春季學期的多次課堂教學實踐中發現,在BOPPPS 模型的課程導入、明確學習目標、前測、參與式學習、后測、總結的6 個階段當中,前測、后測和參與式教學過程均需要以學生為主體,課程導入適合與前測相結合,課程總結也可與后測過程相結合,引導學生通過分析測試題目達到自然導入和總結課程的目的。為體現教師的主導作用,課程的學習目標必須由教師完成。
BOPPPS 模型中的前測、后測及部分參與式學習過程,都需要應用在線教學平臺,統計學生參與情況,但現階段通過線下教學方式明確學習目標、課程總結及大部分參與式學習過程的效果更好,因此需要進行精心設計,將兩種教學方式完美結合。
其次,充分利用線上教學資源,可有效深化和拓展教學內容,克服線下教學的課時限制,提升教學效果。再者,通過實踐發現線上程序設計測試平臺能夠快速檢測學生程序設計結果,有利于鍛煉學生基礎程序設計、調試、排錯能力,但在面對設計、創新、接近于實際項目的復雜工程類問題時,則更適合線下進行指導。因此,基于BOPPPS 模式進行線上線下混合式教學將是今后的教學趨勢。
在河北工業大學人工智能與數據科學學院2020 春季學期中,基于BOPPPS 教學模型開展面向對象程序設計線上教學取得了較好的教學效果。學生普遍反映相較于傳統課堂教學,線上教學的參與度更高,提供的教學資源更豐富,自主學習能力等方面提升顯著。接下來,將線上教學常態化,形成與線下教學的有效互補將是未來的努力方向。