龐曉鳳 駱無窮 劉賢峰
摘 要:C語言是目前國內高校理工科專業開設的計算機基礎課程,目的是培養學生用計算機解決問題的能力,為后續專業課程的學習及其它計算機語言的學習打下基礎。為了有效提高該課程的教學質量,本文針對《C語言》課程傳統教學存在的問題,提出了以學生為主,以案例、任務驅動為導向的教學方法。
關鍵詞:基礎課程;傳統教學;計算機語言;學生為主
中圖分類號:G642 文獻標志碼:A 文章編號:2096-000X(2017)07-0118-02
Abstract: As one of the core curriculums in Computation Science, C Language aims to help students in solving problems with computer as well as the way of studying other programming languages. In this paper, "student-center" and project-driven tuition models were proposed according to the lacks of traditional tuition model.
Keywords: core curriculums; traditional tuition model; programming languages; student-center
一、概述
C語言是一種結構化的程序設計語言,具有運算符豐富、使用簡單靈活、目標代碼執行效率高、可移植性好、能針對硬件編程等特點,在國內外得到廣泛應用。目前各高校理工科專業都將該課程作為一門面向大一新生的通識課程,在專業建設和課程體系中具有重要的地位和作用。通過該課程的學習,訓練學生程序設計的基本技能,使學生養成良好的程序設計風格,培養學生的邏輯思維和創新實踐的能力,為后續專業課程的學習奠定良好的基礎。
由于大一新生習慣了中學的強化應試模式的教學,大多數學生學習缺乏自主性,應變能力較差。絕大部分學生中學階段沒有學習過計算機相關知識,C語言作為計算機語言的入門課,學生感到難度較大。加之該課程授課老師的教學多數采取以講語法和程序結構為主,通過實例講解算法和程序設計方法。使學生在學習的過程中感到該課程知識點繁雜、難記,動手寫程序困難,學習積極性不高,很難達到預期目標。
本文針對目前該課程教學存在的問題,本著以學生為本的原則,根據學生的實際情況對課程的課堂教學、實驗教學及考核方式提出了改進方法,以提升學生的學習興趣,提高學生分析問題和解決問題的能力。并結合目前先進的教學理念和教學模式對該課程教學提出了新的教學方式。
二、改革傳統教學模式,提倡“學生為中心”的學習模式
目前大多數高校在C語言教學中仍是以教師課堂上講授為主,學生被動接受。教師按教材介紹基本語法規則,通過教材上的例子講語法的應用。教材上的例題多數是數學方面的問題,學生聽不懂,感覺課程很難、很抽象、很枯燥,難以按計算機思維方式去解決問題,造成學生的學習積極性不高[1]。
我校C語言課程教材選用清華大學《C程序設計》[2],課程學時數少(理論20學時、實驗12學時)、內容多,為保證能保質保量順利完成教學任務,我們采用課堂教學+自學+工程實踐的方式。
由于課時數限制,教材內容不可能在課堂全部講解,我們選擇了部分內容讓學生自學。為了檢測自學效果,要求學生寫自學報告。例如,開課前(我校新生入學前兩周軍訓,第三周開始行課),要求新生先查詢有關資料,了解C語言的特點、作用及應用領域,了解課程的目的及重要性,寫一份學習報告。預習教材前兩章,完成自學學習報告。通過這種方式的實踐,可以培養學生的自學能力,使學生能盡快適應大學的學習方式。
第一次課的引導教學非常重要,通過PPT或視頻演示的方式向學生展示計算機的工作原理及軟件開發的過程,讓學生明白軟件開發過程中,算法和程序設計是軟件開發人員的基本功,只有掌握了算法的設計并學會某種程序設計語言,才能進行程序設計[3]。非計算機專業的學生必須要掌握一種計算機語言作為今后專業應用的工具。我們選擇學習C語言,是由于C作為面向過程的程序設計語言,適合于解決小型程序的編程及底層的設備驅動程序和內嵌應用程序設計,其應用面很廣。
在課堂教學中將傳統板書與多媒體課件相結合,課程中涉及的基本概念及各章的知識要點采用多媒體課件教學,課堂上要使學生理解各知識要點及基本概念,可通過傳統板書舉例說明。教學中關于知識點的應用,采取案例分析及任務驅動的方式組織教學,由淺入深,逐步深入[4]。
例如,講循環結構的應用時,先提出求1~5累加的問題,告訴學生計算機做重復性的工作效率最高,引導學生分析如何讓計算機反復執行某些操作步驟來模擬人工進行累加運算,要求學生先理清計算機處理該問題需要執行的步驟,即計算機算法,再考慮如何用C的三種不同的循環控制語句去實現,并對這三種循環控制語句進行比較。如此,采用先提出問題,再引入解決問題的語句,講語句的語法規則和應用,學生更容易理解和掌握相關的語法知識。
在這個過程中,老師的主要作用是引導和解惑,鼓勵學生積極思考,嘗試各種不同的編程思路。并對學生的主動性、積極性及創新思維即時地給予反饋及肯定[5],在此問題基礎上,再進一步提出求鍵盤輸入的N個數累加的問題,求N個數中最大值的問題等等。
老師提出問題,讓學生主動參與課堂討論,使學生由被動聽課變為主動參與,活躍了課堂氣氛,讓學生在做中學、快樂學習。經過實踐,采取這種教學方式,能學生能盡快地掌握各知識點,有效地提高學生對該課程的學習興趣,增強學生學習的自信心。
三、改革教學模式,以工程實踐為主
C語言是一門實踐性很強的課程,需要學生有足夠的時間上機練習。但由于現在的教學學時分配通常是理論2/3,實驗1/3,實驗環節分配的學時數不多。實驗課主要是在教師指導下學生自已上機練習,多數學生在遇到問題時(很多是語法上的問題),沒有想自已通過查書本上的知識解決,而是急于詢求老師的幫助,沒有認真對待上機實習,只求程序通過而不思考和分析出錯的原因。上機實習內容大多是驗證性實驗和簡單的編程。
為解決傳統實驗教學所存在的問題,幫助學生將課堂上所學的知識學以致用,能自已獨立分析問題、編寫并調試程序,提高學生的編程和創新能力。我們將實驗課內容規劃為:驗證型實驗、設計型實驗及課程設計三部分。
驗證型實驗,通常是給出程序,讓學生運行程序,觀察程序運行結果。實驗過程中對程序結果進行分析,主要目的是讓學生通過實驗掌握編譯軟件的基用使用方法及對輸入/輸出函數格式的理解。
設計型實驗,一般是針對某個版塊的內容(如:分支與循環、數組、函數等)布置一些題目,讓學生先將程序寫在作業本上交任課教師查閱,然后再上機調試。學生通過設計型實驗,掌握各控制語句的用法,學會分析程序和調試程序,提高編程能力。驗證型和設計型實驗在課程計劃的實驗學時內完成,實驗完后要有書面的實驗報告。
為提高學生綜合應用所學知識的能力,在課外安排了課程設計任務。給學生布置幾個應用課題,讓學生分組(一般是3-5人)選題合作完成,要求學生按軟件開發的步驟完成課題設計工作,最后提交課程設計報告及調試通過的程序清單。通過課程設計培養學生綜合應用語言的能力和綜合分析能力,提高編程水平。讓學生分組設計,目的是培養學生相互合作、協同工作的團隊合作意識。
經過實踐證明,采用以工程實踐為主的實驗教學模式,能夠使學生理論與實踐相結合,更深入地理解理論課所學的各知識點,有效地提高了學生編程能力及綜合分析問題和解決問題的能力。
四、改革考核模式,進行多樣化、多角度考核
由于絕大部分學生以前未接觸過計算機語言,感覺這門課很抽象、難以理解。剛開始還感興趣,隨著課程內容的深入,部分學生跟不上教學進度,對該課程的學習產生畏難情緒。也有學生對C語言課程有誤解,認為C語言是面向過程的程序設計語言,已不適應現在社會的需要,是非主流的程序設計語言。由于認識上的誤區,使得學生在心理上抗拒該課程的學習,缺乏學習主動力[6]。
課程考核,以前是平時成績+實驗成績+期末考試成績決定課程成績,這種考核方式使許多同學不注重學習過程,不認真閱讀教材,考試前臨時報佛腳,刷幾套往幾屆的考題,就能應付期末考試。而平時學習很認真的學生因為期末考試的粗心而不能取得好的成績。很顯然,這種考核方式不能全面真實地考評學生的學習效果。
為了全面真實地反映學生的學習情況,幫助學生扎實掌握課程內容、注重課程學習的過程。將課程考核方式改為平時成績(10%)+平時測驗(20%)+實驗成績(10%)+課程設計(10%)+期末成績(50%)。平時成績由學生平時作業完成的情況和自學報告質量評定;平時測驗分兩個階段進行,由課程組統一安排出題,每次測驗占10%;實驗成績根據學生實驗過程及實驗報告質量評定;期末考試主要考查學生分析程序和編寫程序的能力。
五、結束語
C語言課程是一門理論與實踐相合的課程,如何更有效地將兩者融合,進一步提高教學質量。需要我們在教學的過程中嚴格合理地組織好教與學,以學生為主體,讓學生參與教學,提高學生的學習興趣。
本文在該課程的教學改革方面只是做了部分改進,在踐行的過程中取得了一些成效。對于該課程的改革,還需要我們不斷地努力和探索。今后我們打算為該課程引入MOOC平臺,進一步做到因材施教,為每個學生打造量身定做的學習計劃,以達到理想的教學效果和教學目標。
參考文獻
[1]張續亮.C語言程序設計教學方法研究[J].中國科技期刊教育數據庫教育,2015,46.
[2]譚浩強.C程序設計(第四版)[M].
[3]張子振,畢殿杰.C語言程序設計課程教學方法研究[J].福建電腦,2015,12.
[4]龐潤芳,鄭坤燦.高等院校C語言課程教學改革探析[J].中國輕工教育,2015,6.
[5]朱思瑾,徐軍.試探C語言程序設計課程教學優化[J].電腦編程技巧與維護,2015,20.
[6]李順勤,何驕.基于“C語言程序設計”課程“三改”的探討[J].高教學刊,2015,24.
[7]唐曉,李強.基于MOOC平臺的C語言教學模式研究[J].空軍預警學院學報,2015,6.