摘 要 隨著計算機編程技術(shù)的發(fā)展,“C語言程序設(shè)計”的課程地位由專業(yè)核心主干課程轉(zhuǎn)變?yōu)閷I(yè)基礎(chǔ)課程,課程地位的改變必然使得課程內(nèi)容體系、教學方法和教學模式、實驗指導等發(fā)生改變。從課程建設(shè)的角度探討了新形勢下大專院?!癈語言程序設(shè)計”的改革。
關(guān)鍵詞 C語言 課程建設(shè) 改革
中圖分類號:G424 文獻標識碼:A DOI:10.16400/j.cnki.kjdkz.2016.09.054
The Construction and Reform of C Language
Program Design Course in Colleges
LIN Huijun
(Computer Science Department of Basic Educational College, Zhanjiang Normal University, Zhanjiang, Guangdong 524037)
Abstract With the development of computer programming, the professional foundation courses position of C Language Programming design has been changed to core specialty course. With the change of its courses position, content of the curriculum system, teaching methods and teaching model, experiment guide will be changed. Discuss the reform of C language program design in the new situation of college from the angle of course construction.
Key words C Language; course construction; reform
0 引言
C語言是一種面向過程的計算機程序設(shè)計語言,其功能豐富、表達能力強,具有完善的模塊程序結(jié)構(gòu),可移植性好,既具有高級語言的特點,又具有低級語言的功能。 C語言曾經(jīng)是進行軟件開發(fā)的主流語言,因此“C語言程序設(shè)計”課程曾經(jīng)作為計算機技術(shù)專業(yè)核心主干課程,在高等院校計算機相關(guān)專業(yè)中廣泛開設(shè)。然而隨著面向?qū)ο蟪绦蛟O(shè)計思想的廣泛應(yīng)用,“C語言程序設(shè)計”的專業(yè)核心地位開始動搖,一些高等院校計算機專業(yè)已不再開設(shè)“C語言程序設(shè)計”,取而代之的是Java、C++、VC++等課程的直接開設(shè)。
那么,在高職高專院校的計算機應(yīng)用技術(shù)專業(yè)中,“C語言程序設(shè)計”是否還有繼續(xù)開設(shè)的必要?如果開設(shè)應(yīng)如何開設(shè)?“C語言程序設(shè)計”課程應(yīng)如何進行改革才能適應(yīng)計算機專業(yè)課程體系的發(fā)展?在本文中,我們將從課程的地位和開設(shè)的必要性、課程內(nèi)容體系、教學方法、實驗指導等方面就大專院校的“C語言程序設(shè)計”課程建設(shè)進行深入的探討。
1 課程的地位和開設(shè)的必要性
“C語言程序設(shè)計”曾經(jīng)是計算機相關(guān)專業(yè)的核心主干課程,主要學習C語言的語法規(guī)則、算法、模塊化程序設(shè)計思想,并以C語言為開發(fā)語言進行系統(tǒng)的開發(fā)。然而隨著技術(shù)的發(fā)展,C語言由于其在可視化編程方面的局限性使得它不再成為軟件開發(fā)的主流語言,在這種情況下,C語言的核心主干課程地位發(fā)生了改變,我們曾經(jīng)對多所高校計算機相關(guān)專業(yè)的課程設(shè)置進行了調(diào)查,多所高校根據(jù)專業(yè)的發(fā)展已不再開設(shè)C語言,部分院校直接開設(shè)JAVA,部分院校直接開設(shè)C++,部分院校即使開設(shè)C語言,也只是把C語言作為專業(yè)基礎(chǔ)課程來開設(shè)。
大專院校的計算機應(yīng)用技術(shù)專業(yè)學制三年,通過學習,學生應(yīng)具備基本程序設(shè)計能力,能使用計算機語言進行程序的設(shè)計、調(diào)試和維護。大專院校學生的入學基礎(chǔ)較為薄弱,多年的教學經(jīng)驗我們得到一個結(jié)論:學生一入校門接觸計算機專業(yè)課程,感覺最難的就是程序設(shè)計,如果其第一門課程學的是面向?qū)ο蟮木幊陶Z言,則須從結(jié)構(gòu)化程序設(shè)計開始學,學習時間較長,很容易將結(jié)構(gòu)化程序設(shè)計與面向?qū)ο蟪绦蛟O(shè)計混淆,導致學習越來越困難,因此有必要在開設(shè)面向?qū)ο蟪绦蛟O(shè)計課程之前先開設(shè)結(jié)構(gòu)化程序設(shè)計課程。C語言是古老而長青的編程語言,它的語法是C++、VC++、Java、C#等多種面向?qū)ο蟪绦蛟O(shè)計語言的基礎(chǔ),也是后續(xù)課程“計算機組成”、“操作系統(tǒng)”、“編譯原理”、“計算機體系結(jié)構(gòu)”、“數(shù)據(jù)結(jié)構(gòu)”等的基石。因此把C語言作為大專層次計算機應(yīng)用技術(shù)專業(yè)基礎(chǔ)課程或計算機語言的入門課程來來開設(shè)是必要的,有利于學生對計算機語言及結(jié)構(gòu)化編程思想的理解和掌握,為面向?qū)ο蟪绦蛟O(shè)計課程及其他的開設(shè)后續(xù)課程的開設(shè)打下一個良好的基礎(chǔ)。
2 課程內(nèi)容體系
在把“C語言程序設(shè)計”作為核心主干課程開設(shè)時,其課程的最終目標是學生能使用C語言進行系統(tǒng)的開發(fā),因此其教學內(nèi)容是圍繞著軟件開發(fā)這一主題展開學習,學時較長,內(nèi)容詳盡。而把“C語言程序設(shè)計”作為專業(yè)基礎(chǔ)課程來開設(shè)時,對學生能利用C語言開發(fā)系統(tǒng)的要求降低,學時不宜過長,課程總體目標轉(zhuǎn)變?yōu)榕囵B(yǎng)學生對程序設(shè)計的理解和操作能力以及提高程序設(shè)計的興趣為主,同時讓學生在學習程序設(shè)計的過程中,養(yǎng)成良好的代碼編寫風格,對代碼不再感到害怕。
“C語言程序設(shè)計”可以說是大專院校學生入校后所接觸的第一個程序設(shè)計語言,根據(jù)計算機編程思想和技術(shù)的發(fā)展,以及大專學生的特點,考慮相關(guān)的后續(xù)課程以及面向?qū)ο缶幊陶Z言的開設(shè),本著面向基礎(chǔ)、以“必需、夠用”為度,我們將“C語言程序設(shè)計”的課程內(nèi)容進行了重新整合。
如圖1的內(nèi)容所示,我們對C語言的教學內(nèi)容的重點和難點做如下的變革:
(1)C語言包含的基本概念很多,如變量、常量、存儲空間、地址、運算符、表達式、函數(shù)、指針、數(shù)組等,這些概念都是后續(xù)課程的基礎(chǔ),因此應(yīng)加強學生對這些概念的理解與掌握。
(2)不管哪一種編程語言,其程序的基本結(jié)構(gòu)都離不開順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu),這三種程序結(jié)構(gòu)也是面向?qū)ο缶幊痰幕A(chǔ),因此C語言的教學重點也在于讓學生完全理解和掌握三種程序結(jié)構(gòu)的編寫。在這三種程序結(jié)構(gòu)的教學中,應(yīng)以算法為主線、結(jié)合C語言的語法規(guī)則進行講授,案例功能不宜太復雜,程序不宜過長,以單一功能為主,這將有利于后續(xù)面向?qū)ο蟪绦蛟O(shè)計課程學習的銜接。函數(shù)是C程序的基本構(gòu)成,也是大部分計算機語言的基本概念,對函數(shù)的概念、定義和聲明、返回值、函數(shù)的調(diào)用、參數(shù)的傳遞、變量的作用域應(yīng)予以詳細的講解,以理解其中的基本方法為主。
(3)在數(shù)據(jù)類型部分,重點在于基本類型、指針概念、數(shù)組的講解,放棄一些構(gòu)造型的數(shù)據(jù)類型,如共同體、結(jié)構(gòu)體等,因為在面向?qū)ο缶幊陶Z言中,已使用類來實現(xiàn)這些復雜數(shù)據(jù)類型數(shù)據(jù)的封裝。
3 教學方法
“C語言程序設(shè)計”以C語言為平臺,使學生全面了解程序沒計的基本算法、C語言的語法規(guī)則以及結(jié)構(gòu)化程序沒計的方法,并具有一定的結(jié)構(gòu)化程序設(shè)計和調(diào)試的能力?!癈語言程序設(shè)計”傳統(tǒng)的教學方法是講授與實驗相結(jié)合的方法進行教學。由于C語言涉及的概念比較復雜,規(guī)則繁多,許多知識點抽象且難以理解,使用靈活,容易出錯。在實際教學中,我們發(fā)現(xiàn)很多學生認為內(nèi)容抽象、枯燥,學習起來都感到困難和吃力,并在不同程度上產(chǎn)生畏懼心理,學生學習興趣度較低。
基于上述原因,我們認真研究了思維可視化技術(shù)、微課程技術(shù)等教學理論和教學方法,并將其用于實踐教學,效果較好。
3.1 思維可視化技術(shù)
思維可視化技術(shù)是一種以數(shù)據(jù)可視化、計算可視化和信息可視化為基礎(chǔ),促進知識的傳播和創(chuàng)新的技術(shù),其要點是運用一系列圖示技術(shù)把本來不可視的思維(思考方法和思考路徑)呈現(xiàn)出來,使其清晰可見的過程。思維可視化的目的是使思維流程化、圖形化、圖譜化和清晰化,其可視化工具包括有概念圖、思維導圖、流程圖、語義網(wǎng)絡(luò)、圖表等。
C語言概念繁多,層次性較強,思維可視化技術(shù)的引進有利于學生對計算機語言整體概念的理解。如在講解C語言數(shù)據(jù)類型時我們可以使用一張圖完成教學。圖2為基本數(shù)據(jù)的概念圖。
概念圖以SWF文件出現(xiàn),在教學時以數(shù)據(jù)基本數(shù)據(jù)類型為中心,進行層次的折疊,在講授時以知識點為中心中心展開或折疊。整個教學直觀,一目了然,效果較好。
思維可視化技術(shù)可貫穿C語言的整個教學過程,我們將可視化的各種圖示工具教會學生,課前使用思維對圖進行預習,課中使用概念圖、流程圖進行教學,課后使用思維導圖進行內(nèi)容的整理。這不僅有助于學生對知識的掌握,也有助于學生編程思維能力的提高。
3.2 微課程技術(shù)
微課程即微視頻課程,是一段短小精悍的、以教學為目的的視頻。一段微課程視頻大約10分鐘左右,講解一個知識點,目標明確。與PPT相比,實踐證明微課程的視頻形式更有效,更吸引學生,視聽結(jié)合,能增強學習者的信息處理能力,降低學習者的認知負荷,提高學習效率。微課程的反復播放有助于學生自己掌握自己的學習進度。
在C語言教學中,我們往往利用一節(jié)課的時間講授知識點,知識點相對較多,一節(jié)課45分鐘,學生的注意力不能持續(xù)集中。將微課程技術(shù)引入C語言的教學過程后,我們將微課程分為知識點微課程、練習微課程,每個微課程大約10分鐘右左右,兩種課程輪流交替進行,既達到傳授知識的目的,也能在課堂上完成課后鞏固環(huán)節(jié)。在多個知識點微課程和練習微課程后,進行綜合實例微課程進行綜合的訓練。能最大程度地避免學生注意力的分散。
如循環(huán)結(jié)構(gòu)是C語言教學的重點和難點,學生對循環(huán)的每一次執(zhí)行較難理解。我們以例題作為知識點制作微課程,將循環(huán)的每一次執(zhí)行、內(nèi)存變量值的變化、執(zhí)行的結(jié)果以動畫的方式呈現(xiàn)出來,一目了然,且學生可以多次觀看,避免因老師一次講解難以掌握而又無法回顧的問題。實踐證明C語言中許多的知識點使用微課程教學都取得了較好的效果,如排序微課程、運算符微課程等,其在顯示程序運行過程中變量的變化、運行結(jié)果的變化等方面尤其有效。
4 上機實踐與習題
上機實踐是“C語言程序設(shè)計”課程的重中之重,我們需要培養(yǎng)學生程序設(shè)計的素養(yǎng)和程序編輯、修改、調(diào)試、運行的能力。C語言的開發(fā)環(huán)境經(jīng)歷了Turbo C、VC++6.0、VS等,目前使用較多的是VC++6.0。一般情況下,如果單純是學習C語言,使用VC++6.0已足夠,如果后續(xù)開設(shè)C#等課程,建議使用VS,以便于后續(xù)課程的開設(shè)。
大多數(shù)的實驗指導書中的實踐教學內(nèi)容和題目以驗證型和設(shè)計型為主。驗證型的題目要求學生按照書本上的指示,輸入程序,填寫結(jié)果即可,學生處于被動接受的地位;設(shè)計型的題目對于大專院校的學生來說,難度較大,學生往往無從下手。為了全面提高學生的實踐能力和應(yīng)用能力,使實踐教學能滿足不同層次學生自主學習的需求,我們制定并實施了以下改革措施:
(1)改革上機實踐的教學模式:我們對實驗內(nèi)容進行了重新的設(shè)計,每個實驗銜接課程的內(nèi)容,實驗內(nèi)容小而精練,將以往一個完整的理論知識點教學完之后再進行實踐教學的教學模式改為由理論教學和實踐教學相互聯(lián)系、相互交叉、彼此滲透、有機結(jié)合、同步發(fā)展的教學模式。
(2)設(shè)計多種類型的實驗題目:針對學生存在基礎(chǔ)不同、接受能力不同、個性有差異等問題,設(shè)計出包含驗證型、改錯型、設(shè)計型共三種類型的實驗,題目盡可能做到既與理論教學內(nèi)容靠近,又能覆蓋知識點,切合實際。通過完成不同類型的實驗題目,有目的、分層次地培養(yǎng)學生的實踐能力,使學生學會從實驗過程中獲取知識,積累經(jīng)驗。
要學好C語言,做習題是關(guān)鍵,習題能幫助學生有效地理解知識。通常情況下,習題是在一個章節(jié)完成后才進行,知識點過多,學生需要花更多的時間做習題。因此我們對習題進行了重新整理,在一個知識點教學結(jié)束后即進行(下轉(zhuǎn)第118頁)(上接第113頁)習題的訓練,將教學與習題有效地結(jié)合,將學生做習題的時間分散,縮短,減少難度,達到即時鞏固的效果。
5 結(jié)束語
由于計算機編程技術(shù)的發(fā)展,C語言的課程教學也受到了影響。2012年,我校將C語言作為重點課程進行建設(shè),結(jié)合實際,我們對大專院?!癈語言程序設(shè)計”課程的地位、內(nèi)容體系、教學方法和教學模式、實驗指導進行改革探討,以適應(yīng)新形勢下的大專計算機應(yīng)用技術(shù)專業(yè)、電子專業(yè)人才培養(yǎng)方案的改變。這些改變能在一定程度上有效解決我校“C語言程序設(shè)計”課程發(fā)展與教學過程中存在的問題,但仍須在實踐中去改進和完善。
基金項目:嶺南師范學院2013年青年項目,項目號:QL1311;嶺南師范學院基礎(chǔ)教育學院重點課程項目
參考文獻
[1] 林慧君.思維可視化及其技術(shù)特征[C].第十六屆全國計算機輔助教育學會年會論文集,新華出版社,2014.8:697-702.
[2] 方英蘭,劉高軍,宋威.C語言程序設(shè)計課程的改革與實踐[J].電腦知識與技術(shù):學術(shù)交流,2014(12):8225-8226.
[3] 楊雷,張雷鳴.C語言程序設(shè)計課程的改革與實踐[J].北京電力高等??茖W校學報:社會科學版,2011.28.
[4] 張植才,李鋒,劉娜.基于培養(yǎng)學生職業(yè)編程能力的高職C語言教學模式改革[J].福建電腦,2014(6):62-63.