李傳珍
人工智能時代的程序設計課程教學改革探索與實踐*
李傳珍
(中國傳媒大學 信息與通信工程學院,北京 100024)
在人工智能大發展的時代背景下,針對“C/C++語言程序設計”課程傳統教學中存在的問題,對照“兩性一度”的中國金課建設標準,針對課程設置、教學理念進行了改革,并且在各教學環節中積極引入線上線下混合教學,探索了“闖關”學習模式在實踐練習中的應用,提高了學生解決實際問題的能力和自主學習能力。
金課;程序設計;教學改革;線上線下混合教學
人工智能正深刻改變著人類的科技發展和社會生活。國務院印發的《新一代人工智能發展規劃》,將人工智能上升到國家戰略。在這樣的背景下,國內外各高校逐步將人工智能相關課程納入到課程體系中[1]。典型的人工智能應用,如數據挖掘、自然語言處理、計算機視覺等,均離不開機器學習、深度學習的支撐,而機器學習和深度學習是以數據結構和算法為支撐的,數據結構與算法又以程序設計及數學基礎作為重要的基礎。因此,程序設計能力的培養近年來成為各階段教育追逐的重要目標之一。與此同時,越來越多的教育者發現,程序設計是鍛煉創新能力和培養思考方式最好的方式之一,可以有效地提高學生思維的邏輯性和完整性,幫助學生提高邏輯思維和算法思維的能力,這將讓學生在后續課程學習以及未來工作中終身受益。
與此同時,隨著人工智能技術的興起,C/C++語言被廣泛應用于構建各類人工智能技術框架之中,成為了人工智能技術浪潮的核心語言之一,著名的TensorFlow、Caffe等的底層架構全都由C/C++寫就;許多著名的互聯網企業在招聘大數據工程師和AI工程師時,也仍然把C/C++語言作為重要的可選的編程工具。
在這樣的時代背景下,本校“C/C++語言程序設計”課程組在課程設置、考查方式、教學理念、教學方法與手段上進行了積極探索與改革實踐。
“C/C++語言程序設計”課程的目標是幫助學生掌握程序設計的基本概念,掌握程序設計方法和技能;幫助學生學會針對不同應用場景選擇和使用面向過程的編程方法和面向對象的編程方法;建立編寫符合規范和性能良好程序的觀念,提升用C/C++語言解決實際問題的能力,為后續課程的程序開發打基礎。
反觀近些年的教學現狀,本校的程序設計課程存在如下問題:①實踐課時不足,鍛煉學生實際動手能力的機會不多,導致對編程思維的訓練不足;②對所有學生授課的內容趨同,缺乏個性化學習內容,部分學生存在“吃不飽”現象;③課程評價標準落后,以筆試為主的終結性評價測試忽略了程序設計課程中非常重要的過程性實踐環節和實踐能力考察,極其不利于學生實踐創新能力的培養。
針對以上問題,對照“兩性一度”的中國金課建設標 準[2],“C/C++語言程序設計”課程的改革著力于提高課程的高階性、創新性、挑戰度:①大刀闊斧地進行了課程學時學分、考查方式及課程理念改革;在增加實踐環節的基礎上,轉變為以“學生”為主體的模式,循序漸進地引導學生學習,逐步培養學生解決復雜問題的綜合能力及高級思維。②積極探索線上線下混合教學,以此增強課程互動,有效提高學生學習效率;并且在自主學習和練習中積極引入“闖關”模式,激發學生編程興趣,促進學生的個性化學習。
傳統教學中,本校“C語言程序設計”和“C++語言程序設計”以兩門課程形式存在,分屬兩個學期進行教學。兩門課程的課時分配方式均為理論課32學時、實驗課16學時,學分為2.5學分。“C語言程序設計”側重于C語言及面向過程思想教學,“C++語言程序設計”則側重于C++語言及面向對象思想教學。從課時分配上,兩門課的實驗課課時均遠低于實際所需實踐學時,學生的實際動手能力鍛煉不足,導致對編程思維的培養不足。自2019級起,本校對程序設計課程進行了重大改變,將上述兩門課程合并為“C/C++語言程序設計”,分配到兩個學期進行教學,課時分配方式修訂為理論課32學時、實驗課64學時,學分為4學分。“C/C++語言程序設計”側重培養學生面向過程的編程思想和面向對象的編程思想,在面向過程階段同時講授C語言和C++語言的語法。
“C語言程序設計”和“C++語言程序設計”采用以期末考試為主的考查方式,其中平時成績占10%,作業占10%,實驗成績占20%,期末考試占60%。這種終結性評價僅看重最后分數,忽略了過程性實踐環節,極其不利于學生實踐能力、創新能力及學習積極性的培養。改革后,“C/C++語言程序設計”改用過程性考查方式,其中平時成績占20%,作業成績占30%,實驗成績占25%,期末考試占25%。這種過程性考核鼓勵學生積極主動完成作業練習,加強對日常教學環節和實驗環節的考查,更能綜合體現學生的學習態度、自主探究能力及創新能力。
以前的教學中,受限于實踐學時過少,教師往往通過大量的理論課程向學生“灌輸”C/C++的理論知識及概念。改革后,在“C/C++語言程序設計”課程中嘗試將以“教師”為中心的“教”轉變為以“學生”為主體的“學”。具體地,在實際教學中,鼓勵教師以課程中的核心概念為立足點,提出問題并布置難度適中的實際任務,鼓勵學生嘗試解決具體問題。當學生在解決問題的過程中遇到困難時,由教師指導學生查閱資料,幫助學生獲得知識和解決問題的思路,構建與知識點及相關問題有關的計算思維。
為了有效地提升學生的實踐能力和創新能力,課程組在課前、課上、實驗、課后四個環節進行了大量的混合教學方式的探索和嘗試。
課前利用雨課堂推送課前預習資料。教師將課前預習資料(視頻、練習、音頻、網頁、PPT等)通過雨課堂推送到學生微信[3]。預習資料以課前引導為主,輔以少量的簡單的習題,幫助學生消化理解。
課上利用雨課堂實時把握學習情況。教師在上課過程中開啟雨課堂授課,即可將教學PPT依照講授進度逐頁發送到學生的微信;在教學過程中通過限時練習方便掌握學生的理解情況;還可以通過彈幕和討論等功能實現學生隨時提 問[3],便于教師掌握學生難于理解的知識點。發送至雨課堂的課件也有利于課后復習使用。
實驗過程中利用POJ平臺強化編程練習。實驗學時內,將實驗練習轉移到POJ平臺[4]上,學生可以獲得在線測試平臺的即時反饋;教師可以通過查看學生提交的作品,隨時看到每位學生的代碼特點和編程習慣。
課后利用POJ平臺進行自主練習和挑戰練習。課程還將大量課后實踐練習轉移到POJ平臺上,通過大量的課下練習補充課內練習的不足,并按級別給出練習要求,提高個性化練習的挑戰度。
通過四個環節的改革探索,課程實現了教學手段綜合化和教學資源立體化。通過綜合化教學手段實現了各種教學資源、考勤考核、教學評價等信息化和網絡化,尤其是實踐教學的網絡化,打破時間和空間的限制,提高了實訓的效率和質量;并且實現了自主學習、課程上機練習、指導答疑、考試的類現場化。教學資源立體化則體現在充分利用了紙質教材、信息化即時答疑、網絡學習平臺、個性化實踐平臺等手段,呈現一個多元立體的教學資源體系。
在實際教學中,本課程組教師發現,教學形式越具先進性和互動性,學習結果越具探究性和個性化,越能夠激發學生編程興趣,越能有效提高學生學習效率。因此,為了適應當代大學生富有激情和挑戰的特點,課程組在課后練習環節探索性的應用了“闖關式”的實踐練習方式。
通過梳理里程碑式知識點,設計相應的題庫,在POJ平臺完成題庫的建設[5]。利用html5設計頁面,呈現各知識點的過關難度等級,以類似做題游戲的互動形式使學生獲得闖關的交互體驗,如圖1所示。這種實踐練習方法便于學生掌握自己的學習進度和學習程度,也能夠有效地增強互動,增強個性化學習,更契合當代大學生的學習習慣。

