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