張寧 李敬輝
摘 要:在新工科背景下,針對傳統(tǒng)C語言程序設(shè)計教學過程中存在的問題,以能力培養(yǎng)為目標,結(jié)合專業(yè)應用需求,提出了基于案例教學、改革教學模式、建立多維評測機制等方法,旨在提高學生的計算思維能力和解決復雜問題的能力,能夠應用程序設(shè)計解決專業(yè)問題,為學科交叉融合打下基礎(chǔ)。
關(guān)鍵詞:程序設(shè)計;計算思維;案例教學
引言
為適應新經(jīng)濟發(fā)展和國家發(fā)展戰(zhàn)略,2017年教育部在新時代全國高等學校本科教育工作會議上,強調(diào)了發(fā)展新興工科專業(yè)、改造升級傳統(tǒng)工科專業(yè)的規(guī)劃[1],并于 2 月 18 日、4 月 8 日和 6 月 9 日分別在復旦大學、天津大學和北京相繼組織召開了高等工程教育發(fā)展戰(zhàn)略研討會、新工科建設(shè)研討會、新工科研究與實踐專家組成立暨第一次工作會議,分別形成了“復旦共識—新工科建設(shè)”、“天大行動—新工科建設(shè)行動路線”、“北京指南—新工科研究與實踐項目指南”[2]。新工科建設(shè)的提出和實施加快了高等學校專業(yè)建設(shè)改革的步伐,進一步推動了新的教學理念、新的教學手段和新的教學模式在教學中的嘗試和完善。
新工科的人才培養(yǎng)目標中指出,要培養(yǎng)創(chuàng)新能力強、工程實踐能力強且具備國際競爭力的高素質(zhì)復合型人才。C語言程序設(shè)計作為工科類專業(yè)的實踐應用型課程,在人才培養(yǎng)中有非常重要的地位。C語言程序設(shè)計不僅有利于培養(yǎng)學生分析問題、解決問題的工程設(shè)計能力,還可以與專業(yè)應用相結(jié)合,提高學生的工程實踐能力和創(chuàng)新能力。在新工科的人才培養(yǎng)目標下,課程要適應人才培養(yǎng)的需要,更新教學理念和方法。為此,本文提出了基于新工科人才培養(yǎng)的C語言程序設(shè)計教學改革,從分析教學對象入手,探索適合學生和人才培養(yǎng)需求的教學新方法、新模式。
一、教學對象分析
C語言程序設(shè)計授課對象多為大學一年級新生,盡管隨著教育水平的提升和信息技術(shù)產(chǎn)品的普及,新生對計算機的認識和應用能力較以往有明顯提高,但對于計算機的基本工作原理、信息的數(shù)字化表達認知基礎(chǔ)仍然比較薄弱,這對程序設(shè)計構(gòu)成了很大的障礙。學生難以理解計算機執(zhí)行程序的基本原理和程序設(shè)計的基本思想,因此,學生出現(xiàn)的問題是,能夠看懂例題,但不會動手設(shè)計程序,看到題目無從下手,造成入門難,學習興趣缺失,逐漸形成惡性循環(huán),導致學習狀態(tài)不好,影響后續(xù)專業(yè)課程的學習,甚至影響學習態(tài)度。
程序設(shè)計語言的語法知識較多,學生剛開始學習對于瑣碎的語法規(guī)則不熟,語法錯誤頻出。常見的問題例如:花括號或圓括號不匹配,關(guān)鍵字書寫錯誤(例如main寫成mian),中英文標點符號錯誤(例如“:”寫成“;”),輸入輸出語句格式錯誤屢見不鮮,一個程序多個main函數(shù)等。盡管都是簡單的語法錯誤,但學生實踐少,對語法生疏,難以自行發(fā)現(xiàn)錯誤所在,導致上機調(diào)試程序編譯通不過,程序執(zhí)行不了,浪費大量時間,學生受挫。
學生對知識的靈活運用能力不夠嫻熟,例如,學生編寫程序總是習慣把所有的功能寫入主函數(shù),而不是將各功能獨立編寫成函數(shù),形成模塊化的程序設(shè)計,對函數(shù)的理解不透徹,不清楚為什么要使用函數(shù),怎樣自己設(shè)計函數(shù);另外,對于同一類題目,如數(shù)組中數(shù)的逆序存儲與回文的判斷,盡管求解方法類似,但學生缺乏舉一反三的能力。究其原因在于,學生對知識的理解不夠深入,沒有理解知識的本質(zhì)。因此,授課目標不僅在于使學生學習一門程序設(shè)計語言,更重要的在于使學生理解語法的本質(zhì)、計算機執(zhí)行程序的基本原理以及程序設(shè)計的基本思想。培養(yǎng)學生分析問題、解決問題、靈活應用知識的能力。
二、案例教學
傳統(tǒng)的教學方法更多關(guān)注語法規(guī)則,學生面對繁多的語法規(guī)則感到枯燥乏味,極易喪失學習情趣,計算思維和編程思想的培養(yǎng)也無從談起。而案例教學能較好地解決這些問題,通過精心總結(jié)和設(shè)計,利用生活中常見的問題,將知識貫穿于問題中。課程不再以枯燥的語法為主線,而是以案例為牽引,通過提出問題、分析問題、解決問題傳授解決問題的方法,培養(yǎng)學生分析問題、解決問題的能力。語法知識穿插于問題求解過程中,使得語法不再單調(diào)、枯燥,也突出了課程的重點是學生能力的培養(yǎng)。
授課案例可以是生活中的實際問題,例如出租車分段計費、空氣污染指數(shù)計算、物品價格查詢等;也可以是C語言的經(jīng)典有趣案例,如兔子繁殖問題、水仙花數(shù)、素數(shù)判斷等;當學生有了一定基礎(chǔ)后,還可以采用綜合性的案例,如學生成績信息管理系統(tǒng),將所學的知識貫穿起來。通過解決實際問題,學生不僅對課程產(chǎn)生濃厚的學習興趣,還可以深刻感受和體會到程序設(shè)計的用途。
案例講解要注重學生思維能力的培養(yǎng),關(guān)注問題的求解思路和步驟,使學生學會解決問題的方法,而不僅僅是一個具體問題的求解。例如,判斷輸入的任意整數(shù)n是否為素數(shù),是則輸出“YES”,否則,輸出“NO” 。對于該問題,應首先分析問題的求解思路,然后一步步求解,初始的大體步驟如下:
通過一步步分析問題,建立起問題的解決步驟,通過程序設(shè)計語言將步驟加以實現(xiàn)。這個過程中,更注重學生思維能力的培養(yǎng),使學生掌握分析問題、解決問題的方法,達到“授之于漁”,而不是“授之于魚”。
三、線上線下結(jié)合的教學模式
程序設(shè)計課程入門難,內(nèi)容多,要達到掌握程序設(shè)計方法并能夠靈活運用的教學目標,僅僅靠課內(nèi)學時遠遠不夠。而MOOC和SPOC的新型教學模式為以上問題的解決提供了可能。C語言的語法知識和每一章節(jié)的基礎(chǔ)知識難度較小,學生通過自學可以自行掌握,因此,這部分內(nèi)容可以借助網(wǎng)上的MOOC資源由學生獨立完成。課上的學時則用來對基礎(chǔ)知識進行歸納,并在此基礎(chǔ)上擴展延伸。通過案例將基礎(chǔ)知識加以應用,同時開展翻轉(zhuǎn)課堂,給學生更多參與課堂的機會,針對相同的問題提出不同的見解,拓寬了思路,通過思維的碰撞,對問題認識更加深刻。學生課下完成任務(wù)的方式,不僅需要學生對知識查閱、整理和歸納,還需要團隊溝通合作,既能夠鍛煉學生解決問題的能力,也能培養(yǎng)學生的團隊合作精神。
程序設(shè)計能力的提高離不開實踐,除了課內(nèi)的實踐環(huán)節(jié),還應為學生提供課下練習的平臺,通過程序設(shè)計在線評判系統(tǒng)(OJ)在線布置和提交作業(yè),學生的程序代碼通過OJ系統(tǒng)在線評判,使得學生的作業(yè)能夠及時得到反饋,知道對錯,從而能夠及時分析解決,從而不必單純地依靠老師來檢查、指導。作為老師,則通過OJ系統(tǒng)可以實時查看學生的作業(yè)完成情況,了解學生的掌握情況和薄弱環(huán)節(jié),從而有針對性、有重點地講解。
四、建立多維評價機制
傳統(tǒng)的教學評價模式以期末考核為主,學生的學習過程不能充分體現(xiàn),僅憑期末一次考試無法衡量學生學習情況。為客觀衡量學生的學習效果,應注重學習過程,為此,引入多維評價機制,多角度地評價學生的學習效果,促使學生把功夫下在平時,切實保證學習效果,達到人才培養(yǎng)的目標。
課程的綜合成績包含以下幾部分:
(1)出勤:占5%。
(2)作業(yè)(10%):分為書面基礎(chǔ)知識練習作業(yè)和OJ在線編程作業(yè)。
(3)上機限時實驗(10%):上機課上作業(yè),需要在課上規(guī)定時間內(nèi)完成。
(4)階段測驗(25%):共有以下階段測驗:流程控制結(jié)構(gòu)、函數(shù)、數(shù)組和指針、結(jié)構(gòu)體和文件。
(5)期末(50%):理論測驗+編程測驗。
五、結(jié)語
通過基于新工科人才培養(yǎng)的C語言程序設(shè)計的創(chuàng)新型教學改革研究,對C語言程序設(shè)計的課程教學模式進行了實踐探索。將以教師講授為核心的傳統(tǒng)課堂教學活動組織形式,變?yōu)橐詫W生的自主學習為主導,極大地提高了學生學習的自主性,并且將教師從繁重的課堂教學中解放出來,更多地去關(guān)注C語言程序設(shè)計課程的教學方法以及教學資源的優(yōu)化、組織和管理,提高教學效果。今后,我們將進一步結(jié)合我院學生的特點,完善教學內(nèi)容、方法和手段,提升學生的專業(yè)實踐應用能力和綜合創(chuàng)新能力,滿足社會、企業(yè)對新工科人才的需求。
參考文獻
[1] 楊業(yè)娟,鄭棣,史汶澤,等.基于新工科人才培養(yǎng)的C語言程序設(shè)計創(chuàng)新型教學改革研究[J].計算機時代,2019(10):80-82.
[2] 喬加新,梁后軍,魏蘇林.構(gòu)建全方位分層程序設(shè)計類課程創(chuàng)新教學體系:基于新工科理念的計算機專業(yè)[J].黑龍江工業(yè)學院學報(綜合版),2019,19(9):20-24.