張勝男,牛連強,楊德國,陳 欣
(1.沈陽工業大學 軟件學院,遼寧 沈陽 110870;2.沈陽工業大學 理學院,遼寧 沈陽 110870)
離散數學是研究離散量的結構及其相互關系的一門學科,是由邏輯學、集合論、關系理論、圖論、抽象代數、布爾代數甚至算法設計、組合分析、離散概率和計算模型等匯集起來的一門綜合學科。由于數字電子計算機是一個離散結構,只能處理離散(化)的數量關系和數學模型,這正是離散數學的主要研究內容。為此,《中國計算機科學與技術學科教程2002》將其界定為計算機科學與技術專業的核心基礎課程,美國IEEE&ACM也確定其為計算機專業的核心課程[1-2]。
應該說,計算機及其相關專業的絕大部分課程,都直接以離散數學作為理論基礎,也可以說是離散數學的直接運用,或者說需要依靠離散數學課程的觀點、方法和邏輯思維能力解決具體問題。因此,離散數學課程的教學目的就是要建立邏輯(數學)推理能力,了解重要的離散對象、結構與方法,能夠綜合運用合適工具(技術)構建復雜工程問題的模型及解決方法,并能分析、說明模型乃至解決方法的正確性和有效性。
從應用型的人才培養視角,僅就理論基礎(知識)而論,目前并沒有明確的、統一的共識,普遍接受的觀點是重在“用”而非“研究”。對于不同的學校不同的培養定位不同的學生層次,容易接受的看法有二:其一是“堅實”,指有足夠了解,能夠分辨理論模型的優劣,能夠在若干模型或方法中平衡、選擇并綜合運用,對理論的產生、進展、論證甚至更深的發展不必做過多了解[3];其二是“夠用”,指在同類方法中有選擇性地掌握主要方法,有針對性地構造示例,解決對應的問題[4]。對于大多數以應用技術型而非技能型人才為培養目標的學校,更傾向于選擇前者。
由于缺乏理論指導以及充分的討論、理解,即便在以應用型為培養目標的學校、專業內部,也沒有完全達成共識,這導致同一門課的任課教師之間也不易統一觀點,包括教材選擇、教學方法、實驗、討論等幾乎所有方面。對于大多數地方高等工科院校,“具備堅實的理論基礎”是專業確定的應用技術型人才培養目標,上述所有問題的答案都需要根據學生的具體情況和專業的人才培養目標定位給出。
離散數學是公認的理論性強及內容多,這從文獻[5]可得到論證。因此,如何把握課程的核心主題,謹慎選擇工程應用理論和應用案例,理清各種理論的掌握程度和適合學生的自然條件基礎就成為課程的教學內容改革的關鍵。
為了體現應用,說明課程內容并非僅是理論并吸引學生興趣,部分教師提倡在課程中引入程序設計內容,比如集合運算、算法驗證等[6]。當這種要求過多時,在一定程度上是與課程主題有偏離的。
通常,離散數學課在一、二學期開設。對于普通院校的學生,即便是程序設計技術掌握較好者,在大學里一般也僅學過C 語言程序設計課程(或一門其他語言)。鼓勵學生通過編程理解離散數學的部分內容是有益的,對編程訓練也有幫助。不過,這種做法常常流于“驗證”,缺少對“想”的訓練,尤其容易使學生陷入程序設計的細節中,這不免有些“跑偏”。歸根到底,理論性強的課程其核心作用之一是促進思維的訓練和形成,通過對一般原理的掌握建立抽象、分析、說理(論證)的能力,編程雖然有助于理解問題,但無法替代抽象思維過程。
從專業的角度看,離散數學比高等數學、線性代數等數學類課程更符合學科和專業內涵,對領域內的問題抽象更直接。引導學生針對實際問題選擇、抽象和運用模型是訓練其解決復雜工程問題的前提,這比訓練其通過編程計算出兩個集合的交集更重要。
興趣是取得成功的基礎,不同的興趣會得到不同的結果。通過編程驗證了兩個命題的不可兼析取的結果固然能增強學生的興趣和自信心。但能通過思考理解并正確解釋,建立其與C 語言中的異或操作、通過XOR 操作支持的動畫之間的聯系,會使學生得到更高層次的興趣。通過編程驗證了Kruskal 算法的工作機理雖有幫助,但能不借助工具分析并肯定其正確性,甚至從Kruskal 算法依據邊計算最小生成樹的角度出發,進而思考是否可從點的角度生成最小生成樹,可以使學生產生更濃烈的興趣。即便通過教師啟發,引導其設計出這樣的算法,對創新訓練也更有益處。
從本質上說,課程的興趣引導來源于兩個層面:其一是驗證一些簡單運算,其二是對模型的理解和應用。在有限的時間內,究竟引導學生獲得怎樣的興趣是需要教師認真討論和斟酌的。從知識的內容方面講,并非理論課程都要通過編程提高興趣,正如高等數學、線性代數或概率與數理統計等課程一樣,對頭腦的思維訓練和編程訓練的目標、作用和結果均不相同,興趣點的偏移會使一門課程的核心目標大打折扣。
選取相關領域中有代表性的工程應用實踐問題作為示例、習題或思考題,消除學生總認為學理論與實際脫節的誤解,激發其學習課程的興趣,提高解決實際問題的能力是培養應用型學生需要注重的,而問題應該是稍完整的、需要結合理論解決的,通常并非是對書中介紹方法本身的驗證。例如:
(1)在命題邏輯中,如何將自然語言翻譯成符號邏輯表達式,以及生成精確、無二義性的規范說明?
(2)在謂詞邏輯中,如何利用一階邏輯描述一個機器人的狀態與工作方式?
(3)利用一個小集合消除另一個圖(集合)的邊界、填補圖(集合)的孔洞應如何處理?
(4)為了分析自己的朋友之間的關系,采用什么模型?能從中分析出什么結果?
這樣的示例舉不勝舉,其共同特點是:有較強的應用背景,問題的解決不是對課本知識的簡單驗證,需要將問題抽象成稍微完整的模型,選擇適當的工具,得到結果的好壞也需要適當分析。
對于一個應用問題,在有限時間內引導學生能夠選擇和運用正確的模型和理論,甚至利用合適的方法和工具描述模型、算法,本質上優于采用程序對簡單運算的驗證。
當然,在有限的學時內,對于新的成果、大量的相關問題及其解決方案不可能全部囊括,僅是一斑。對于很多問題,可以列出供參考的論文等素材,引導學生自己探索。考慮學生的實際情況,這些內容只是作為課堂的延伸和拓展,以輔助學習和思考為主、研究為輔。因此,教師指定的材料不是專門的理論研究而是程度較淺的應用型文章、教學論文乃至書籍。
教材是教與學的第一手資料,是決定課程教學成功與否的重要教學元素。就離散數學課程而言,有一些相當成功的教材,如Kenneth H.Rosen 的《Discrete mathematics and its applications》[5]、左孝凌的《離散數學》和屈婉玲、耿素云的《離散數學》等。在筆者近30 年的教學實踐中,采用這些教材取得過一定成功,但也存在著諸多問題,且隨著高等教育大眾化的進程,暴露出的問題愈加明顯。概括地說,這些教材大而全,更關注理論與知識體系的完整性,而作為教師,選擇時應充分考慮學習對象本身的情況和層次、學時的減少以及工程教學目的的變化等實實在在的因素。這些問題在湖南大學的張洪圣等教師編寫的教材中已經部分提及。舉例說,普通工科高校在我國高校中占大多數,但這些學校的學生與985、211 高校存在著很大差異,以學術研究為目標的教材和教學內容上的趨同不僅達不到“拔高”的目標,反而使學生過早喪失學習興趣,形成一系列不良的連鎖反應。又如,在僅有48~64 學時的教學時間里,難以期望把類似離散概率、組合設計、形式語言、自動機等內容都灌輸給普通院校的學生[6],這也是一些專家提倡有的放矢地編寫教材的原因[1]。
對于一般普通工科高校的計算機、軟件工程及其相關專業的教學,編寫通俗、易于理解、易于自學、有一定工程應用背景和實際問題引導的教材是合適的[7]。
教材不應追求體系的完整、內容的全面和對理論的深入探討,可以舍棄中學學過的簡單組合計數等問題,也不宜用過多篇幅討論前文提到的離散概率、組合設計、形式語言等內容,甚至可以直接舍棄。某些數據結構等課程中涵蓋并重點討論的算法可以簡要說明其功能,以免使內容過于膨脹,也可以盡量避免與后續課程重復。
目前教材的內容編排次序主要有兩種,分別是從集合論引入和從命題邏輯引入,本文建議以邏輯學而不是集合論為出發點,用命題邏輯和一階邏輯主導解決后續所有問題的思維,以便強化分析、解決問題的邏輯性和抽象表達能力。
在以集合論為出發點時,由于沒有符號邏輯基礎,既難以對問題進行嚴密的邏輯分析和表達,也容易與后續內容重復。
例如,考慮定理“對任意的集合A,有??A,即空集是任意集合的子集”。由于空集沒有任何元素,通常用反證法證明:
若??A為假,則為真。因為

