鄧莉
(武漢科技大學計算機科學與技術學院,武漢 430065)
面向計算思維能力培養的離散數學教學研究
鄧莉
(武漢科技大學計算機科學與技術學院,武漢430065)
二十一世紀已經邁入了信息時代,信息資源呈爆炸式增長,社會競爭更加激烈。如何培養具有創新意識和創新能力的應用型人才以適應新時代的發展和需求,已成為當前高校教育中面臨的亟待解決的首要問題。
作為三大科學思維方式之一的計算思維,是實現開拓創新的創新思維的重要組成部分。計算思維對于不同學科的大學生創新能力的培養均具有舉足輕重的重要作用,是創新教育的基礎內容。高等教育工作者應該將基于計算機科學的問題求解思路和方法貫穿于整個教學過程中,逐步培養大學生應用計算手段進行相關的學科研究和解決實際應用問題的能力,為創新教育奠定堅實的基礎。
離散數學主要研究離散量的結構和相互關系,是現代數學的一個重要組成部分,它特別在計算機科學與技術領域應用廣泛。作為計算機科學與技術專業的核心基礎課程,離散數學是計算機專業許多重要專業課程(如數據結構、操作系統、算法設計與分析等)的必不可少的先行課程。離散數學的發展和計算機科學緊密相關,計算思維已融入了離散數學的整個知識體系。離散數學的教學目標,是要培養學生的抽象思維、邏輯推理和縝密概括等能力,讓學生逐步學會從數學的視角、用數學的觀念來分析并解決實際應用問題,這正是培養學生的計算思維能力的體現。
2006年,美國卡內基梅隆大學計算機系周以真教授首次在權威雜志Communications of The ACM上提出計算思維的概念。計算思維是指人們從計算機科學的角度去分析求解問題、設計系統并理解人類行為等一系列思維活動[1],是一種新的科學思維方式,其本質是抽象和自動化[2]。周教授認為,計算思維應該和閱讀、寫作、算術一樣,成為信息時代中我們每個人必須掌握的的基本技能,而不僅僅限于計算機科學家。
人們的計算思維活動常常是無意識的,要培養學生的計算思維能力的關鍵是要將無意識的計算思維變成主動的計算思維,讓學生學會有意識地用計算思維去解決各自專業領域的問題[3]。一個具備計算思維能力的人主要表現如下:能夠分辨哪些問題是可計算的,能夠了解用來解決計算問題的各種計算工具或技術,并熟悉這些工具或技術的優勢、缺陷和適用范圍,能夠靈活使用分而治之等計算策略,具備選擇在合適的場合嘗試新計算工具的能力等[4]。
離散數學是一門研究離散量的結構及其相互關系的課程。而計算機本身的結構以及它所處理的對象都是離散型的,甚至許多連續型問題在被計算機處理前需要轉化為離散型形式。所以,計算機科學與技術本質上是一門離散數學技術。
計算機相關專業的學生學習離散數學課程,首先要了解熟悉描述離散量的各種結構以及在這些描述結構下的性質特征等。更重要的是,教師在講授這門課程時,要逐步培養學生運用離散結構建立實際應用問題的抽象模型并在此基礎上分析問題和解決問題的能力,這種能力也正是計算機相關專業的學生具備計算思維能力的重要表現。而離散數學的教學目標就在于此。
計算思維的本質是抽象和自動化。下面,分別從知識體系和課堂教學兩個角度來介紹離散數學和計算思維的融合。
2.1融合計算思維的知識體系
離散數學主要包含數理邏輯、集合論、圖論和代數結構,這四個部分分別提供了離散量的幾種抽象描述形式及相應的研究方法,形成了一個有機的知識體系。同時,上述幾個部分的內容相對獨立,各自成體系,很容易讓學生留下知識很零亂的印象。因此,教師在講授離散數學這門課程時,一定要從知識體系角度給學生介紹各個章節、各個知識點之間的內在聯系,在學生腦海里建立起離散數學的整體知識體系。
以數理邏輯部分為例,表1給出了這一部分所涉及的知識點以及各知識點之間的關聯。
如表1所示,數理邏輯部分的知識可分成三大塊:符號化、公式和邏輯推理。命題符號化需要對真實世界中的命題進行抽象,提取命題中主要關注的要素而忽略其他成分,將之用某種符號表示,并通過恰當的聯結詞將多個符號連接起來。一個命題可抽象成不同的形式描述(比如:一個命題可以用符號表示,也可以用謂詞形式描述),但往往只有一種形式是最適合的,描述形式的選取取決于抽象的目標。數理邏輯的符號化部分正好體現了計算思維的抽象理念。而公式和邏輯推理部分則主要體現了計算思維的自動化思想。等價公式變換和邏輯推理都有自身的規律和要求,整個過程可以用程序來自動化完成。這個自動化要保證對各種定律或推導規則的正確應用和整個過程的邏輯嚴密性。
2.2結合計算思維的課程教學
在課堂教學中,教師要將計算思維的抽象和自動化這兩個本質思想貫穿于整個教學過程,讓學生不僅學會從抽象或自動化的角度去認識理解離散數學的各知識點,還要學會用抽象或自動化的方法去分析和解決問題。
以偏序關系中的哈斯圖為例,闡述離散數學的具體知識點和計算思維之間的內在聯系。
教師在講解哈斯圖時,除了要結合關系圖分析清楚它們之間的聯系和區別,還要從計算思維的角度來分析和闡明由關系圖生成哈斯圖的抽象和自動化生成過程。
哈斯圖的提出主要是為了體現偏序關系中各個元素之間“序”的關系,而這些元素之間的“序”很難在普通關系圖中被直觀反映出來。哈斯圖可以看作是對普通關系圖的抽象,只關注或保留關系圖中能反映元素之間偏序關系的要素,摒棄和元素次序無關的因素(比如:關系圖中每個結點上的環,去掉多余的邊等),這正好體現并符合了計算思維的抽象特性。
而由關系圖建立哈斯圖的過程可以實現自動化,其過程可以描述如下:

