蔡莉莉 侯珂珂 張潔

摘要:為了探索解決應用型高校非計算機專業高級語言程序設計課程教學中存在的問題,提升教學質量,從教學目標、教學模式、習題設計、考核評價等方面進行了改革與探索實踐,改革思路著力于發揮學生的主觀能動性,提升其自主學習能力。課堂實踐證明了改革方案能夠促進學生學習的積極性,改善教學效果。
關鍵詞:高級語言程序設計;非計算機專業;課程教學;教學改革
中圖分類號:G642? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)16-0077-02
開放科學(資源服務)標識碼(OSID):
Exploration on the Teaching Reform of Advanced Language Program Design for Non-computer Majors in Application-oriented Universities
CAI Li-li1, HOU Ke-ke2, ZHANG Jie1
(1. Xinhua College of Sun Yat-sen University School of Biomedical Engineering, Guangzhou 510520, China; 2. Xinhua College of Sun Yat-sen University School of Health Sciences, Guangzhou 510520,China)
Abstract: In order to explore and solve the problems in the teaching of advanced language programming course for non-computer majors in application-oriented universities and improve the quality of teaching, reforms and practices have been carried out in terms of teaching objectives, teaching models, exercise design, assessment and evaluation. The reform thinking focuses on giving full play to students' subjective initiative and enhancing their independent learning ability. The practice has proved that the reform plan can promote students' enthusiasm for learning and improve teaching effects.
Keywords: advanced language program design; non-computer majors; course teaching; teaching reform
1背景
高級語言程序設計是非計算機專業中的大多數工科專業必修的一門專業基礎課。隨著信息技術的發展,掌握一門程序設計語言對于培養復合型研發人才非常必要,同時在面對工程實際應用問題時,算法思維和程序設計更是對解決問題的效率和精度具有至關重要的作用。而該課程針對計算機專業和非計算機專業的具體要求也有所不同,如何立足于教學專業的特點進行高效教學是針對該課程教學改革的重點,同時如何改善課程的教學效果也是目前廣大教師廣泛研究的課題。考慮到教學專業的專業特點,課程選擇應用廣泛的C/C++語言進行教學。
2 C/C++語言課程教學現狀
程序設計語言類課程具有理論邏輯性強和實踐應用性高的特點,對該類課程的教學既要重視理論教學也要重視實踐教學,該課程的教學過程普遍存在以下幾個問題:
1) 教學模式單一,傳統的課堂通常采用教師授課、學生被動吸收的“填鴨式教學”模式來達到教授知識的目的。但是針對C/C++語言理論知識而言,相關概念抽象而不系統,學生很難快速融入教學環境,理解理論知識的邏輯和學習理論知識的必要性,而理論課程是進行程序設計的基礎,這就導致學生的上機實踐效果較差。
2) 過于集中式的講述和關注語句的語法,比如涉及運算符、數據類型等基礎概念講解瑣碎且難理解。教師在講解過程中,經常會列舉出大量的細節注意事項,難以讓學生理解的同時也加重學生的記憶負擔。導致學生的學習僅靠死記硬背,無法深層次理解[1]。
3) 忽視程序的“設計”過程訓練,現有的C語言程序設計講解多是機械式地搬運教材上的知識點講述,舉例死板單一,脫離應用實際,并未從真正的編程思維角度去訓練學生編程能力,忽視對學生編程能力的培養[2]。
4) 驗證性上機例程過多,例子程序照本宣科且忽略程序調試思維的培養。上機實踐環節,學生大多數按部就班抄寫課堂例題程序代碼然后編譯運行,程序報錯時無法確認報錯原因,缺乏定位錯誤及程序調試的能力。
3 教學改革與實踐
針對以上教學過程中出現的問題,秉持以學生為主體的思想,對本課程進行以下4個方面的教學改革與探索。
3.1結合專業定位,優化教學目標
C/C++語言程序設計在內容劃分上包含兩大基本編程思想:面向過程的程序設計和面對對象的程序設計。面向過程的程序設計屬于程序設計的基礎理論,與計算機專業類型學生相比,生物醫學工程專業學生在學習這門課程之前還未接受過系統的編程課程訓練,且后續的專業課程如單片機原理及應用、嵌入式系統課程所依據的編程技術也是主要基于面向過程的程序設計思想。因此針對該專業學生教學目標調整為:培養學生面向過程的程序設計思想,掌握結構化程序設計方法。教學內容圍繞面向過程程序設計進行授課,在夯實編程基礎之后,為學生介紹面向對象程序設計的基本思想,學生可進行自學完成。
3.2引入線上線下混合式教學策略,優化教學模式
傳統的線下教學模式較為單一,主要是以教師講課,學生被動聽課為主,無法發揮學生的教學主體作用。在當下“互聯網+”的教學背景下,線上線下混合式的教學模式更是被大家廣泛接受,且實踐下來,學生反響良好[3]。針對本課程,線上線下混合式教學實踐主要分為以下兩個階段:
1)線上教學階段:線上教學平臺繁多,雨課堂、騰訊課堂、學習通、QQ微信等多種媒介各有利弊。考慮到泛雅平臺學習通為本校主流的線上教學平臺,因此本課程的線上教學實踐也主要是基于學習通進行展開。程序設計語言的前兩章通常是介紹一些語法基礎,變量和數據類型等非常瑣碎的概念,這些理論知識繁雜,線下課堂教學往往要花費大量的課時講解,且學生抓不住重點,教學效果也較差。因此課前會針對性錄制一些課程導讀及重要知識點的微課視頻,提供給學生預習使用,同時會在泛雅平臺發布本次課程的學習任務,如圖1所示,可幫助學生系統化梳理龐雜的理論知識,構建自己的知識體系。
2)線下教學階段:線上教學擺脫了時空的局限性,但是完全依賴線上教學并不能保障學生的學習效果。線下教學在教學過程中仍然發揮其不可替代作用,面對面的交流增加了與學生之間的溝通親切感,同時針對學生提出的問題可做出即時響應,是線上教學有力地完善與補充。針對學生線上學習過程中遇到的疑難點,教師有針對性地進行講解。同時結合已學知識定期發布課題任務,學生分組合作進行討論、實現,這個過程仍然側重發揮學生的主觀能動性,教師不必面面俱到講述所有的編程細節,學生在充分的課題實踐中逐步探索發現,在培養溝通合作能力的同時也加深了對理論知識的理解。
3.3創設趣味題目,培養“編程”思維
教材中的例題設計一般多考慮數學類的應用,舉例也偏數學化語言,缺乏一定的趣味性。這使得學生學習過程中,覺得枯燥乏味,難以激發學生的學習興趣。因此在課程選擇例題和習題方面,既要緊密結合實踐考慮實用性,同時兼具趣味性。針對該要求,本課程在授課過程中,為了激發學生的興趣,培養學生的編程思維,在例題和習題的選擇上引入游戲類和生活類題目,如講述循環時,以“猜數”游戲啟發學生思考,讓學生先自己嘗試實現,這個過程學生的“頭腦風暴”幫助學生鞏固理論,鍛煉編程思維;然后對學生編寫代碼進行點評,指出其漏洞,學生往往有種茅塞頓開、醍醐灌頂的感覺,學習過程是愉悅和充滿斗志的。此外,像雞兔同籠,韓信點兵等趣味題目也經常會用作習題,增加學生做題過程中的趣味性。為了提高學生定位錯誤的能力,培養學生的調試思維,在初學者常常容易犯錯的點,如變量初始化錯誤、死循環與死語句與0比較問題、復雜情形的關系判斷問題、遺漏邊界條件測試、類型溢出等方面針對性地布置習題,有意識地讓學生“踩坑”,鍛煉他們調試程序的能力,加深對理論細節的掌握。
3.4多元化考核評價機制優化評價體系
以往針對學生的成績考核,主要包含三大板塊,即平時出勤、上機和期末考試成績,分別占比10%、20%、70%。這樣的評分機制,導致期末占比過高,使得學生平時積極性不高、僅到快期末時才開始突擊,且最終分數反倒與平時表現突出的學生相差很小,考核評價不具科學性[4]。因此,針對本課程的考核引入多元化的評價機制,增加線上學習視頻、平時問題討論,創新實驗完成情況、小組合作評分等考評方式,加大平時教學過程的評價占比。優化后的成績考核為平時成績占比30%,其中平時成績除包含出勤外,還增加了上述幾項的考核占比,此外,上機占比為20%,期末考試占比50%,從而激發學生平時學習的動力,提高評價科學性。
4 結束語
編程語言設計類課程的理論邏輯性強,實踐性要求高,對于學生的學習自主性具有較高需求。通過以上教學改革措施,致力于發揮學生的教學主體作用,激發學生的學習積極性和提高其自主學習能力。在接下來的教學實踐中還將進一步深化教學改革,完善教學方法,提高教學質量。
參考文獻:
[1] 梁銳,余波.以學生為中心的C語言課程教學改革初探[J].現代計算機,2019(35):74-76.
[2] 嚴仍榮.新工科背景下“C程序設計”課程思政教學研究與實踐[J].計算機時代,2020(12):76-78,81.
[3] 趙厚寶,付劍鋒,李琥.《高級語言程序設計》課程教學改革的研究[J].高教學刊,2020(9):137-139.
[4] 蘭聰花,何輝.“C語言程序設計”課程教學改革與實踐[J].工業和信息化教育,2020(4):29-32.
【通聯編輯:代影】