瞿 蘇 張春生
[摘要]C語言作為當今最為流行的程序設計語言之一,不但成為計算機專業的必修課,而且也越來越多地成為非計算機專業的學習課程。但在《C語言程序設計》課程教學中,許多教師和學生都認為C語言涉及的概念比較復雜,規則繁多,使用靈活,容易出錯,教師教學和學生學習都感到困難,并不同程度產生畏難心理。因此,從優化教學方法,強化實踐教學,培養學生求知興趣方面,探討如何提高《C語言程序設計》課程教學質量。
[關鍵詞]C語言 理論教學 實踐教學 教學方法
中圖分類號:G42文獻標識碼:A文章編號:1671-7597(2009)0910174-02
一、優化教學方法
本課程是以高職高專計算機系列教材冉崇善主編的《C語言程序設計》為教材,傳統的計算機程序設計教學方法在很大程度上存著單向性,使學生普遍產生學習只為了應付考試等厭學的情緒,不能積極地發展和挖掘學生的智力,甚至會扼殺學生的求真求新的天性,他們的創造力逐漸在枯燥無味的程序設計教學中消磨殆盡。如何能讓學生能體會到學生程序設計的樂趣,并逐漸地像迷上“網絡游戲”那樣“迷上”程序設計的學習呢?教學方法很重要,一套好的教學方法能讓學生愛上C語言課程,同時也能讓學生迷上編程。
本人在教學中以“深入淺出,突出實用”的指導思想,對教學內容重新進行了歸納,將難點再次分散,以縮小臺階,達到循序漸進。
(一)形象比喻法
對于深硬的語言敘述,可以改用生動的比喻,進行詳盡引導。譬如,在開始學習指針的概念時,教材對“間接存取”敘述比較深硬,學生難以理解,可以借用比喻:將A房間的鑰匙放在B房間里,若要取A房間里的物品,就需要先打開B房間,取出A鑰匙,再打開A房間,取出A房間的物品,這就是“間接存取”。學生很快就能理解,也加深了指針的概念。
(二)問題探究教學法
問題探究教學法在C語言教學中是一種相當有用的教學方法。這種教學法能夠充分發揮學生的思維,突出學生的主體作用,能有效地培養學生的分析問題與解決問題的能力。以“冒泡排序”為例,先跟學生講解什么叫“冒泡”,然后讓學生思考冒泡排序的算法思路,進而讓學生討論并寫出算法流程圖,接下來講解如何用for與if程序結構實現算法,最后再講解為了減少交換次數而引入swap這一判定變量,直至整個程序編寫完整。整個講解過程結合板書,逐步引導,層層深入。
(三)歸納教學法
C語言有很多的定義、概念、語法規則,它們使用靈活、難以記憶,也特別容易出錯。如果能夠引導學生進行歸納,將會起到事半功倍的效果。C語言的定義、概念、語法規則有許多相似的地方,例如:printf()與scanf()函數,有很多語法規則是一樣的,對它們進行歸納之后,學生只要記住其中一個,另一個自然就會使用了。
(四)因材施教法
由于學生學習的動機、興趣、能力存在較大的個體差異,所以決定了C語言課程必須因材施教。在C語言教學中,培養學生的自學能力尤為重要,如果學生的學習完全依賴教師才能掌握,而沒有一定的自學能力,其所學的知識很快就會被淘汰。對于學習能力較強的學生,鼓勵他們自學,并給予方向性指導,讓他們超前學習。對于多數學生,則把精力放在最基本、最常用的內容上,讓他們學好基本功,掌握程序設計的方法,為后續課程的學習打下基礎。
(五)學生主體法
讓學生真正成為課堂的主體。本人針對C語言的部分章節,在準備上某章節時,提前給某些同學布置任務,然后在上課時,就請這些同學講解。該方法不僅讓學生在課前有了任務有了壓力,而且在課堂上讓學生成為課堂的主體,積極參與課堂的學習和討論,同時也提高了學生語言表達能力。
(六)學生總結法
本人在理論課堂教學課堂結束前五分鐘,要求學生對該次課簡單總結理論知識。這樣全體同學不僅對該次課的知識點有了掌握,同時也減少了同學上課開小差的幾率,提高課堂教學效果和學生的學習效率。
通過以上授課方式可以引導學生把握程序設計的思路和方法,培養學生具備計算機語言方面扎實的基本功。在整個課程教學中以全國計算機等級考試二級C語言筆試的題型作為原型,為學生參加全國計算機等級考試二級C語言做準備。
二、強化實踐環節教學
C語言程序設計是一門實踐性很強的課程,既要掌握概念,又要動手編程,還要上機調試運行。因此,C語言的教學特別需要重視實踐環節,包括編程和上機實驗。
在實驗題目設置上,根據課時安排以及要掌握基本知識,設置必做與選做題,以滿足各個層次學生的需要。同時針對每次學生的實驗,在每次實驗課中,都隨機檢查某些學生的實驗情況,將學生實驗成績登記作為平時成績的考核。在實驗課中,遇到些同學不易理解的程序設計題,分組討論,并且請該組某位同學給大家講述該程序題的設計思路。在本課程結束后,安排一次綜合的大實驗,培養學生綜合應用能力。同時也為全國計算機等級考試二級C語言上機考試做準備。
同時在實踐教學過程中,學生獨立編寫程序時,本人一直堅持這樣的程序設計思想:
1.追求簡單。程序設計的目的是通過計算機來實現用戶的各種要求,而這些要求需要由一定的算法來實現。一般來說,能夠實現目標的最簡單的算法,我們就認為是好的算法。在教學中過多的強調了一些實際應用中用不到的知識點,將簡單的問題復雜化。比如在很多書上的自增運算部分,都有對j=i++ +i++ +i++這種表達式執行方法的介紹。我們為什么要用這樣的表達式呢?大家都知道這種表達式在不同的編譯器下可能會產生不同的執行結果,而且這樣寫出的程序是可讀性很差的。可是我們的考試中卻三番五次的出現這樣的題目,這是在難為學生,也是在誤導學生,因為在實際開發中幾乎很少有人會這樣去寫。簡單的程序是最安全的程序,是被所有編譯器支持的最好的程序,因此,追求簡單往往是最正確的。
2.避免背誦。現在的程序設計語言還在飛速的發展,依靠背誦獲取的知識早晚會被遺忘。如果一個學生是依靠背誦學習C語言的,那么當他再接觸到一門新的語言時,又會發現自己根本無從下手。教學生寫程序,就要讓學生把寫程序變成騎自行車一樣,一旦學會,就不會忘記。當然,這來自于不斷的理解和實踐。當他真正掌握了程序設計的基本思路,不管以后使用哪一門語言,都能輕易上手。
所以鍛煉學生自己通過相關資料和網絡獲取知識的能力比讓學生背下那些死的規定更有用。書上網上那么多資料,想不起來了哪兒都能找到答案,干嘛要去死記硬背呢?有些東西用多了自然就記住了,用的少的背了也會忘,何必把時間浪費在這種無意義的死記硬背中呢?
3.規范格式。寫程序必須要講究格式嗎?這個問題的答案就像寫作文是否必須要講究文體一樣。有人覺得程序是為了實現既定功能的,格式規范不規范并不重要,尤其是在C語言的教學過程中,由于通常寫的程序都比較短小,因此一些教師往往忽略了對學生程序格式的要求,甚至認為只要程序寫對了,格式有沒有問題并不重要。這是非常不可取的。因為C語言的學習階段也是一個養成書寫程序習慣的階段,在這個階段如果養成了不好的習慣,以后將很難改掉。因此,在教學過程中,教師要注意引導學生必須遵守規范,同時也要求自己在給學生做演示時,絕不出現不符合規范的寫法。
三、培養學生求知興趣
蘇霍姆林斯基說:“興趣的源泉還在于把知識加以運用,使學生體驗到一種理智高于事實和現象的權力感。”對于學生來說“興趣是知識的源泉”。
職業教育的培養目標不同于普通教育,它是面向基層,面向生產服務一線,培養的不是學術型人才,而是技術應用型人才。學習C語言,重點是培養解決實際問題的能力。在教學中,注意找一些典型的、有生活趣味的程序來吸引學生。如,在講C語言這門課前,可以先給學生展示幾個例子:用C語言編程的小游戲(俄羅斯方塊等),或者是編程的圖形小動畫(如升國旗、球碰撞等),讓學生明白學習C語言的作用,從而激發他們學習的興趣。
當然,除了通過形象的實例來培養學生的興趣,同時師生關系也是學生學習某一課程的興趣的原因。建立新型師生關系,重視師生情感交流,培養興趣。新型師生關系可以分為:1.合作的師生關系:合作就意味著教師和學生在人格上是完全平等的。好多學生存在厭學的情緒,那就需要吸引學生參與到我們C語言的課堂。2.和諧的師生關系:和諧是指師生之間的情感聯系,愛是其中的核心要素。當學生上課精神狀態不好時,需要給予學生關心,其他學生也能感受到老師的這種關心,學生的學習的動力就有了。3.互動的師生關系:當教師教學有熱情、有方法,學生學習就主動了,學習成績也就提高了,教師也更受鼓舞與鞭策、教學上也更加精益求精。4.融洽的師生關系:朱小蔓曾說:“離開感情層面,不能鑄造人的精神世界。”教育是充滿情感和愛的事業,教師應多與學生進行情感方面的交流,做學生的知心朋友,讓學生覺得老師是最值得信任的人,跟老師無話不說、無事不談,達到師生關系的最佳狀態。
在教學中,讓學生在有壓力,有目標,有思路的學習環境中學習,同時在非常好的師生關系環境中學習,學生的學習動力,學習興趣,學習效率都會提高。
參考文獻:
[1]冉崇善,C語言程序設計[M].北京:中國鐵道出版社,2007年.
[2]胡遠望,《用C語言模擬數獨的人工解題思路》,電腦編程技巧與維護,2009年05期.
[3]田啟明,《對高職計算機教學的幾點看法》,溫州職業技術學院教務科研網,2004年6月25日.
作者簡介:
瞿蘇(1982-),女,明達職業技術學院信息工程系教師,助教;張春生(1980-),男,明達職業技術學院信息中心教師,助理實驗師。