圖1 “闖關式”實踐練習示意圖
將上述教學改革探索環節在不同班級進行對比實驗,發現在“C/C++語言程序設計(上)”中采用混合式教學和闖關學習模式的班級,在“C/C++語言程序設計(下)”和“數據結構與算法”課程的平均分大大高于傳統教學班級的平均分。這說明了本次教學改革效果達到了預期目標。
“C/C++語言程序設計”課程一直以來備受各高校的重視,在人工智能時代更是如此。本文在分析了本校“C/C++語言程序設計”課程教學現狀和問題的基礎上,及時轉變教學理念,對課程基本設置進行了重大改革,在課前、課上、實驗、課后四個環節進行了大量的混合教學方式的嘗試,并且在課后練習環節探索性應用了“闖關式”的實踐練習方式。上述改革措施緊隨時代發展,鍛煉了學生的實踐能力、創新能力和自主學習能力。
[1]楊冬.人工智能時代的大學教學變革[J].高等理科教育,2020(3):79-81,94.
[2]劉晉.基于“兩性一度”的“金課”建設[J].山東教育(高教),2019(5):24-25.
[3]孫斌,薛建春,左匡天,等.基于雨課堂的混合式教學改革與實踐——以面向對象程序設計課程為例[J].高教學刊,2020(16):127-129,132.
[4]朱鴻鵬,袁赟.程序設計類課程教學改革實踐研究——基于數字資源共享共建視域[J].黑龍江科學,2019,10(19):12-13.
[5]張榮博,許莉,叢麗暉,等.基于OBE理念的程序設計基礎課程教學改革實踐[J].計算機教育,2020(7):148-151.
G642
A
10.15913/j.cnki.kjycx.2021.01.036
2095-6835(2021)01-0099-02
中國傳媒大學2019年教學改革研究項目(編號:JG20058)
李傳珍(1980—),女,北京人,博士,副教授,碩士生導師,中國傳媒大學信息與通信工程學院“C/C++語言程序設計”課程負責人,研究方向為媒體數據分析、多媒體信息處理等。
〔編輯:嚴麗琴〕