摘 要:C語言是一門非常重要的程序設計課程。由于C語言本身學習難度大以及獨立學院學生的自身特點,使得獨立學院在C語言的教學中面臨著很多問題。本文結(jié)合寧夏大學新華學院C語言程序設計教學的實際情況,對C語言程序設計課程的教學改革以及實踐情況進行了探討。
關(guān)鍵詞:C語言程序設計獨立學院教學改革
中圖分類號:G642文獻標識碼:A文章編號:1674-098X(2011)08(a)-0153-02
C語言是當今世界上應用廣泛、最具有影響的程序設計語言之一。由于C語言涉及的概念復雜、抽象,C語言的使用靈活性大,初學者較難學習和掌握。再加上獨立學院的學生學習基礎(chǔ)和學習能力相比一、二本院校的學生較弱,許多學生甚至到課程學完了還概念不清,編寫程序時沒有思路,不能很好的掌握這門高效的編程語言。因此,獨立學院C語言課程教學改革具有重要的研究和實踐意義。作為獨立學院的C語言教師,必須根據(jù)C語言的特點和教學對象的具體情況,對教學內(nèi)容和教學方法進行合理的組織,盡可能將知識點通俗化,按照由淺到深的層次在教學的過程中幫學生理清學習思路,提高學生的學習興趣,使學生在短暫的課程學習時間內(nèi)很好的掌握C語言的基本知識和編程技巧。
1 獨立學院C語言程序設計教學中存在的問題。
1.1 學生基礎(chǔ)薄弱,學習能力相對弱
寧夏大學新華學院是本科層次的二級學院,生源基本來自于第三批本科錄取,因此學生的入學成績不是很理想,學習基礎(chǔ)較薄弱,而C語言是一門邏輯性強、概念復雜抽象的課程,對學生的學習能力有一定的要求,這就造成了很多學生學不懂C語言的重要原因。
1.2 學生對C語言課程的認識不正確,學習主動性和積極性不高
很多學生認為C語言課程不重要,在思想上沒有重視,自然就不會落實到行動上。再加上獨立學院學生對待學習缺乏主動性,基本上是被動上課,課后也以完成作業(yè)為主,基本上不會自主預習、自主復習,而短短的課堂教學是不能完全掌握C語言知識的。這就造成了“由于學習態(tài)度不夠主動而學不懂,學不懂態(tài)度更不積極”的現(xiàn)象產(chǎn)生,這種惡性循環(huán)也是造成很多學生學不好C語言的重要原因。
1.3 教學方法存在不足
寧夏大學新華學院是以寧夏大學為依托辦學的,大部分教師都是寧夏大學的師資力量,新華學院自己培養(yǎng)的老師比較少。寧夏大學的生源比較好,學生的學習基礎(chǔ)也好。對于很多知識點,同樣的講解,對于兩個層次的學生來講,對知識的接受能力是有很大差別的。再加上很多教師在教學過程中仍然采用傳統(tǒng)的“滿堂灌”的方式,缺乏與學生的互動,缺乏對學生自主學習能力的培養(yǎng)。這就迫切需要探索出適合獨立學院學生的C語言教學方法。
1.4 教學理論與實踐結(jié)合不夠
雖然獨立學院開設了C語言程序設計上機課程,但是理論課程和上機實驗的配合度不高,學生上機時只是機械地輸入程序,并不能很好地把理論知識融入到編程思路中。
1.5 教學理論與實踐結(jié)合不夠
雖然獨立學院開設了C語言程序設計上機課程,但是理論課程和上機實驗的配合度不高,學生上機時只是機械地輸入程序,并不能很好地把理論知識融入到編程思路中。
2 采用多種教學方法改革措施,提高教學效果
2.1 打穩(wěn)基礎(chǔ),反復訓練
對于C語言的基本知識點,比如C語言的基本數(shù)據(jù)類型和表達式,輸入和輸出語句等內(nèi)容,很多教師認為其非常簡單在講課的時候一帶而過,把重點放在程序設計結(jié)構(gòu)上。但是獨立學院的大部分學生缺乏學習的主動性,他們很少會自己去看書學習這些基本知識,前面的知識學得一知半解,到后面程序設計結(jié)構(gòu)就更搞不清楚狀況。鑒于獨立學院這種情況,教師對基本知識一定要做到詳細講解,要在授課過程中幫他們理出清晰的知識條理,為他們后續(xù)的學習打下良好的學習基礎(chǔ)。為了加深對知識的理解,老師可以結(jié)合所講知識點選取一些計算機等級考試題作為練習,通過不同的題目來深刻理解同一個知識點,做到真正意義上的學懂。
2.2 采用啟發(fā)式教學
C語言的學習需要好的思維能力,而思維能力的培養(yǎng)離不開啟發(fā)式教學。比如,在講“循環(huán)結(jié)果程序設計”的時候,很多同學不理解“什么是循環(huán)?”,也不清楚“為什么要用循環(huán)結(jié)構(gòu)?”。如果一開始不讓學生清楚地理解循環(huán)的概念,他們就不能很好地運運循環(huán)解決實際問題。
我采用的教學思路是:首先回提出一個問題對前面內(nèi)容做一個回顧,即要求學生輸出整數(shù)1到10。很多同學都能給出正確的答案:printf(“%d”,1);……printf(“%d”,10);。接著我會引導學生觀察這十條語句哪些部分是一樣的部分地方是不一樣的。然后我會告訴學生這10條語句做的是重復工作,只是工作的對象不同,可是這樣做工作效率太低,我們需要換一個思路解決問題,我們可以把這10個不同的對象定義為一個變量,每次讓變量自加1就能輸出1到10這10個數(shù),這種思路的C語言表達方式為:while(i=1;i<=10;i++) printf(“%d”,i);最后我會告訴學生這種結(jié)構(gòu)就是我們今天要學習的循環(huán)結(jié)構(gòu),這個例子的引入很自然地讓學生了解了“什么是循環(huán)結(jié)構(gòu)”以及“為什么要使用循環(huán)結(jié)構(gòu)”。當學生真正懂得循環(huán)結(jié)構(gòu)的含義時,再講循環(huán)相關(guān)知識時,學生就很容易理解了。
2.3 運用聯(lián)系實際、打比喻等方式將抽象化為通俗
例如:在講解“內(nèi)存地址”的時候我會告訴學生:我們把內(nèi)存看做是若干個存儲單元組成的,每一個單元的大小是一個字節(jié),為了區(qū)分這些單元我們給它們編號,每一個單元都有一個唯一的編號,我們把這個編號稱為內(nèi)存的地址。這就好比我們宿舍樓里有很多教室,我們給教室編號的目的就是為了方便使用每個教室。
在講解“變量的直接訪問方式”和“變量的間接訪問方式”時,我會舉個具體的例子,比如說尋找王濤同學。如果知道王濤的宿舍號就可以直接去該地址找到王濤,這種方式非常直接;但是如果不知道王濤同學的宿舍號,就必須先到樓管查詢一下,拿到宿舍號以后再去找王濤,這種方式通過了第三方樓管,有一個中轉(zhuǎn)的過程在里面。這兩種方式的區(qū)別就是變量的直接訪問方式和間接訪問方式的區(qū)別。生活中的例子學生容易理解,引申到C語言的學習中學生更容易接受。
2.4 及時歸納、對比相似知識點,防止學生混淆
C語言的知識點比較多,相近的符號和內(nèi)容也比較多,學生通常是猴子搬玉米,學了新的忘記了舊的。由于獨立學院學生的學習能力有限,作為老師,我們要及時梳理知識點,將相似知識點放在一起對比,對比分析兩者的不同,幫助學生鞏固舊知識,理解新知識。比如說:main()main()
{ int a=1,b=2,c=3;{int a=1,b=2,c=3;
if(c=a) printf(\"%d\\",c);if(c==a) printf(\"%d\\",c);
else printf(\"%d\\",b);else printf(\"%d\\",b);
}}
這兩個程序只有一個符號的差別,但是if語句表達式的含義以及執(zhí)行順序完全不同。這些都是二級C語言等級考試的考點,也是學生最容易混淆的問題。
2.5 激發(fā)學生的學習興趣,培養(yǎng)學習自主學習的能力
教師在備課時,必須從學生感興趣的心理出發(fā),激發(fā)學生產(chǎn)生學習需求。C語言的教學中,教師可以引導學生用C語言的知識解決生活中的小問題,讓學生通過解決這些問題獲得成就感,從而建立良好的學習自信心,增強學習的興趣,使學生進入自覺學習的狀態(tài)。
教學過程中,教師細致地授課并不代表學生就不需要自主學習,我們教學的目的是要通過課程的學習提高學生的學習能力,尤其是自學能力。因此,我們在教學過程中,要鼓勵學生針對同一問題提出不同的解決思路,這樣做有利于提高學生學習的積極性,培養(yǎng)學生用發(fā)散性思維解決問題的能力。對于有些內(nèi)容,我們可以先講授前一部分內(nèi)容,后一部分內(nèi)容留給學生自學,然后通過課堂提問的方式來驗證自學的效果,這樣做不僅僅活躍了課堂氣氛,也激發(fā)了學生的學習興趣。
2.6 結(jié)合“考證”熱,將實際教學和等級考試緊密聯(lián)系,提高學生對C語言的重視程度
目前,計算機等級考試是大學生求職必備的證書,很多大學生為了拿到計算機等級考試證書專門去參加培訓班。作為C語言程序設計課程的教師,我們有必要關(guān)注和了解等級考試的考點,在教學中將課本的知識點和考點結(jié)合起來,選取和整理出能反映C語言基本知識的練習題目,做到有針對性的教學,不但能夠使課本知識舉一反三,而且能幫助學生通過等級考試,也能夠讓學生重視C語言的學習。
3 建設適合獨立學院的教材體系。
獨立學院在選擇C語言教學的教材上一直面臨著較大的困惑。由于獨立學院學生的學習基礎(chǔ)和能力稍弱,目前各普通高等院校使用的教材對獨立學院學生而言偏難;高職高專院校的教材實用性強但又不符合本科教育教學的要求。因此,根據(jù)實際教學需求迫切需要C語言教師隊伍編寫適合獨立學院學生特點的授課教材體系。
4 采用N+2考試方式,改變學生被動學習的局面
傳統(tǒng)考試內(nèi)容中記憶成分所占比重較大;考試方式較單一;一次考試決定成績。這些方式不利于學生創(chuàng)造性思維的培養(yǎng),寧夏大學新華學院針對學生的學習特點,對考試形式進行改革,采用了N+2的考核方式。N+2考試方式加大了教師對學生平時學習的考核,不再是單純的一張試卷定成績,教師可以根據(jù)課程性質(zhì)增加平時成績占課程總成績的比重,增加對學生平時學習的考查,促使學生加強平時學習,促使教師改變“滿堂灌”的教學方式,增加學生的表達機會以及與教師的雙向交流。實踐證明,這種考核方式更有利于C語言課程的教學。
獨立學院進行C語言程序設計課程教學改革,有助于獨立學院學生更好地掌握本門課程的核心知識,激發(fā)學生的學習興趣,提高學生自主學習的能力。當然教學是一個需要不斷改進的過程,我們將不斷總結(jié)教學的經(jīng)驗,探討新的教學方法,使獨立學院C語言的教學邁上一個新的臺階。
參考文獻
[1]楊路明.C語言程序設計教程[M].北京:北京郵電大學出版社,2005.
[2]譚浩強.C程序設計(第三版)[M].北京:清華大學出版社,2005.
[3]陳東.計算機多媒體教學改革的一些嘗試[J].福建師范大學學報(自然版),2004,20(3):98.
[4]傅力,李志達.C語言程序設計課程教學改革的探索與實踐[J].計算機教育,2008,14:33~34.
[5]龔偉.《C程序設計》課程教學的思考[J].福建電腦,2007(8).
[6]楊理云.《C語言程序設計》教學方法探索[J].中國成人教育,2007(5).
[7]李麗萍,王冬梅.C語言教學改革的探索與實踐[J].遼寧工業(yè)大學學報(社科版),2009,4.