趙 靜
(蘭州職業(yè)技術學院信息工程系,蘭州 730070)
算法演示在“數(shù)據(jù)結構”課程教學中的應用探討
趙 靜
(蘭州職業(yè)技術學院信息工程系,蘭州 730070)
算法是“數(shù)據(jù)結構”課程的重要內(nèi)容。就當前“數(shù)據(jù)結構”課程的教學現(xiàn)狀,討論了算法演示在“數(shù)據(jù)結構”課程教學中應用的可行性并提出了具體應用方法。
數(shù)據(jù)結構;算法演示;輔助教學
“數(shù)據(jù)結構”課程作為計算機及相關專業(yè)的專業(yè)基礎課,其教學歷來都受到各個高校的重視。該課程的培養(yǎng)目的就是培養(yǎng)學生編寫清晰、準確的算法和程序的能力。然而由于“數(shù)據(jù)結構”課程的內(nèi)容抽象難以理解,特別是算法部分的講解難度比較大,而且學生的學習和理解也比較困難,因此我們可以借助算法演示軟件這一輔助教學工具來降低算法講解教學中的難度。
算法演示以直觀的動畫演示界面將數(shù)據(jù)結構模型和算法的緊密聯(lián)系展現(xiàn)出來,是一種有效的、可用于課堂和課后的輔助教學手段,以此調動學生的積極性,激發(fā)學生的學習興趣,從而提高教師授課的效果,降低學生學習的難度。
目前在大多數(shù)高校該課程中算法內(nèi)容的教學方式主要是以教師和學生手動抄寫算法語句為主,沒有將算法在實驗中驗證,而且通常教師在講解時往往忽視了算法與數(shù)據(jù)結構模型的結合,這就使得算法與數(shù)據(jù)結構模型被孤立起來了。這樣的教學方式更增加了學生學習的難度。同這種傳統(tǒng)的教學方法相比,算法演示主要是利用可視化技術和多媒體工具,以生動直觀的畫面顯示方式輔助“數(shù)據(jù)結構”課程的教學,并具有如下的一些優(yōu)越性:
算法演示實驗是理論在實踐中的運用,能輔助教師講解理論內(nèi)容,幫助學生學習和理解。使用算法演示的目的之一就是提高“數(shù)據(jù)結構”課程的教學效率。只要教師和學生都充分合理地使用算法演示軟件,教學效率必然會有很大提高。
“數(shù)據(jù)結構”課程是一門專業(yè)基礎課,其先行課程都是一些泛泛的、無需實驗的理論課程,在這種情況下,學生的動手實踐能力還處于初級階段。算法演示能以其動畫性、新穎性吸引學生的注意力,激起學生動手實踐的求知欲,再加上教師的適當指導和鼓勵,一定程度上能幫助學生培養(yǎng)和提高動手實踐的能力。
大學生畢業(yè)后,無論是前往工作單位工作,還是繼續(xù)深造讀研究生,學習能力和科研能力都是必需的素質。算法演示強調學生的參與,調動學生的自學積極性,鍛煉學生的思維,幫助培養(yǎng)學習和科研能力,以適應以后的工作和學習生活。
“數(shù)據(jù)結構”課程中涉及的算法比較多,將所有的算法都進行演示是不現(xiàn)實的,因此為了幫助學生理解和學習,需要演示的算法必須精心選擇。一般遵循經(jīng)典的、典型的、能夠說明理論問題并且易于實現(xiàn)的原則去選擇要演示的算法。按照這一原則,我們精心挑選了一些算法,線性結構部分的算法有線性鏈表的建立、插入、刪除算法,順序棧的元素壓入和彈出、漢諾塔遞歸算法,鏈式隊列的建立、插入、刪除算法,三元組的轉置等;樹結構部分的算法有樹結點的插入、刪除操作,二叉樹的前序、中序、后序遍歷,線索二叉樹的構建,Huffman樹的構建,森林與二叉樹的相互轉換等;圖結構部分的算法包括圖的深度、廣度優(yōu)先搜索,Prim算法和 Kruskal算法,拓撲排序,Dijkstra算法等;還有一些綜合應用的算法,如線性表查找,二叉排序樹的生成、樹結點的插入和刪除,平衡二叉樹的節(jié)點插入,B+樹、B-樹的節(jié)點插入和刪除,折半查找算法,分塊查找算法,冒泡排序,直接插入排序,歸并排序,希爾排序,快速排序,簡單選擇排序,堆排序和堆的生成等。對于這些選出來的算法,可以按照“數(shù)據(jù)結構”課程的章節(jié)內(nèi)容順序進行組織,也可以按照獨立的知識單元進行組織,方便在教學時使用。
對于一個具體的算法,演示的內(nèi)容包括用某種高級語言編寫的算法程序,該算法所使用的數(shù)據(jù)結構模型,算法執(zhí)行過程中數(shù)據(jù)結構的動態(tài)變化和跟蹤等。從軟件的角度看,算法演示界面可以分為三個部分:算法動態(tài)跟蹤區(qū)、圖形化動態(tài)演示區(qū)以及全局控制。
算法動態(tài)跟蹤區(qū)要將用某種高級語言編寫的算法程序顯示在演示界面上,根據(jù)采用的教材不同,算法可以用類 C、類 PASCAL或類 JAVA等語言編寫,圖形化動態(tài)演示將算法操縱的數(shù)據(jù)結構模型用圖形的形式表達出來,控制部分是交互的接口,可自定義演示輸入,修改演示播放方式和效果等。
理論上數(shù)據(jù)結構模型的每一步變化都對應著算法的若干語句,其中并將其變化用圖形動態(tài)變化的方法形象直觀地展現(xiàn)出來;算法動態(tài)跟蹤要將圖形化動態(tài)演示與對應的算法執(zhí)行的語句同步顯示;這三個部分的相互關系如圖1所示。
需要說明的是,演示軟件的詳細設計和實現(xiàn)技術屬于軟件技術領域的內(nèi)容,不在本文的討論范圍內(nèi)。
算法演示是能夠將“數(shù)據(jù)結構”課程的抽象理論轉化為具體視覺感官的有力手段,通過將算法語句與具體的數(shù)據(jù)結構模型對應顯示來達到理論與實踐結合輔助“數(shù)據(jù)結構”課程教學的目的。而“教學”包含了教師教和學生學兩個方面,算法演示既適合于教師授課時使用,又適合于學生學習時使用。下面就從教師和學生兩個方面談談算法演示的運用。
教師要正確合理地使用算法演示。首先,同物理化學等課程入門時做實驗一樣,教師可將算法演示作為實驗內(nèi)容親自示范操作并講解。這種入門性的實驗內(nèi)容能夠激發(fā)學生的求知欲和學習積極性。其次,教師應將理論講解與實驗演示充分結合。理論是課程教學大綱要求的內(nèi)容,算法演示只是一種輔助教學的手段,不能用算法演示代替理論講解,而應該在講解完理論之后進行算法演示,在演示的同時還要貫穿理論內(nèi)容,體現(xiàn)出演示為理論講解服務的宗旨。再次,教師應當在演示過程中充分地調動學生的積極性,恰當?shù)亟M織學生討論,鼓勵學生提出問題,指導學生解決問題,通過這樣的方式逐漸提高學生分析問題和解決問題的能力。在這一過程中還要注意師生交流。最后,教師應該留給學生適當?shù)淖灾骺臻g讓學生在課后自己發(fā)揮,可以布置一些算法作業(yè)讓學生去實現(xiàn),或讓學生自行操作實驗,也可以讓學生嘗試實現(xiàn)算法演示的軟件部分,這樣有助于提高學生的動手能力。
學生一直以來是教學活動中的被動方,在實際的教學中往往是教師教而學生不學。當前的教學改革必須從根本上改變學生被動接受知識的局面。算法演示具有調動學生積極性的功能,學生應該主動地利用算法演示來提高學習效率。第一,學生應利用課余時間自己動手算法演示實驗,這樣不但能幫助學習和理解理論知識,還有利于培養(yǎng)學生思維能力,提高學生自學能力。第二,學生應在理解理論知識的基礎上多加思考,挖掘和學習深層知識,同時試著去尋找和發(fā)現(xiàn)算法演示存在的缺點和不足,通過自己的思考去發(fā)現(xiàn)問題,變被動學習為主動發(fā)問。第三,如果發(fā)現(xiàn)了理論知識或算法演示實驗的缺陷和不足,學生應積極與教師交流,尋求解決問題的方法。對于算法演示實驗的問題,學生應盡自己可能地去完善和改進算法演示,例如可以增加更多演示的算法,或用更為生動形象的方法演示等等。第四,學生應積極主動自己動手做實驗,無論是重復現(xiàn)有的實驗還是探尋新的實驗內(nèi)容,動手實踐對學生是大有裨益的,能加深學生的理論學習和理解,擴大知識面,培養(yǎng)文獻檢索和動手能力。此外還應該從算法演示實驗出發(fā),學著將實驗融入到其他課程的教學當中。第五,學生應常常同教師交流和溝通,敢于表達自己的看法和意見,共同促進課程教學效率的提高。
例如,當教師講解棧結構和遞歸時,演示算法是漢諾塔問題。演示界面上顯示有漢諾塔問題的遞歸算法。無須手動抄寫算法,教師可仔細分析已經(jīng)顯示的算法,闡明遞歸理論,說明遞歸算法的基本項與誘導項,闡述遞歸算法與棧調用的聯(lián)系等,這是理論講解的部分。接下來,教師要交待漢諾塔問題和解決漢諾塔問題的遞歸算法的思想,要注意驗證遞歸理論。然后是算法演示,教師必須親自操作,仔細講解遞歸算法的自身調用、棧結構的特點與壓棧和出棧的理論。在此過程中需要反復進行演示,可以更改演示的初始輸入。然后可由學生自行操作以調動學生的積極性和思維能力,并安排討論內(nèi)容,鼓勵學生思考發(fā)現(xiàn)問題。課后教師可布置學生編寫其他的遞歸算法來加深學生知識的理解和掌握并訓練學生編寫算法程序的能力。學生要積極主動學習,積極同教師交流,不斷地提高自己的專業(yè)能力。
為了適應當前教學改革的需要,“數(shù)據(jù)結構”課程的教學應該從傳統(tǒng)的單一理論講解向多方式多手段講解轉變。通過本文的討論和分析,我們認為應將算法演示盡量融入課程教學中,以改善目前課程教學狀況。此外由于“數(shù)據(jù)結構”課程的重要性,該課程的教學必須不斷探索創(chuàng)新,我們也將堅持不懈地進行該課程的教學和改革創(chuàng)新。
[1]朱燕紅.可視化軟件在數(shù)據(jù)結構教學中的應用[J].遠程教育雜志,2006,(5).
[2]李冬梅,劉平.淺談《數(shù)據(jù)結構》教學實踐與體會 [J].福建電腦,2007,(8).
[3]銀麗萍,黃同成.《數(shù)據(jù)結構》算法的可視化教學研究與實踐[J].邵陽學院學報:社會科學版,2008,(Z1).
[4]周澤輝.淺談高職學院數(shù)據(jù)結構課程的“算法驅動”教學[J].科教文匯,2009,(8).
TP311.12
A
1674-6341(2010)01-0109-02
2009-12-01
趙靜 (1981-),女,甘肅蘭州人,助教,從事計算機應用及計算機軟件研究。
責任編輯:柴造坡