摘要:C語言作為入門級的編程語言,已經(jīng)被越來越多的學(xué)生所重視,然而在當(dāng)前的《C語言程序設(shè)計》課程教學(xué)中,卻存在著很多問題,導(dǎo)致學(xué)生的學(xué)習(xí)興趣不高,基礎(chǔ)知識掌握不牢,缺乏對算法的抽象思維能力等問題,本文結(jié)合教學(xué)體會,提出了一些合理化的改革措施和建議。
關(guān)鍵詞:C語言 程序設(shè)計 算法 興趣
中圖分類號:G64文獻標(biāo)識碼:A文章編號:1672-3791(2012)09(b)-0164-02
《C語言程序設(shè)計》是我校計算機類各專業(yè)開設(shè)的一門專業(yè)基礎(chǔ)課程,也是非計算機專業(yè)理工科開設(shè)的一門公共基礎(chǔ)課程。主要講授C程序設(shè)計語言的基本知識和程序設(shè)計的方法與技術(shù)。通過本課程的學(xué)習(xí),使學(xué)生掌握計算機程序設(shè)計的思想和方法,初步具有在各領(lǐng)域應(yīng)用計算機的能力,并為后續(xù)課程的學(xué)習(xí)創(chuàng)造條件。但從教學(xué)過程來看,學(xué)生們普遍反映C語言難學(xué),概念難理解,學(xué)完后編程不知如何入手等問題,因此,學(xué)習(xí)失去興趣,掛科率一直高居不下,使學(xué)生對該課程產(chǎn)生了畏懼心理。教師教學(xué)效果不理想。在此,結(jié)合教學(xué)實踐,根據(jù)遇到的一些問題提出自己的解決思路。
1 激發(fā)學(xué)生的學(xué)習(xí)興趣
要想學(xué)生學(xué)好C語言,提高學(xué)生的學(xué)習(xí)興趣,首先必須讓學(xué)生對課程有個全局的認(rèn)識。學(xué)生在接觸一門新課程前,最關(guān)心的問題就是這門課程是學(xué)什么、學(xué)完之后可以做什么[1]。因此,在教學(xué)之初,教師應(yīng)首先使學(xué)生明確學(xué)習(xí)這門課程的目的、要求以及目標(biāo),使學(xué)生初步了解該課程在本專業(yè)中處于什么位置,為什么要學(xué)習(xí)該課程,學(xué)好該課程對于個人的專業(yè)發(fā)展有什么作用,教師可以結(jié)合程序設(shè)計在本專業(yè)中應(yīng)用的實例,使學(xué)生明白學(xué)習(xí)該課程的重要性和必要性,從而激發(fā)學(xué)習(xí)興趣。另外,由于C語言的概念比較抽象,在每一章初期概念講解階段,可以多舉一些與生活密切相關(guān)的例子,為概念的引入做準(zhǔn)備,以激發(fā)學(xué)生的學(xué)習(xí)興趣。例如,在介紹數(shù)組這個概念時,由于數(shù)組是一種新的數(shù)據(jù)類型,為加深學(xué)生的理解,可以提出一個問題讓同學(xué)們思考:一個班學(xué)生的學(xué)習(xí)成績應(yīng)該如何存儲呢?并提示學(xué)生這些數(shù)據(jù)有何特點,從而引出在C語言中如何存儲,從而引出數(shù)組這個概念。這種方法能夠發(fā)展學(xué)生的探索能力,避免了直接的理論說教,不僅能激發(fā)學(xué)生的學(xué)習(xí)興趣,還能加深學(xué)生對新知識點的理解。此外,在教學(xué)過程中,布置一些有趣味性的編程題目,積極鼓勵有能力的同學(xué)參加軟件設(shè)計大賽,使學(xué)生通過獨立或團體完成一個軟件設(shè)計,增強他們的學(xué)習(xí)自信,調(diào)動學(xué)習(xí)熱情,提高學(xué)習(xí)興趣。
2 注重知識的歸納總結(jié)
和自然語言一樣,許多字詞可能是相近的、相反的或者是相同的,字詞間存在著內(nèi)在的聯(lián)系[2]。在C語言中,涉及到此類的知識點時,可以采用歸納總結(jié)的方法進行教學(xué)。例如,循環(huán)結(jié)構(gòu)中的while語句,do-while語句和for語句。在學(xué)生充分掌握三種語句的基礎(chǔ)上,教師對這三種循環(huán)語句進行歸納總結(jié),歸納三種語句的異同點,并針對同一程序詳細介紹如何用這三種語句分別實現(xiàn)。便于學(xué)生對循環(huán)結(jié)構(gòu)的靈活掌握。另外,C語言中學(xué)到的知識點都是零星、片面的,有些甚至是容易混淆的,比如說運算符的優(yōu)先級和結(jié)合性,教師在課堂中對此類知識點進行歸納總結(jié),方便學(xué)生的比較與記憶。并且在新的一章開始學(xué)習(xí)之前,對上一章的內(nèi)容進行重點、難點以及小結(jié)的歸納總結(jié),便于學(xué)生溫故而知新,避免學(xué)生邊學(xué)邊忘,前后知識不銜接的問題。
3 注重算法思維的培養(yǎng)
算法是程序設(shè)計的靈魂,在程序設(shè)計中要設(shè)計一個好的程序首先要對程序的算法有較詳細的了解,其次才是采用編程語言對算法的實現(xiàn)。但很多學(xué)生學(xué)完C語言課程后不會編程,甚至不知道從何下手。造成這一現(xiàn)象的主要原因是由于程序設(shè)計的思想與學(xué)生傳統(tǒng)的思維方式不一致,學(xué)生缺乏對算法的抽象思維能力,因此不會分析問題,無法寫出算法,這就需要教師在介紹程序范例時注重學(xué)生算法思維能力的培養(yǎng)。教師首先提出問題,可以選擇一些與實際生活貼近的小例子,如雞兔同籠問題,引發(fā)學(xué)生進行思考,然后詳細分析問題,啟發(fā)學(xué)生用現(xiàn)有的思維方式去思考如何解決,得到解決問題方法后再啟發(fā)學(xué)生將其轉(zhuǎn)化為算法,并可以改變現(xiàn)有條件,使學(xué)生在對新問題的思考過程中,培養(yǎng)學(xué)生對算法舉一反三的能力,最后教師對算法進行總結(jié)歸納,加深學(xué)生對這類問題的理解。將具體問題和學(xué)生的現(xiàn)有知識聯(lián)系起來,有利于克服學(xué)生的畏難情緒,也有利于使學(xué)生快速掌握算法。
4 認(rèn)真上好實驗課
《C語言程序設(shè)計》是一門實踐性很強的課程,“邊學(xué)邊練”是掌握這門課程的最好方法。因此,我們根據(jù)理論教學(xué)進度安排了實驗課,并制定了專門的實驗指導(dǎo)書,實驗指導(dǎo)書明確了上機實驗?zāi)康暮鸵?,制定了實驗?nèi)容和詳細的操作步驟,并為程度較高的學(xué)生設(shè)置了選做題目。在實驗過程中,注重以學(xué)生為主體,教師為主導(dǎo),安排的實驗內(nèi)容循序漸進,采用模仿-改正-編程的實踐訓(xùn)練思路來培養(yǎng)學(xué)生[3],使學(xué)生在運行程序和調(diào)試程序中鍛煉分析問題和解決問題的能力,對于實驗過程中學(xué)生提出的疑難問題,教師首先加以引導(dǎo)或者提示,啟發(fā)他們獨立思考解決問題,經(jīng)過自己思考解決問題往往印象比較深,也能激發(fā)學(xué)生的學(xué)習(xí)熱情,對于實驗中存在問題比較多的題目,教師及時進行總結(jié),并在課堂中統(tǒng)一進行指導(dǎo),不僅節(jié)約時間,滿足同學(xué)們的需要,而且對知識的掌握起到鞏固加強的目的。
5 提高教師素質(zhì)
由于《C語言程序設(shè)計》課程教學(xué)任務(wù)較重,所以計算機專業(yè)老師難以承擔(dān)所有的課程教學(xué)任務(wù),造成許多任課老師都是各個院系的非專業(yè)老師,缺乏系統(tǒng)的程序設(shè)計思想。針對這一情況,學(xué)校每學(xué)年都多次組織計算機學(xué)院多年從事課程教學(xué)并且經(jīng)驗豐富的專業(yè)老師對任課教師進行培訓(xùn),針對課程內(nèi)容進行串講,在串講過程中,任課老師可以對在教學(xué)過程中的疑難問題以及教材中出現(xiàn)的問題進行討論。促進教師之間的教學(xué)交流,并創(chuàng)建了QQ群以及網(wǎng)絡(luò)平臺,便于老師們之間的信息共享以及交流,努力提高教師素質(zhì)。另外,學(xué)校每學(xué)年組織《C語言程序設(shè)計》教學(xué)競賽,教師教學(xué)的積極性顯著提高,使教師不斷擴充自己的知識水平和能力,不斷學(xué)習(xí)新的教學(xué)方法和手段,從而提高課堂教學(xué)效果。
6 改革考核方式
為了扎實推進學(xué)校教學(xué)改革,切實提高《C語言程序設(shè)計》課程教學(xué)質(zhì)量,對《C語言程序設(shè)計》課程考試環(huán)節(jié)進行了改革,在傳統(tǒng)的考核方式理論成績(70%)和平時成績(30%)基礎(chǔ)上,新增了上機考試環(huán)節(jié),課程成績由平時成績(15%)、理論成績(70%)、機試成績(15%)等3部分組成。理論考試重點考核學(xué)生的C語言基礎(chǔ)知識、編程思想和算法分析能力,上機考試重點考核學(xué)生的動手編程操作能力和程序調(diào)試能力。機試的考試系統(tǒng)由學(xué)校自主開發(fā),學(xué)生考試時由系統(tǒng)自動從100套試題庫中隨機抽題進行考試,做到了嚴(yán)格的公平公正。實踐后表明,這種考核方式能夠更加客觀地反映學(xué)生的知識掌握程度,同時能夠促進學(xué)生主動學(xué)習(xí),提高學(xué)生的動手操作能力。
實踐證明,C語言的教學(xué)改進可以提高學(xué)生的學(xué)習(xí)興趣,有利于學(xué)生對相關(guān)概念的理解以及編程能力的培養(yǎng),使學(xué)生逐步掌握分析問題、解決問題的思維能力,同時也為非計算機類專業(yè)學(xué)生將程序設(shè)計思想靈活運用到自己的專業(yè)領(lǐng)域打下了基礎(chǔ)。
參考文獻
[1]胡丹.非計算機專業(yè)《C語言程序設(shè)計》教學(xué)探討[J].電腦知識與技術(shù),2011,7(34):8983-8985.
[2]鄧靜.C語言程序設(shè)計教學(xué)方法的探討[J].教育教學(xué)論壇,2010(9):88.
[3]戴春燕,徐智文.《C++語言程序設(shè)計》課程教學(xué)改革[J].包鋼科技,2011,37(3):92-9