張亮
(揚(yáng)州工業(yè)職業(yè)技術(shù)學(xué)院 江蘇 揚(yáng)州 225127)
C語(yǔ)言在高職計(jì)算機(jī)專業(yè)中的地位論證及問(wèn)題改進(jìn)
張亮
(揚(yáng)州工業(yè)職業(yè)技術(shù)學(xué)院 江蘇 揚(yáng)州 225127)
C語(yǔ)言是高職院校計(jì)算機(jī)專業(yè)的一門專業(yè)必修課,由于C語(yǔ)言本身的復(fù)雜性和高職教育的特殊性,C語(yǔ)言教學(xué)取得的效果并不理想。特別是隨著Java等高級(jí)語(yǔ)言的不斷涌現(xiàn),C語(yǔ)言的地位也受到了動(dòng)搖。本文主要論證了C語(yǔ)言在高職計(jì)算機(jī)專業(yè)中應(yīng)有的地位,分析了目前C語(yǔ)言教學(xué)中存在的主要問(wèn)題,并提出了改進(jìn)方法。
高職;計(jì)算機(jī)專業(yè);C語(yǔ)言;教學(xué)方法
隨著我國(guó)經(jīng)濟(jì)的持續(xù)高速發(fā)展,社會(huì)對(duì)高素質(zhì)計(jì)算機(jī)應(yīng)用技術(shù)人才的需求越來(lái)越迫切。為了適應(yīng)這一形勢(shì),目前在我國(guó)一千余所高職院校中,絕大部分都已開設(shè)了計(jì)算機(jī)應(yīng)用專業(yè)課程。在編程語(yǔ)言教學(xué)的選擇上,與本科院校類似,幾乎所有的高職院校都選擇了C語(yǔ)言作為計(jì)算機(jī)專業(yè)學(xué)生的首門編程學(xué)習(xí)語(yǔ)言。然而,因?yàn)镃語(yǔ)言本身的特性,再加上高職教學(xué)方法上的特殊性,長(zhǎng)期以來(lái)C語(yǔ)言課程的教學(xué)效果并不理想。并且,隨著Java、C#等易于上手且具有圖形化可視界面的編程語(yǔ)言的流行,有觀點(diǎn)認(rèn)為C語(yǔ)言已經(jīng)不適應(yīng)高職強(qiáng)調(diào)應(yīng)用性教學(xué)目標(biāo)的要求,應(yīng)該一步到位直接講授能夠快速開發(fā)的高級(jí)語(yǔ)言。筆者擬對(duì)這一論點(diǎn)進(jìn)行探討,并對(duì)C語(yǔ)言課程教學(xué)方法的改進(jìn)提出看法。
C語(yǔ)言從20世紀(jì)70年代被發(fā)明之后,因其具有高效、靈活、功能豐富、表達(dá)力強(qiáng)及移植性好等優(yōu)點(diǎn),迅速成為業(yè)界最流行的程序設(shè)計(jì)語(yǔ)言。C語(yǔ)言是一種面向過(guò)程的語(yǔ)言,同時(shí)具有高級(jí)語(yǔ)言和匯編語(yǔ)言的優(yōu)點(diǎn),主要用來(lái)編寫系統(tǒng)程序和高效的應(yīng)用程序。可以說(shuō),C語(yǔ)言影響了全世界幾代程序員的成長(zhǎng)。然而,隨著近年來(lái)大量高效直觀的快速開發(fā)語(yǔ)言的不斷出現(xiàn),在業(yè)界出現(xiàn)了激烈的爭(zhēng)論,有觀點(diǎn)認(rèn)為C語(yǔ)言已經(jīng)過(guò)時(shí),其過(guò)于底層的特性和過(guò)于繁雜的細(xì)節(jié)特點(diǎn),使C語(yǔ)言的學(xué)習(xí)門檻過(guò)高,阻礙了程序的快速開發(fā)。一些在快速開發(fā)語(yǔ)言如Java、C#中能快速實(shí)現(xiàn)的功能,在C語(yǔ)言中可能需要大量復(fù)雜的代碼才能實(shí)現(xiàn)。有偏激者甚至發(fā)出了“C語(yǔ)言已死”的論調(diào)。這一思潮不可避免地影響到高職院校的C語(yǔ)言教學(xué),很多學(xué)生對(duì)開設(shè)C語(yǔ)言課程產(chǎn)生了質(zhì)疑,認(rèn)為這門課程既難學(xué)、又看不到任何成果,不如Java等語(yǔ)言很快就能編寫出有漂亮圖形界面的程序。甚至有部分教師也認(rèn)為既然高職教育是培養(yǎng)應(yīng)用型人才的教育,就應(yīng)該拋棄過(guò)于理論化的C語(yǔ)言,直接講授Java等語(yǔ)言。本人認(rèn)為,雖然目前高職C語(yǔ)言教學(xué)中確實(shí)存在種種問(wèn)題,但這并不能否定C語(yǔ)言在計(jì)算機(jī)科學(xué)中的基本地位,C語(yǔ)言在高職計(jì)算機(jī)專業(yè)中核心課程的地位必須得到肯定。
C語(yǔ)言是其他高級(jí)語(yǔ)言的基礎(chǔ) 自C語(yǔ)言發(fā)明以來(lái),其優(yōu)秀的設(shè)計(jì)影響了眾多后續(xù)編程語(yǔ)言,目前流行的C++、Java、C#等語(yǔ)言都是從C語(yǔ)言的語(yǔ)法基礎(chǔ)上發(fā)展出來(lái)的,其基本的語(yǔ)法語(yǔ)句結(jié)構(gòu)都與C語(yǔ)言基本相同??梢哉f(shuō),學(xué)好了C語(yǔ)言,對(duì)學(xué)習(xí)后續(xù)其他語(yǔ)言有極大的幫助,掌握了C語(yǔ)言的基本語(yǔ)法語(yǔ)句結(jié)構(gòu),只需稍加學(xué)習(xí),就可以掌握如Java等語(yǔ)言的基本語(yǔ)法,從而可以集中精力學(xué)習(xí)該編程語(yǔ)言所提供的獨(dú)特的高級(jí)特性,達(dá)到事半功倍的效果。反之,如果C語(yǔ)言基礎(chǔ)不牢靠,學(xué)習(xí)其他高級(jí)語(yǔ)言必然會(huì)遇到相同的問(wèn)題。
C語(yǔ)言在很多領(lǐng)域的地位無(wú)法替代C語(yǔ)言具有其他高級(jí)語(yǔ)言無(wú)法比擬的速度優(yōu)勢(shì),在操作系統(tǒng)、設(shè)備驅(qū)動(dòng)程序、嵌入式設(shè)計(jì)等開發(fā)領(lǐng)域的地位其他語(yǔ)言不能替代。著名的Unix操作系統(tǒng)、Windows操作系統(tǒng)都是用C語(yǔ)言編寫實(shí)現(xiàn)的。由于C語(yǔ)言的高效,在強(qiáng)調(diào)速度和效率的基礎(chǔ)軟件領(lǐng)域,C語(yǔ)言還將是永遠(yuǎn)的王者。在嵌入式開發(fā)領(lǐng)域,C語(yǔ)言已經(jīng)逐漸取代匯編語(yǔ)言成為主流的開發(fā)語(yǔ)言,因此,學(xué)好C語(yǔ)言是學(xué)好這些后續(xù)課程的必備條件。
C語(yǔ)言有助于對(duì)計(jì)算機(jī)編程底層原理的理解 Java、C#等高級(jí)語(yǔ)言之所以易于上手,易于開發(fā),最根本的原因在于其對(duì)很多底層功能的封裝。這類語(yǔ)言都提供了大量的封裝好的庫(kù)和接口,在程序中只需要調(diào)用,就能實(shí)現(xiàn)相應(yīng)的功能,而不需要了解系統(tǒng)底層的細(xì)節(jié)。這樣的好處是極大地簡(jiǎn)化了程序開發(fā)的難度。但是,作為計(jì)算機(jī)專業(yè)的學(xué)生,隨著本身水平的提高和學(xué)習(xí)的深入,以及以后在實(shí)際工作中開發(fā)任務(wù)難度的加大,對(duì)系統(tǒng)底層實(shí)現(xiàn)機(jī)理的理解和掌握都是非常必要的。這個(gè)時(shí)候回頭再看C語(yǔ)言,其被人詬病的繁雜和難于掌握的特性,如內(nèi)存分配、指針操作、字符串操作等,實(shí)際上正是系統(tǒng)底層的操作方式,在其他高級(jí)語(yǔ)言中,這些都已經(jīng)被封裝,對(duì)開發(fā)者來(lái)說(shuō)是透明的,如果沒(méi)有學(xué)習(xí)過(guò)C語(yǔ)言,開發(fā)者可能永遠(yuǎn)不了解這些功能在系統(tǒng)中是如何具體實(shí)現(xiàn)的。雖然可以方便地使用這些功能,但只是知其然而不知其所以然,碰到一些比較復(fù)雜的情況,因?yàn)椴欢?,只能束手無(wú)策,這樣的水平,對(duì)計(jì)算機(jī)專業(yè)的學(xué)生來(lái)說(shuō)是不合格的。
鑒于此,C語(yǔ)言在高職計(jì)算機(jī)專業(yè)課程中的地位不但不能被動(dòng)搖,還應(yīng)該進(jìn)一步加強(qiáng)。
當(dāng)前,高職計(jì)算機(jī)專業(yè)C語(yǔ)言教學(xué)中存在著很多問(wèn)題,學(xué)生覺(jué)得難學(xué),教師也覺(jué)得難教。
教材的問(wèn)題 目前雖然市面上已經(jīng)有了很多種高職專用的C語(yǔ)言教材,但其實(shí)絕大多數(shù)與本科院校采用的教材內(nèi)容區(qū)別不大,頂多在一些較難的知識(shí)點(diǎn)上有所簡(jiǎn)化,并沒(méi)有一本完全根據(jù)高職學(xué)生特點(diǎn)所編寫的教材。普通本科的C語(yǔ)言教學(xué)強(qiáng)調(diào)理論,強(qiáng)調(diào)邏輯思維,這對(duì)本科生是適合的,然而絕大多數(shù)高職生在理論分析、邏輯思維方面水平較低,這樣的教材對(duì)他們來(lái)說(shuō),難度過(guò)大,學(xué)習(xí)起來(lái)困難,而且過(guò)于理論化的內(nèi)容與高職強(qiáng)調(diào)面向應(yīng)用的教學(xué)目標(biāo)也不太協(xié)調(diào),學(xué)生上課聽不懂,教材又過(guò)于枯燥,學(xué)習(xí)興趣自然就會(huì)大大減弱。
開發(fā)環(huán)境的問(wèn)題 在C語(yǔ)言開發(fā)環(huán)境的選擇上,很多學(xué)校仍然非常落后。計(jì)算機(jī)編程技術(shù)的發(fā)展一日千里,在實(shí)際開發(fā)領(lǐng)域,各種新的開發(fā)工具早已得到了普遍應(yīng)用,如VC6.0、VS2005、VS2008開發(fā)環(huán)境,GCC編譯環(huán)境,C99標(biāo)準(zhǔn)等。然而很多學(xué)校居然還在沿用20世紀(jì)90年代的基于DOS操作系統(tǒng)的TC2.0開發(fā)環(huán)境,這一環(huán)境界面簡(jiǎn)陋,使用困難,特別是對(duì)于C語(yǔ)言的一些特性的支持并不完善,使用這樣的開發(fā)環(huán)境,無(wú)謂地加大了學(xué)生學(xué)習(xí)的難度,且完全與實(shí)際脫節(jié),學(xué)生有所抵觸也是正常的。
教法的問(wèn)題 在教法上,目前絕大多數(shù)高職院校仍然采用傳統(tǒng)的課堂講授加上機(jī)實(shí)驗(yàn)的方法,教師在課堂上教授基本的語(yǔ)法、語(yǔ)句等理論知識(shí),學(xué)生在上機(jī)實(shí)驗(yàn)時(shí)對(duì)書上的程序進(jìn)行驗(yàn)證。由于目前絕大多數(shù)教師都缺少企業(yè)實(shí)踐的經(jīng)歷,在課堂上也沒(méi)有辦法結(jié)合實(shí)際給學(xué)生講授C語(yǔ)言的具體應(yīng)用,只能機(jī)械地灌輸。同樣,學(xué)生上機(jī)時(shí)也只能機(jī)械地驗(yàn)證書上一些簡(jiǎn)單的例題和書后習(xí)題。這些習(xí)題考查的是語(yǔ)法知識(shí),與實(shí)際應(yīng)用基本無(wú)關(guān),學(xué)生興趣也不是很大。
考核方法的問(wèn)題 對(duì)于C語(yǔ)言的考核,各?;静捎玫娜匀皇莻鹘y(tǒng)的卷面考核方式,部分學(xué)校還把計(jì)算機(jī)二級(jí)考試與課程考核結(jié)合起來(lái)。不可否認(rèn),這樣的考核方式對(duì)于學(xué)生掌握基本的語(yǔ)法理論知識(shí)是有益的,然而對(duì)實(shí)際軟件開發(fā)能力的培養(yǎng)是毫無(wú)用處的。特別是C語(yǔ)言二級(jí)考試,其對(duì)于某些語(yǔ)法細(xì)節(jié)的考查已經(jīng)到了有些偏執(zhí)的地步,很多東西在實(shí)際中根本不可能碰到,過(guò)于糾纏這些細(xì)節(jié)只能使學(xué)生失去學(xué)習(xí)的興趣。另外,這些考試基本上對(duì)于編程題都是按步給分,一道題目如果大部分都對(duì)了也能得到不錯(cuò)的分?jǐn)?shù)。然而,在實(shí)際開發(fā)中,即使少一個(gè)分號(hào),最終的程序也是沒(méi)有辦法運(yùn)行的。因此,目前的考核方式使得大多數(shù)學(xué)生實(shí)際編程能力很差。即使是考試成績(jī)很好的學(xué)生,讓他真正上機(jī)編程序時(shí)也是錯(cuò)誤百出。
為了進(jìn)一步加強(qiáng)和改進(jìn)C語(yǔ)言的教學(xué)效果,對(duì)照存在的問(wèn)題,筆者認(rèn)為,有下列幾點(diǎn)改進(jìn)迫切需要進(jìn)行:(1)盡快編寫適應(yīng)高職學(xué)生特點(diǎn)、符合高職教育目標(biāo)的C語(yǔ)言教材;(2)各校應(yīng)加大投入,升級(jí)機(jī)房軟、硬件配置,盡量采用業(yè)界流行的主流版本的C語(yǔ)言開發(fā)環(huán)境;(3)加大計(jì)算機(jī)專業(yè)專任教師的培訓(xùn)力度,如有可能,最好能通過(guò)校企合作,讓教師深入一線,參與實(shí)際項(xiàng)目的開發(fā),才能在本質(zhì)上提高C語(yǔ)言的課程教學(xué)水平;(4)改進(jìn)考核方式,加大上機(jī)考試的比重,取消按知識(shí)點(diǎn)、按步驟給分的傳統(tǒng)做法,改為按程序最終運(yùn)行結(jié)果判定成績(jī),迫使學(xué)生注重實(shí)際動(dòng)手能力的培養(yǎng)。
綜上所述,C語(yǔ)言在高職計(jì)算機(jī)專業(yè)教學(xué)中的基礎(chǔ)核心地位絕對(duì)不應(yīng)該被動(dòng)搖,對(duì)于當(dāng)前C語(yǔ)言教學(xué)中存在的種種問(wèn)題,各高職院校應(yīng)加強(qiáng)教學(xué)改革,并積極開展合作和交流,在以后的教學(xué)中逐步改進(jìn)。
[1]郭美云.高職《C程序設(shè)計(jì)》教材改革探討[J].當(dāng)代教育論壇,2008,(1).
[2]沈建國(guó).淺談高職院校C語(yǔ)言課程的教學(xué)改革[J].無(wú)錫商業(yè)職業(yè)技術(shù)學(xué)院學(xué)報(bào),2008,8(3).
[3]段群,梁新月.高職《C語(yǔ)言》課程教學(xué)存在問(wèn)題及改革思路[J].福建電腦,2009,(1).
(本文責(zé)任編輯:尚傳梅)
G712
A
1672-5727(2010)10-0119-02
張亮(1981—),男,回族,江蘇揚(yáng)州人,工學(xué)碩士,揚(yáng)州工業(yè)職業(yè)技術(shù)學(xué)院助教,主要從事計(jì)算機(jī)專業(yè)課程教學(xué)及科研。