王艷 王丹 彭靜 李曉明
【摘要】針對目前《C語言程序設計》教學效果不理想的問題,結合教學實際,分析教學過程中存在的問題,針對計算機專業新生的教學方法進行探討,提出需要做好第一堂課的引導,啟發式教學,理論課與實驗課有機結合以及改革傳統的考核方式等建議。
【關鍵詞】C語言程序設計;計算機;教學方法;啟發式教學
C語言是一種結構化的程序設計語言,是后續學習《數據結構》《操作系統》等專業課程的基礎。它入門簡單,特別適合于初學者學習。目前很多院校都將《C語言程序設計》課程作為計算機專業大一新生的第一門程序設計語言課程。
隨著計算機的普及,目前剛入學的新生可以熟練的操作計算機,但對于計算機的原理等理論知識的了解幾乎為零。《C語言程序設計》課程是他們接觸到的第一門專業課,如何進行教學將直接影響學生的學習興趣。目前C語言的教學沒有得到很好的教學效果,學生往往是到了大二、大三階段,隨著計算機專業知識的學習才慢慢理解程序設計的真諦,才真正學會使用C語言編寫程序。
《C語言程序設計》課程教學效果不理想的狀況普遍存在,很多專業課教師對其教學體系、教學方法等進行研究和討論[1-4],期望找到提高教學質量的途徑。
1 C語言教學中存在的問題
筆者為《C語言程序設計》課程教師,主要針對計算機專業大一新生進行講授。面臨C語言教學效果不理想的問題,在教學過程中不斷探索適合的教學方法和手段。首先結合教學實際,分析目前C語言教學中存在的主要問題。
1.1 教學過程中過分注重語法
大多數教師往往在簡單介紹C語言特點后,就開始就講解C語言的基本數據類型、基本運算符與表達式。對于初學者來說,接受這些內容很困難,即使是有些學生記住了,但也不是真正理解了這些內容在程序設計語言中的作用。這將導致初學者感覺C語言是很難學、很枯燥的一門課程,一開始就無法理解。同時也忽略了學生程序設計思維方式和編程能力的培養。
1.2 教學方法以教師講解為主
C語言目前的教學方法主要是板書結合幻燈片演示,以教師的“教”為主體,主要講授C語言的基本語法及基本編程思想。這種教學方式下,學生主要以聽為主,被動學習,枯燥的內容無法吸引學生注意力,也無法調動學生積極性,得不到良好的教學效果。
1.3 教學課時少,教學內容多
C語言程序設計入門容易,深入難。三種基本程序設計之后還包括數組、指針、結構體等內容。而《C語言程序設計》的課程往往是32理論學時,在有限的學時內完成所有C語言程序設計的內容,就出現課時少、教學內容多的情況,無法定期的對前面內容進行總結和練習,令學生無法透徹理解所學內容。
1.4 課堂教學與實驗教學脫離
由于教學條件的限制,大多數高等院校的C語言課程都是將理論課與實踐課分開進行。理論課所講的內容,學生聽過之后,沒有親手實驗,導致記憶不深,理解不到位。到實驗課時,已記不清理論課所講的內容和注意事項,教師需要在實驗課上將關鍵知識點再重復一遍。這種情況減少了學生的練習時間、增加了教師工作量,也反映了這種教學方式的不合理,課堂教學沒有起到應有的作用。
1.5 考試方式古板
目前的C語言考試方式主要是閉卷考試。考試題目通常包括選擇、填空、閱讀程序等題目,這些題目考核的只是C語言程序的基本語法,而忽略考核學生的程序設計思維方式和編程能力。
2 C語言教學方式探討
針對C語言教學中出現的問題,我們就如何對大一新生開展C語言程序教學進行探討。使初學者能夠真正理解程序設計的本質,認識到程序設計語言的重要性,提高學習積極性,主動學習,從而培養學生程序設計思維方式以及編程能力,為后續學習打下基礎。
2.1第一堂課的引導
《C語言程序設計》是計算機專業新生接觸到的第一門專業課,也是第一門程序設計語言課程。第一堂課的內容至關重要,它決定著學生是否對此門課程感興趣,也決定著后續的學習質量。筆者在實際教學中發現,第一堂課的引導必不可少。引導的內容如表1所示,主要向學生介紹程序、程序設計語言、程序設計的概念,以及程序設計語言的發展歷程。介紹三個概念時,從學生的角度出發,從他們熟悉的軟件著手進行講解。讓學生從總體上了解到本門課程的大致作用以及意識到本門課程學習的必要性。
在學生已經對本門課程有了大概的了解,對程序設計語言有了總體的認識之后,再去從計算機的發展歷程和當時的實際需要出發介紹程序設計語言的發展,讓學生了解C語言所處的位置及基本特點。理清學生思路,同時也激發了學生的學習興趣。這時可以以學習外語的過程為類比,告訴學生接下來要學習“單詞——數據類型”。
2.2有效選取教學內容,啟發式教學
C語言課程,教師主要的教學目的是培養學生的編程思維以及編程能力,而不是將C語言的所有語法及知識點都傳授給學生。所以教師應該選取基本的教學內容,采用啟發式教學,這樣既解決了課時少的問題,同時也培養了學生的自學能力。
以C語言中的構造數據類型為例,當給學生講解數組時,啟發學生自行思考,讓學生掌握學習方法,并通過反復的練習培養思維方式和編程能力。學生在掌握數組使用方法的同時,也了解了整個學習過程。而后續的結構體內容將不在課堂上講授,而是鼓勵學生自行學習,抽出時間為學生答疑,培養學生自學能力。
2.3理論課與實驗課的有機結合
理論課與實驗課的分離導致理論課無法起到應有的效果。對于《C語言程序設計》課程最佳的上課方式應是將二者合二為一。老師講解基本理論之后,學生可以馬上對所學知識進行實驗,加深理解。然而并不是所有的院校都具備這樣的教學條件,當不具備條件時,教師應該在理論課上讓學生自己動手寫程序,調動學生積極性,打破被動學習的局面。而在實驗課上,教師應重復理論課中的重要知識點,同時教師需要設計好實驗方案,使學生循序漸進的對所學內容進行練習。實驗課內容應以學生的創新為主,而不應該是讓學生機械的驗證教科書后的程序。
2.4改革期末考核方式
C語言的考核方式也不利于培養學生的思維方式以及編程能力。教學過程中無論是教師的“教”還是學生的“學”暫時還無法脫離最終的期末考核。而目前的考核方式往往會令學生,甚至包括教師偏離最終的教學目的。因此需要對目前C語言程序設計的考核方式進行變革,可以用上機考核代替筆試,這樣可以充分體現學生的編程能力。或者將最終的期末考核變換為類似畢業設計的小型課程設計。我們最終的目的是為考核學生的思維方式和編程能力,具體形式還要根據各個院校的要求以及學生的特點決定。
3 結語
作者針對目前C語言程序設計教學效果不理想的狀況,分析了目前此門課程教學過程中存在的問題,并結合自身的教學經驗,對計算機專業新生的《C語言程序設計》課程的教學方法提出了幾點建議,作者將會在后續的工作中驗證這些教學方法的效果,并不斷進行改革和完善。
參考文獻:
[1]趙欽,郝麗珍,郭鮮鳳.高級程序設計語言教與學切入點探析[J].太原大學學報,2012(13):114-116.
[2]魯紅英,肖思和,孫淑霞.“C/C++程序設計”課程教學改革與實踐[J].計算機教育,2013(7):95-98.
[3]袁柳,路綱.程序設計語言教學過程中的學生思維能力培養[J].計算機教育,2011(5):5-8.
[4]陳國新,李學哲,白云,等.程序設計語言課程教學改革的探索與實現[J].福建電腦,2011(6):49-51.
基金項目:黑龍江省教育科學“十二五”規劃2012年度青年專項課題(GBD1212018)黑龍江省高等教育教學改革項目(JG2013010126)。