摘要:C語言是一種被廣泛應用的計算機語言,它已成為高校計算機教學的重要內容。本文結合教學實踐,探討C語言教學中培養(yǎng)學生編程能力的途徑,探索C語言程序設計的教學方法,解決C語言程序設計存在的問題,旨在進一步提高C語言程序設計教學效果。
關鍵詞:C語言;編程能力;算法;教育
中圖分類號:TP3文獻標識碼:A文章編號:1009-3044(2009)04-0886-02
The Ascertaining about the Teaching Method of the C Language Program Design
SU Hui-xiang
(Department of Information Engineering, Dongbei University of Finance and Economics, Dalian 116025, China)
Abstract: The C language program design is an application language at large. It became an important computer teaching content in the university. The text will discuss the approach of bring up the students with the program design ability, probe into the method of the C program design, solve the problem existed in the C language program design in order to improve the teaching effect.
Key words: C language; the program design ability; the algorithm; education
1 引言
從目前來看,對于計算機專業(yè)學生來說,C語言程序設計是一門專業(yè)基礎課,對后續(xù)專業(yè)課程至關重要;對于非計算機專業(yè)的理工科學生來說,這是一門公共基礎課,是各專業(yè)學生的計算工具,調查表明,非計算機專業(yè)約半數(shù)的研究人員在工作中進行編程或使用應用程序進行工作,目前有相當多的高等學校將程序設計列為理工科非計算機專業(yè)的必修課。這門課程在高校開課率較高,非常具有普遍性,這門課程教學效果的如何直接影響到多個專業(yè)學生在計算機方面的應用能力和水平。然而,國內高校該類課程的教學模式仍停留在傳統(tǒng)的模式上,過于注重語句、語法和一些細節(jié),基本上是以高級語言自身的體系為脈絡展開的,沒有把邏輯與編程解題思路放在主體地位上。如何分析問題和解決問題基本上不講,程序設計的思路不交代,對學生編程的能力,上機解題的能力訓練不夠,更談不上在教學中引導學生研究和探索了。這樣就給后續(xù)課程及研究生階段的課題研究留下了隱患。很多學生在學習這門課時感到枯燥難學,學過之后,又不能用之解決問題。目前,學校計算機教學存在著諸多問題,這些問題是否能夠被很好地解決已成為高校計算機教學中的關鍵。
2 C語言程序設計教學方法
作為教師,在計算機教學中,應不斷地改變教育觀念,以學生為主體,創(chuàng)造性地組織教學內容,設計教學結構,注重挖掘學生的潛力,從而使學生的計算機學習成為一種自覺自愿的活動,進而使計算機教育的改革不斷推向深入,最終使計算機學習超越課堂空間。為達到這一目的,C語言程序設計應采用如下教學方法。
方法之一:強調學習C語言的重要性,激發(fā)學生的學習主動性。
目前,有不少學生誤以為C語言只是DOS特有的東西,一提到C語言就認為C語言只能在DOS下編程,而現(xiàn)在用戶都是在WINDOWS環(huán)境下操作,只要學習VisualFoxPro、VisualBasic和VisualC等可視化語言就行了,對為什么還要學習MS-DOS環(huán)境下編程的C語言還認識不清,故學生在學習時缺少主動性。為增強學生學習的自覺性和積極性,就要使學生認識到,C語言是目前世界上使用最為廣泛的計算機語言之一。它是一種介于匯編語言與高級語言之間的編程語言。從1970年誕生之日起,一直被用來開發(fā)各種各樣的程序。學好C程序設計這門課,既可為今后更好地學習C++、JAVA、VB、ASP等語言打下一個很好的基礎,又能日后的計算機等級考試創(chuàng)造了條件。另外,教師可以在第一節(jié)C語言課中就讓學生看一下在圖形模式下用C語言繪制出來的,類似WINDOWS的窗口,讓學生感受和體會一下圖形模式下C語言的編程,以使他們知道,C語言作為一種計算機編程語言,它是可以在任何一種平臺上編程的,只是接口不同而已,只要找到適合該平臺的編程工具,C語言在WINDOWS下同樣也能充分發(fā)揮其特長,從而激發(fā)學生的學習積極性和主動性。
方法之二:采取粗講和細講的方法,緩解課程內容多和學時相對少的矛盾。
高校計算機教學的特點是:知識更新快,內容范圍廣,應用要求高。由此帶來的問題之一就是課時的相對減少。在實際教學工作中,我體會到,要緩解課程內容多和學時相對少的矛盾,就是要將“粗講”和“細講”結合起來,例如,在《C語言程序設計》課的教學中,前面的幾章主要是常量、變量、數(shù)據(jù)類型、運算符和表達式等一系列規(guī)則性、語言的語法要求很強且很瑣碎的內容,如果一開始就按部就班地一條條給學生講解這些規(guī)則,常常使學生產生“只見樹木,不見森林”、茫然不知所措的感覺。所以應該先通過一個簡單的C程序實例“細講”為什么要制定這些規(guī)則,使學生清楚這些規(guī)則在程序中的用途,然后對于這些規(guī)則“是什么”就可有代表性的“粗講”,甚至有些部分可以不講,讓學生邊用邊學。
方法之三:突出重點,鼓勵和引導探索式學習。
《C語言程序設計》這門課授課的原則是要讓學生先抓重點而后才是細節(jié),重點放在思路、算法、編程構思和程序實現(xiàn)上。語句只是表達工具,講一些最主要的,細枝末節(jié)的東西根本不講,讓學生自學,動手上機練,計算機是實踐性極強的學科,所學的內容和要實踐的東西是一個整體,所以學生可以自己動手來學,書上看不懂的在機器上動手試試,往往就弄懂了,因此很多東西完全是可以自學的。教師應引導學生在解題編程的實踐中探索其中帶規(guī)律性的認識,將感性認識升華到理性高度,只有這樣,學生才能舉一反三。在這一過程中教師起著很大的引導作用,要求學生在課堂上積極思考,盡量當堂學懂,突出上機訓練,在編寫程序的過程中,使學生提高利用計算機這個智力工具來分析問題和解決問題的能力。
方法之四:選擇合適的數(shù)據(jù)結構,設計滿足限定條件的最優(yōu)算法。
在C語言程序設計中,用設計程序解決問題時除了認真分析問題之外,最重要的是選擇合適的數(shù)據(jù)結構,并設計滿足限制條件的算法或選擇最優(yōu)的算法。因此,要求學生要熟練掌握各種常見的數(shù)據(jù)結構,深刻理解某些經典算法的原理和時間、空間復雜度,掌握算法設計的一般步驟。
方法之五:突出講授C語言程序設計的普遍性和特殊性。
程序設計課程可以分不同層次,C語言只是其中的一種,在這門課的講授中,要突出程序設計方法的講解,讓學生分清哪些是C語言所特有的,哪些是通用程序設計語言所共有的,這樣就可避免講了一種程序設計語言,再講一種,既不深入也不透徹。當日后學生根據(jù)專業(yè)的使用情況及學生的具體狀況來選擇某種高級語言作為實際操作語言時,學生就具有了學習程序設計語言的能力、擴展的能力,而不是就學C語言而學C語言。但不同的專業(yè)對該課程的要求可以有所差異,但不論哪種情況,都不能停留在某種高級語言的介紹,而是要突出講述程序設計方法,正確地選擇算法與數(shù)據(jù)結構,進行正規(guī)的程序設計訓練,這樣才可深入、透徹的了解程序設計語言的真諦。
方法之六:養(yǎng)成良好的編程習慣。
讓學生養(yǎng)成良好的編程習慣是十分重要的。我們在與國內一些軟件公司的技術人員座談時了解到,中國軟件之所以上不去的原因之一就有“習慣問題”。印度十個人編程,會編出一樣的東西,而我們十個人編程會有十種風格。因為我們忽略了一個重要問題是“顧客”的感受,因為程序的編寫是給別人看的,而不是只給我們自己看的,這樣才更符合軟件規(guī)范的要求。鑒于此,在課堂上我們非常注意讓學生養(yǎng)成良好的編程習慣,如:強調程序的可讀性、規(guī)范性;變量必須加注釋;程序構思要有說明;學會如何調試程序;盡量使程序優(yōu)化;還要求對程序的運行結果做正確與否的判斷與分析等。
方法之七:強化實踐教學模式。
對程序設計教學模式進行改革,以強調動手實踐、上機編程為切入點;以任務驅動方式,通過實例講授程序設計的基本概念和基本方法。重點放在思路上,即:在C/C++語言的環(huán)境下,針對問題進行分析,構建數(shù)學模型,提出算法并編程實現(xiàn),同時要求養(yǎng)成良好的編程習慣,在此過程中培養(yǎng)學生的思維能力和動手能力,鼓勵學生探索、研究和創(chuàng)新。只有讓學生動手,才會有成就感,進而對本課程產生興趣,學起來效果才比較好。因此,我們的基本思想應該是在理論指導下,讓學生動手、動腦更多地上機實踐。因為學生只有在編寫大量程序之后,才能獲得真知灼見,感到運用自如。注重學生動手能力的培養(yǎng)是這門課和以往課程最大的不同之處。
方法之八:確立師生互動的新型學習模式。
在教學方式上,老師應注重調動學生的積極性,這樣教學效果才會更佳。計算機程序設計課程是實踐性很強的課程,如何將基礎原理、基本開發(fā)技術和應用三個層面有機地結合,選擇優(yōu)秀的應用性案例進行教學是提高計算機程序設計教學的重要環(huán)節(jié)。教師講授知識時要能夠做到理論聯(lián)系實際,努力使該課程生動、有趣、易懂來調動學生的積極性,并吸引學生的注意力。例如,在C語言課程的教學過程中,我們可以采取課堂互動的方法。教學地點仍然選擇在微機實驗室,教師將程序原理通過播放軟件顯示在學生計算機幕上,并將部分關鍵代碼顯示出來,每個學生則在自己的微機上嘗試自己錄入代碼,遇到自己實在解決不了的問題時教師再進行指導。這樣就會在學習過程中最大限度地調動學生的積極性,是教學中的一種新境界和新思路,也是一種正確的指導思想。教師要針對學生經常提出的疑問,重點進行理論的分析和講解,并在微機上做現(xiàn)場演示,特別是演示疑難程序段的詳細功能。這里需要指出的是,教師提供的源代碼必須規(guī)范、整齊、美觀,既語句簡練,又功能強大,而且必須有詳細的注釋語句,這樣極大地方便了學生對源代碼的理解。這種互動式教學模式使得在教學過程中的教師、學生二者之間構成了一種新的修正、完善、深化的無限循環(huán)的教學過程中,從而對教材產生超越字面意義的理解,這樣既對教材進行修正、補充和豐富,也使教師、學生在對彼此理解和反思的基礎上,加深了對教材的理解,提高了閱讀理解程序的能力。在課程中,可以講解或布置具有挑戰(zhàn)性與應用性的有趣任務、問題或習題,并增加獎勵和鼓勵措施,指導學生在實踐中學習和提高。
方法之九:善于發(fā)現(xiàn)學生的潛在素質。
創(chuàng)造力是人類高智能活動的集中體現(xiàn),是人的認識能力和實踐能力結合的產物。學生思維的變通、靈活與獨創(chuàng)性可以產生直覺突破與靈感的火花,學生的懷疑精神、探索能力將得到提高。在課堂學習和社會實踐中,要善于發(fā)現(xiàn)學生創(chuàng)造力的潛在素質,給予肯定,積極引導,使學生認識到自身的優(yōu)勢與特點,并主動完善自己,增強自信心,奠定創(chuàng)造性思維的意識基礎,從而表現(xiàn)出善于吸收而積極創(chuàng)造等等,從而達到本課程的教學目的,完成本課程的教學內容。
參考文獻:
[1] 曾正軍.在教學中對學生C語言編程能力的培養(yǎng)[J].南昌高專學報,2004(1).
[2] 葉幼林.對計算機C語言教學的探討與研究[J].中南民族大學學報(人文社會科學版),2004(24).
[3] 薛小鋒.《C 語言程序設計》教學方法探析[J].福建電腦,2004,1.
[4] 張曉濤.學生參與課程設計的教學策略研究[J].黑龍江高教研究,2005,2.