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