文/李建軍 楊保海
C 語言程序設(shè)計是目前理工科專業(yè)普遍開設(shè)的一門實踐性和操作性很強的專業(yè)基礎(chǔ)課程,是學生掌握現(xiàn)代信息技術(shù)的基礎(chǔ),學好C語言程序設(shè)計對培養(yǎng)學生的邏輯思維、創(chuàng)新思維和設(shè)計能力具有很大的幫助作用。在教學過程中如何調(diào)動學生學習的積極性,且達到比較理想的教學效果是擺在廣大任課教師面前的主要問題。本研究通過分析學生學習知識過程的主要問題和一般規(guī)律,探討C 語言教學改革方法。
傳統(tǒng)的教學以教師為主,教師在課堂上老師講學生聽的方式進行授課,學生聆聽講授內(nèi)容的方式學習。學生機械式地追隨教師的腳步,教師雖在課堂上重復(fù)地講了各知識點和重點、難點,但由于對程序本身比較生疏,因此學生所能理解和消化的十分有限。長期在這樣的教學模式下,學生逐漸失去對學習知識的興趣。
C 語言作為一門計算機編程的高級語言,其在語法規(guī)則上跟人類的自然語言存在很多相似的地方,但它又有很多自身獨特的地方,例如:C 語言是現(xiàn)有程序設(shè)計語言中規(guī)模小、C語言的語法限制不太嚴格,程序設(shè)計的自由度比較大,程序的書寫格式靈活、C 語言具有豐富的數(shù)據(jù)類型、C 語言用函數(shù)作為程序模塊,以實現(xiàn)程序的模塊化等等。既然C 語言程序跟人類的自然語言類似,那么C 語言程序設(shè)計的學習過程和方法當然可以借鑒人們自然語言的學習過程和方法。
從第一節(jié)可開始,教師每節(jié)課用大量的時間給學生自己編寫教材上,經(jīng)過教師整理歸類的代碼。在這個過程中教師只要對學生講解程序代碼的功能,對程序中每條代碼的作用不必做太多的解釋,即通過大量的代碼編寫讓學生對C 語言程序設(shè)計有直觀感性的認識。這個過程類似于人們在進入學校系統(tǒng)學習語言能力之前的階段,即在不了解任何語法的情況也可以進行思想的表達和交流。感性認識過程大約應(yīng)該持續(xù)15 ~20 個課時,通過20 個課時的鍛煉,學生可以在不了解語法結(jié)構(gòu)的前提下,通過自己的觀察分析寫出功能類似的簡單程序。例如:
學生通過多個類似的程序可以了解兩方面的內(nèi)容:
(1)C 語言程序的固定格式,即每個C語言程序都要包含頭文件、main 函數(shù)、返回值,這是一個完整的C 語言程序所不可或缺,一旦某一項缺失或錯誤便會導(dǎo)致程序無法運行;
(2)當需要在計算機屏幕上輸出一行信息時,通過改變printf 函數(shù)中雙引號內(nèi)部的內(nèi)容即可實現(xiàn)。但學生本身并不了解printf 函數(shù)的使用規(guī)則,這時學生對printf 函數(shù)的使用規(guī)則和功能作用便會產(chǎn)生強烈好奇心,當教師在后續(xù)的課程中講解到printf 函數(shù)的使用規(guī)則是學生必然會集中精神去聽老師的講解。
通過一段時間的代碼輸入練習,學生對代碼已經(jīng)有了一定的感性認識,并且代碼書寫速度和格式都有了較大的進步,這個時候教師就可以系統(tǒng)的講解C 語言的語法規(guī)則和函數(shù)的功能(使用規(guī)則)。在講解的過程中由于學生對相應(yīng)的代碼和函數(shù)已經(jīng)非常熟悉,不會出現(xiàn)學生對代碼生疏的情況,學生能在很短的時間內(nèi)將教師講解的內(nèi)容與相應(yīng)的程序代碼進行必要的結(jié)合和對比,引起學生自發(fā)的思考,因此在教師講解完成之后學生大多會有一種豁然開朗的感覺。舉例如圖1所示。
圖1:printf 函數(shù)結(jié)構(gòu)剖析
圖2:算法流程圖
通過圖1系統(tǒng)的講解printf 函數(shù)和學生現(xiàn)場的操作練習,printf 函數(shù)的掌握應(yīng)該變得比較容易。
完成前兩個階段的學習后,再將教材中比較靠前的算法的流程圖表示部分進行系統(tǒng)講解,至此教師便可以利用程序語言開發(fā)的標準流程,通過問題引入來完成正常教學活動,即問題分析、算法流程圖、編寫代碼、運行驗證。例如:
問題提出:編程實現(xiàn),根據(jù)任一年的公元年號,判斷該年是否是閏年。
問題分析:解決方案,同時也給出了算法的流程圖,如圖2所示。
程序代碼:
C 語言是一門實踐性很強的課程,僅靠課堂上有限的時間是遠遠不夠的,另外對于相對較大的實踐項目,僅憑實驗上機時間是根本無法完成的。因此將上機實驗課程只進行算法講解和程序問題排除,將編寫代碼的時間主要安排在課后的開放性實驗課程中,在開放實驗時間內(nèi),學生編寫代碼并通過網(wǎng)絡(luò)資源解決一些常見的錯誤,將自己無法解決的問題進行整理歸納,在同學之間進行討論交流后,在上課時間由教師對學生存在的共性問題和疑難問題進行集中的講解,以提高實驗實踐的效率。
實踐證明,通過對廣西民族師范學院電子信息工程專業(yè)四個班級的試驗,明顯的發(fā)現(xiàn)其中實施教學改革的兩個班在改革初期要比沒有進行教學改革的班級在知識掌握方面存在差距,但隨著教學改革的深入,實施教學改革的班級會逐漸縮小差距并最終實現(xiàn)超越。而且隨著教學改革的深入教師也明顯感到熟悉程序代碼的學生對C 語言語法規(guī)則的理解也很容易,教師上課時學生對教師提問的反饋也更加積極。