譚志國,呂宣姣,楊智
(1.中山大學南方學院,廣州510970;2.中山大學,廣州510275)
獨立學院《C語言程序設計》教學改革實踐
譚志國1,呂宣姣1,楊智2
(1.中山大學南方學院,廣州510970;2.中山大學,廣州510275)
《C語言程序設計》是理工科專業的一門必修課,也是一門實踐性很強的課程。針對傳統C語言程序設計的教學現狀和存在的問題,提出一些改革措施。實踐證明,這些措施對培養學生的編程能力和動手能力具有良好的效果。
C語言程序設計;改革措施;編程能力
對于理工科專業的大學生來講,不能滿足于只會使用辦公軟件,而應當有更高的要求——程序設計。為此,中山大學南方學院電子通信與軟件工程系所有專業在大一的上學期就開設了《C語言程序設計》課程。C語言功能豐富、使用靈活廣泛,它使程序員相互溝通,是當前程序員共同的語言,比任何其他高級語言更接近機器[1]。也正因為此,沒有接觸過程序設計的大一學生在學習過程中會感到有些吃力。《C語言程序設計》作為理工科專業的一門基礎課,是學習后續其他課程的基礎,其重要性不言而喻。因此,如何讓更多大一新生學會和掌握C語言編程方法及技巧,培養他們的編程興趣就變得尤為重要[2]。以往的教學經驗表明,C語言學得比較好的學生,學習其他計算機語言的速度會比較快,在將來的就業競爭過程中會具有比較明顯的優勢。因此,如何改革《C語言程序設計》課程,使得更多學生掌握其編程方法和思想值得去探索。
《C語言程序設計》是一門專業基礎課,不管是學習后續課程還是將來就業從事與專業相關的工作,都需用到C語言中的知識和技巧。傳統的C語言教學側重于C語言的語法,而C語言語法繁多、枯燥,學生們很快就會失去了學習的興趣,從而影響教學效果[3];C語言傳統的考核方式比較注重語法細節,考試類型選擇題、填空題等客觀性題目居多,這種重語言細節輕實踐的考試形式不利于培養學生使用C語言知識解決實際問題的能力。以往的教學基本沒有課程設計環節,指望通過幾十課時的學習就掌握C語言編程是不現實的。基于獨立學院“應用型人才”的培養目標,C語言程序設計作為一門應用型課程,重點應在于培訓學生的分析問題的能力、使用所學知識編寫相關程序和算法解決實際問題的能力。
針對《C語言程序設計》現狀和存在的問題。筆者在以下方面作了一些教學改革的嘗試:(1)培養學生的學習興趣[4]。眾所周知,興趣是最好的老師,如果學生對學習C語言有了濃厚的興趣,學生就會積極主動地去學習,教師再加以指點,其教學效果將會非常的好。在教學過程中,對于實踐性很強的《C語言程序設計》課,采用案例的主題式教學就能極大的引起學生學習的興趣,較快地讓學生掌握程序設計的思想和方法[5]。在教學上,第一次課的教學尤為重要,教師要精心設計第一節課的教學內容,做到先入為主,讓學生感到這門課既重要,又有一定的難度。而且,教師的語言應當盡可能地貼近當代大學生的特點,拉近與他們的距離,這樣學生會感覺這個老師不僅僅是老師,而且還能成為朋友,從而在一定程度上提高了他們的學習興趣。(2)摒棄大量講解復雜的C語言語法,點到即止。遇到具體的語法問題時再具體解釋。對于任何一種語言,不管是自然語言還是編程語言,大量的講解語法都是枯燥的,學習者都會厭倦。因此,在教學過程中,只需講解必要的語法知識,對于那些不經常使用的、復雜的語法應盡量避免給初學者講授。這樣做的目的是為了不影響學生的學習興趣。例如,C語言中有很多運算符,這些運算符有各自的優先級和結合性。如果將每一個運算符及其優先級結合性都講解一遍,顯然是枯燥和乏味的。這時,我們只需告訴學生記住優先級最高的前3個運算符和優先級最低的3個運算符即可。對于中間的運算符不需要去記憶其優先級,在需要的時候,我們可以通過一對小括號來強制改變表達式的優先級。這樣,學生就可以避免去記憶難記的運算符優先級列表,而同時又不影響其使用,一舉兩得。(3)改變傳統地重語言細節輕實踐的考試形式,適當的增加改錯題、編程題等主觀題的百分比,重點培養學生的編寫程序和調試程序的能力。例如,一些教科書上有類似如下的程序段,要求學生寫出輸出結果:

事實上,很多有經驗的程序員也未必能計算出程序的結果,而且他們也完全沒有必要知道程序的結果是如何得出的。因為,實際編程中,幾乎沒有程序員會這樣去寫代碼,因為這樣的代碼可讀性非常地差,就算是寫代碼的人自己過一段時間后回過頭來看這段代碼也未必能很快算出程序的結果。所以,對于這樣的題目在考試時是完全沒有必要出現的。C語言是應用非常廣的語言,我們學習C語言的主要目的就是為了在實際項目中使用它,以幫助我們解決實際問題。因此,C語言的教學也應該側重于這方面能力的培養上來。提高主觀題的比例能在一定程度上有助于該目標的實現。
本文根據筆者在實際教學過程中學生存在的一些問題以及獨立學院的特殊性提出的,在我系理工科專業的課程教學運用實踐中取得了良好的教學效果。當然,同樣的教學內容面對不同層次的學生,其教學效果會有所差別。教師在使用與設計某種教學方法時,要充分了解學生的特點,并應積極地與學生互動,將學生的反饋信息融入到教學案例和教學方法的設計中,從而形成一個良性的負反饋系統。筆者與其他同事將進一步研究C語言程序設計的教學手段與教學方法,希望將這些改革經驗與心得應用于其他課程的教學改革中,以推動我校課程改革的不斷發展。
[1]譚浩強.C程序設計(第二版)[M].北京:清華大學出版社,2002.
[2]張素芹,吳連生.獨立學院《C語言程序設計》教學改革實踐[J].計算機教育,pp:21-23.
[3]金華,崔榮一.《C語言程序設計》教學研究[J].計算機教育,2012:60-62.
[4]周強.C語言教學方法探討[J].滁州學院學報,2004:96-98.
[5]胡楓.《C語言程序設計》的案例式教學的設計[J].青海師范大學學報,2010:48-51.
TAN Zhi-guo1,LV Xuan-jiao1,YANG Zhi2
(1.Nanfang College,Sun Yat-Sen University,Guangzhou 510970;2.Sun Yat-Sen University,Guangzhou 510275)
C Language Programming is a core course for students majoring in technology,but also a very practical course.Presents some reform measures to avoid the weaknesses of the traditional teaching methods.Practice has proved that better results can be achieved in training their ability of operation and in programming.
C Language Programming;Reform Measure;Programming Ability
1007-1423(2016)16-0024-03DOI:10.3969/j.issn.1007-1423.2016.16.007
譚志國(1982-),男,湖南人,碩士研究生,講師(工程師),研究方向為非線性控制、神經網絡等
2016-04-06
2016-05-16Practice of C Programming Language Teaching Reform in Independent College
呂宣姣(1982-),女,山西人,碩士研究生,講師(工程師),研究方向為冗余機器手臂的重復運動規劃、軟件測試