摘要:本文就C語言程序設(shè)計(jì)的實(shí)驗(yàn)教學(xué),針對(duì)非計(jì)算機(jī)專業(yè)學(xué)生的特點(diǎn),通過多個(gè)實(shí)驗(yàn)教學(xué)實(shí)踐,提出激發(fā)學(xué)生學(xué)習(xí)興趣、與理論授課老師保持良好溝通、合理安排實(shí)驗(yàn)教學(xué)內(nèi)容的教學(xué)思路,并就具體實(shí)現(xiàn)方法進(jìn)行探討。
關(guān)鍵詞:C語言 程序設(shè)計(jì) 實(shí)驗(yàn)教學(xué) 教學(xué)改革
文章編號(hào):1672-5913(2011)18-0081-03 中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A
基金項(xiàng)目:中南林業(yè)科技大學(xué)新進(jìn)高層次人才項(xiàng)目(104-0091);湖南省高等學(xué)??茖W(xué)研究項(xiàng)目 (10C1312)。
C語言程序設(shè)計(jì)是程序設(shè)計(jì)類課程的基礎(chǔ),既具有高級(jí)程序設(shè)計(jì)語言的功能,又具有低級(jí)語言的許多特點(diǎn),是計(jì)算機(jī)專業(yè)和其他相關(guān)專業(yè)的核心課程,有廣泛的應(yīng)用領(lǐng)域。隨著信息產(chǎn)業(yè)的飛速發(fā)展,時(shí)代賦予大學(xué)生素質(zhì)教育更多的含義和要求,其中計(jì)算機(jī)水平和能力的考核不再局限于計(jì)算機(jī)專業(yè)人才,更多的非計(jì)算機(jī)專業(yè)學(xué)生也同樣需要具備一定的計(jì)算機(jī)知識(shí)和編程能力。因此,C語言程序設(shè)計(jì)不僅僅是計(jì)算機(jī)專業(yè)的基礎(chǔ)課程,同時(shí)也成為許多非計(jì)算機(jī)專業(yè)的基礎(chǔ)課程。近年來,我校在理工類專業(yè)普遍開設(shè)該課程,對(duì)于提高學(xué)生的綜合素質(zhì)起到重要作用。
實(shí)踐證明,保證計(jì)算機(jī)課程教學(xué)質(zhì)量的關(guān)鍵在于課堂教學(xué)和實(shí)驗(yàn)教學(xué)兩手都要抓,兩手都要牢[1]。實(shí)驗(yàn)課程是培養(yǎng)學(xué)生鉆研與創(chuàng)新精神的課堂教學(xué),為實(shí)驗(yàn)教學(xué)提供必須的理論基礎(chǔ),實(shí)驗(yàn)教學(xué)是理論知識(shí)轉(zhuǎn)換為實(shí)際應(yīng)用的重要途徑。在學(xué)習(xí)C語言程序設(shè)計(jì)課程中,非計(jì)算機(jī)專業(yè)的學(xué)生表現(xiàn)出與計(jì)算機(jī)專業(yè)學(xué)生不同的方面,其主要表現(xiàn)在學(xué)習(xí)C語言的積極性和興趣不高。因此,我們針對(duì)“非計(jì)算機(jī)專業(yè)學(xué)生”這個(gè)群體的特點(diǎn),從提高學(xué)生的學(xué)習(xí)的積極性和興趣方面出發(fā),以培養(yǎng)學(xué)生的C語言程序設(shè)計(jì)能力為目標(biāo),對(duì)C語言程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)方法進(jìn)行研究和探索。
1 非計(jì)算機(jī)專業(yè)的C語言程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)現(xiàn)狀
在C語言實(shí)驗(yàn)教學(xué)中,我校配有C語言實(shí)驗(yàn)課程教材,且實(shí)驗(yàn)教學(xué)晚于理論教學(xué)一周時(shí)間啟動(dòng)。同時(shí),實(shí)驗(yàn)教材基本與理論教材內(nèi)容配套,由多個(gè)基于不同關(guān)鍵知識(shí)點(diǎn)構(gòu)成的實(shí)驗(yàn),每一個(gè)實(shí)驗(yàn)都是針對(duì)某個(gè)或某些相關(guān)知識(shí)點(diǎn)設(shè)計(jì)的,由多種類型不同的程序設(shè)計(jì)題構(gòu)成,循序漸進(jìn),由淺入深,這非常有利于學(xué)生掌握C語言編程技巧。但是,在實(shí)際的教學(xué)過程中,問題仍然存在。
1.1 重視度不夠
C語言程序設(shè)計(jì)作為非計(jì)算機(jī)專業(yè)學(xué)生的一門課程,受重視度遠(yuǎn)不及計(jì)算機(jī)專業(yè)的學(xué)生。主要原因在于非計(jì)算機(jī)專業(yè)學(xué)生認(rèn)為C語言課程與他們專業(yè)的相關(guān)性不大,因此,非計(jì)算機(jī)專業(yè)的學(xué)生學(xué)習(xí)C語言的積極性不高。
1.2 實(shí)驗(yàn)教學(xué)與理論教學(xué)脫節(jié)
理論和實(shí)際教學(xué)安排,都說明實(shí)驗(yàn)教學(xué)應(yīng)該緊接理論教學(xué)。但是,由于每個(gè)老師的教學(xué)進(jìn)度有區(qū)別,因此,實(shí)驗(yàn)教學(xué)老師分配實(shí)驗(yàn)任務(wù)的時(shí)候,學(xué)生反映該實(shí)驗(yàn)內(nèi)容的理論知識(shí)點(diǎn)還沒有講授,或者實(shí)驗(yàn)教學(xué)老師分配的實(shí)驗(yàn)任務(wù)中需掌握的知識(shí)點(diǎn),理論教學(xué)老師早在幾周前已經(jīng)講授完畢。這兩種情況都不利于學(xué)生掌握C語言程序設(shè)計(jì)。前者的情況會(huì)使學(xué)生在實(shí)驗(yàn)課程中完全不理解實(shí)驗(yàn)內(nèi)容,不明白程序語句的含義,對(duì)于獨(dú)立的編程題更不知道如何動(dòng)手;后者則由于知識(shí)點(diǎn)講授的時(shí)間與實(shí)驗(yàn)課程的時(shí)間間隔比較長(zhǎng),學(xué)生對(duì)需要掌握的知識(shí)點(diǎn)印象模糊,甚至完全忘記。
1.3 過多依賴實(shí)驗(yàn)教材
C語言實(shí)驗(yàn)教材中包含很多個(gè)獨(dú)立的實(shí)驗(yàn)章節(jié),每一節(jié)實(shí)驗(yàn)內(nèi)容都包含一個(gè)主題,由若干個(gè)不同類型的程序題構(gòu)成,大部分程序題都有較為詳細(xì)的程序代碼。大部分實(shí)驗(yàn)教學(xué)老師在每次實(shí)驗(yàn)課時(shí),對(duì)所有同學(xué)一視同仁,分配相同的實(shí)驗(yàn)內(nèi)容,并從中選擇一些程序題或者讓學(xué)生按題號(hào)依次編寫程序,學(xué)生只需要根據(jù)實(shí)驗(yàn)教材提供的編碼依次輸入C語言代碼即可運(yùn)行相應(yīng)的程序。雖然實(shí)驗(yàn)教材在一定程度上幫助實(shí)驗(yàn)教學(xué)老師分配教學(xué)任務(wù)和輔助學(xué)生學(xué)習(xí)C語言,但是,它也抹殺了學(xué)生的思維創(chuàng)造力,不利于學(xué)生探索精神的培養(yǎng)。
2 教學(xué)模式的改進(jìn)
針對(duì)非計(jì)算機(jī)專業(yè)C語言程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)存在的問題,我們進(jìn)行改革嘗試,具體內(nèi)容有以下幾個(gè)方面。
2.1 激發(fā)學(xué)習(xí)C語言程序設(shè)計(jì)的積極性
教學(xué)過程中,老師起重要的“督導(dǎo)”作用。一方面,教師要讓非計(jì)算機(jī)專業(yè)的學(xué)生明白,在一個(gè)信息爆炸的時(shí)代,掌握一門編程語言對(duì)于理工科專業(yè)的學(xué)生而言是非常有必要的。編程語言是人類智慧的結(jié)晶,通過對(duì)編程語言的學(xué)習(xí)和應(yīng)用,可以建立良好的邏輯思維和培養(yǎng)好的計(jì)算能力。C語言是一門基礎(chǔ)性的編程語言,是非計(jì)算機(jī)專業(yè)學(xué)生掌握編程語言的奠基石。另一方面,我們要幫助學(xué)生樹立編程的信心。學(xué)習(xí)C語言就是將現(xiàn)實(shí)社會(huì)的事情通過計(jì)算機(jī)來運(yùn)行處理,只要學(xué)生掌握了C語言的語法規(guī)則就一定可以編寫出程序,通過編程解決本專業(yè)領(lǐng)域的問題,結(jié)合自己的專業(yè)特點(diǎn),編寫具有自己專業(yè)背景的軟件[2]。例如,最初安排實(shí)驗(yàn)課時(shí),實(shí)驗(yàn)老師結(jié)合多媒體教學(xué)設(shè)備,采用口頭描述和實(shí)際操作相結(jié)合的方式,讓學(xué)生熟悉C語言開發(fā)環(huán)境,并結(jié)合簡(jiǎn)單的C語言程序,說明程序語句的輸入、保存、調(diào)試、運(yùn)行等步驟。讓學(xué)生對(duì)于C語言開發(fā)環(huán)境形成初步的認(rèn)識(shí)并掌握基本的操作方法;布置一個(gè)精簡(jiǎn)的C語言編程任務(wù)(輸入程序代碼),逐個(gè)檢查學(xué)生們的實(shí)際操作結(jié)果,以此督促學(xué)生熟悉C語言開發(fā)環(huán)境,檢驗(yàn)學(xué)習(xí)效果,為后續(xù)實(shí)驗(yàn)課程打下基礎(chǔ)。在歷年的實(shí)驗(yàn)教學(xué)過程中,我們發(fā)現(xiàn)很多非專業(yè)的學(xué)生對(duì)C語言學(xué)習(xí)興趣不大的主要原因在于,他們?cè)谧畛醯膶W(xué)習(xí)過程中對(duì)編程工具不夠熟悉,理論知識(shí)沒有通過實(shí)驗(yàn)課及時(shí)地消化理解運(yùn)用。通過實(shí)驗(yàn)老師的講授與檢查,我們應(yīng)確保每一位同學(xué)掌握C語言的開發(fā)、編譯、運(yùn)行流程,奠定非專業(yè)學(xué)生學(xué)習(xí)C語言的基礎(chǔ)。
2.2 實(shí)驗(yàn)老師與理論老師建立良好的溝通
我校C語言程序設(shè)計(jì)課程由理論教學(xué)和實(shí)驗(yàn)教學(xué)構(gòu)成,同一個(gè)班級(jí)的理論教學(xué)老師和實(shí)驗(yàn)教學(xué)老師并不相同。在C語言實(shí)驗(yàn)教學(xué)過程中,為了恰當(dāng)分配實(shí)驗(yàn)任務(wù),實(shí)驗(yàn)老師和理論老師保持良好的溝通是非常有必要的。就同一個(gè)班級(jí)而言,實(shí)驗(yàn)指導(dǎo)老師可以經(jīng)常和理論授課老師交流,將實(shí)驗(yàn)教學(xué)過程中發(fā)現(xiàn)的問題反饋給理論授課老師,同時(shí),也可以詢問理論授課老師的教學(xué)進(jìn)度、關(guān)鍵知識(shí)點(diǎn)的掌握情況,等等。通過良好的溝通,實(shí)驗(yàn)指導(dǎo)老師可以及時(shí)了解學(xué)生當(dāng)前的理論教學(xué)進(jìn)度和學(xué)習(xí)情況,當(dāng)理論教學(xué)進(jìn)度與實(shí)驗(yàn)教學(xué)進(jìn)度不一致時(shí),實(shí)驗(yàn)教師可以對(duì)實(shí)驗(yàn)教學(xué)任務(wù)做出適當(dāng)?shù)恼{(diào)整,為學(xué)生提供與最近學(xué)習(xí)的理論知識(shí)點(diǎn)相對(duì)應(yīng)的實(shí)驗(yàn)內(nèi)容,讓學(xué)生及時(shí)消化和吸收新的知識(shí)點(diǎn)和關(guān)鍵內(nèi)容;如果學(xué)生對(duì)某些關(guān)鍵知識(shí)點(diǎn)普遍掌握不好,實(shí)驗(yàn)指導(dǎo)老師可以精選實(shí)驗(yàn)內(nèi)容,加強(qiáng)該知識(shí)點(diǎn)的實(shí)踐練習(xí)。例如,實(shí)驗(yàn)課程中老師發(fā)現(xiàn)同學(xué)們對(duì)于循環(huán)結(jié)構(gòu)理解不夠深入,運(yùn)用也不夠理想,出現(xiàn)“死循環(huán)”或者循環(huán)變量設(shè)置不正確。針對(duì)該情形,實(shí)驗(yàn)老師可以重點(diǎn)分析“while”、“for”和“do-whilel”循環(huán)結(jié)構(gòu),給出具體的程序?qū)嵗?,分析這三種循環(huán)結(jié)構(gòu)的區(qū)別,循環(huán)次數(shù)和變量的變化,加強(qiáng)實(shí)踐練習(xí)。另一方面,教師總結(jié)學(xué)生實(shí)驗(yàn)課程中出現(xiàn)的問題,形成實(shí)驗(yàn)文檔和記錄,反饋給理論授課老師,相互交流后,理論授課老師根據(jù)具體問題對(duì)授課內(nèi)容進(jìn)行調(diào)整。對(duì)此,學(xué)生反映很好,學(xué)習(xí)效果得到改善。
2.3 精選實(shí)驗(yàn)內(nèi)容,合理分配實(shí)驗(yàn)任務(wù)
C語言程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)老師應(yīng)熟悉C語言程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)內(nèi)容和教學(xué)大綱,并根據(jù)每一次實(shí)驗(yàn)課時(shí)需要掌握的知識(shí)點(diǎn),有側(cè)重、有計(jì)劃,由淺入深地準(zhǔn)備實(shí)驗(yàn)內(nèi)容。非計(jì)算機(jī)專業(yè)學(xué)生每個(gè)人學(xué)習(xí)C語言的能力和實(shí)際應(yīng)用C語言能力不同。例如:有的學(xué)生接觸計(jì)算機(jī)的時(shí)間較早,或者已經(jīng)有一定編程基礎(chǔ);有的學(xué)生則是剛剛接觸編程語言;有的輕理論重實(shí)踐;有的重理論輕實(shí)踐。實(shí)驗(yàn)教學(xué)老師應(yīng)全面細(xì)致地觀察學(xué)生,善于發(fā)現(xiàn)不同學(xué)生的特點(diǎn),從而分配適宜的實(shí)驗(yàn)任務(wù)。具體的實(shí)施方法是:對(duì)實(shí)際應(yīng)用能力較弱的學(xué)生,可以分配較容易,稍低于實(shí)驗(yàn)大綱要求的實(shí)驗(yàn)任務(wù);對(duì)于理論知識(shí)掌握扎實(shí),且實(shí)際編程能力較強(qiáng)的學(xué)生,則可以在實(shí)驗(yàn)教學(xué)要求的基礎(chǔ)上,增強(qiáng)實(shí)驗(yàn)內(nèi)容的難度和廣度。這樣做的優(yōu)點(diǎn)在于,在有限的實(shí)驗(yàn)課時(shí)內(nèi),學(xué)生可以有效地完成實(shí)驗(yàn)任務(wù),同時(shí),促進(jìn)和鼓舞學(xué)生學(xué)習(xí)C語言的興趣;這樣做既培養(yǎng)和提高了全體學(xué)生的C語言編程能力,又可以挖掘出小部分編程能力較強(qiáng)的學(xué)生。我們要多鼓勵(lì)和輔助學(xué)生完成有一定難度的編程題,特別是對(duì)于一些算法名詞,實(shí)驗(yàn)教學(xué)老師應(yīng)當(dāng)做出詳盡的解釋,并用配有圖釋的方法幫助學(xué)生透徹地理解算法名詞的含義,讓學(xué)生能夠應(yīng)用已學(xué)習(xí)的C語言知識(shí)獨(dú)立完成編程題;對(duì)于同一個(gè)編程題,教師應(yīng)鼓勵(lì)學(xué)生給出多種不同的算法;當(dāng)學(xué)生遇到難點(diǎn)的時(shí)候,實(shí)驗(yàn)老師應(yīng)當(dāng)盡量的給予提示,而不是直接給予結(jié)果??偠灾瑢?shí)驗(yàn)老師在教學(xué)的過程中,要讓學(xué)生在應(yīng)用C語言的過程中體會(huì)編程的樂趣。
3 結(jié)語
為非計(jì)算機(jī)專業(yè)的學(xué)生開設(shè)C語言實(shí)驗(yàn)課程的目的就是要培養(yǎng)適應(yīng)社會(huì)需求的,且具有實(shí)踐能力和創(chuàng)新精神的新時(shí)代大學(xué)生。在現(xiàn)有的實(shí)驗(yàn)教學(xué)資源條件下,如何有效地實(shí)施教學(xué)方案、完成教學(xué)目標(biāo)、培養(yǎng)具有實(shí)踐能力的合格人才是C語言實(shí)驗(yàn)教學(xué)課程的首要任務(wù)。對(duì)于C語言實(shí)驗(yàn)教學(xué)課程,我們提出的改進(jìn)方法在實(shí)際的教學(xué)實(shí)施過程中取得了良好的教學(xué)效果;同時(shí),它對(duì)學(xué)生和老師也提出了更高的要求,我們要在教學(xué)實(shí)際中勤于探索、時(shí)時(shí)總結(jié)、不斷改進(jìn),以明確的培養(yǎng)目標(biāo)來選擇教學(xué)內(nèi)容,以具體的實(shí)際應(yīng)用為教學(xué)導(dǎo)向[3],這樣就能在教學(xué)實(shí)踐中取得好的教學(xué)效果,提高學(xué)生的實(shí)踐水平。
參考文獻(xiàn):
[1]