摘 要: C語言是一種應用廣泛又比較難學的計算機語言,它接近硬件和系統低層軟件資源,在教學上與其它語言有區別。本文作者結合教學自己的實踐,談談對C語言教學的幾點體會。
關鍵詞: C語言教學 學習興趣 學習方法 教學方法
C語言是一種通用性計算機程序設計語言。它兼有匯編語言和高級語言的雙重優點,運用它既能編寫操作系統軟件,又能開發各個領域的應用軟件。C語言的實用性使之成為編程的首選語言。學好了C語言,再進一步深造C++/VC++,JAVA等言語,就有了堅實的基礎。但目前很多學生在學習《C語言程序設計》后,感覺讀程序還湊合,編程則“難于上青天”。部分學生甚至毫無編程想法,僅僅是為應付考試而死記硬背,完全背離了高職教育的初衷。因此,如何在C語言教學中啟發并訓練學生的編程思維,是每個教師應深思的問題。
一、興趣是學習的基礎
心理學認為,學習興趣是對學習活動產生的心理上的愛好和追求的傾向,這種傾向是和一定的情感聯系的,它具有相對的穩定性和較強的延續性,對某個事情的“好奇”心理或偶爾有興,不能稱為興趣。學生有興趣表現在他們有主動了解、積極探索的愿望上,有不惜時間,不怕困難,可以集中較長的注意力。因此,在教學的過程中,教師應注意培養學生的興趣,把握學生的興奮點,有效地調動學生的求知欲望。如,在講C語言這門課前,可以先給學生展示幾個例子:用C語言編程的小游戲(俄羅斯方塊等),或者是編程的圖形小動畫(如升國旗、求碰撞等),讓學生感知C語言的魅力所在,從而激發他們學習的興趣。
二、合理設計教學目標
教育理論認為:“教學的藝術不只在于傳授本領,更在于激勵、喚醒和鼓舞學生。”在計算機教學中培養學生的創造力同樣需要“激勵、喚醒和鼓舞學生”。
教學目標不僅是教學活動的結果預見,而且是學生學習的目的。教學目標的定位,要根據教學對象的特點而定,要體現學生為主體的教學原則,著眼于激發學生主動參與學習的積極性,使學生在學習知識、技能的過程中,不斷提高各方面的能力。
建構主義學習理論強調以學生為中心,在建構主義學習環境下,教師應把學習的主動權交給學生,讓學生在親身實踐中品嘗艱辛和樂趣,從而培養他們的獨立操作能力。中專學校的計算機C語言課程更是一門不可缺少的課程,上機操作是非常必要的。在上機過程中,學生可以進一步理解和掌握知識,許多學生不清楚或不理解的問題,通過上機操作可迎刃而解。我們不要總是要求學生按部就班地解決問題,要讓學生自己在有目的的情況下,去尋找解決的方法,把學習的主動權還給學生,讓其真正當學習的主人。當然,把主動權交給學生并不等于削弱了教師的主導作用,而是對教師的要求更高了。并且在組織學生上機的實踐過程中,教師要適當地設計一些連續的作業。比如,在學完了循環結構后,我帶領學生分析一個程序,其功能是輸出四行星號,每行五個“*”,然后提出要求:1)理解循環語句的功能,并運行程序。2)若要輸出的星號組成一個正三角形應如何修改程序?3)每行輸出的“*”號及輸出“*”的列數在這里是固定的,可否通過鍵盤隨機輸入?4)對這個程序通過你適當的修改能產生哪些功能?這樣提出的幾點要求,難度呈螺旋形式發展,既相互獨立,又有內在的聯系。對這些問題,學生感到只要自己能開動腦筋,認真思考,就一個跳起來摘到“桃子”,最大限度地激發了學習積極主動性。
三、設計教學結構
計算機語言類的教學應教會學生帶著問題學習,初次接觸這樣抽象的編程語言,先掌握基本語法,不要要求學生一下子學得很深,循序漸進地使學生熟練使用在以后的進一步的學習中,肯定會遇到新的實際應用要求,學生就會感興趣,自己便會主動深入下去,這就是“學以致用”了。
在我們所采用的教學模式中,學生是知識意義的主動建構者;教師是教學過程的組織者、指導者、意義建構的幫助者、促進者;教材所提供的知識不再是教師傳授的內容,而是學生主動建構意義的對象;媒體也不再是幫助教師傳授知識的手段、方法,而是用來創設情境、進行協作學習和會話交流,即作為學生主動學習、協作式探索的認知工具。比如,我們在剛剛開始講數據類型、三大結構時,不要求學生解決很難的問題,在學完后面的數組、各種函數等后,讓學生來解決更生動、更有趣、難度系數更大的實際問題。
四、傳授C語言的學習方法
C語言是一門實踐性課程,要理論結合實踐,加強學生的動手能力、解決問題的能力,在學習方法上給以學生指導,告訴學生如何自學,如何聽課,如何動手實踐,明確一點:C語言不是看會的,也不是聽會的,而是親自動手實踐練會的,強調實踐的重要性。
五、C語言的教學方法
(一)抽象思維到形象思維的轉化。
讓學習過程變得輕松有趣是激發學生興趣的關鍵所在,C語言本身是一門極其抽象難懂的學科,把抽象的問題形象化,使本來枯燥無味的C語言變得魅力無限,符合學生的認知規律,可以收到良好的效果。
(二)采用問題啟發式授課,激發自主學習。
針對C語言概念多,語法繁的現狀,采用問題啟發式教學可以將難理解、難記憶的概念和規則變成一系列時而醒目、時而深奧的問題呈現在課堂教學中,這樣就能把學生的注意力集中起來,將其學習積極性調動起來,達到師生互動的效果。這種啟發式、討論式、交流式的教法,不僅能改變原來的灌輸式,而且能增強學生自主學習的能力。
(三)“引申法”“框架法”和“求異法”相結合。
所謂“引申法”是指是結合已經解決的問題,因勢利導,引導學生在此基礎上解決相關聯的問題。“引申法”可以培養學生在程序設計方面的發散思維,提高程序設計中的應變能力。問題是活的,但程序是有章可循的。最終使學生明白,語法是有限的,可解決的問題是無限的。只有在分析實際向題的基礎上,以清晰的思路去設計算法,才能舉一反三,以不變應萬變。
“框架法”可培養學生的全局思維和算法的整體設計能力。具體體現在兩方面:一是在學生有了一點編程基礎后要利用偽代碼或流程圖,從算法設計的角度講解編程思路,而不應拘泥于語法細節,不分主次、逐條語句的講解代碼。通過此框架,可使初學者對函數設計的關鍵問題有清晰的認識,利于從統籌全局的角度去考慮問題,體現了程序設計逐步求精的思路。這樣可以層次分明,突出算法設計的關鍵,利于培養學生的編程思路。二是在學習重點章函數時,由于新的算法已很少,主要是學習用函數調用的方法來重新編制以前所熟悉的程序。那么我們可以把著眼點放在函數的設計框架上,體現參數設計、返回值設計等關鍵問題,而無需細講函數體的實現細節。
“求異法”:一個固定的問題,解決的方法可能不唯一。如果能啟發學生多角度、多側面去尋求解決問題的辦法,則可激發學生思考的積極性,提高其學習興致。在C語言中一題多解的情況有很多,我們應有意識地引導新思路,鼓勵新方法,以培養學生在編程中的求異思維,而不是死記硬背,墨守成規。
六、理論教學與學生實踐相結合,提高程序調試能力
對程序設計課來說,理論學習和上機要兩手抓。實驗課不能流于形式,讓學生照抄照搬,否則他們會身在曹營心在漢。我們必須給學生思考、創新的啟迪,訓練其實踐能力,實驗課要生動活潑,使學生既掌握書中的重點算法,又有充分的思考空間,讓學生充分體會到頓悟和創造的樂趣。在進行每一部分的學習的時候,我們都應該配有相應的學生上機實踐的機會。這樣學生既能鍛煉動手能力,又能鞏固所學的知識。我們還應該讓學生養成上機前分析題目,決定算法與數據結構,并編出程序源代碼的好習慣。這樣在上機時,學生就會有的放矢,把主要精力放在調式程序上。對于普遍存在的問題,進行集中提示、講解、演示,以增加學生的印象。教師應及時檢查總結學生上機實驗的完成情況。
C語言程序設計的教學要講究方法,我們通過這門課的教學,不僅要使學生掌握語言的基本規則,而且要切實培養學生分析問題、解決問題的能力,培養學生的創新精神,團隊意識,為學生提供更好地展示才華的舞臺。
以上是我在計算機C語言課程教學中的一些體會,在今后的教學工作中我們還需要不斷地去探索,取長補短,不斷提高、完善。