摘 要: 《算法與程序設(shè)計》內(nèi)容復(fù)雜、枯燥。在教學(xué)過程中,學(xué)生容易產(chǎn)生許多困惑,不能理解相應(yīng)的教學(xué)內(nèi)容。經(jīng)過細致分析,作者發(fā)現(xiàn)整個教材結(jié)構(gòu)、教材內(nèi)容有很大問題,從學(xué)生的認知規(guī)律上來看,相關(guān)知識點不好掌握。為了解決此問題,建議優(yōu)化幾部分教材內(nèi)容,從而達到高質(zhì)量教學(xué)的目的。
關(guān)鍵詞: Visual Basic 6.0 《算法與程序設(shè)計》 窮舉法 優(yōu)化
由于本地區(qū)教學(xué)環(huán)境的局限性,選修模塊選擇了《算法與程序設(shè)計》這本書。本書主要選用Visual Basic 6.0(以下簡稱VB6.0)作為程序設(shè)計語言。在本教材中,我們可以看到內(nèi)容抽象、枯燥、邏輯性強等特點,特別發(fā)現(xiàn)存在著不合理的教學(xué)結(jié)構(gòu)和教學(xué)內(nèi)容,這樣的教學(xué)結(jié)構(gòu)和教學(xué)內(nèi)容對于從事多年教學(xué)工作、經(jīng)驗豐富的教師來說,也是無從下手的。常常講完一節(jié)課的內(nèi)容,學(xué)生還是不知道在講些什么,更不知道如何編寫程序來完成任務(wù)。我一開始以為是在教學(xué)方法或上有問題,而后發(fā)現(xiàn)是教材有些問題。自從調(diào)整了以后,發(fā)現(xiàn)學(xué)生的思路很清晰,更容易概念的理解,也能更好地掌握教材的知識點,在實踐上運用自如。為了使教學(xué)過程更加明朗,我談?wù)剝?yōu)化教材的建議。
一、空缺內(nèi)容,填補有序
在《算法與程序設(shè)計》教材中,第二章是程序設(shè)計ABC,首先在第一節(jié)里介紹了我們的“創(chuàng)作室”VB6.0的窗口界面。在介紹此內(nèi)容的時候,我借用了“歡迎進入VB世界!”的例子來介紹窗口,主要是通過程序的實現(xiàn)過程來完成內(nèi)容的講解。我認為這部分內(nèi)容充其量是在介紹這個程序?qū)崿F(xiàn)的過程,和第一章第三節(jié)初試身手,體驗編程的內(nèi)容很相似,該詳細介紹VB6.0窗口的組成部分及相關(guān)的功能,只有了解了窗口組成部分及相關(guān)的功能,學(xué)生才能更好地使用此軟件去編寫程序。建議在了解圖2-1后再增加一些內(nèi)容,這些內(nèi)容是關(guān)于標題欄、菜單欄、工具欄、工程管理器、窗體設(shè)計器、屬性窗口、代碼窗口、工具箱、窗體布局窗口的簡單介紹。比如說:標題欄除了顯示正在開發(fā)的工程名之外,還顯示系統(tǒng)的工作狀態(tài)。系統(tǒng)的工作狀態(tài)有設(shè)計態(tài)(Design):編輯代碼和設(shè)計界面時的狀態(tài);運行態(tài)(Run):運行應(yīng)用程序時的狀態(tài);中止態(tài)(Break):程序暫停執(zhí)行時的狀態(tài)。類似于這樣,可以把經(jīng)常用到的一些功能結(jié)合例子介紹給學(xué)生,這樣就不會讓學(xué)生不知如何下手。
二、循序漸進,調(diào)整順序
在《算法與程序設(shè)計》教材中,我發(fā)現(xiàn)第二章的內(nèi)容主要介紹的是VB6.0的基礎(chǔ)知識,但是在第二章缺少的一部分重要的內(nèi)容卻在第四章的第二節(jié)中做了介紹。我認為這部分內(nèi)容很重要,是VB6.0的基礎(chǔ)知識的核心,也是學(xué)生理解VB6.0是面向?qū)ο蟪绦蛟O(shè)計語言的關(guān)鍵。所謂面向?qū)ο蟮某绦蛟O(shè)計(Object Oriented Programming,OOP) 是一種以對象為基礎(chǔ),以事件來驅(qū)動對象執(zhí)行的程序設(shè)計,將解決問題的過程看作是一個對象分類演繹的過程。所以我認為缺少的內(nèi)容包括對象、類、屬性、方法、事件、事件驅(qū)動。我建議這部分內(nèi)容可以提前到第二章里面去講解,可以放在認識完“創(chuàng)作室”后面來講。這些名詞有些抽象,不好理解,這時可以借助一些生活的例子來講解,但是要清晰地介紹這些名詞的意思。雖然在第二章第一節(jié)中可視化編程的一般步驟里介紹一些這方面的內(nèi)容,但是我認為應(yīng)該把第四章的第二節(jié)內(nèi)容拉過來,做獨立內(nèi)容。只有把這部分的內(nèi)容介紹清楚了,學(xué)生才能真的明白VB6.0軟件的兩個特點:可視化和面向?qū)ο?,也才能真正懂得編程,了解怎樣去編程?br/> 三、從簡到難,層層遞進
在本書的第三章里,介紹了用解析法、窮舉法、遞歸法解決問題,在講解這些方法的時候,本書用了一些例子向?qū)W生介紹這些方法,問題就出在這些例子上,方法很好理解。但是恰恰是這些例子把學(xué)生迷惑了,該類算法對于學(xué)生來講是陌生的,學(xué)生還沒理解,再去考慮復(fù)雜的實例,從學(xué)生認知規(guī)律上來看,相關(guān)知識點是不易掌握的。所以我建議在介紹這些方法的時候,可以考慮降低難度,從簡單入手,逐漸增加難度。但是前提條件是,在學(xué)生掌握知識點,理解相關(guān)內(nèi)容后,再提高難度,這樣才能滿足“貧富差距”的學(xué)生。比如說在介紹窮舉法時,先介紹概念,所謂的窮舉法也叫枚舉法、列舉法,將求解對象一一列舉出來;然后逐一加以分析、處理,并驗證結(jié)果是否滿足給定的條件,窮舉完所有對象,問題將最終得以解決,最后再舉一簡單的例子:水仙花數(shù)。水仙花數(shù)是指一個三位數(shù),它的個位數(shù)的立方和正好等于該數(shù)本身。
四、友好語言,人文幫助
在計算機語言界,VB6.0可謂是友好的語言,它的友好表現(xiàn)在它的可視化特點。所謂的可視化程序設(shè)計是一種全新的程序設(shè)計方法,它主要是讓程序設(shè)計人員利用軟件本身所提供的各種控件,像搭積木式地構(gòu)造應(yīng)用程序的各種界面,再編寫少量的代碼就可以應(yīng)用程序。既然如此友好,教材也不能少了友好的幫助。我建議在第二章第二節(jié)可視化編程的一般步驟后應(yīng)該加一些幫助事項,給學(xué)生一些幫助和提醒,提醒學(xué)生在編寫程序的時候不容易犯錯。這方面的內(nèi)容可以包括:代碼輸入規(guī)則、編程注意事項,等等。比如在代碼輸入規(guī)則中,代碼按行輸入,一行代碼輸入完畢,換行輸入下一行代碼;代碼不區(qū)分字母大小寫(雙引號內(nèi)的字符串除外);代碼中除了中文字外,所有符號都必須在英文狀態(tài)下輸入;單引號后的內(nèi)容為注釋,不執(zhí)行,只是對該行代碼的文字說明,方便程序理解。我認為只有提供好的幫助,讓學(xué)生一早注意到容易犯錯的地方,才能讓學(xué)生在編程過程少犯錯,減少不必要的麻煩。
雖說“興趣是最好的老師”,但一本好的教材也是可以很好地指引學(xué)生向著成功的方向邁進的。當然要編好一本教材,前前后后要考慮的因素很多,本書也有作者要考慮的問題,我只是提出一些建議,最終的目標是讓學(xué)生更好地學(xué)習(xí)《算法與程序設(shè)計》,更好地培養(yǎng)創(chuàng)新意識,更好地提高信息素養(yǎng)。
參考文獻:
?。?]周黎,錢瑛.程序設(shè)計基礎(chǔ)——VB教程.人民郵電出版社,2008.
[2]李藝,董玉琦.算法與程序設(shè)計.北京:教育科學(xué)出版社,2004.
?。?]新智工作室.VB6.0中文版教程.電子工業(yè)出版社,2001.
[4]李立宗.VB程序設(shè)計教程.南開大學(xué)出版社,2009.