謝爽,吳彩云
(西南林業大學數理學院,昆明650224)
《數據結構》是計算機專業的一門專業核心課程,本課程具有高度的抽象性和應用的靈活性,內容主要包括線性表、數組、堆棧與隊列、廣義表、樹與二叉樹、圖與網絡分析、內排序等內容。作為一門核心基礎課,能否學好《數據結構》對后續課程的學習也起著至關重要的作用[1]。
通過調查發現,學生普遍反映該課程概念抽象,知識點繁多,很難理解。如果提高學生的學習積極性和程序設計能力,為后續可視化程序設計、操作系統、數據庫系統等課程打下良好的基礎,真正提高學生利用所學知識解決實際問題的能力和實踐動手能力,是課程教學的難點所在。
為切實提高《數據結構》課程的教學效果,加強對教材中定義和概念的理解,在實際教學過程中,將數學的理論和方法引入課堂教學,這樣既可以培養學生的實際編程能力,又能夠加強對數學的理解,教學效果十分明顯[2]。
目前西南林業大學數理學院《數據結構》課程教學主要面向的是信息與計算科學專業,該專業有著扎實的數學基礎,前期已經學過數學分析、高等代數、離散數學、復變函數等數學類課程,為了保證教學效果,針對嚴蔚敏教授的《數據結構》教材,內容詳實,結構完整,但是概念非常抽象,對于基礎和條件相對薄弱的高校而已,學習起來困難極大,在教材選用上選用了唐發根教授所編寫的《數據結構》教程,教學效果良好[3]。
在學時安排上,為了能夠更加詳細地敘述教材內容,目前信息與計算科學專業的教學計劃是理論學時64,實驗學時18,實習學時32。通過大量的實驗和實習學時,提高學生的實踐動手能力。
鑒于信息與計算科學專業有著扎實的數學基礎,所以在課堂教學中的每一節內容都通過大量的數學實例去引導學生,加深學生對抽象概念的理解。例如在第一章緒論中關于算法的描述,教材中采用文字表述了如何求兩個正整數M 與N 的最大公因子,要求學生去回憶高等代數中關于多項式的理論,在高等代數中曾有這樣一個定理:對任意的f(x),g(x)∈P[x],若其帶余除法為f(x)=q(x)g(x)+r(x),則兩對多項式f(x),g(x)和g(x),r(x)有相同的公因式和最大公因式。通過類比發現此處關于正整數最大公因子的描述和高等代數教材中關于最大公因式的描述非常類似,通過這種對比和分析,學生馬上就清楚了為什么求最大公因子的算法是這樣描述的了。
與之類似的例子數不勝數,例如在第四章堆棧與隊列這一章中關于遞歸的概念[4],在教材中關于遞歸的說明非常抽象很難理解,很多學生都感覺很困難,在實際教學過程中通過引入大量的數學實例去輔助學生對遞歸的理解。例如在數學分析中關于Fibonacci 序列的定義如下:F0=0,F1=1,Fn=Fn-1+Fn-2(n ≥2),要求學生通過編程實現求Fibonacci 數,又例如在高等代數中關于n 階行列式按行展開中有:行列式等于它的任一行(列)的各元素與其對應的代數余子式乘積之和,即:D=ai1Ai1+ai2Ai2+…+ainAin,要求學生使用遞歸實現對n 階行列式的計算。通過數學與計算機兩方面融合,既加深了對數學概念和遞歸概念的理解[5],也提高了實際編程能力。
除了正常的課堂教學外,每次課后都布置一定量的習題要求學生必須完成。所布置的習題大部分都是與數學課程相關的,例如教材中給出了求最大公因式的算法,要求學生編程實現求最小公倍數的算法,并利用遞歸和非遞歸兩種形式實現,又例如教材中講述了一元多項式的運算,要求學生編程實現集合的交、并、補、差等運算。通過編程實現大量的數學實例[6],既可以進一步回顧曾經學過的數學內容,又可以和數據結構中的概念形成共鳴,提高對數據結構的理解和掌握,進一步提升實踐動手能力。
本文根據西南林業大學數理學院信息與計算科學15 級《數據結構》課程考試成績和已經取得的數學分析、高等代數、離散數學、概率論與數理統計課程成績進行對比,從而說明數學基礎對《數據結構》課程教學起著至關重要的作用[7],為簡便起見,隨機抽取了班上10 名學生的成績,具體數據如表1 所示。

