汪 中,施培蓓
(合肥師范學院 計算機學院,安徽 合肥 230601)
“C++程序設計課程”是一門重要的專業(yè)實踐課程,重點培養(yǎng)學生的計算思維能力,兼具面向過程和面向對象的思想。部分高校仍然采用傳統(tǒng)的教學模式,即理論教學和上機實驗結合,學生主動性和積極性得不到提高,進而導致學生培養(yǎng)質量下降。隨著互聯(lián)網(wǎng)技術的快速發(fā)展,在線教學模式被廣泛應用。與傳統(tǒng)的教學模式相比,在線教學提供了更加自由的學習時間和空間?!盎ヂ?lián)網(wǎng)+”教學作為一種新型教學模式,因其對課堂效率具有一定的提升作用,被越來越多的學校和教師采用。
“互聯(lián)網(wǎng)+”教學模式形式多樣,主要包括MOOC、翻轉課堂、線上線下混合式教學等。徐紅云等[1]基于雨課堂、網(wǎng)絡課程資源和在線評測系統(tǒng),提出探究式教學模式并用于實際教學;漆世錢[2]自主開發(fā)了基于微信平臺的“C++程序設計課程”教學輔助系統(tǒng),有針對性地設計了課上、課下混合式教學方法,取得較好的教學效果;王曉芳等[3]以工程教育為背景,將學習成果導向的教育理念引入程序設計類課程的教學改革,實踐結果表明改革后的工程教學模式滿足工程教育認證的要求;王全蕊[4]提出漸進式翻轉課堂教學模式,將課堂教學和在線學習平臺相結合,用于實踐教學,提高了學生的動手能力;孫強等[5]結合工程教育認證要求設計了“C++程序設計課程”達成度評價體系,通過評價結果使課程持續(xù)改進;張鵬等[6]將ATDE教育理論引入程序設計類課程教學,重點培養(yǎng)學生的創(chuàng)新思維。上述研究表明,“互聯(lián)網(wǎng)+”教學模式實現(xiàn)了線上線下教學有機結合,使課堂教學發(fā)生了結構性變革,大大促進了課堂教學的網(wǎng)絡化、智慧化發(fā)展,對提高“C++程序設計課程”教學質量和培養(yǎng)學生創(chuàng)新思維能力具有重要的借鑒意義。
本文針對應用型本科高校學生的培養(yǎng)目標,提出基于“超星學習通+課堂教學+在線評測系統(tǒng)”的線上線下混合式教學模式,并在非計算機專業(yè)的部分班級進行實踐應用。該教學模式充分利用國家級精品課程的網(wǎng)絡資源進行線上教學,課堂上教師針對關鍵知識點進行串講答疑,實驗內(nèi)容采用在線評測系統(tǒng)輔助教學。
目前,大部分高校的“C++程序設計課程”仍然采用理論授課、上機實驗兩者相結合的傳統(tǒng)教學模式。在這種教學模式下,學生的計算思維、程序設計及工程實踐等能力難以得到有效的提升,無法滿足應用型本科高校工程教育認證的要求。從課程特點、教學方法、考核方式三個方面分析現(xiàn)有教學方法存在的問題:
“C++程序設計課程”是一門兼顧“面向過程”和“面向對象”的語言,其功能強大、靈活多變,且語法語義繁多。教師在課堂教學中往往只重視基礎語法的教學,而忽略了對學生程序設計能力和思維創(chuàng)新能力的培養(yǎng),導致學生難以理解“面向對象”的含義。同時,由于該課程課時有限,在有限的課時中還需同時兼顧理論教學和實驗教學,致使教學難度較高。
傳統(tǒng)的“C++程序設計課程”一般采用課堂教學、上機實驗相結合的教學模式,該方法只能完成知識的傳授,難以形成知識的內(nèi)化和外延,教學效果無法達到工程教育認證的基本要求。課堂教學過程中,教師花費大量時間講授語法知識,與學生的教學互動較少。學生不能很好理解“面向對象”的核心思想,導致在后續(xù)的實踐課程中難以靈活地應用所學內(nèi)容。實踐教學通常以實驗指導書為主,實驗案例數(shù)量少,且實驗內(nèi)容與實際應用脫軌,缺少綜合實訓項目,無法培養(yǎng)學生的工程實踐能力。
“C++程序設計課程”的考核主要以理論考試為主,這也是目前大多數(shù)高校普遍采用的評價方式。這種考核方式無法體現(xiàn)程序設計課程的本質,學生通過突擊復習就可以拿到高分,但計算思維和程序設計能力并未顯著提升,也與工程教育認證對課程目標設置的要求不符。另外,傳統(tǒng)考核方式未能將教學成效評價與培養(yǎng)目標相結合,其評價是單向的,缺少考核結果的反饋與改進措施。
因此,改革傳統(tǒng)的教學模式,豐富課程教學資源,提高學生的計算思維、工程實踐等能力,已成為程序設計類課程改革中的一項重要課題。
針對傳統(tǒng)“C++程序設計課程”教學存在的問題,采用線上線下混合式教學模式實施課程改革。圖1給出混合式教學模式框架,包括線上、線下以及考核方式三個部分。線上部分需要引入開放的教學平臺,豐富課程教學資源,讓學生從被動學習轉變?yōu)橹鲃訉W習。線下部分教師針對學生線上學習的問題進行重點講解,側重培養(yǎng)學生的思維能力。另外,在線評測系統(tǒng)不僅可以發(fā)現(xiàn)程序設計的問題與不足,還可以提高學生的編程興趣。
圖1 混合式教學模式框架
目前國內(nèi)使用較多的教學平臺包括雨課堂、超星學習通、愛課堂、網(wǎng)易云課堂、學堂在線等。本文采用超星學習通作為線上教學平臺,課程教材采用國家級精品教材《C++語言程序設計(第4版)》在線教學版,所有線上教學資源均來源于國家級精品資源共享課“C++語言程序設計”,其課件、視頻、習題、章節(jié)測驗一體化同步建設。教材主要內(nèi)容包括C++簡單程序設計、函數(shù)、類與對象、數(shù)據(jù)的共享與保護、數(shù)組指針與字符串、繼承與派生、多態(tài)性、模板庫、流類庫與輸入輸出、異常處理等章節(jié)。
教師提前一周通過線上教學平臺發(fā)布任務點、課件,指導學生利用課余時間進行任務點學習。學生需要按順序完成任務點的學習,并完成任務點測驗和章節(jié)測驗。線上測驗是根據(jù)任務點和章節(jié)內(nèi)容精心設計的,重點考查程序設計的基本知識和理論,可以反映學生的自學情況。教師在線檢查學生線上視頻學習的進度、測驗情況,針對學生學習過程中的問題進行答疑,并通過測驗情況發(fā)現(xiàn)學生學習的薄弱環(huán)節(jié)。
線上學習重點培養(yǎng)學生的自主學習能力,線下學習側重培養(yǎng)學生的程序設計能力和創(chuàng)新思維能力。課堂教學活動要求教師提前準備,針對線上平臺學生的學習情況進行總結,對關鍵知識和重難點問題進行串講和答疑。相比于傳統(tǒng)的教學模式,課堂教學不再講解所有的知識點,而是針對學生學習過程中存在的易錯、難以掌握的知識點進行講解。這種模式對教師提出較大的挑戰(zhàn),教師可能需要花費幾倍的時間備課。另外,課堂上教師還通過案例教學、分組討論等教學方式,加深學生對面向對象概念的理解和應用。
在線評測系統(tǒng)(OJ)是對程序代碼進行在線編譯和執(zhí)行。使用者通過登錄瀏覽器在線提交源代碼,系統(tǒng)后臺對程序編譯執(zhí)行,然后對比已經(jīng)設置好的輸入和輸出情況來計算評分,其原理是軟件工程中的黑盒測試原理。國內(nèi)有很多開源免費的OJ,例如北京大學OJ平臺、杭州電子科技大學OJ平臺、洛谷OJ平臺等。學生通過OJ平臺不僅可以在線評測,還可以發(fā)現(xiàn)程序設計中存在的隱藏bug,有助于提高學生的程序設計和思維創(chuàng)新能力。另外,學生在OJ平臺上還可以與其他編程高手交流,提高學生學習編程的興趣。
該課程針對不同專業(yè)設置了6~12次課內(nèi)實驗,每次實驗時間為2學時,題量為2道中等難度習題。此外,每章節(jié)會根據(jù)課程難易程度,分別布置若干道課后習題。從作業(yè)提交來看,大部分學生可以按時完成課內(nèi)實驗;少量同學雖然提交程序,但評分不高,這是因為程序設計時未能考慮邊界條件,需要教師課堂引導。該部分同學經(jīng)過多次改進和測試,程序的性能和健壯性進一步提高,其相應的程序設計思維也得到了提升。
傳統(tǒng)“C++程序設計課程”主要采用平時成績+理論考試的考核方式,且理論考試占比一般超過60%。這種考核方式比較單一,側重理論考試成績,對過程性考核關注較少。為全面客觀地評價學生的各種學習活動,“C++程序設計課程”的考核采用了層次分析法來設計課程評價指標體系,涵蓋線上教學、課堂教學、在線評測和期末考試四個方面。通過構建多元化考核體系,與工程教育認證的能力培養(yǎng)理念相吻合,力求過程性考核和結果導向相結合。最終考核方式具體設計如表1:
表1 “C++程序設計課程”考核方式
本文分析“C++程序設計課程”的教學現(xiàn)狀,提出線上線下混合式教學模式,并在非計算機專業(yè)實施教學改革。通過基于“互聯(lián)網(wǎng)+”的“C++程序設計課程”教學模式探索與構建的研究,使學生的自學能力和程序設計能力明顯提高,達到程序設計類課程改革的預期目標,加深了學生對“面向對象”核心思想的理解。通過引入第三方在線評測系統(tǒng),提高學生實際編程能力,使絕大部分學生具備分析程序問題并改進的能力,極大提高了學生的編程積極性和學習興趣。