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