C語言作為時下最流行的程序設計語言之一,是計算機專業的必修課。它是計算機應用人員應掌握的一種程序設計工具。然而,在中職院校,大部分學生由于英語、數學基礎較差,導致其在C語言學習中會遇到很多障礙,從而喪失學習熱情。在這種情況下,如果老師還是按照傳統的教學方法進行教學,教學效果可想而知。作為從事C語言教學多年的教師,筆者認為,針對當前中職學生的特點,要想在C語言的教學上取得比較滿意的教學效果,可以在以下幾個方面進行改革。
一、教學內容的改革
1.重視“靈魂”算法
有人說,C可能被淘汰,VC也可能被淘汰。實際上,java、delphi都可能被淘汰。但是,優秀的數據結構、優秀的算法,是不會被淘汰的。C語言的實踐過程,實際上就是算法的語言實現過程,是計算機的“靈魂”。中職學生初步進行語言的學習,絕不能使他們錯誤地認為語言只是一些規則和符號,而要使他們知道只有算法才是真正的智慧之源。
鑒于中職學生的基礎較為薄弱,這些算法的講解也不宜太難,否則會挫敗學生的積極性。所以,可以由淺入深,因材施教地進行教授。例如冒泡排序,其基本思想是:將相鄰兩個數依次比較,將大數調在前頭。也就是說,第一個數和第二個數比較,大數放前,小數放后,第二個和第三個進行比較,大數放前、小數放后,依此類推。講解時,教師不僅可以給出冒泡排序的一般方法,還可以進一步采用其他的排序方法進行比較,用一些簡單的例子比較它們排序所需要的計算次數,孰優孰劣不言而喻,也能讓學生充分認識到算法的重要性。
2.巧妙化解難度
中職學生群體中,相當一部分學生基礎薄弱,在數學方面,反映得更為明顯。這就要求教師在教學內容的選擇上,要結合目前中職學生的知識水平,依據中職教學的培養目標,適當降低理論知識的難度和深度。對于較深奧的概念,盡量采用生動的、學生熟悉的案例進行引導。例如指針的概念,教材對“間接存取”的敘述比較生硬,學生難以理解,可以借用比喻講解:將A房間的鑰匙放在B房間里,若要取A房間里的物品,就需要先打開B房間,取出A鑰匙,再打開A房間,取出A房間的物品,這就是“間接存取”。這樣的講解方式,可以使學生很快理解并加深對指針概念的認識。
二、教學方法的改革
1.創設情境,引人入勝
教師在講解每一個問題的時候,應當教會學生解決問題的方法。如果只是把課本的內容原封不動地講給學生聽,學生可能會覺得枯燥無味,很快就失去繼續聽下去的耐心。這就要求教師要針對中職學生的特點,創設能引導學生主動參與的教學環境,激發學生的學習積極性。例如在講授對n個數進行從大到小的排序算法時,筆者是這樣處理的:讓6名學生主動到講臺前隨機排列站好,個子最高的學生代表最大數,個子最矮的學生代表最小數。第一個學生先與相鄰的同學比較,如果相鄰的同學個子高,就交換位置,否則不交換。然后,用同樣的方法再分別與其他4個同學比較,最后發現第一個學生的位置,站的是個子最高的學生;再讓第二個學生分別與后面的4個同學比較。依此類推,結果發現,6個學生按個子從高到低順序排列。整個過程中,筆者只需要找出第一個最高的學生,其他都由學生負責找。這樣一來,學生們個個熱情高漲,課堂氣氛特別活躍,在人人參與的輕松環境中,問題得到了圓滿解決。方法掌握了,對本排序算法的理解,就不是問題了。所以,在教學方法上,教師要創新,要找出能使中職學生易于接受的方法。這樣,教學才能取得令人滿意的效果。
2.激發學習積極性
筆者針對C語言的特點,激發學生主動思考,課前給學生布置幾個專題,讓學生利用課余時間去思考、收集資料,并在課堂上組織學生發言和討論。這種教學法不僅可以讓學生獲得許多課外知識,也促進了教學內容的改革,而且也有利于充分挖掘學生的學習潛力。例如,求1000以內的所有“水仙花”數。首先,課前提示學生可用多種方法進行解題,如循環控制、數組和函數,讓學生嘗試編寫并總結出最佳的程序結構,提高編程能力。其次,在課上,對學生的各種方法進行講解、點評。這樣,有利于學生加深對所學知識的理解,讓學生真正體會到C語言的靈活性,激發學生的學習興趣和求知欲。
三、實驗教學的改革
C語言是一門實踐性很強的課程,其主要任務就是培養學生具有一定的閱讀程序、設計程序的能力,以及分析問題、解決問題和邏輯思維的能力。筆者對實驗內容上進行了認真探討,一般一次實驗給出2~3個實驗題目,分為必做與選做。這樣的好處是一方面保留相對簡單的基礎性實驗,使學生能夠較順利地編寫出程序,培養學生的自信心,使其學習熱情得到進一步提高;另一方面,增加實用性強、難度略大的實驗題目,進一步提高學生的編程能力,也可以滿足較高層次學生的需要。下面筆者簡單介紹一下實驗的基本步驟。
1.上機前的準備
讓學生寫出實驗預習報告,內容包括對實驗題目的理解和分析,選擇適當算法,畫出流程圖并編寫程序;準備幾組測試程序的數據和預期的正確結果,以便發現程序中可能存在的錯誤。
2.上機調試
首先,調用C語言集成開發環境,輸入事先準備好的源程序,然后進行調試。在調試過程中,要充分利用C語言集成開發環境提供的調試手段和工具,如單步跟蹤、設置斷點、監視變量值的變化等。整個過程應由學生自己獨立完成,也可分組討論,使學生通過自己的實踐得到更豐富的經驗。
3.整理實驗報告
實驗結束后,要求學生整理實驗結果,并認真分析和總結,寫出實驗報告。具體內容包括實驗內容、算法說明、程序清單。
四、考核方式的改革
考核是教學工作的重要環節,是評價教學效果的主要方法。衡量這門課的學習效果,不是看學生“知不知道”,而是“會不會干”。最初,C語言課都采用筆試考核,讓學生做一些填空題、選擇題,給出一些不完整的程序讓學生填空,導致學生死記硬背以應付考試,寫完后語法有沒有錯、語句用得對不對卻不知曉。所以,筆試并不能真正反映學生的學習效果。
C語言課程的教學目的,就是培養學生熟練運用計算機語言編制和調試程序,從而解決實際問題的能力。學過程序設計的人都知道,編寫一個程序有時很容易,但其正確運行往往不是一件容易的事情。C語言的考核,應采用上機考核形式,可以在期末考試前一個月左右向學生公開20~30道綜合性較強的題目。這些題目涵蓋所有的考核知識點,讓學生提前進行編程練習,并且告知學生,期末上機考試的題目就從中選擇,只是關鍵數據會有變化。上機考試時,每人的試題都是老師從之前公布的題庫中隨機抽取5道,然后讓學生編寫程序并調試運行,并根據運行結果記錄評分。實踐證明,這種考核形式的實施,能夠大大促進學生上機調試程序的積極性,增強學生編寫程序、調試程序的能力。
中職C語言教學,相對于其他計算機專業課程來說較為抽象,所以教師必須花費足夠的耐心,采用合理的授課方式,講授合適的內容,才能使中職學生受益。這是中職教師必須努力去做的工作。在這一過程中,應該以能力的掌握為主,以開拓思維為主要目的,針對學生自身的特點,設計出適合中職學生的教學方案。只有這樣,教學才能取得良好的效果。
(作者單位:浙江省嘉興市科技工程學校、浙江省嘉興市高級技工學校)