高文超 周法國
摘 要:C++是高等學(xué)校廣泛使用的教學(xué)語言,并對后續(xù)專業(yè)課程的學(xué)習(xí)起到重要的鋪墊作用。該文結(jié)合對非計(jì)算機(jī)專業(yè)講授C++課程及實(shí)驗(yàn)的經(jīng)驗(yàn),對目前高校非計(jì)算機(jī)專業(yè)C++課程教學(xué)中存在的主要問題進(jìn)行研究和探討,并提出相應(yīng)的改進(jìn)措施。實(shí)踐表明這些原則和方法增強(qiáng)了學(xué)生的積極性,較好的提高了教學(xué)效果,值得推廣。
關(guān)鍵詞:C++語言程序設(shè)計(jì) 非計(jì)算機(jī)專業(yè) 教學(xué)方法
中圖分類號:G642 文獻(xiàn)標(biāo)識碼:A 文章編號:1674-098X(2014)04(b)-0122-02
當(dāng)今,社會信息化全面推進(jìn),各行各業(yè)都受到計(jì)算機(jī)的強(qiáng)烈影響,從而對人才的計(jì)算機(jī)水平和能力的要求越來越高。此時(shí),非計(jì)算機(jī)專業(yè)的人才如果能自行開發(fā)計(jì)算機(jī)程序解決專業(yè)中的問題,將是提高自身競爭力的一個重要手段。為此,現(xiàn)在很多高校都已經(jīng)將程序設(shè)計(jì)作為理工科非計(jì)算機(jī)專業(yè)學(xué)生的必修課程之一。該文結(jié)合筆者為數(shù)學(xué)、電氣及其自動化等非計(jì)算機(jī)專業(yè)學(xué)生講授面向?qū)ο蠹夹g(shù)與C++程序設(shè)計(jì)課程與實(shí)驗(yàn)指導(dǎo)的經(jīng)驗(yàn),針對當(dāng)前高校非計(jì)算機(jī)專業(yè)面向?qū)ο蟪绦蛟O(shè)計(jì)(C++)教學(xué)存在的問題,從教學(xué)內(nèi)容的調(diào)整、教學(xué)方法的改進(jìn)和學(xué)生自學(xué)能力的培養(yǎng)等方面進(jìn)行了探討。
1 理工類學(xué)校數(shù)學(xué)專業(yè)開設(shè)C++課程的必要性
1.1 培養(yǎng)交叉學(xué)科人才
計(jì)算機(jī)與數(shù)學(xué)、電氣工程、金融商務(wù)等結(jié)合,是社會發(fā)展長期積累的智慧結(jié)晶。我們認(rèn)為,在高等學(xué)校中,有效的計(jì)算機(jī)及數(shù)學(xué)、電氣、金融相關(guān)學(xué)科的學(xué)習(xí)活動不能單純地分開進(jìn)行,這些課程的專業(yè)知識應(yīng)該相互滲透、相互融合,而在此過程中,學(xué)生要注重動手實(shí)踐、自主探索與合作交流,從而使自己的知識結(jié)構(gòu)和能力水平達(dá)到最佳效果,成為多學(xué)科交叉人才[1]。
1.2 需求更多就業(yè)機(jī)會
計(jì)算機(jī)人才是當(dāng)今社會急需的人才,制約計(jì)算機(jī)人才的瓶頸往往是算法、建模,但是對數(shù)學(xué)專業(yè)的學(xué)生來說,這些剛好涉及到自己的專業(yè)內(nèi)容。可是在數(shù)學(xué)專業(yè)的人才培養(yǎng)模式當(dāng)中計(jì)算機(jī)開發(fā)、編程的學(xué)習(xí)僅僅只是基礎(chǔ),還遠(yuǎn)遠(yuǎn)達(dá)不到行業(yè)的入門要求[2]。所以,調(diào)整學(xué)校中非計(jì)算機(jī)專業(yè)的培養(yǎng)模式以適應(yīng)社會的需求,可以為數(shù)學(xué)及其它專業(yè)的畢業(yè)生尋求更多的就業(yè)機(jī)會和更廣闊的發(fā)展空間。
2 非計(jì)算機(jī)專業(yè)C++教學(xué)中存在的問題
C++是在C語言的基礎(chǔ)上開發(fā)的一種集面向?qū)ο缶幊?、泛型編程和過程化編程于一體的編程語言。C++是適應(yīng)多方面需求的編程語言,在很多行業(yè)應(yīng)用廣泛。相對于JAVA,.NET來說,入門較難,而高等學(xué)校非計(jì)算機(jī)專業(yè)C++教學(xué)也存在著不少的問題。
2.1 學(xué)生重視不夠,缺乏學(xué)習(xí)的主動性
由于授課對象是非計(jì)算機(jī)專業(yè)的學(xué)生,他們認(rèn)為這門課程不是他們的專業(yè)范疇,自己不是學(xué)計(jì)算機(jī)專業(yè)的,不必自己編寫程序[3]。因此,學(xué)生對學(xué)習(xí)程序設(shè)計(jì)的認(rèn)識不足,從思想上缺乏足夠的重視,缺乏學(xué)習(xí)的主動性。
2.2 學(xué)生主動學(xué)習(xí)的精力不夠
在總學(xué)時(shí)有限的情況下,繁多且既有難度又有深度的教學(xué)內(nèi)容,導(dǎo)致教學(xué)過程中理論和上機(jī)實(shí)踐的時(shí)間不足,學(xué)生對知識點(diǎn)不能很好地掌握。同時(shí)由于自己專業(yè)本身的課業(yè)負(fù)擔(dān)致使對這門課程不能全身心投入。
2.3 學(xué)生學(xué)習(xí)方法不正確
很多學(xué)生按照學(xué)習(xí)一般文科課程一樣去學(xué)習(xí)程序設(shè)計(jì),課前預(yù)習(xí)、按時(shí)上課、認(rèn)真聽講、仔細(xì)閱讀相關(guān)教材,但是一到寫程序的時(shí)候就顯得力不從心。其實(shí)這些學(xué)生并沒有真正掌握正確的學(xué)習(xí)程序設(shè)計(jì)的方法,忽視了上機(jī)實(shí)踐過程。
2.4 教師教學(xué)方法欠缺
學(xué)習(xí)程序設(shè)計(jì)的最好方法就是去上機(jī)寫程序,只有在寫程序、編譯、調(diào)試程序的過程中,才能對程序設(shè)計(jì)有更深入的理解。但在實(shí)際的教學(xué)過程中,因?yàn)槭谡n對象是非計(jì)算機(jī)專業(yè)的學(xué)生,許多老師很少教學(xué)生們?nèi)绾卫镁幾g器的調(diào)試工具對程序進(jìn)行排錯。很多學(xué)生一看見程序有很多編譯錯誤,就會產(chǎn)生畏懼感,對學(xué)習(xí)喪失了興趣[4]。
3 有效的解決方法
綜上所示,C++程序設(shè)計(jì)語言是一門既有難度又有深度的課程,非計(jì)算機(jī)專業(yè)的學(xué)生要學(xué)好它,不僅其自身的學(xué)習(xí)方法與學(xué)習(xí)態(tài)度是關(guān)鍵,教師好的教學(xué)方法同樣不可忽視。
3.1 激發(fā)學(xué)生的學(xué)習(xí)興趣,建立信心
上第一堂課時(shí),可以對C++語言的發(fā)展追本溯源,適時(shí)穿插對C++語言的發(fā)展做出突出貢獻(xiàn)的一些科學(xué)家的生平趣事,這樣可以在課程伊始就吸引學(xué)生的注意力。同時(shí),還可以演示有趣的C++語言程序,例如貪食蛇、排序算法的動畫演示等,讓學(xué)生認(rèn)識到學(xué)習(xí)這門課是非常實(shí)用并且十分有趣的,激發(fā)學(xué)生學(xué)習(xí)程序設(shè)計(jì)的興趣,推動后續(xù)知識的學(xué)習(xí)。
另外,要排除學(xué)生對程序設(shè)計(jì)語言的誤解,尤其是女生,多數(shù)會覺得編程是男生的強(qiáng)項(xiàng),這時(shí)可以給她們介紹世界上第一位程序員Ada,她就是一名女性。在開始的時(shí)候就鼓勵學(xué)生建立學(xué)習(xí)的信心,這將是整個課程學(xué)好的關(guān)鍵一步。
3.2 針對專業(yè)特點(diǎn),調(diào)整教學(xué)內(nèi)容
對于非計(jì)算機(jī)專業(yè)的學(xué)生來講首先要明確學(xué)習(xí)計(jì)算機(jī)語言對于本專業(yè)的重要性,然后架設(shè)一座計(jì)算機(jī)專業(yè)與其所學(xué)專業(yè)的橋梁,如果能將計(jì)算機(jī)技術(shù)靈活地運(yùn)用到本專業(yè)領(lǐng)域里,將會對兩個專業(yè)做出貢獻(xiàn)[5]。
一般非計(jì)算機(jī)專業(yè)開設(shè)的高級語言程序設(shè)計(jì)課程學(xué)時(shí)都比計(jì)算機(jī)專業(yè)的學(xué)時(shí)數(shù)少,讓學(xué)生掌握所有C++語言的知識點(diǎn)不現(xiàn)實(shí),應(yīng)針對不同專業(yè)的應(yīng)用背景和課程特點(diǎn),舉例說明編程在其專業(yè)中的具體應(yīng)用。例如數(shù)學(xué)專業(yè)主要是進(jìn)行數(shù)學(xué)計(jì)算和求解,我就會在平時(shí)上課或是布置上機(jī)實(shí)驗(yàn)時(shí)偏向于數(shù)學(xué)方面的應(yīng)用,這樣不僅鍛煉了學(xué)生的上機(jī)實(shí)踐,也讓學(xué)生體會到計(jì)算機(jī)對自己本專業(yè)的重要作用,進(jìn)一步激發(fā)他們學(xué)習(xí)C++的熱情。
3.3 程序調(diào)試能力的培養(yǎng)
很多學(xué)生因?yàn)橐粋€小小的符號錯誤或語法錯誤就導(dǎo)致程序無法編譯,更不能運(yùn)行顯示結(jié)果,這嚴(yán)重挫傷學(xué)生的自信心。因此,在授課過程中,必須同步提高學(xué)生的程序調(diào)試能力。同時(shí),鼓勵學(xué)生多上機(jī)排查程序的錯誤,利用編譯器的調(diào)試功能查出問題所在。
第一節(jié)課時(shí),我就先給學(xué)生介紹錯誤的種類,以及如何去調(diào)試程序、修改錯誤。帶領(lǐng)學(xué)生讀錯誤提示信息,分析錯誤產(chǎn)生的原因,定位錯誤,最終讓學(xué)生自己能夠根據(jù)錯誤提示進(jìn)行程序修改,克服恐懼心理。
3.4 加強(qiáng)理論聯(lián)系實(shí)際,多上機(jī)實(shí)踐多操作
上機(jī)實(shí)踐是C++程序設(shè)計(jì)語言教學(xué)過程中十分重要的組成部分。因此,如何加強(qiáng)上機(jī)實(shí)踐,提高實(shí)際操作的效果,并以此進(jìn)一步提高課堂教學(xué)質(zhì)量顯得非常重要。要提高學(xué)生自主學(xué)習(xí)的積極性,切不能讓學(xué)生只聽不練。
我們可以增加上機(jī)實(shí)驗(yàn)的學(xué)時(shí)和在最后成績中的比重,讓學(xué)生重視上機(jī)實(shí)踐過程。上機(jī)時(shí),需要教師多花精力去精心準(zhǔn)備實(shí)驗(yàn)內(nèi)容,操作內(nèi)容要新穎,要有專業(yè)性,要有針對性。最后要確保每次上機(jī)學(xué)生達(dá)到預(yù)期的操作效果,并要給出客觀公正的評價(jià)。
3.5 改進(jìn)教學(xué)評價(jià)體系
現(xiàn)在各大高校存在一個很大的弊病,就是在評價(jià)體系上注重試卷的考察,因此許多學(xué)生會采取考前背筆記、背重點(diǎn)的方式,這樣的課程結(jié)束后學(xué)生的收獲甚微[6]。我們對非計(jì)算機(jī)專業(yè)學(xué)生開設(shè)計(jì)算機(jī)應(yīng)用的課程不僅是為了使學(xué)生掌握好課本上的知識,而更重要的是培養(yǎng)學(xué)生們對于計(jì)算機(jī)知識的應(yīng)用能力和分析能力,解決實(shí)際中遇到問題的能力,因此就需要學(xué)校建立一套綜合性的多維評價(jià)體系,讓學(xué)生們真正能有所收獲。
我們可以采取削弱筆試成績,加重實(shí)際操作成績的方式來實(shí)現(xiàn)這一目標(biāo)。比如,在課程伊始就安排幾個較大的課程設(shè)計(jì)任務(wù)讓學(xué)生們分組進(jìn)行,課程結(jié)束時(shí)根據(jù)學(xué)生上交的設(shè)計(jì)報(bào)告給出相應(yīng)的分?jǐn)?shù),這項(xiàng)任務(wù)占總成績的30%。平時(shí)的上機(jī)實(shí)驗(yàn)占10%,卷面成績僅占60%。同時(shí),在期末考試中完善試題庫,且要實(shí)現(xiàn)教考分離,以充分保障考試的公平性。
4 結(jié)語
C++語言的內(nèi)容繁多,而非計(jì)算機(jī)專業(yè)又沒有安排很多的課時(shí)和課程設(shè)計(jì)環(huán)節(jié),因此在有限的課時(shí)內(nèi)不可能也不必要面面俱到,教師們必須突出重點(diǎn)、難點(diǎn)和實(shí)用性,不要過多拘泥于細(xì)節(jié),把教學(xué)重心放到教授學(xué)生如何正確運(yùn)用C++語言編寫程序上,從思想與算法上去學(xué)習(xí)面向?qū)ο缶幊?,具體的細(xì)節(jié)可以在今后的應(yīng)用中讓學(xué)生多查閱相關(guān)資料,慢慢體會。
參考文獻(xiàn)
[1] 王娟.各學(xué)科與計(jì)算機(jī)學(xué)科交叉融合的高校培養(yǎng)模式[J].福建電腦,2013(10):181-182.
[2] 張鳳敏,馬仲立.理工類高校數(shù)學(xué)專業(yè)畢業(yè)生就業(yè)探析[J].職業(yè)與教育,2013(14):95-97.
[3] 江波.二本院校非計(jì)算機(jī)專業(yè)C++程序設(shè)計(jì)教學(xué)方法和策略[J].中國科技信息,2013(3):144-145.
[4] 肖菁.高校非計(jì)算機(jī)專業(yè)C/C++教學(xué)的探索與實(shí)踐[J].現(xiàn)代計(jì)算機(jī),2011(12): 21-22.
[5] 王坤.非計(jì)算機(jī)專業(yè)C++程序設(shè)計(jì)教學(xué)研究[J].軟件導(dǎo)報(bào),2008(1):156-157.
[6] 劉恕華.高校非計(jì)算機(jī)專業(yè)應(yīng)用層面的教學(xué)初探[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2014(1):161-163.