表1 學生成績表
通過上述表格我們容易看到,數學成績較好的學生期末考試《數據結構》考試成績也比較理想。下面我們通過多元線性回歸分析進一步看到數學基礎和《數據結構》是正相關的。這里設《數據結構》成績為因變量y,自變量為:數學分析x1,高等代數x2,離散數學x3,概率論與數理統計x4,利用SPSS 軟件建立線性回歸方程,其回歸方程為:
y=-13.8596+0.4989x1+0.267x2+0.1841x3+0.2698x4
其中:R2=0.9318,P=0.0040,通過P 值和R2結果看到,線性關系顯著,且成正相關關系。由此可見,數學基礎對《數據結構》課程的學習及其重要,大學期間應加強數學基礎,切實提高學生分析問題和解決問題的能力。
學生綜合成績評價是反映教學成果的一個非常重要的環節,學生成績也是學生對課程知識掌握程度的直接體現。本節運用粗糙集理論建立學生成績評價模型,為簡單起見,仍然采用上節五門課程進行分析。
為方便起見,這里采用等寬度離散化處理方法進行粗糙集處理,為此做如下設置:
屬性值1 表示《數據結構》成績為63~74 分,屬性值2 表示《數據結構》成績為74~85 分,屬性值3 表示《數據結構》成績大于85 分;
剩余四門課程成績與屬性對應關系使用表格匯總如表2 所示。

表2 課程成績與屬性

表3 離散化后的決策表
屬性1,2,3 分別表示優、中、差。于是得到如表3所示的離散化后的決策表。
這里約定用a,b,c,d,e 分別代表數據結構、數學分析、高等代數、離散數學、概率論與數理統計。根據屬性的依賴性,屬性的重要性,約簡與核,對上表進行如下計算:

由此可得:

通過權重系數可以看到,影響學生綜合成績因素較大的是數學分析和概率論與數理統計,而在上節中的線性回歸方程中,也容易觀察到,對《數據結構》課程成績影響較大的也是數學分析和概率論與數理統計課程成績。由此可見,在專業課程安排上,我們可以適當增加數學分析和概率論與數理統計的教學課時,加大師資力量投入,既可以提高其他課程成績,也能夠很大程度上提高學生綜合素質。
根據上節分析得到的權重系數,可根據如下公式計算學生綜合成績:

將通過上述公式計算所得綜合成績結果與平均值計算結果進行比較,比較結果如表4 所示。

表4 綜合成績結果與平均值計算結果
通過表格可以看到,通過粗糙集確定課程權重算出綜合成績排名和通過簡單的平均計算綜合成績排名完全一樣,但是粗糙集分析方法可以有所側重,而不是將所有課程完全等同,所以更能體現學生的綜合成績。通過粗糙計算排名和《數據結構》成績排名進行比較可以發現,《數據結構》成績排名和粗糙集分析得到的綜合成績排名幾乎一樣,由此可見,《數據結構》課程的學習效果對學生綜合素質的提高起著至關重要的作用[8]。
《數據結構》是計算機很多后續課程的基礎,在很多學科中都起著承上啟下的作用,如何提升學生對數據結構概念的理解,進一步提升個人動手能力,教師在實際教學過程中,還應積極思考,尋求教學方法,更新教學理念,從而充分調動學生的學習積極性,切實提高個人實踐動手能力。本文利用數學思想的灌輸,在實際教學過程中起到了較好的效果,但是對于數學基礎較差的學生考慮還不夠周全,在以后的教學中還應進一步解放思想,爭取取得更加滿意的教學效果。