事實上,要證明??A成立,只要說明為真,可以依據命題邏輯中條件聯結詞的性質直接證明:

于是,??A成立。
這里明確使用了“條件句在前提為假則命題為真”的原理。在沒有命題邏輯準備時,嚴格的邏輯推演難以進行,也無法給出直接證法。課程中的大量問題都是對一個概念是否成立的判定,而這又取決于判定描述此概念的條件命題是否為真,直接證法更有利于理解在條件為假時一個概念是滿足的。
此外,集合運算存在大量的性質都可以由命題聯結詞的性質直接得到,從集合論入手不僅與內容命題邏輯重復,上述推理形式難以嚴格表達,部分性質還需要花更多的時間才能理解。
離散數學也是數學,內容抽象,其核心結論都建立在概念基礎上。因此,需要通過信息相關領域實例、問題引導、分析、評價、辨析等步驟,將概念講解透徹,避免讀者需要花過長的時間思考或借助參考書才能讀懂。
為了在有限的課時內突出應用性,需要總結、概括和突出解決各類問題的核心內容,說明此類問題的實質和解決方法的關鍵思想,而不是拘泥和追求一個具體題目的解法。否則,仍可能導致學生過于關注某個細節問題。
另一個值得注重的問題是精煉結果。離散數學中存在很多定理,過多羅列已有結果令人眼花繚亂,還會誤導學生機械記憶而不是由基本概念出發主動思考、探究和發現結果。同時,盡管多做習題有助于問題的理解,但需要消耗大量的時間和精力,過多的習題也容易使人恐懼并產生排斥心理。為此,應盡量精簡定理與習題。
值得說明的是,一般認為,作為教材,通常應有一定的“余量”。對于一般工科學生采用的教材而言,建議這種“余量”不宜過大,要適度,少而精,防止篇幅膨脹,可給學生以信心。同時,可采用文獻[5]作為參考書目(該書被全球600 多所大學采用,內容十分豐富),以引導學有余力的學生對知識做進一步的拓展。
面向應用的理論課程教學改革難度較大,課程內容調整是基礎,其取決于學生的實際情況、教學上的要求以及人才培養工程化、應用化的實際需求等諸多因素。由于課程性質不同,每一門課程有自己的目標和任務,需要對激發學生的興趣點準確把握,并采取與之相適應的教學內容和教學方式。對于離散數學課,興趣點的偏離既可能淡化課程的主題和目標,也有可能承擔了并非本課應該承擔的任務,從而影響對于問題抽象、建模和邏輯推理能力的訓練。此外,在把更多的時間、思考、總結、發現任務交給學生時,教材也要有助于學生自主學習。教材既不能包羅萬象、求深求全,也不能只是“干巴巴”的綱,更不應連一節中有幾個重要概念、主要方法之類的總結都由教材代替,否則,學生仍是一臺簡單理解和記憶知識的機器,解決復雜工程問題的能力很難培養出來。