孔祥艷 劉自強 夏晨曦 李麗華
(東華理工大學 信息工程學院 江西 南昌 330013)
《離散數學》是計算機專業的核心基礎課程,一門課程中包含了幾個數學分支內容,分別為:數理邏輯、集合論、代數系統和圖論?!峨x散數學》課程具有定義和定理繁多、理論性強和內容抽象等特點,很容易被學生認為是一門純數學課程,教學活動主要是教師的講授,注重知識傳授而忽略應用,更缺乏基本理論的應用與專業學科的有機結合,這使得很多學生感覺不到此課程與專業課程的關聯,認為這門課程難學且沒用,因而普遍對課程缺少興趣。
雖然《離散數學》課程所教授內容以數學知識點為主,具有較強的理論性,但同時具有應用性的特點,在數據結構、程序設計、數據庫、人工智能等多個領域都有較廣泛的應用[1-2],因此適合使用案例教學。很多教師在《離散數學》課程中使用了案例教學方法[3-8],其中一類主要探討案例教學的方法論,另一類則注重具體案例的設計與實施。
在國家一流本科建設專業支持下,采用了案例教學法,以期提高學生對《離散數學》課程的興趣,加深學生對基本概念的理解,提高學生的運用知識、分析并解決工程問題的能力。
為提高學生運用所學課程知識、分析并解決工程問題能力,既需設計與單個知識點對應的基本案例,又需設計涵蓋本課程的若干個知識點和多個概念的綜合性案例。在教學實踐中總結出設計教學案例的4個方法:
(1)深入挖掘《離散數學》基本知識在計算機專業課程中的重要作用,這是設計好基本案例和綜合案例的重要基礎。圖1是離散數學各知識模塊與部分專業課程之間的關系圖。

