婁迎紅,焦亞冰
(1.山東廣播電視大學(xué),山東 濟(jì)南 250014;2.山東英才學(xué)院,山東 濟(jì)南 250104)
在計算機(jī)技術(shù)的發(fā)展中,出現(xiàn)過各種各樣的程序設(shè)計語言。從程序設(shè)計語言的發(fā)展過程來看,可以分為機(jī)器語言、匯編程序設(shè)計語言、高級程序設(shè)計語言(BASIC,F(xiàn)ORTRAN,PASCAL,C,C++,Prolog,Java,C#等)、數(shù)據(jù)庫管理語言(如SQL)、網(wǎng)絡(luò)數(shù)據(jù)交換語言(如XML)等。程序設(shè)計語言是高校計算機(jī)專業(yè)的必修課程,語言也經(jīng)歷了從低級語言到高級語言的發(fā)展,從面向過程到向面向?qū)ο蟮陌l(fā)展。但是一直以來,程序的運行基本上仍處于“黑盒工作”的狀況。在程序的設(shè)計運行過程中,程序員難以觀察到程序?qū)?shù)據(jù)處理和復(fù)雜的數(shù)據(jù)抽象關(guān)系之間的動態(tài)變化視圖,需要通過復(fù)雜的編程,才能顯示程序運行的結(jié)果。而可視化程序設(shè)計:以“所見即所得”的編程思想為原則,力圖實現(xiàn)編程工作的可視化,即隨時可以看到結(jié)果,程序與結(jié)果的調(diào)整同步。可視化編程是與傳統(tǒng)的編程方式相比而言的,這里的“可視”,指的是無須編程,僅通過直觀的操作方式即可完成界面的設(shè)計工作,是目前最好的Windows應(yīng)用程序開發(fā)工具。
將可視化程序設(shè)計引入程序設(shè)計語言教學(xué)中,可以使學(xué)生了解更加直觀,可以更好的提高教學(xué)效果[1]。
可視化程序設(shè)計最大的優(yōu)點是設(shè)計人員可以不用編寫或只需編寫很少的程序代碼,就能完成應(yīng)用程序的設(shè)計,這樣就能極大地提高設(shè)計人員的工作效率??梢暬绦蛟O(shè)計可以利用圖形技術(shù)將程序和數(shù)據(jù)對象可視化,并動態(tài)演示計算過程中數(shù)據(jù)變化和程序運行的瞬間狀態(tài)。
能進(jìn)行可視化程序設(shè)計的語言很多,比較常用的有微軟的 Visual Basic、Visual C++ 、中文 Visual Foxpro、Borland公司的Delphi等。每個語言本身都是“不可視”的,僅僅是語言而已;所謂“可視化”不過是支持該語言的IDE(Integrated Development Environment,集成開發(fā)環(huán)境)所提供的功能,可以在編窗口可以看到窗口效果的可視化操作。IDE集成內(nèi)容如圖1所示,是集成了代碼編寫功能、分析功能、編譯功能、debug功能等一體化的開發(fā)軟件套。
圖1 IDE集成圖
可視化程序設(shè)計在教學(xué)中可以分為編程可視化和算法可視化[2]。
編程可視化指的是程序在設(shè)計期和運行期都是可視的,而傳統(tǒng)的程序設(shè)計語言只有到程序編制完成后才能得到結(jié)果。即使是使用各類語言環(huán)境中所提供的排錯工具Debug,程序員只能查看程序斷點上部分變量的當(dāng)前值。因此,程序排錯測試需要耗費大量的人力和時間,使得軟件產(chǎn)品中測試成本是成本最高且隱藏錯誤最多的成本之一。而提高調(diào)試能力主要依賴程序員的悟性和長期積累的實踐經(jīng)驗??梢暬绦蛟O(shè)計克服了這一缺陷。程序員可以在編程過程中看到窗口的效果。
算法可視化指運用編程的手段將算法運行過程可視化??梢詼y試數(shù)據(jù)并觀看程序運行時變量前值的變化。
將可視化程序設(shè)計引入教學(xué)中,教師利用可視化編程可以展示程序運行時的動態(tài)圖像,可以測試數(shù)據(jù),對于學(xué)習(xí)程序設(shè)計語言的學(xué)生來說,可以建立完整的程序控制流程圖和數(shù)據(jù)處理的動態(tài)過程[3]。
本文利用Visual Basic這一個優(yōu)秀的程序設(shè)計語言來實現(xiàn)編程和算法運行的過程。
冒泡排序一直是學(xué)生在學(xué)習(xí)程序設(shè)計語言時常用的一個例子,但在教學(xué)過程中,很多學(xué)生對這個例子感到枯燥,算法難懂。利用Visual Basic編制可視化例子[4],可以讓學(xué)生對算法有更加直觀的了解[5]。圖一首先顯示的是數(shù)組進(jìn)行自動排序的過程,學(xué)生可以先選擇生成數(shù)組,然后選擇升序或者降序排列。就可以觀看冒泡排序的運算的動畫過程,通過這個實例,學(xué)生可以對原本枯燥的程序產(chǎn)生濃厚的學(xué)習(xí)興趣。如圖2所示
圖2 算法運行圖
圖2顯示,如果選擇顯示代碼這一項,就可以看到代碼和動畫過程同步顯示如圖3所示,學(xué)生面對的不再是枯燥的代碼,而是代碼和圖形,動畫的融合,學(xué)習(xí)更加直觀,更加生動。
圖3 算法動畫圖
以下代碼是實現(xiàn)冒泡排序可視化代碼。
通過本實例,學(xué)生可以更加直觀掌握冒泡排序算法,體現(xiàn)了可視化程序程序的編程可視化和算法可視化的特點。將Visual Basic可視化程序語言引入到程序設(shè)計語言教學(xué)中可以提高教學(xué)效果。
我國的高校教育發(fā)展非常迅速,近十年來以由已經(jīng)從精英教育向向大眾教育發(fā)展。計算機(jī)教育是高校教育的重要組成部分。面對規(guī)模宏大的計算機(jī)教育,應(yīng)采用可行的,積極的教育教學(xué)手段來應(yīng)對。而可視化程序設(shè)計對計算機(jī)程序設(shè)計語言的教學(xué)影響將是深遠(yuǎn)并且有意義的。隨著可視化程序設(shè)計語言的不斷發(fā)展,這種教學(xué)模式將會更加顯示出蓬勃的生命力和深遠(yuǎn)的前景。
[1]孫榮高.程序可視化技術(shù)在程序設(shè)計語言教學(xué)中的應(yīng)用探討[J].計算機(jī)教學(xué),2008(10):63-64.
[2]胡眾義,匡泰.談可視化程序設(shè)計教學(xué)[J].吉林教育,2008(31):58-59.
[3]王建明.計算機(jī)專業(yè)可視化編程課教學(xué)淺談[J].江蘇教育,2010(4):54.
[4]楊桂華.可視化編程語言Visual Basic程序設(shè)計的特點及教學(xué)方法[J].內(nèi)蒙古民族大學(xué)學(xué)報,2008(7):32-33.
[5]焦亞冰.教學(xué)評價數(shù)據(jù)挖掘中的關(guān)聯(lián)規(guī)則分析與設(shè)計[J].遼寧科技大學(xué)學(xué)報,2010(3):289-293.