解 輝
摘要 在總結以前教學經驗基礎上,結合二叉樹性質的實際教學需求,設計“理論講解——實例對照講解——游戲化理解與加深”的3步教學過程。通過實際的教學運用,證明該過程能夠滿足不同學習水平的學生理解和掌握該部分知識的要求,達到較好的教學效果。
關鍵詞 教學過程;實例;游戲;二叉樹
中圖分類號:G642.1 文獻標識碼:B 文章編號:1671-489X(2009)21-0030-02
Design for Teaching Process with Case and Game//Xie Hui
Abstract Based on prior teaching experience summary and combined with the binary tree teaching function needs, designed theory explain, examples contrast explain, the game of understanding and deepening, all the teaching process in 3 steps. Using this methods in teaching process, we prove that the process can meet the needs of different levels of students to understand and acquire this part of knowledge, to achieve better teaching results.
Key words teaching process; case; game; binary tree
Authors address Computer Department of Qinghai University, Xining, 810016, China
數據結構課程是高等院校計算機類專業學習的一門重要專業基礎課,而二叉樹是該門課程中非常重要的組成部分[1-5]。在講解二叉樹的一些性質時如果學生沒能取得很好的理解和掌握,將會對后續內容的學習有很大的影響。
比如在講解二叉樹的性質“對任何一棵二叉樹,葉結點個數n0,度為2的結點個數n2,則n0=n2+1”時,傳統過程為:“二叉樹的葉子數目為n0,度為2的節點數為n2,度為1的節點數為n1,那么該樹的節點數為n0+n1+n2;而樹中有邊n1+n2,這樣樹的總結點數又可表示為n1+n2+1;那么由n0+n1+n2=n1+2n2+1可推導出n0=n2+1或n2=n0-1的公式。”
這個數學推導過程很簡單,但是對學生理解不是太直觀,很難把n0和n2之間的邏輯關系形象化,更難把n0,n1和n2三者之間的邏輯關系形象化,經常發現學生有這樣的疑惑:為什么n0和n2之間就成了n2=n0-1或n0=n2+1的關系呢?雖然知道數學推導出來的公式沒有錯,但就是對它們之間這種數學關系的理解不是很明了、很直觀。而在邏輯性較強的理工科課程中,迷惑容易導致連鎖反映,容易打擊學生的積極性,影響后續的教學效果。相對這些學生,真正的教學目標沒有達到[4,6]。
關于數據結構教學,很多同行也結合實際做了相應的研究[3-5]。那么到底怎么樣講解可以使得學生容易接受并在腦子中有一個形象化、直觀化的印象和理解呢?其實理論若能與形象化的生活實例結合,往往可以收到良好的效果。尤其若能再融入一些游戲化的環節,則可以達到事半功倍的效果。在總結以前上課經驗的基礎上,設計“理論講解——實例對照講解——游戲化理解與加深”3步教學過程,基本能滿足不同學習水平學生的學習要求,達到較好的教學目標。
1 理論講解:生產消費的過程
1.1 介紹該性質,用傳統的方式進行公式推導
1.2 比喻形式的理論過程講解講解過程可以引入這樣的生產與消費比喻形式:每個結點有0、1或2個子樹,有子樹則必有對應的“邊”,稱該結點生產了“邊”,有幾個子樹則生產幾條邊;除根節點外,其他每個結點都有父節點,也有對應的“邊”與父節點相連,稱該結點消費了1條邊。
那么從總體生產消費的角度看,在任意一個二叉樹中,邊的生產:總計n0個度為0的葉子結點生產了0條邊,總計n1個度為1的結點生產了n1條邊,總計n2個度為2的結點生產了2*n2條邊,全部所有結點總計生產邊數為0+n1+2*n2。邊的消費:所有n0+n1+n2個結點中的每個非根結點都需要消費1條邊,這樣除根節點外總共需要消費n0+n1+n2-1條邊。由于整個樹中的每條邊都會連接一個父節點和子節點,即邊的生產量與消費量是相等的,即0+n1+2*n2=n0+n1+n2-1,亦即有n0=n2+1成立。
從每個結點的生產和消費量來看,在任意一個二叉樹中,由于根節點(不管其度為幾)不消費邊,等價于其為整個樹多貢獻了1條邊;度為的0的結點(除根節點外)生產0條邊,消耗1條邊,邊的貢獻為-1;度為1的結點(除根節點外)生產1條邊,消費1條邊,邊的貢獻數記為0;度為2的結點(除根節點外)生產2條邊,消費1條邊,邊的貢獻數記為1。這樣就可以看做度為0的結點所需邊是由根結點和度為2的邊來提供的,因為邊的生產與消費是平衡的,即n0=n2+1。