圖1 離散數學各知識模塊與部分專業課程之間的關系圖
(2)閱讀文獻和國內外離散數學及其它專業課教材,并改進已有的工程案例。
(3)在各類數學建模競賽題目中挖掘相關知識,找出實際工程中《離散數學》相關知識的應用案例。
(4)發動學生們的智慧搜集案例。讓學生運用《離散數學》知識解決生活或專業課程中的一個小問題,從而深刻體會到《離散數學》知識的實用價值。
教學案例的選取非常重要,良好的課堂教學案例是實現教學目標的重要基礎。如果案例選取不恰當,可能會影響教學效果。選取教學案例時需要考慮的3個重要因素如下:
(1)案例要有科學性,并與《離散數學》課程教學內容直接關聯,主要使用本課程相關知識來描述和解決。
(2)案例應貼近生活或能體現離散數學知識在專業課程中的應用,以減少學生的陌生感,利于學習中的情感認同,激發學生的學習興趣。
(3)案例中描述的問題要有挑戰性,但難度適中,學生能運用離散數學的知識解決問題,從而獲得成就感和信心。
基本案例是在教師課堂講解單個知識點時,介紹完基本概念后引入,而綜合性案例通常是在學生完成課程基本知識點及離散建模方法的學習后引入。由于本文篇幅有限,所以僅介紹幾個基本案例在離散數學教學中的應用。
講解完命題推理理論中幾種常用論證方法和基本推理規則后,告訴學生推理理論在警察破案時也有重要的作用,并舉例如下。公安人員審理某珠寶店鋪金項鏈的失竊案,已知如下偵察結果: (1)營業員甲或乙盜竊了金項鏈;(2)若乙作案,則作案時間不在營業時間; (3)若甲提供的證詞正確,則貨柜未上鎖;(4)若甲提供的證詞不正確,則作案發生在營業時間;(5)貨柜上了鎖。問題:作案者是誰?并寫出推理過程。啟發學生首先將命題(1)-(5)符號化,在這過程中,如果兩個命題中包含相同的原子命題,則相同的原子命題在不同的命題中使用相同的符號。通過這個例題的練習,學生們不僅復習了如何將命題符號化,學會了幾種基本推理規則的靈活運用,而且認識到命題推理理論在現實生活中的重要應用價值。
笛卡爾積是集合之間的一種重要運算,是一種純數學基礎理論,它為關系數據庫的研究提供了重要方法,所以學生需要對笛卡爾積的概念有較深入的理解,我們通過一個案例理解笛卡爾積。例如:令A是我們班所有學生的集合,B是我們學校開設的所有課程的集合。A和B的笛卡爾積A×B是什么,A×B的子集又是什么,如何應用?啟發學生可以將我們班學生只用少量學生表示,學校開始的所有課程也只用少量部分課程,從而便于用列舉法表示出所求的集合。最后學生得出: 笛卡爾積A×B是由所有形如<a, b>的序偶的集合,其中a是我們班的學生而b是我們學校開設的一門課程。A×B集合表示我們班學生選課的所有可能情況,而A×B的子集表示一種可能的選課情況。學生通過做這個例題能夠對笛卡爾積的概念有較形象的掌握。
接著討論笛卡兒積在尋找連續日期中殘缺的數據時的應用。例如:有個考勤記錄表,記錄著500個人的2022年4月的考勤信息,理論上這些人應該每天都有記錄的,但可能有某些人缺少一些天的考勤數據,怎樣查找出哪些人在哪些天缺少考勤記錄呢?不論是按天查詢和還是按人查詢都比較麻煩。這種情況下,可以對這500個人的集合和2022年4月每一天得到的日期集合做笛卡爾積運算,然后與實際的表去關聯,就能容易查詢出結果了。通過解決尋找連續日期中殘缺數據的實際問題讓學生感受到笛卡爾積這個概念的實用價值。
鄰接矩陣是圖論部分的一個重要概念,它是指用一個方陣表示圖的各頂點之間的鄰接關系,講解完基本概念后介紹鄰接矩陣一個重要應用。圖的結構比較復雜,任意兩個頂點之間都可能有關系,導致簡單的順序存儲不能表示圖,但可以借助二維數組(即鄰接矩陣)來表示元素之間的關系。給出無向圖、有向圖和有權圖這三種不同圖的鄰接矩陣,讓學生總結出不同圖的鄰接矩陣分別有什么特點,從而對鄰接矩陣的概念有更形象和深入的理解。告訴學生只有當圖中有許多邊,即圖是稠密圖時,用鄰接矩陣表示圖便于執行圖的算法,但是當圖包含的邊較少時,用鄰接表比鄰接矩陣更適合,并從算法復雜度方面簡單舉例分析說明。
可達性矩陣描述了圖中任意兩個結點間是否存在一條路及任意結點上是否存在回路,講解完基本概念和可達性矩陣的求法后,讓學生解決下列問題:設A、B、C、D、E、F六個城市之間有通信網絡,并給出這些城市間的通信網絡圖,它們之間均可進行通話聯絡。某一天B和C間的線路產生故障,分析此故障對六城市間通話的影響;某一天D和F的線路產生故障,也分析此故障的影響。首先引導學生們通過題意理解以下事實:城市X與Y間可通話,若城市Y與Z間可通話,則X與Z間可通話。通過教師的啟發,學生們認識到兩個城市之間通過一條或多條線路相連,則它們之間就可以通話聯絡。然后引導他們通過分別求不同故障狀態下相應圖的可達性矩陣,即可解決問題。通過對此問題的解決,學生感受到可達性矩陣在解決其它領域工程問題中有重要應用價值。
將案例教學法應用于《離散數學》課程教學后,學生們明顯感受到此課程與專業課程的關聯性較強,認為這門課程不僅在現實生活中還是在其它專業課程的學習中都很有用,從而對課程內容逐漸產生了學習興趣。同時,學生們通過積極參與課堂互動活動并完成案例收集相關作業,大大提高了運用知識、分析并解決工程問題的能力。