劉 鈞
(皖西學院,安徽六安 237012)
C語言實驗的改革探索
劉 鈞
(皖西學院,安徽六安 237012)
總結(jié)了學生在C語言實驗過程中的問題,對C語言實驗的改革進行了分析總結(jié),提出了針對C語言實驗的案例教學改革方法。
C語言程序設(shè)計;實驗教學;案例教學
《C語言程序設(shè)計》是一門重要的計算機基礎(chǔ)課程,通過該課程的學習,學生在計算機語言編程及程序設(shè)計技術(shù)兩個方面都能得到鍛煉。C語言是學習高級語言編程的首選語言,通過對C語言的基本特點、語法規(guī)則、程序結(jié)構(gòu)等內(nèi)容的學習,學生能逐步掌握程序設(shè)計的基礎(chǔ)知識和面向過程的結(jié)構(gòu)化程序設(shè)計方法,形成良好的程序設(shè)計風格,這將為進一步學習計算機相關(guān)課程或從事軟件開發(fā)奠定基礎(chǔ)。
《C語言程序設(shè)計》是一門實踐性很強的課程,需要通過大量的上機實驗,才能真正掌握好[1]。因此,除了注重課堂教學外,重視和搞好實驗教學,加強學生的動手能力培養(yǎng)[2],是提高課程教學質(zhì)量的關(guān)鍵。
在C語言實驗教學中還存有各類問題[2][3],主要有如下幾點:1、學生剛開始學習C語言時,知道其重要,學習熱情也很高,但當接觸到C語言開發(fā)環(huán)境,見到單調(diào)、枯燥的界面,總覺得不如 Window s“好玩”,便會逐步喪失興趣。2、大多數(shù)學生在實驗課上,忙于錄入編輯源程序,忙于查錯,簡單驗證程序運行結(jié)果之后,很少再有深入探討的過程。C語言實驗幾乎成了打字練習課。3、實驗課時較少,學生很難在有限的課時里收到滿意的學習效果。所有學生或多或少存有玩心,稍有放松,到后期只能是應(yīng)付考試,不求深入。4、學生與教師溝通有限,一部分學生怕自己學得不好,有問題不愿意問,另一部分學生則什么都問,老師看不到學生學習的主動性,教學情緒也會受到影響。實驗課后,老師與學生很難見面,有問題也得不到及時解決。
在今天的環(huán)境下,如何讓學生上好實驗課、學好C語言是大家共同面對的新課題[4][5]。各地各校教師采用了很多方法與對策,值得我們認真探討與借鑒。
讓學生明確學習目的、激發(fā)學生學習興趣是所有教師都認可的作法。讓學生明確C語言在計算機專業(yè)課程中的地位,清楚C語言程序設(shè)計在軟件開發(fā)領(lǐng)域里的作用,介紹幾位有成就的學長當年的學習歷程,講述幾位企業(yè)家的創(chuàng)業(yè)史,等等。該法雖然有效,但不能天天掛在嘴上,每次面對乏味的操作界面,仍避免不了學生學習興趣的流失。
現(xiàn)今,C語言教程多配有實驗操作指導書,針對每堂實驗課設(shè)定實驗操作項目,對于優(yōu)秀學生,可以基本完成全部內(nèi)容,但對多數(shù)學生則難以做到。很多老師會在每堂實驗課上,從實驗項目中再精選重點內(nèi)容,講解要點,提出問題,激勵探索,并巡回督促學生完成。此種作法,要求老師具有高度的責任心,就實驗內(nèi)容來說,有了一定的彈性,學生也較易完成。老師多付出一分辛勞,學生也就多得到一份收獲。
一些學校將部分實驗課搬進了多媒體教室,老師演示操作,學生觀看體驗。此方法不能說不是一種改進,確有其獨特的功效,它可以將帶有共性的問題及錯誤,讓所有同學都能同時得到正確解答,可避免教師巡回重復(fù)講解,達到事半功倍的效果。然而它的缺陷也很明顯,學生很難全部記住一堂課上的全部要點,聽一遍總不如做一遍印象深刻。
其實,在一堂實驗課中出現(xiàn)的共性問題,不會很多,老師只需在下一次理論課上,用3到5分鐘的時間即可講清楚,收效也很好。至于學生,還是應(yīng)當讓他們親自下海去品嘗滋味。
一些學校在開課之初即向?qū)W生布置大作業(yè),作業(yè)的實用性以及完成作業(yè)的可行性,對學生都是很強烈的刺激。作業(yè)涉及的難度與深度,讓學生一時無法完成,這在學生心里形成一個期盼的目標。學生會分解目標、帶著問題自覺學習,實驗操作訓練的積極性是明顯的,每一個小問題的解決、每一個小目標的實現(xiàn),都會給學生帶來成功的喜悅,增強了信心,對后續(xù)學習又是最好的激勵。
該教學方法,對一流學校素質(zhì)好的學生,是行之有效的。該方法的前提是,學生具有高度的學習自覺性。這一方法在很多學校中卻無法實施。但可改進一下,分章布置大作業(yè),讓學生看到一個更容易實現(xiàn)的目標,在一定程度上可以達到激發(fā)學生自覺學習的目的。
為減少學生錄入源程序的時間,減輕學生粗心出錯的負擔,一些學校專門組織力量,編寫實驗教學軟件。軟件依據(jù)一本實驗操作指導書,將大部分練習與習題編入其中,學生只需讀懂練習源程序,接下來的改進、編輯、編譯、運行等實驗操作過程都可在教學軟件的幫助下完成。實驗教學軟件的使用,在一定程度上提高了學生實驗操作的效率,使同步完成實驗內(nèi)容成為可能。軟件實現(xiàn)實驗教學也存在一些問題,近年來教材更新較快,改寫實驗教學軟件,使其與實驗操作指導書同步,成了老師的一大負擔。軟件實驗教學,雖免除了學生的錄入負擔,但無法使學生接受粗枝大葉的教訓,離開教學實驗軟件,自行編程,仍會犯一些低級錯誤。
C語言實驗教學在不斷的探索與發(fā)展著,每一種方法的運用都不會十全十美,也不會處處適用。針對自己學生的特點,針對自己學校的軟硬件條件,理性分析各種實驗教學方法對自身的適用程度,合理選用不同的教學方法,以應(yīng)對不同階段的實驗教學內(nèi)容,才能達到較好的實驗教學效果。
筆者在多年的C語言課程理論與實驗教學過程中,也在不斷的探索總結(jié),大多數(shù)學生缺少學習的主動性,又不是完全不想學,實驗課上多有盲從、不得要領(lǐng)的感覺,若幾次實驗勞而無功,則學習興趣便會慢慢喪失。針對學生的這些特點,經(jīng)過不斷的摸索改進,逐步形成了案例教學的實驗教學方法。
案例教學中,選用的案例大多來自學生所用的實驗操作指導書,好處是,學生可以不用抄題,專心聽講,記錄要點方便。在上C語言實驗課時,學生每人一機,老師利用軟件播放系統(tǒng),先將案例進行播放演示操作,提醒學生每個案例的實驗要點,在出現(xiàn)學生不能理解的結(jié)果時,帶著學生返回查錯或重溫理論。每堂實驗課上,案例教學的過程不宜太長,要留有足夠的時間讓學生自主練習,案例教學結(jié)束時,要給學生留下問題,明確告訴學生本次實驗的目的。
這種案例教學方法,近似達到了和每位學生面對面交流討論的教學效果。學生都很專注,各有所悟,在之后的自主操作實驗過程中,氣氛熱烈,討論活躍,實驗效果有明顯改進。案例教學也不必每堂必用,這樣容易形成學生的依賴性,你不講他就不做。
針對《C語言程序設(shè)計》課程的特點,以及教學大綱的要求,對本課程中的基本內(nèi)容、重點內(nèi)容及部分難點內(nèi)容進行了案例教學實驗課安排,具體把握好以下三個方面:
掌握運算符是學好C程序設(shè)計的基礎(chǔ),C語言的運算非常靈活,功能十分豐富,運算符種類遠多于其它程序設(shè)計語言。在表達式方面較其它程序語言更為簡潔,如自加、自減、逗號運算和三目運算使表達式更為簡單,但初學者往往會覺得這種表達式難讀難理解。案例教學就是要解決學生的難字。如:“5*8/ 4%10”、“a=3;b=5;c=++a*b;d=a++*b;e+ =a;g=a>b?a:b;”。通過這些簡單例子的仔細分析和耐心講解,找出它們與傳統(tǒng)數(shù)學表述之間存在的差異,使學生看到它們并非很難,但也不能隨心所欲。
順序結(jié)構(gòu)案例幫助學生理解程序的執(zhí)行順序,如:“a=b;c=a;”不同于“c=a;a=b;”。案例教學過程中,將編輯、編譯、查錯、修改等過程讓學生充分體驗直到熟練掌握,為以后的訓練打好基礎(chǔ)。
分支結(jié)構(gòu)案例幫助學生理解程序的判斷選擇功能。案例以“if…;else…;”分支結(jié)構(gòu)為主,逐步演化出幾種變形分支結(jié)構(gòu)、嵌套分支結(jié)構(gòu)、多分支結(jié)構(gòu)及sw itch分支結(jié)構(gòu),案例演示過程中,教會學生利用首行縮進分清結(jié)構(gòu),配合程序流程圖教學,要求學生對案例自行畫出流程圖,加深理解。
循環(huán)結(jié)構(gòu)是程序設(shè)計中最能發(fā)揮計算機特長的程序結(jié)構(gòu),即減少了源程序重復(fù)書寫的工作量,又達到了重復(fù)執(zhí)行的目的。C語言中提供有while、do–while和for三種基本循環(huán)結(jié)構(gòu)語句,可以用來處理同一問題,一般情況下它們可以相互替換。循環(huán)結(jié)構(gòu)案例很多,所用案例重點在于弄清三種循環(huán)結(jié)構(gòu)的相同與不同之處,準確把握循環(huán)控制條件,將同一問題用不同的循環(huán)結(jié)構(gòu)處理。如把while循環(huán)的例題,改用for循環(huán)重新編寫程序,留下問題,要求學生作新的嘗試。在基本把握三種結(jié)構(gòu)之后,可以增選循環(huán)嵌套案例、分支與循環(huán)組合案例等。配合流程圖,讓學生充分理解結(jié)構(gòu)化程序設(shè)計思想和方法。
模塊化程序結(jié)構(gòu)在C語言中是用函數(shù)來實現(xiàn)的,即將復(fù)雜的C程序分為若干模塊,每個模塊都編寫成一個C函數(shù),然后通過主函數(shù)調(diào)用函數(shù)及子函數(shù)調(diào)用函數(shù)來實現(xiàn)較大型問題的C程序編寫,因此常說:C程序=主函數(shù)+子函數(shù)。該部分案例教學內(nèi)容較難,例程也較大,重點應(yīng)放在對函數(shù)的定義、調(diào)用、參數(shù)傳遞及函數(shù)的返回值等要點的理解和應(yīng)用中,例程中的函數(shù)力求簡明,在學生能充分把握之后,可以增加函數(shù)嵌套調(diào)用案例與遞歸調(diào)用案例,促進學生進一步鞏固提高。
自主編寫程序,大部分工作就是分析問題,找到解決問題的方法,再以相應(yīng)的編程語言寫出代碼。這就要求學生應(yīng)當掌握一些基本算法。《C語言程序設(shè)計》教程雖以講授語言為主,其中介紹的一些簡單算法應(yīng)當?shù)玫匠浞种匾?如兩個數(shù)的交換、三個數(shù)的比較、選擇法排序和冒泡法排序、遞推與遞歸算法等。案例教學可以作到一法多例,力求簡明、清晰,學生往往能在解誤的同時提出自已的想法,案例會在這種分析討論過程中被提高完善。好的案例教學可以讓學生接受并掌握簡單算法的思想,增強學生分析問題解決問題的能力。
C語言實驗采用案例教學法后,學生普遍提高了對本課程學習的興趣,認為編程不是枯燥的事,只要掌握了好的學習方法,通過適量的實踐,就能編寫出較好的C語言程序。
激勵機制可以引進教學過程中。將部分程序設(shè)計題在全體學生中征集評比最優(yōu)設(shè)計,在討論改進中,教師進行點評,激勵學生追求完美。
基于校園網(wǎng)絡(luò)平臺,加強師生聯(lián)系,強化課外輔導教學。網(wǎng)絡(luò)技術(shù)的成熟與普及,極大地延伸了教學空間。實驗教學的課后輔導可以通過網(wǎng)絡(luò)平臺來實現(xiàn),主要方式有三種,一是建設(shè)教師個人網(wǎng)站;二是借助Internet上的諸多公共論壇和個人留言板;三是通過電子郵件。
C語言由于是面向過程的程序設(shè)計語言,所以,初學者難以掌握,字符界面和繁雜的語法規(guī)則容易讓學生失去學習興趣,影響教學質(zhì)量。針對C語言實驗教學出現(xiàn)的各種問題,各?;蚨嗷蛏俚囟疾扇×艘恍┐胧?對原先的教學進行了一些改革,但都無法做到一方治百病。再好的方法也只是方法,最終還是要靠人去實施,靠教師和學生共同努力才能達到預(yù)期效果。在實際的教學實踐中,應(yīng)根據(jù)具體情況采用不同的方法,師生多投入多交流,才能取得良好的整體教學效果。
[1]楊路明.C語言程序設(shè)計教程(第二版)[M].北京:北京郵電大學出版社,2005.
[2]鄧維斌,周玉敏.提高C語言實驗教學效果的探索[J].實驗室研究與探索,2006,25(3):359-361.
[3]尹慶莉.C語言實驗教學改革探析[J].福建電腦,2009, (7):215.
[4]徐章艷.“C語言程序設(shè)計”實驗教學的探討[J].電器電子教學學報,2004,26(2):84-85.
[5]陳網(wǎng)鳳,張盛華,高曉蓉.程序設(shè)計語言實驗教學模式改革初探[J].牡丹江教育學院學報,2005,93(5):94-95.
Reform Exploration on the Experiment of C Language
LIU Jun
(West Anhui University,Lu’an237012,China)
This paper summarizes some problems in experience of C language programming,analysis and summary of reform exploration on the Experiment of C Language.The author proposes reform methods of case teaching of C experiment.
C language programming;experimental teaching;case teaching
TP312C
A
1009-9735(2010)02-0069-03
2010-02-26
劉鈞(1959-),男,安徽合肥人,皖西學院實驗師,研究方向:理論物理、計算機應(yīng)用。