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