張一曼
C語言因為工具性與技能性在計算機教育中占據(jù)重要的地位而被列為計算機專業(yè)的必修課。在技工院校的計算機專業(yè)中,C語言也是學生學習其他計算機課程的先行課,是一門最基礎的計算機編程語言。但是由于技工院校的學生大部分是由初中畢業(yè)升學而來,自身基礎比較薄弱,加之C語言自身的特點,大部分學生反映在上C語言課時就像在聽教師講“天書”,完全聽不懂,作業(yè)做不出,更不要談靈活應用解決相關的實際問題了。如長此以往,教學效果就會很不理想。那么怎么解決學生的“聽天書”問題呢?怎么使學生上C語言聽得懂,作業(yè)做得出,既能自主練習又能解決實際問題呢?這就要從兩方面入手,首先是教師要重視改進教學方法,其次是學生要調整學習思路,學會自主學習。
1.學生自身基礎差
學生學習C語言需要有一定的計算機基礎、數(shù)學基礎、英語基礎和邏輯思維能力。其中受環(huán)境和條件的限制,部分技工院校學生計算機基礎較差,而技工院校學生的生源問題導致部分學生數(shù)學基礎、英語基礎較差,這些學生的邏輯思維能力也大大影響了他們學習機器語言中分析、設計、調試程序的能力。
2.C語言自身的特點
C語言是計算機語言,是人與計算機交流的語言之一。對于從來沒有接觸過機器語言的學生來說,如何實現(xiàn)自然語言到程序自動化語言的轉化,怎么樣讓C語言描述出用自然語言描述的問題,怎么理解C語言等,都是學生在學習中的障礙。
另外C語言較其他機器語言有很明顯的優(yōu)點,如運算符豐富、語法限制不嚴格、用戶能夠自定義數(shù)據(jù)類型、程序設計自由度大等,但這也是C語言學習的難點。
實踐證明,任何課程的學習都是由淺入深、由易到難、循序漸進的,而教師的善于引導能讓學生自主進行學習,這樣教學的效果自然是讓教師學生雙方都滿意的。這也是實施C語言教學的一條有效途徑,所以要解決C語言的“聽天書”問題,必須分別從師生兩方面下手。
1.教師要重視改進教學方法
(1)運用新型教育技術,施展多種教學手段。傳統(tǒng)的教學方法并不適合C語言,枯燥的傳統(tǒng)教學課堂是沒有效率的。所以教師要靈活地安排教學內容和上機時間,在講授基本結構、變量、運算符與表達式等比較簡單的章節(jié)時,可以邊講課邊讓學生操作,而對于比較難的章節(jié),如數(shù)組、結構體、指針等內容時,教師要從學生的學習進度出發(fā)安排課程,并要注重學生學習后的反饋。教師自始至終只采用一種教學方法是不可取的,因此,教師需要在教學過程中不斷探討、總結經驗,合理運用多種教學方法。教師要引入現(xiàn)代教育技術,在教學過程中應使用多媒體、投影儀結合的動畫、課件、程序軟件等進行課堂演示教學和案例教學。案例教學是一種新型的教學手段,目的在于培養(yǎng)學生綜合運用所學知識解決實際問題的能力。例如:在案例教學中,課前教師可以列出需要掌握的知識點,讓學生進行課外自學。課堂上教師則以實際案例出發(fā),從問題的提出和分析、方案的設計與實施、問題的解決等環(huán)節(jié)進行教學并穿插少量知識點,真正做到學以致用,以學生為主體,從而激發(fā)學習興趣。
在案例教學中,要給每個學生一個任務,那就是從案例中發(fā)現(xiàn)問題或得到啟示,確定自己的研究課題并加以解決。教師應對學生選定的題目進行批閱,在可行性、工作量大小及題目的意義等方面進行把關和評估,及時將意見反饋給學生。比如在講指針的概念里比較復雜難懂的直接訪問和間接訪問,教師可以選擇案例教學法,再與現(xiàn)實生活中具有趣味性的問題相結合:指針就是個地址;你的鑰匙放在抽屜里,你要通過抽屜才能找到鑰匙,這個抽屜就是指針,指引你去找到你想要東西的針,也就是存放數(shù)據(jù)的地方。再如教師在解釋兩個變量交換值時為什么會有一個中間變量時,可以提問學生有兩只水瓶A和B,A裝醋,B裝油,如果想將兩瓶東西相互交換,應該怎么做呢?學生自然都會想到,再拿一個空瓶子就可以解決了,這時候告訴學生空瓶子就是對應中間變量。教師這樣多舉一些和生活息息相關的例子,學生更容易聽得懂,自然能順利地完成學習內容。
(2)結合實踐,培養(yǎng)學生的邏輯及創(chuàng)造性思維能力。語言學習必須理論與實踐相結合,這就要求教師要精講多練。精講就是精煉、準確,教師要講的精煉、準確就必須要有清晰的編程思路,并能把思路展現(xiàn)在學生面前,從而培養(yǎng)學生能夠正確分析例題。多練是學習編程的關鍵,實踐出真理,上機實踐才能讓學生在掌握理論知識的同時更好地學會如何編寫和調試程序。C語言操作性很強,形形色色的命令及屬性設置在教師講解的時候,學生一般都聽得懂,但綜合起來卻感覺無從下手,這就是理論與實踐的脫節(jié)。為此教師可以把題目分解成一個個的小目標,讓學生做新的實驗,為實驗的改進作探索。在這過程中,教師也需在C語言實驗教學中安排合理的實驗時間,注重理論聯(lián)系實際,選擇例題時要有針對性、典型性,注意培養(yǎng)學生的思考能力和解題時的靈活性。
比方,在求n!時,可以用程序調用自身的方法。再如在運行標準輸出函數(shù)printf()時,由一個學生來演示分析程序運行時的工作原理,另一個學生來驗證解題思路的正確性。在這個過程中,學生的想象力和思維得到了發(fā)揮和鍛煉,并通過互動和比較,更能找出自己在某一方面的不足并加以改正。
學生的上機實踐也應該與實際相結合,否則多數(shù)學生在上機時只是驗證程序,沒有思考,感覺上機很無聊。教師可以使用項目分組法,每組有強有弱,可以分配相同的任務來進行比賽,也可以按學生的興趣自行組隊分配不同的任務,還可以編寫一些具有靈活性和伸縮性題目或簡單一些的游戲項目如掃雷、貪吃蛇、五子棋等,既能大大提高學生的學習興趣又能讓學生體會到實際編程的重要性,從而達到提高學生實際編程能力的目的。
2.學生要學會自主學習。
學生是學習的主體,所以學會如何學習很重要。然而大部分技工院校的學生因本身條件所致,并不會學習或者說不會自主學習,學習中往往過多地依賴于教師、課本和練習。學生在C語言的學習中要改變這種狀況,使自己在學習中的主體位置不斷提升,就要做到以下幾點。
(1)正確認識C語言,樹立信心。大多數(shù)技工院校學生先入為主地認為C語言學習相對較為困難,以至于缺乏學習的信心以及勇氣。所以認識C語言的重要性,樹立“既學之,則學好”的信心就顯得非常重要。C語言是計算機學習的基礎課程,其本身具有良好的專業(yè)性以及實用性。C語言學習的好壞,直接關系到計算機編程思維能力能否建立。不論哪種計算機語言,計算機編程思維是相通的,只要學好C語言,就可以很好地學習任何一種編程工具。想要學好C語言就得樹立信心,克服困難,循序漸進,腳踏實地學習。
(2)夯實基礎,多讀、多寫,“熟讀百遍”。古話說“熟讀唐詩三百首,不會作詩也會吟”。C語言雖然是機器語言,但它和自然語言的學習方法有很多的相似之處,要想打好基礎,就得熟讀課本,多讀、多寫。C語言程序最好的入門方式便是閱讀,上課時間跟著教師的思路,培養(yǎng)自己讀程序的能力,讀的程序多了,見到的符號體系和編程思想、方法和技巧也就多了,在以后自己獨立編程的過程中便可以借鑒別人的東西,再加以運用變成自己的東西。所以學習的時候必須熟練地掌握基礎知識,弄懂、弄透重點知識,及時做相關習題加以鞏固。讀得多了,寫得多了,掌握的基礎知識夠牢固,才能為自己編程打好良好的基礎。
(3)注重實踐,多學、多練,“其義自現(xiàn)”。C語言的實踐性很強,學生只有通過上機實踐才能更好地掌握C語言的理論知識及其應用。在實踐學習中,必須注重實踐,提高自己的編程思路和程序測試的能力,才能分析和解決問題,如C語言中的語法規(guī)定、程序設計方法、程序開發(fā)能力等,這些都必須通過充分的上機實踐才能得到提高。
舉個例子:C語言中的運算符的語法規(guī)則,學習起來枯燥無味,死記硬背費精力費時間,還可能不會靈活運用,那么這個就可以通過上機實踐,在調試程序過程中,自然而然地掌握了它的語法規(guī)定。程序最終也是在計算機上實現(xiàn)的,程序正確與否、存在什么問題上機調試并運行正確后就可以知道,編程能力也正是在不斷發(fā)現(xiàn)錯誤、改正錯誤中提高的。再者,從“簡”入“難”,從簡單開始,選取一些小程序進行編寫。多練習,在編寫一些簡單程序的基礎上,可以研讀C語言經典程序,這能使我們大開眼界、耳目一新,不但能增長自己的知識、激發(fā)自己的靈感,還能夠借鑒別人好的編程思想、編程技巧,學習分析問題、解決問題的方法,使自己的程序設計能力大大提高。
教和學是教學過程中的兩個重要方面,一門課程如果大部分學生反映聽不懂,那么說明教和學雙方都存在一定的問題。教師先檢討一下自己,是不是課堂太單調、太枯燥了?是不是教學方法和教學模式太落后了?學生也要檢查一下自己,是學習方法不對呢?還是沒有信心學好?或者是覺得沒什么用不愿意學?要防止這種情況的發(fā)生,首先教師要行動起來,精心準備教案、更加直觀的教學內容、適當可行的教學方法,找到學生聽不懂的原因,對癥下藥來引導學生學習,給予他們正確的學習方法,相信學生學起C語言來不再是“聽天書”了,而是好學不倦了。
(作者單位:廣東省工商高級技工學校)