1.3 結合圖例的驗證圖1畫出典型的一些二叉樹,讓學生按照二叉樹定義,根節點、葉子節點、度為2的節點、度為1的節點等概念,從各典型二叉樹中找出相應的節點數目和邊的數目,并分別用n0記錄葉子數目,n2記錄度為2的節點數,n1記錄度為1的節點數,驗證一下公式n0=n2+1或n2=n0-1是否成立。同時也可以按照消費生成比喻進行驗證。
2 實例對比講解舉例(實例問題驅動的手段)
為了讓學生能夠進一步明白二叉樹的這個性質,可以在上述的理論講解后引入實例進行對比講解。
假設你是公司的CEO,你的目的就是為了不斷擴大公司的經營范圍和實力從而賺更多的錢,擴大公司實力的一個途徑就是根據業務需要注冊自己的子公司(子公司也可以注冊它自己的子公司),但是政府規定每個公司(包括子公司)最多可以從商業管理部門申請到2張licence,并立即利用每張licence注冊一個子公司。當然,若每個公司(包括子公司)根據業務可以申請注冊2個或一個子公司,也可以不申請注冊子公司。為了管理方便,將擁有2個子公司的母公司歸類為集團級公司,擁有一個子公司的母公司歸類為骨干級公司,沒有任何子公司的公司劃歸為業務級公司。另外,為了區別初始公司(即剛開始擔任CEO時那唯一的公司)與后續所有子公司,將初始公司叫做總部公司,并且總部公司在擔任CEO之時已經存在,不需要申請licence注冊。作為管理者,你在某次年終統計時,統計到公司目前已經拓展到n2個集團級公司,n1個骨干級公司,那么業務級公司的數量n0是否能夠算出來呢?所有公司的總數n和3種級別公司各自的總數目之間有什么樣的關系呢?
在分析這些不同級別公司之間的數目關系時,有一個很重要的線索就是licence,它是連接子母公司的橋梁。仔細分析會發現,任何一個子公司的產生都需要一個licence,也就是說每個子公司會“消費”一個licence;另外,任何一個集團級公司(不包括總部公司)也會“生產”出2個licence,任何一個骨干公司會“生產”出1個licence,業務公司“生產”0個licence。從生產與消費licence的角度看,該問題的實質其實就與第一部分的比喻形式的理論過程講解內容一樣,也會很自然得到集團級數目與業務級公司數目間的關系:n2+1=n0。
3 游戲化的理解和加深過程
為了讓學生對該性質有更加深刻的理解和體會,設計如圖2所示名為“找朋友”的課堂互動游戲。游戲中你自己找到的朋友稱為“新朋友”,對你的“新朋友”來講,你是他的“老朋友”。圖中的是一條帶子,白色端系在“老朋友”身上,黑色端系在“新朋友”身上。

規則:1)每個人只能找0、1或2個“新朋友”,找到后按照帶子的顏色端要求系在新老朋友身上;2)自己只能在被某個“老朋友”找到后才能再去找自己“新朋友”,但不能找任何一個有“老朋友”或“新朋友”的同學做朋友;3)游戲只能由一個學生發起,該學生沒有“老朋友”,直接開始找他的“新朋友”。
游戲結束時,讓大家看看有0個“新朋友”的學生數目n0,1個“新朋友”的學生數目n1,2個“新朋友”的學生數目n2之間的關系,再結合前面2個教學步驟中生產消費的比喻,看看黑白帶子與n0、n1和n2間的關系,這些關系是否驗證了n0=n2+1。
通過該游戲不僅可以加深學生的知識理解和印象,還能起到調節課堂氣氛,增加學習興趣的效果。結合課堂實際,有時把游戲部分放在課堂開始部分會有更好的效果。
把上述3步教學過程用于實際教學后總體上取得很好的教學效果。同時在教學過程中根據實際教學需求,可以適當地舍取實例講解或游戲化步驟,也可以調整這2個步驟在整個教學過程中的順序位置。總之,本文所述將實例與游戲化的思維融入二叉樹性質的教學過程設計,不僅有效改善了該節內容的教學效果,而且對其他章節乃至其他課程的教學過程都有一定的參考價值。
參考文獻
[1]殷人昆.數據結構(用面向對象方法與C++語言描述)[M].第2版.北京:清華大學出版社,2008
[2]張銘.數據結構與算法[M].北京:高等教育出版社,2008
[3]徐曉偉.《數據結構》教學方法的探索與實踐[J].科技信息:學術版,2008(28)
[4]熱孜萬古麗·夏米西丁.《數據結構》教學方法淺談[J].科技信息:科學·教研,2008(35)
[5]陳錦濤.電網監控專業《數據結構》課程教學方法探索[J].中國電力教育,2008(20)
[6]禹明秋.學與教的心理[M].北京:高等教育出版社,2004