龔 靜, 李英杰
(湖南環(huán)境生物職業(yè)技術(shù)學(xué)院 信息技術(shù)系,湖南衡陽 421005)
高職院校計(jì)算機(jī)專業(yè)都開設(shè)了一門或多門程序設(shè)計(jì)語言課程,程序設(shè)計(jì)語言是一門實(shí)踐性很強(qiáng)的課程,學(xué)生通過上機(jī)可掌握程序設(shè)計(jì)的一些基本方法和技巧,實(shí)驗(yàn)教學(xué)是該課程不可缺少的重要組成部分.根據(jù)學(xué)院現(xiàn)行教學(xué)大綱,實(shí)驗(yàn)課時(shí)所占比重為 1/2左右,這就要求學(xué)生不僅要在課堂中認(rèn)真聽講,還要在上機(jī)實(shí)驗(yàn)時(shí)認(rèn)真調(diào)試程序.筆者從事多年程序設(shè)計(jì)語言的理論、實(shí)驗(yàn)、實(shí)習(xí)教學(xué),不斷地總結(jié)和積累經(jīng)驗(yàn)并運(yùn)用于實(shí)驗(yàn)教學(xué)的實(shí)踐中,取得了較好的教學(xué)效果,這些經(jīng)驗(yàn)有助于學(xué)生在有限的教學(xué)時(shí)間內(nèi),以最快易懂的方式,掌握程序設(shè)計(jì)語言的內(nèi)容.下面淺談幾點(diǎn)看法與建議.
高職學(xué)校計(jì)算機(jī)專業(yè)的學(xué)生,他們的文化基礎(chǔ)差異較大,高考相差百多分,學(xué)生文化素養(yǎng)參差不齊,相當(dāng)部分學(xué)生有厭學(xué)情緒.興趣是最好的老師,要想學(xué)生能夠?qū)W好程序設(shè)計(jì)語言,培養(yǎng)學(xué)生的興趣就是關(guān)鍵.當(dāng)學(xué)生對所學(xué)的課程知識產(chǎn)生興趣和愛好時(shí),就會從內(nèi)心發(fā)出向往和求知的強(qiáng)烈欲望,產(chǎn)生積極、主動的學(xué)習(xí)動機(jī),那么學(xué)習(xí)過程也就不再是一種負(fù)擔(dān),而是一種愉快的體驗(yàn),學(xué)習(xí)效果也會事半功倍.為了避免學(xué)生出現(xiàn)對程序語言這門課的誤解,對它失去興趣.在剛上課程序設(shè)計(jì)課時(shí),老師可以演示用語言開發(fā)的相關(guān)程序,讓學(xué)生領(lǐng)悟到程序設(shè)計(jì)語言在今后專業(yè)崗位上的作用,多講一些程序設(shè)計(jì)語言在現(xiàn)實(shí)生活中的應(yīng)用.例如讓學(xué)生玩一些由程序設(shè)計(jì)語言開發(fā)設(shè)計(jì)的五子棋、俄羅斯方塊等游戲,或用計(jì)算器按要求計(jì)算求值,通過實(shí)例的有效引入,可以讓學(xué)生了解程序設(shè)計(jì)語言的實(shí)用性,培養(yǎng)學(xué)生的學(xué)習(xí)積極性.然后讓學(xué)生親自上機(jī)操作,驗(yàn)證運(yùn)行程序,逐漸培養(yǎng)他們的興趣,樹立學(xué)生學(xué)習(xí)程序設(shè)計(jì)語言的信心,激起學(xué)生學(xué)習(xí)的興趣[1].學(xué)生學(xué)習(xí)的積極性調(diào)動起來了,這對教師來說,就已經(jīng)成功了一半.
在編程時(shí),筆者強(qiáng)調(diào)代碼的規(guī)范性,它不僅可以改善程序質(zhì)量,簡化調(diào)試工作,而且對于程序的查錯是非常重要的,可以方便地確定發(fā)生錯誤的代碼段,然后認(rèn)真分析錯誤所在.良好的編程習(xí)慣主要體現(xiàn)在以下幾方面.
編程中要保存大量的數(shù)據(jù),需要定義許多變量,必須對這些變量進(jìn)行命名.在教學(xué)中發(fā)現(xiàn),學(xué)生由于英語詞匯量的匱乏或者缺乏規(guī)范意識,對每個(gè)變量不能起一個(gè)合適的名字,經(jīng)常使用諸如A,B,C,D之類的名字,這樣導(dǎo)致的后果有二:一是當(dāng)變量很多時(shí),不知道該名稱保存的是什么數(shù)據(jù),原因是名字沒有表示出該數(shù)據(jù)的含義;其二是當(dāng)應(yīng)用程序出現(xiàn)錯誤時(shí),查錯糾錯困難.所以對變量和對象的命名要基于容易記憶容易理解的原則,一般采用匈牙利命名法,其基本原則:變量名=屬性 +類型 +對象描述,其中每一對象的名稱都要求有明確含義,可以取對象名字全稱或名字的一部分,保證名字的連貫性是非常重要的[2].
例如,表單的名稱為 form,那么在匈牙利命名法中可以簡寫為 frm,則當(dāng)表單變量名稱為Switch board時(shí),變量全稱應(yīng)該為 frm Switchboard.這樣可以很容易從變量名看出 frm Switchboard是一個(gè)表單,同樣,如果此變量類型為標(biāo)簽,那么就應(yīng)命名成lbl Switchboard.可以看出,匈牙利命名法非常便于記憶,而且使變量名非常清晰易懂,這樣,增強(qiáng)了代碼的可讀性.
適當(dāng)?shù)卦诔绦蛑屑尤胱⑨尶梢栽鰪?qiáng)程序的可讀性,注釋對調(diào)試程序和編寫程序亦可起到很好的提示作用.學(xué)生在程序中書寫注釋是一種良好的習(xí)慣,在平時(shí)學(xué)習(xí)和實(shí)踐時(shí)要注意培養(yǎng)這種良好的素養(yǎng).
在編寫程序解決較復(fù)雜的問題時(shí),為了使整個(gè)程序結(jié)構(gòu)清晰明了,通常根據(jù)程序需要實(shí)現(xiàn)的主要功能,劃分為若干個(gè)相對獨(dú)立的部分,使其中每個(gè)部分解決一個(gè)較小的功能,把某個(gè)語句序列作為一個(gè)整體,寫成一個(gè)子程序.在程序的開始對子程序進(jìn)行說明(包括子程序的名稱和語句序列).這樣,就可以把一個(gè)復(fù)雜的程序設(shè)計(jì)為一個(gè)主程序和若干個(gè)子程序.在主程序中調(diào)用子程序,來完成程序的功能.這樣編寫的程序,結(jié)構(gòu)顯得清晰明了,便于理解和維護(hù).一般的高級程序設(shè)計(jì)語言提供兩種子程序:過程和函數(shù).
根據(jù)教學(xué)的要求和學(xué)生的認(rèn)識規(guī)律,為達(dá)到最佳的教學(xué)效果,將實(shí)驗(yàn)分成驗(yàn)證性、綜合性和設(shè)計(jì)性實(shí)驗(yàn)等不同層次,使教學(xué)內(nèi)容更符合學(xué)生的實(shí)際和各專業(yè)后續(xù)課程的需要.
驗(yàn)證性實(shí)驗(yàn)包括基本操作技能訓(xùn)練實(shí)驗(yàn)和基本方法原理驗(yàn)證實(shí)驗(yàn)兩類,主要目的是使學(xué)生掌握必要的實(shí)驗(yàn)基本知識、實(shí)驗(yàn)基本技能和實(shí)驗(yàn)基本方法;掌握程序的編輯、編譯、運(yùn)行過程;掌握程序凋試方法和步驟;掌握程序調(diào)試時(shí)出現(xiàn)錯誤信息的含義和解決方法,為以后的實(shí)驗(yàn)打下基礎(chǔ).其占實(shí)驗(yàn)總課時(shí)的 50%.
綜合性實(shí)驗(yàn)是將各章節(jié)基本原理、基本課程訓(xùn)練和基本實(shí)驗(yàn)方法綜合在一起,給出較為詳盡的實(shí)驗(yàn)方案,讓學(xué)生在完成實(shí)驗(yàn)的基礎(chǔ)上,以全面培養(yǎng)學(xué)生的程序設(shè)計(jì)能力.此類實(shí)驗(yàn)難度中等,占實(shí)驗(yàn)總課時(shí)的 20%.
設(shè)計(jì)性實(shí)驗(yàn)是指學(xué)生在經(jīng)過全面的基礎(chǔ)訓(xùn)練后,按照給定的實(shí)驗(yàn)要求,運(yùn)用所學(xué)知識,通過查閱資料,獨(dú)立(或在教師指導(dǎo)下)撰寫實(shí)驗(yàn)方案,擬定實(shí)驗(yàn)步驟,上機(jī)完成實(shí)驗(yàn).例如在一門課程完成后進(jìn)行課程設(shè)計(jì).設(shè)計(jì)性實(shí)驗(yàn)提高了學(xué)生的學(xué)習(xí)主動性和創(chuàng)造性,進(jìn)行了科學(xué)實(shí)驗(yàn)全過程的初步訓(xùn)練,有利于培養(yǎng)學(xué)生的自學(xué)創(chuàng)新能力,科學(xué)思維能力和知識的綜合運(yùn)用能力.設(shè)計(jì)性實(shí)驗(yàn)占實(shí)驗(yàn)總課時(shí)的 30%,無論是哪一類型的實(shí)驗(yàn),實(shí)驗(yàn)課結(jié)束后,學(xué)生必須寫出實(shí)驗(yàn)報(bào)告,實(shí)驗(yàn)指導(dǎo)教師根據(jù)每個(gè)學(xué)生實(shí)驗(yàn)課前的預(yù)習(xí)情況、實(shí)驗(yàn)課中程序調(diào)試能力以及實(shí)驗(yàn)報(bào)告的質(zhì)量評定實(shí)驗(yàn)分?jǐn)?shù).實(shí)驗(yàn)報(bào)告的主要內(nèi)容是:實(shí)驗(yàn)題目、實(shí)驗(yàn)?zāi)康?、?shí)驗(yàn)內(nèi)容、實(shí)驗(yàn)過程.實(shí)驗(yàn)過程包括:算法的設(shè)計(jì)思想(框圖),程序代碼;上機(jī)實(shí)踐:輸入內(nèi)容,得到結(jié)果;過程分析:在哪里出現(xiàn)錯誤,機(jī)器提示類型,怎樣改正等內(nèi)容.
在教學(xué)中經(jīng)常存在這樣一種現(xiàn)象:很多學(xué)生對語法、結(jié)構(gòu)等知識掌握得很好,但一旦碰到實(shí)際問題就束手無策,不知道如何用學(xué)到的知識解決實(shí)際問題,其實(shí)這是算法能力欠缺的一種表現(xiàn),教師經(jīng)常注重于分析每條語句的含義,卻忽略了算法描述過程的展現(xiàn),造成學(xué)生知其然不知其所以然.實(shí)際上,在程序設(shè)計(jì)語言中,算法是編程的精髓,有了算法,即有了編程的方法和步驟.如果學(xué)生掌握了良好的算法設(shè)計(jì)能力,也就掌握了釣魚的本領(lǐng),無論遇到什么問題都可以很好的解決[3].那么在實(shí)驗(yàn)教學(xué)中可以通過多種方法培養(yǎng)學(xué)生的算法設(shè)計(jì)能力.
(1)實(shí)驗(yàn)課中講授并演示常用的算法.算法有很多種,學(xué)生一般只要掌握常用的就可以滿足編寫模塊的需要;
(2)在實(shí)驗(yàn)教學(xué)鼓勵領(lǐng)學(xué)生多閱讀程序,分析過程,吸取他人的經(jīng)驗(yàn)和成熟的算法,使學(xué)生少走彎路或不走彎路;
(3)開展實(shí)踐性學(xué)習(xí),引導(dǎo)學(xué)生積極參與編程實(shí)踐,促進(jìn)思維的飛躍,在課程結(jié)束后舉行了課程設(shè)計(jì)和程序設(shè)計(jì)大賽.讓學(xué)生親自動手解決具有一定難度的實(shí)際問題,為之設(shè)計(jì)合適的算法,經(jīng)過實(shí)踐去培養(yǎng)學(xué)生的創(chuàng)新意思、應(yīng)用意識和探究能力[4].這些意識和能力一旦形成,就會使學(xué)生利用程序設(shè)計(jì)語言分析與解決實(shí)際問題能力得到很快的提高.
在教學(xué)中,對于那些“吃不飽”的學(xué)生,可以介紹一些書籍給他們,并指導(dǎo)他們實(shí)踐.而對那些“吃不了”的學(xué)生要因勢利導(dǎo),及時(shí)鞏固所學(xué)內(nèi)容.實(shí)驗(yàn)教學(xué)過程中,實(shí)驗(yàn)指導(dǎo)教師根據(jù)學(xué)生具體情況對各層次學(xué)生提出不同的要求,使所有學(xué)生通過實(shí)驗(yàn)課都能“吃飽、吃好”.在實(shí)驗(yàn)課中,筆者每次都為學(xué)生出一套上機(jī)實(shí)驗(yàn)題目:其中包括易、中、難和附加各一題.多數(shù)學(xué)生應(yīng)當(dāng)完成易、中難度的實(shí)驗(yàn)題目,部分學(xué)生根據(jù)個(gè)人能力完成難和附加題.這樣以來可以使學(xué)生在實(shí)驗(yàn)教學(xué)過程都獲得程序設(shè)計(jì)方法和上機(jī)調(diào)試能力的提高,讓學(xué)生在編制程序和上機(jī)調(diào)試過程中不斷總結(jié)、鞏固,達(dá)到學(xué)會方法、記住語法規(guī)則,提高設(shè)計(jì)技巧的目的.
程序設(shè)計(jì)語言本身是一門實(shí)踐性比較強(qiáng)的課程,利用多媒體手段可以演示一些復(fù)雜問題的操作過程,也可以形象化將一些抽象問題展示給學(xué)生.首先教師通過多媒體軟件制作工具,可以將這此問題制作成演示程序,發(fā)布在教學(xué)網(wǎng)站上讓學(xué)生訪問和學(xué)習(xí).例如程序的編輯、編譯、調(diào)試和運(yùn)行過程;程序的動態(tài)變化過程,例如程序執(zhí)行過程中的輸入輸出及內(nèi)存變化.其次,可以利用教學(xué)網(wǎng)站,解答學(xué)生的所提出的問題,也可以發(fā)表教師對某些問題的見解和建議.布置作業(yè)和實(shí)驗(yàn)內(nèi)容,學(xué)生將作業(yè)和實(shí)驗(yàn)報(bào)告上傳到網(wǎng)站,教師可以在網(wǎng)上點(diǎn)評作業(yè)和實(shí)驗(yàn)報(bào)告,并提供多種解題思路給學(xué)生.再次,師生們可利用教學(xué)網(wǎng)站,可將語言學(xué)習(xí)中的經(jīng)驗(yàn)、心得以文字的形式進(jìn)行網(wǎng)上交流,使師生相互改進(jìn),達(dá)到師生的學(xué)習(xí)過程中的全方位互動.因此,通過以上辦法,可以集跬步以成千里,逐漸完善既有的教學(xué)風(fēng)格,發(fā)展探索新的教學(xué)方法和思路.
計(jì)算機(jī)語言是一門實(shí)踐性很強(qiáng)的編程課程,它不僅要求學(xué)生牢固掌握基礎(chǔ)知識、基本概念,而且更重視培養(yǎng)學(xué)生的實(shí)際編程能力.建立一套適合程序設(shè)計(jì)語言實(shí)驗(yàn)教學(xué)特點(diǎn)的實(shí)驗(yàn)考核制度和對學(xué)生成績的評價(jià)方法,其核心是突出“加強(qiáng)素質(zhì)提高和能力培養(yǎng)、循序漸進(jìn)、因材施教”的宗旨[5],真實(shí)地反映出學(xué)生達(dá)到的實(shí)際實(shí)驗(yàn)的水平和層次.實(shí)驗(yàn)考核要求學(xué)生應(yīng)能較獨(dú)立地上機(jī)完成設(shè)計(jì)的實(shí)驗(yàn),教師可給予適當(dāng)輔導(dǎo).驗(yàn)證性實(shí)驗(yàn)根據(jù)要求提交實(shí)驗(yàn)成果軟件,設(shè)計(jì)性實(shí)驗(yàn)提交實(shí)驗(yàn)報(bào)告和實(shí)驗(yàn)成果軟件.實(shí)驗(yàn)作業(yè)應(yīng)在布置后 1周內(nèi)完成,遲交或缺交作業(yè)的次數(shù)不得多于作業(yè)總次數(shù)的 20%,否則將影響最終成績的評定.提倡并鼓勵與同學(xué)討論作業(yè),但最終必須獨(dú)立完成,抄襲或復(fù)制其他同學(xué)作業(yè)者,該次作業(yè)成績以 0分計(jì),被抄襲或復(fù)制者當(dāng)次作業(yè)成績酌情處理.對學(xué)生實(shí)驗(yàn)成績的評定不僅根據(jù)完成的驗(yàn)證性實(shí)驗(yàn)、綜合性實(shí)驗(yàn)和設(shè)計(jì)性實(shí)驗(yàn)的情況,還要兼顧到完成開放性實(shí)驗(yàn)的學(xué)生表現(xiàn)來進(jìn)行評價(jià),對于完成開放性實(shí)驗(yàn)的學(xué)生可予以適當(dāng)加分.實(shí)驗(yàn)總成績占課程總成績的 40%.
隨著計(jì)算機(jī)軟件技術(shù)的日新月異,社會對軟件技術(shù)人才也日益需要.對于計(jì)算機(jī)專業(yè)的學(xué)生都應(yīng)具備一定的程序設(shè)計(jì)能力.學(xué)會一種計(jì)算機(jī)語言,掌握編程思想,對于學(xué)習(xí)其它計(jì)算機(jī)語言可以起到觸類旁通的作用.而學(xué)習(xí)計(jì)算機(jī)語言課程當(dāng)然離不開上機(jī)實(shí)踐環(huán)節(jié),否則只是紙上談兵,只有通過實(shí)踐,才能真正的學(xué)會使用語言來解決各種實(shí)際問題.因而按照程序設(shè)計(jì)語言課程特點(diǎn),適應(yīng)時(shí)代的需要,需不斷探索適合培養(yǎng)學(xué)生分析問題、解決問題和培養(yǎng)創(chuàng)新思維能力的實(shí)驗(yàn)教學(xué)方法.
[1] 龔 靜.問題導(dǎo)向?qū)W習(xí)在計(jì)算機(jī)教學(xué)中的應(yīng)用[J].西北醫(yī)學(xué)教育,2008,(1):103-105.
[2] 易福華.Visua lBasic典型系統(tǒng)實(shí)戰(zhàn)與解析[M].北京:電子工業(yè)出版社,2007.
[3] 張俊華.實(shí)驗(yàn)教學(xué)培養(yǎng)學(xué)生創(chuàng)新能力的研究與實(shí)踐[J].教學(xué)研究,2006,(4):81-83.
[4] 艾長春.高職程序設(shè)計(jì)課堂教學(xué)的思考[J].甘肅科技,2008,(4):175-176.
[5] 盧向群.程序設(shè)計(jì)語言課程創(chuàng)新能力培養(yǎng)探析[J].中央民族大學(xué)學(xué)報(bào)(自然科學(xué)版),2007,16(2):185-188.