陸淑娟 呂 俊
(南京工業大學計算機科學與技術學院 江蘇·南京 210086)
當前,新工科建設正在高等工程教育領域興起改革熱潮,并正在改變著高校的教學行為、人才培養方案、評價體系與資源配置方式。[1]新工科建設的核心目標是培養新興領域工程科技人才,提升布局未來戰略領域的人才培養質量。而面向以移動互聯網、人工智能、大數據等新興技術為代表的新一輪科技革命和產業變革蓬勃發展,計算機技術和計算思維能力是新工科學生迫切需要強化的重要基礎課程。
“C語言程序設計”作為高等院校非計算機專業的一門公共基礎課,可以使學生掌握使用計算機編程的基本知識,并以此為工具更好地為后續在專業課中使用計算機技術打下堅實基礎。根據學生的認知水平、興趣以及專業需要有針對性地重構教學內容,同時緊跟時代,利用日益發展的互聯網及新媒體技術對教學手段進行改革創新,可以有效地激發學生的學習興趣,強化學生的專業素養和應用技能,更能為培養“專業+”的新工科人才提供能力支撐。
本文提出以專業為導向,探討對C語言教學設計和模式改革,期望更有利于提高學生的編程能力,提高學生將專業問題轉換為用計算機解決問題的能力,借助于計算機更好地為專業服務。
計算機程序設計能力與創新能力是新工科人才能力培養的重要組成部分,由于C語言的經典、簡潔與高效,使它成為大部分工科類大學生的第一門程序設計課程。通過本課程的學習,學生可以深入地了解計算機工作原理,理解程序抽象與模塊化基本方法,掌握程序設計的基本思想和過程,并初步建立起計算思維,為將來專業課中加強計算機應用打下良好的基礎。[2]
反思當前的C語言教學實踐,普遍存在重知識教學而輕工程應用、重程序設計而輕專業融合等現象,從而一定程度上造成了“課程簡單化”與“專業脫節化”的傾向。
目前的教學內容比較側重于語法、理論知識,編程部分也僅局限于學生對常見算法的掌握和應用,采用的實例大多來自于數學問題,比如斐波拉契數列、遞歸求階乘、質數的判斷等等,缺乏與專業相關的應用性內容。這就往往會讓學生產生困惑,學習編程到底有什么用?究其原因是因為沒有有機地將課程內容與專業知識緊密結合起來,沒有通過學科專業的具體實例來豐富編程內容,不能讓學生了解到編程在具體專業課中的實際應用,無法激發學生的學習興趣。而這對于將來要從事具體專業應用的非計算機專業學生來說是遠遠不夠的,枯燥的算法訓練只會讓學生失去學習計算機編程的興趣。
目前的C語言程序設計課多采用“多媒體教室授課+上機實踐”的模式,利用多媒體可以使教學內容更豐富飽滿,可以提高教師的上課效率和教學效果,上機實踐環節可以讓學生自己動手編寫調試程序,從而發現問題解決問題,提高編程能力,但是隨著社會的快速發展,這種以教師為主導的授課方式已漸漸不能適應時代。首先,C語言知識點繁多,內容寬泛,采用滿堂灌的模式會讓學生失去興趣。其次,不同專業對編程的要求也不盡相同,千篇一律的教學模式沒有考慮到不同學生的專業背景,無法做到與專業教育的“無縫銜接”,同時由于課時的縮減加上合班授課人數較多,這種教學模式就顯得尤為吃力,師生之間缺乏互動,一部分基礎較好的學生吃不飽,而一部分基礎較差的學生也無法在課外時間獲得進一步有效的輔導,長此以往,無論好差學生的學習積極性都將受到打擊。
傳統的考核模式一般都采用期末考試的方式,分為理論與編程兩部分,這種方式固然能在一定程度上考核學生對知識點的掌握情況以及編程的能力,但是也存在不少弊端。首先,學生應試的心態比較突出,為了考試而學習,而不是為了掌握一門技術,甚至有部分學生平時不認真學習,僅靠在考前大量刷題和背算法來應付考試,這樣就失去了考核的意義。其次,一張試卷的內容畢竟有限,不能完全覆蓋所學的知識,這樣就使得考核失去了完整性。因此,僅僅依靠期末考試這樣的單一評價方式,同樣不適用于新工科人才的培養。
面對新工科建設對人才培養的新要求,在教學設計中強化專業導向,重構教學內容,調整教學手段,完善課程評價體系是高等院校“C語言程序設計”教學改革中迫切需要解決的問題。筆者通過在近兩年的“C語言程序設計”教學中不斷地探索研究,提出并實踐以下改革策略:
以專業為導向的教學就是以各專業人才培養目標為教學目標,在傳授知識的同時注重能力和綜合素質的培養。在組織教學內容時,應當結合各專業特色,選用具有專業知識點的工程應用為實例,突出專業綜合能力,切實提高學生采用編程解決實際問題的能力。例如,在對地質工程和勘察工程專業教學時可以選用反射系數的演算來講解牛頓迭代法,這就比簡單講述求方程的根更讓學生體會到編程的用處;根據巖石的物理數據來判斷巖性,[3]就可以把它和分支選擇結合起來。而對電子專業進行教學時,可以用電子時鐘作為例子,使用循環,函數等編程元素來實現。對數學類專業則可以選擇一些理論性的問題,比如漢密頓回路、漢諾塔問題等等。這種針對不同專業學生采用不同的案例,不僅讓學生學習和掌握了C語言這門課程的知識要點,同時也真切地體會到編程的用處,這也為后續專業課的學習打下了一定的基礎,真正做到了學以致用,融會貫通。
混合式教學是指集成多種教學技術和方法的教學模式。[4]隨著互聯網及新媒體技術的發展,越來越多的課程都開始采用了線上線下相結合的教學方式。對“C語言程序設計”而言,充分利用網絡技術,依托超星平臺將一些知識要點、經典算法錄制成視頻上傳,學生可以利用碎片時間對這些知識點進行反復的學習與回顧,可以說把課堂裝進了“口袋”,這種方式很好的彌補了班級人數多以及課時不足的缺憾。同時,通過設置課堂的翻轉,在小視頻中講解完知識點以后預留一些與專業知識相關的小任務,同學們可以分組討論準備,然后以小組為單位在課堂上分別演示講解,這種展示的機會大大激發了學生學習的積極性。除此以外,還成立討論群、課堂搶答、分組討論、問卷調查等等,同學之間、師生之間的互動大大增加,課后教師利用網絡平臺在線答疑,大大縮減了學生解決疑問的時間,學生們體會到隨時有疑可答,增加了學習的熱情,從而進一步提高了學習的效率與教學成果,真正做到了教與學相輔相成。
對于學生綜合能力的考核采用單一的期末考試作為評價指標是遠遠不夠的,在教學過程中采用大作業的方式來考核學生的綜合編程能力,從而增加跟蹤考核和過程性評價指標,可以增強評價指標的多樣性和客觀性。將班級學生劃分成立若干課題小組,在講授完分支選擇、循環結構以后,開始給學生布置大作業,比如九宮格下棋,簡單的計算題生成器,打飛機小游戲等等。在講授完數組、指針、鏈表后再設置大作業,比如數據庫管理系統、網絡選課系統等等。學生按課題小組根據興趣愛好自由選擇題目完成,每個小組上臺演示自己的作品,其他小組及評委老師現場打分,并將這部分分數納入總評的一部分。再加上平時作業、課堂翻轉討論的內容,建立一個綜合評價指標:平時作業20%,課堂討論10%,大作業30%,期末考試40%。采用大作業的好處在于學生在完成作品及觀看同學作品的過程中,體會到計算機編程的樂趣,以及在本專業中運用的魅力,同時由于大作業的綜合性較強,幾乎涵蓋了所學的所有知識點,這樣也就真正充分鍛煉了學生的編程能力。實踐證明,這種多元化的評價指標的建立很大程度上激發了學生平日里的學習積極性,就考核改革后的效果來看,學生的編程能力也普遍得到提高。
“C語言程序設計”作為工科學生一門重要的基礎課程,各高等院校都在進行著各種改革嘗試,而以專業為導向,采用線上線下結合的混合教學模式是課程改革的必然趨勢,也為新工科專業人才培養提供了可行而有效的方案。通過近兩年的教學實踐,學生普遍認為,對C語言程序的學習興趣得以明顯提高,以專業為導向的課程改革既提高了自己的編程應用能力,更加深了對專業知識的理解和掌握。同時,探索以專業為導向的教學改革無疑對教師提出了更高的要求。一方面,需要注重加強C語言程序課程與新工科專業知識的銜接,以提升自身的工程素養;另一方面,需要更新傳統教育觀念,變單純的知識傳授為學習活動的設計者,切實成為學生由“讓我學”向“我要學” 轉變的促進者。