表1 離散數學中數理邏輯部分的知識點及其關聯
(1)刪除關系圖G中所有結點上的環;
(2)在圖G中,找出所有入度為0的結點并構成集合A={a|點a的入度為0};
(3)從集合A中任取一個元素a,在哈斯圖中畫出該結點a;
(4)逐個分析關系圖中結點a的每條邊,如果邊的兩個端點之間不存在其他長度大于等于2的有向通路,則在哈斯圖中保留該邊,否則,在哈斯圖中丟棄該邊;
(5)刪除集合A中的元素a,在關系圖中刪除結點a和與之相關的所有邊,并判斷關系圖中是否存在新的入度為0的結點,若有,則將之加入集合A;
(6)若集合A非空,轉步驟(3);否則,結束。
相應的流程圖如圖1所示。
相應地,哈斯圖的解讀也要結合計算思維的抽象思想。哈斯圖中,兩個結點之間如果存在連線,則它們之間一定存在偏序關系,但是,不同于關系圖的是,如果哈斯圖中兩個結點間沒有直接相連的連線,則不能斷定它們之間一定不存在偏序關系。將偏序關系的關系圖抽象成哈斯圖后,任意兩個結點間的偏序關系是通過它們之間是否存在自下而上的通路來判斷的,如果存在,則兩個結點存在偏序關系,否則,就不存在偏序關系。因此,哈斯圖的解讀可以總結如下所述:若兩結點之間存在自下而上的通路,則該兩結點間存在偏序關系;若兩結點之間不存在自下而上的通路,則兩結點間不存在偏序關系。
本文分析了計算思維和離散數學之間的內在聯系,并以實例的形式論述如何將計算思維的抽象和自動化兩個核心思想貫穿于離散數學的整個教學過程中,將計算思維的理念和離散數學的各部分知識點有機地結合起來。

圖1 由偏序關系的關系圖建立哈斯圖的流程圖
[1]J.M.Wing.Computational Thinking[J].Communications of the ACM,2006,49(3):33-35.
[2]J.M.Wing.Computational Thinking and Thinking about Computing[J].Philosophical Transactions of the Royal Society,2008(366): 3717-3725.
[3]Computational Thinking:a Problem Solving Tool for Every Classroom.http://csta.acm.org/Resources/sub/ResourceFiles/CompThinking. pdf
[4]J.M.Wing.Computational Thinking:What and Why?http://www.cs.cmu.edu/~CompThink/resources/TheLinkWing.pdf
Computational Thinking;Discrete Mathematics;Teaching Method;Abstraction
Research on Teaching of Discrete Mathematics that Computational Thinking Oriented
DENG Li
(School of Computer Science and Technology,Wuhan University of Science and Technology,Wuhan 430065)
1007-1423(2015)36-0043-04
10.3969/j.issn.1007-1423.2015.36.010
鄧莉(1972-),女,湖北鐘祥人,博士,研究方向為云計算、并行計算
2015-11-17
2015-12-10
計算思維的教育理念已受到國內外教育界人士的廣泛關注,也相應地對計算機科學與技術專業的人才培養提出新的要求。通過分析計算思維和離散數學之間的內在聯系,以案例的形式論述如何將計算思維的抽象和自動化兩個核心思想貫穿于離散數學的整個教學過程中,將計算思維的理念和離散數學的各部分知識點有機地結合起來。
計算思維;離散數學;教學方法;抽象
Computational thinking has been viewed as a new and important educational idea by more and more educators around the world,which brings up new demands for the training of talents majored in computer science and technology.Analyses the relationship between computational thinking and discrete mathematics.Uses several cases,the methods are then presented to explain how to bring abstraction and automation concept of computational thinking throughout the teaching process and how to integrate computational thinking and discrete mathematics.