摘要: C語言涉及的概念和規則較多,使用靈活,是一門難學也難教的課程。本文總結了C語言程序設計教學中應當引起注意的一些問題,提出了改進方法,以促進C語言教學水平的提高。
關鍵詞: C語言 程序設計 教學研究
1.C語言的特點
C語言是計算機軟件開發領域中流行的程序設計語言之一,它使用靈活、功能豐富、表達力強、生成目標程序質量效率高、可移植性好、語法簡潔精妙,很便于描述算法,同時還可以方便直接地控制計算機的底層硬件,使我們能夠深入系統底層進行編程,既可用來編寫系統軟件,也可用來編寫應用軟件,應用范圍很廣。其由于功能強大、效率高、簡潔靈活和可移植性強的特點,在軟件開發領域深受編程人員的喜愛。
C語言由于是理想的結構化語言,同樣適合于程序設計教學,所以成為計算機語言教學的主流語言。通過對C語言的學習,可以使學生掌握基本的編程思想,為學習其他編程語言奠定基礎。C語言掌握的程度,不僅能直接影響到學生對后繼課程的學習,同時對他們以后的學習和發展也起著至關重要的作用。同時,它也是計算機等級考試的主要考試科目。大部分學校采用C語言作為非計算機專業學生計算機等級考試二級語言課程。
2.教學中存在的問題
然而,但從目前的教學情況來看,學生在學習C語言時往往存在著一定的問題,實際掌握的情況并不理想。由于C語言涉及的概念多、規則廣、使用靈活,初學者很難掌握,容易出錯。對于大多數的初學者,C語言靈活的語法結構使他們望而生畏,繁瑣的細節使他們頭暈腦張。同時由于缺乏對計算機結構的全面了解,缺乏對計算機硬件尤其是內存結合很緊密的一些概念,學生基本上很難理解和掌握C語言。
(1)課堂教學中沒有突出語言本身的特色。C語言作為一門高級計算機語言,和其他計算機語言有很多相似甚至相同的地方,對于已經掌握計算機基礎和其他語言的人,就不能再重復這些知識。一些教師對C語言本身的一些特有的概念,尤其指針、鏈表的應用,強調不夠,既浪費了學生課堂上寶貴的時間,又使得學生對新知識理解不深。
(2)沒有充分調動學生學習的積極性。在目前的課堂教學中,還是以教師講授為主,沒有充分發揮學生學習的主動性,啟發式教學沒有得到充分運用。教師不了解學生課前預習的情況,不了解學生的真正需求、難點和問題所在,挫傷了學生學習的積極性和熱情。
(3)對于實踐教學環節重視不夠。C語言是一門實踐性很強的計算機語言,但目前的實踐課教學存在很多弊端。例如:學生不明確上機實驗的目的,實驗的內容不清楚,想干什么就干什么,沒有相應的實驗要求,考核中上機沒有一定的比例。這樣,語言課就成了單一為了考試的一門課,其結果有的學生連最基本的實踐操作也不會做。
3.教學內容及方法的改革
學習程序設計不僅是為了掌握一種開發工具,更重要的是用計算機解決問題。因此在教學過程中,教師應改革傳統的語法學習內容,將算法教學融入到語言教學中,通過實例由淺入深,使學生在解決具體問題的過程中掌握算法的精髓[2]。
在實踐教學過程中,要對《C程序設計語言》教學內容進行調整和整合。首先,對書上的主要內容——I/O格式、控制結構、指針等內容,采用講、練結合的方法讓學生掌握精華部分,對結構體、公用體、文件等內容采用以學生自學為主、答疑為輔的方式讓學生掌握這部分內容。其次,針對學生對語言課程學習的單調性和枯燥特點,采用多種教學方法,并在重點內容的教學上輔以大量的課內習題課和課外練習方式,讓學生牢牢掌握基本內容。再次,讓學生做針對性很強的練習來加強學生的理解。最后,對學生在作業過程中暴露的主要問題集中解決、個別問題單獨解決,以此來彌補個體差異,同時兼顧到大多數學生的利益。
在教學過程中,要堅持“結構化程序設計”原則。所謂結構化程序設計,是組織人的思維,以便在合理的時間里,將計算任務用較容易理解的方式表示出來。結構化程序設計方法的基本思路是,把一個復雜的問題的求解過程分階段進行,每個階段處理的問題都控制在人們容易理解和處理的范圍內。因此,在學生初學程序設計時,這一方法可以養成良好的思維習慣。在教學中,應當向學生強調這樣的幾點:第一,程序質量的優劣首先取決于程序模塊結構的清晰度,要按照一定的標準、一定的原則、一定的風格設計。第二,結構化程序的三種基本結構:順序、分支、循環,它們是構成程序的基本單位。如果在程序中,所有的模塊都只使用這三種單入口、單出口的基本控制結構,那么,不論程序包括多少模塊,也不論一個模塊包含多少個基本控制結構,整個程序仍然能夠顯示清晰的流程,這就實現了程序語言的“結構化”。第三,結構化程序設計的基本方法是自頂向下、逐步細化、模塊化設計、結構化編碼。逐步細化總是和自頂向下結合使用,一般也把逐步細化看作自頂向下的具體表現。
4.加強實驗環節,注重學生動手能力的培養
C程序設計是一門實踐性很強的課程,要把學生在課堂上所學的知識在計算機上用程序設計反映出來,必須加強實驗環節的教學,強化實驗能力和學生的動手能力[3]。為此要做好以下幾點:
(1)編寫符合學生實際情況的實驗講義,注重學生綜合實驗能力的培養。
(2)每一堂實驗課前,檢查學生的實驗預習報告,了解學生的預習情況,并對本次實驗內容提出具體的要求,在實驗課結束前對實驗中存在的問題進行總結。
(3)加強實驗環節注重學生動手能力培養。
在實驗教學過程中注意培養學生的動手能力、獨立科研能力及合作精神,絕不允許“一人動手大家看”這種“放羊式”現象出現。學生在做完實驗后都由教師檢查其結果,打分后方可離開,凡無結果或結果不理想者,必須補做或提供條件讓其重做,促使學生在實驗中勤動手,也使學生們具有成就感。對于部分綜合型的實驗尤其強調分工合作,實行小組長負責制,爭取小組成員一起協調配合完成。
5.改進考核方式
采用書面考試、上機考試、課程設計相結合的方式全面考核。計算機語言課的實踐性決定了它不要求學生死記硬背各種語法規則和語句格式,而是要求學生在解決實際問題的過程中掌握程序設計方法,提高邏輯思維能力。因此,計算機語言課的考核宜采用書面考試與上機考核相結合的方式,輔之以對課程設計情況的考查。書面考試可以側重對基本概念的理解和掌握方面,編程題目的涉及面可以較寬,以考查學生對基礎知識的掌握情況。上機考核可以讓學生在規定時間內對給定的程序設計題目編出程序,并在機上調試通過,題目可以是基礎知識的綜合運用,這樣可以考查學生的綜合應用能力和快速編程能力。課程設計的具體做法可以結合實驗課,將學生分成若干小組,每組布置一個稍大的有實際應用背景的程序設計題目,組內分工各人完成一部分,再由其中一個人負責完成聯合調試任務。通過對課程設計情況的考查,了解學生運用語言解決實際問題的能力和協作編程的能力。
6.結語
以上是本人在C語言教學過程中的幾點體會,現總結出來,謹供各位同行參考,不當之處,敬請指正。教師需要在教學過程中不斷總結,在教學方式、教學方法、課題設計等方面進行探索,為C語言課程建設積累經驗,促進計算機語言教學學科的建設。
參考文獻:
[1]譚浩強.C程序設計[M].北京:清華大學出版社,2001.
[2]張敏霞.程序設計語言課程教學方法改革的探索與實踐.中國高教研究,2004,(2).
[3]掌明,王經卓.C語言教學改革與學生動手能力的培養.淮海工學院學報,2004,(2).