摘 要:針對(duì)離散數(shù)學(xué)教學(xué)現(xiàn)狀和面臨的挑戰(zhàn),提出基于計(jì)算思維面向能力培養(yǎng)的離散數(shù)學(xué)教學(xué)改革思想,并從思維轉(zhuǎn)變、3 種能力培養(yǎng)、教學(xué)方式、考核方式和平臺(tái)支撐 5 個(gè)方面闡述具體教改措施,最后通過(guò)課程考核、編程實(shí)踐作業(yè)和調(diào)查問(wèn)卷反饋說(shuō)明教改效果。
賈經(jīng)冬; 李衛(wèi)國(guó), 計(jì)算機(jī)教育 發(fā)表時(shí)間:2021-09-10
關(guān)鍵詞:離散數(shù)學(xué);計(jì)算思維;能力培養(yǎng);編程實(shí)踐;教學(xué)改革
0 引 言
離散數(shù)學(xué)課程自身具有高抽象性、強(qiáng)理論性、邏輯性 [1] 等特點(diǎn),課程中基本概念、定理和證明較多,這些因素使學(xué)生感覺(jué)離散數(shù)學(xué)課程的學(xué)習(xí)難度大。此外,因?yàn)閷W(xué)了離散數(shù)學(xué)知識(shí)后不像其他專(zhuān)業(yè)課程可以立竿見(jiàn)影在實(shí)踐中應(yīng)用,所以學(xué)生會(huì)產(chǎn)生學(xué)了無(wú)用的感覺(jué),但離散數(shù)學(xué)是軟件工程課程體系中重要的專(zhuān)業(yè)基礎(chǔ)課之一,為了充分發(fā)揮其對(duì)其他課程和專(zhuān)業(yè)的基礎(chǔ)作用,面向能力培養(yǎng)的課程教學(xué)改革是必需的。
1 教學(xué)現(xiàn)狀和存在的問(wèn)題
(1)從教師角度,講完集合論和圖論,授課時(shí)間并不充裕。如果只依賴(lài)課內(nèi)學(xué)時(shí),教師無(wú)法深入地結(jié)合知識(shí)點(diǎn)講授離散數(shù)學(xué)的實(shí)際應(yīng)用,這導(dǎo)致學(xué)生在學(xué)習(xí)中難以理解離散數(shù)學(xué)知識(shí)點(diǎn)和專(zhuān)業(yè)的關(guān)系,只是機(jī)械學(xué)習(xí)抽象理論知識(shí)。
(2)從授課對(duì)象角度,處于大二上學(xué)期的學(xué)生學(xué)過(guò)的相關(guān)專(zhuān)業(yè)課有限,故他們對(duì)軟件工程專(zhuān)業(yè)理解并不深入。在此背景下,縱然授課教師想把離散數(shù)學(xué)知識(shí)和其他專(zhuān)業(yè)課建立關(guān)聯(lián),學(xué)生也不容易理解。例如,等價(jià)關(guān)系與軟件測(cè)試課中的等價(jià)類(lèi)方法設(shè)計(jì)測(cè)試用例密切相關(guān),但學(xué)習(xí)此知識(shí)點(diǎn)時(shí),學(xué)生基本不了解軟件測(cè)試,更不要說(shuō)設(shè)計(jì)測(cè)試用例了。因此,依據(jù)學(xué)生的實(shí)際情況,目前,教師在課內(nèi)只能以理論知識(shí)的授課為主。
(3)從課程自身角度,離散數(shù)學(xué)包含的內(nèi)容雜、概念多、公式符號(hào)多、理論性強(qiáng),內(nèi)容相對(duì)抽象枯燥,課程名字也導(dǎo)致學(xué)生認(rèn)為這是一門(mén)數(shù)學(xué)課,不是專(zhuān)業(yè)基礎(chǔ)課。如果授課時(shí)不結(jié)合專(zhuān)業(yè)知識(shí),學(xué)生會(huì)認(rèn)為這是一門(mén)“不知道有什么用” 的課,從而學(xué)習(xí)熱情降低。而且因?yàn)檎n程無(wú)上機(jī)課時(shí)和上機(jī)作業(yè),此課程無(wú)法像其他編程課程一樣讓學(xué)生學(xué)習(xí)的內(nèi)容可以立竿見(jiàn)影地應(yīng)用,故無(wú)法說(shuō)服學(xué)生像對(duì)待其他專(zhuān)業(yè)課那樣熱情地對(duì)待此課程。
綜合上述現(xiàn)狀,離散數(shù)學(xué)課程教學(xué)中存在的主要問(wèn)題如下。
1)與其他專(zhuān)業(yè)課程學(xué)習(xí)脫節(jié)。
目前教學(xué)中此課程和其他專(zhuān)業(yè)課程脫節(jié),并沒(méi)有起到基礎(chǔ)支撐作用。如何發(fā)揮離散數(shù)學(xué)的專(zhuān)業(yè)基礎(chǔ)課作用,與其他專(zhuān)業(yè)課有效融合銜接,真正讓軟件工程學(xué)生意識(shí)到它對(duì)解決實(shí)際工程問(wèn)題的價(jià)值,以培養(yǎng)學(xué)生解決問(wèn)題的能力,是應(yīng)考慮的問(wèn)題。
2)與實(shí)踐能力尤其編程能力培養(yǎng)脫節(jié)。
離散數(shù)學(xué)沒(méi)有上機(jī)課時(shí)和編程實(shí)踐,故造成理論和實(shí)踐的脫節(jié)。課程中理論知識(shí)本就難以理解,再不應(yīng)用于實(shí)踐,會(huì)使得理論知識(shí)掌握不牢固,不利于培養(yǎng)軟件工程學(xué)生的實(shí)踐能力。從軟件學(xué)院的培養(yǎng)目標(biāo)來(lái)說(shuō),培養(yǎng)學(xué)生的編程能力是基本要求,需要在各門(mén)課程中強(qiáng)調(diào)和鍛煉。而此課程很多知識(shí)點(diǎn)是可以理論和實(shí)踐相結(jié)合的,例如冪集知識(shí)點(diǎn),根據(jù)以往授課經(jīng)驗(yàn),很多學(xué)生上完課后寫(xiě)作業(yè)仍然會(huì)做錯(cuò)。如果輔助編程實(shí)踐,讓學(xué)生完成求集合冪集的程序設(shè)計(jì),則不僅讓學(xué)生從軟件工程專(zhuān)業(yè)角度理解和消化此知識(shí)點(diǎn),也鍛煉了學(xué)生的編程能力。
3)教學(xué)方式和支撐工具需要更新。
目前,課程教學(xué)仍然以課堂教學(xué)為主、微信群答疑為輔。以現(xiàn)有的教學(xué)方式要解決前兩個(gè)問(wèn)題較為困難。例如,如果要增加和其他專(zhuān)業(yè)課相關(guān)的課程案例,課時(shí)不變情況下,僅采用課堂教學(xué)是實(shí)現(xiàn)不了的。如果增加了編程實(shí)踐,在線(xiàn)提交編程作業(yè)并記錄學(xué)生的編程實(shí)踐數(shù)據(jù)需要其他的支撐平臺(tái)或工具來(lái)完成。因此,需要更新教學(xué)方式和教學(xué)支撐工具。
2 基于計(jì)算思維面向能力培養(yǎng)的離散數(shù)學(xué)教改總體思想
計(jì)算思維自 2006 年被提出以來(lái),就成為與理論思維、實(shí)驗(yàn)思維比肩的三大科學(xué)思維之一。計(jì)算思維是運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念去求解問(wèn)題、設(shè)計(jì)系統(tǒng)和理解人類(lèi)行為等涵蓋計(jì)算機(jī)科學(xué)廣度的一系列思維活動(dòng) [2]。對(duì)于軟件工程專(zhuān)業(yè)學(xué)生而言,培養(yǎng)計(jì)算思維非常重要。計(jì)算思維強(qiáng)調(diào)以概念去求解問(wèn)題,而離散數(shù)學(xué)教學(xué)本質(zhì)正符合這種思維,集合論和圖論知識(shí)都是培養(yǎng)學(xué)生學(xué)會(huì)用抽象描述來(lái)表示、分析和計(jì)算,以解決問(wèn)題。因此,首先從思維上改變教學(xué)理念,基于計(jì)算思維來(lái)進(jìn)行離散數(shù)學(xué)的教學(xué)改革是符合現(xiàn)在的軟件工程專(zhuān)業(yè)發(fā)展趨勢(shì)的。
此外,從軟件工程專(zhuān)業(yè)教學(xué)角度,該專(zhuān)業(yè)突出工程素質(zhì)、重視實(shí)用性人才培養(yǎng),而且新工科建設(shè)也明確提出要培養(yǎng)學(xué)生將各種方法論應(yīng)用于 解決實(shí)際問(wèn)題的能力 [3],因此面向能力的培養(yǎng)應(yīng)該在各門(mén)專(zhuān)業(yè)課中落地。離散數(shù)學(xué)的教學(xué)中也應(yīng)該突出學(xué)生能力的培養(yǎng),而不僅是理論知識(shí)的獲取。計(jì)算思維是人類(lèi)求解問(wèn)題的一種思維途徑,其最終強(qiáng)調(diào)的是解決問(wèn)題,是數(shù)學(xué)和工程思維的互補(bǔ)與融合 [2]。針對(duì)課程面臨的前兩個(gè)問(wèn)題的改革,目的就是為了培養(yǎng)學(xué)生解決問(wèn)題的能力。
因此基于計(jì)算思維面向能力培養(yǎng)的離散數(shù)學(xué)教學(xué)改革是適應(yīng)現(xiàn)在專(zhuān)業(yè)發(fā)展要求而產(chǎn)生的,不但要從教學(xué)理念上進(jìn)行改革,而且要從培養(yǎng)學(xué)生能力上進(jìn)行改革。
3 離散數(shù)學(xué)教改措施
3.1 基于計(jì)算思維改變教學(xué)模式,突出專(zhuān)業(yè)知識(shí)融合的案例教學(xué)
要避免學(xué)生把離散數(shù)學(xué)當(dāng)做純數(shù)學(xué)理論課程學(xué)習(xí),讓學(xué)生認(rèn)識(shí)到離散數(shù)學(xué)對(duì)專(zhuān)業(yè)發(fā)展的有用性,就需要改革課程的教學(xué)模式:把講授抽象的理論知識(shí)轉(zhuǎn)變?yōu)榻淌谑褂糜?jì)算來(lái)解決問(wèn)題的思維方法,從而根本改變現(xiàn)有離散數(shù)學(xué)教學(xué)的傳統(tǒng)思想和理念。
要實(shí)現(xiàn)這種教學(xué)模式的轉(zhuǎn)變,最重要的是從教學(xué)內(nèi)容上進(jìn)行優(yōu)化。授課教師必須在教學(xué)中始終滲透計(jì)算思維,加強(qiáng)離散數(shù)學(xué)和其他專(zhuān)業(yè)課的深度融合。為此,首先需要梳理離散數(shù)學(xué)與其他專(zhuān)業(yè)課程間的層次關(guān)系,找到離散數(shù)學(xué)的每個(gè)知識(shí)點(diǎn)在其他課程的應(yīng)用場(chǎng)景,例如關(guān)系復(fù)合運(yùn)算在數(shù)據(jù)庫(kù)表間關(guān)系的實(shí)際應(yīng)用。然后,設(shè)計(jì)各種教學(xué)案例,從案例出發(fā)介紹知識(shí)。例如,可以一個(gè)具體項(xiàng)目為背景講圖論的關(guān)鍵路徑知識(shí)點(diǎn)。
通過(guò)與其他專(zhuān)業(yè)課建立關(guān)聯(lián),離散數(shù)學(xué)的教學(xué)不再枯燥抽象,而是有機(jī)融合到專(zhuān)業(yè)問(wèn)題的求解中,則能夠培養(yǎng)學(xué)生解決復(fù)雜問(wèn)題的綜合能力和高級(jí)思維。
3.2 加強(qiáng)離散數(shù)學(xué)編程實(shí)踐,面向 3 種能力的培養(yǎng)
編程能力是軟件工程類(lèi)學(xué)生專(zhuān)業(yè)能力的一個(gè)重要指標(biāo),需要在大一、大二低年級(jí)階段持續(xù)強(qiáng)化,因此可以把離散數(shù)學(xué)的課程教學(xué)和編程能力鍛煉進(jìn)行有機(jī)結(jié)合,培養(yǎng)學(xué)生的編程能力,也使得學(xué)生能夠感受到知識(shí)立竿見(jiàn)影的應(yīng)用效果。
這種情況下,就需要合理設(shè)計(jì)難度適中的離散數(shù)學(xué)編程題目。比如關(guān)系的傳遞閉包,理論公式是關(guān)系復(fù)合運(yùn)算后求廣義并,但是從關(guān)系矩陣表示就是求布爾矩陣的乘法和加法,這是可以通過(guò)編程來(lái)實(shí)現(xiàn)的,所以這個(gè)知識(shí)點(diǎn)可以讓學(xué)生進(jìn)行編程練習(xí)。這個(gè)過(guò)程既強(qiáng)化了學(xué)生的編程能力的培養(yǎng),也增強(qiáng)了理論知識(shí)的直觀性和趣味性。
此外,離散數(shù)學(xué)的圖論部分,涉及很多的算法,比如最小生成樹(shù)、最短路徑、匹配問(wèn)題等都可以通過(guò)編程實(shí)踐來(lái)理解算法思想。現(xiàn)實(shí)的很多問(wèn)題都可以用圖來(lái)抽象建模,因此結(jié)合實(shí)際問(wèn)題的圖論部分的編程實(shí)踐,不僅可以鍛煉學(xué)生的編程能力,也可以培養(yǎng)學(xué)生解決專(zhuān)業(yè)問(wèn)題的能力。
在學(xué)習(xí)離散數(shù)學(xué)之前,學(xué)生課內(nèi)僅學(xué)過(guò)了 C 語(yǔ)言。編程語(yǔ)言的多樣性和發(fā)展的快速性,使得課內(nèi)不可能講授所有的開(kāi)發(fā)語(yǔ)言,因此,編程語(yǔ)言的自學(xué)非常重要。在本課程中鼓勵(lì)學(xué)生用不熟悉的新語(yǔ)言(如 Python)完成實(shí)踐,也有利于培養(yǎng)學(xué)生自學(xué)能力。
3.3 改進(jìn)課程教學(xué)方式,充分發(fā)揮第二課堂的作用
離散數(shù)學(xué)只有 32 學(xué)時(shí),講完集合論和圖論知識(shí)點(diǎn),課時(shí)并不充裕,如果再擴(kuò)展知識(shí)點(diǎn),加入案例教學(xué),顯然課時(shí)更加緊張。如果不改革教學(xué)方式,仍然全部課內(nèi)講授,必然會(huì)導(dǎo)致理論知識(shí)點(diǎn)出現(xiàn)“夾生飯”現(xiàn)象,而擴(kuò)展的案例知識(shí)會(huì)讓學(xué)生聽(tīng)得囫圇吞棗、理解不透。
要想達(dá)到教學(xué)改革的目的,教學(xué)方式上必須進(jìn)行改革??梢猿浞职l(fā)揮第二課堂——微信群的作用,提前將簡(jiǎn)單的知識(shí)點(diǎn)(如集合表示等內(nèi)容)發(fā)到第二課堂讓學(xué)生首先自學(xué),課內(nèi)老師進(jìn)行相關(guān)知識(shí)點(diǎn)的案例教學(xué)和與學(xué)生的討論互動(dòng)教學(xué)。此外,對(duì)有些擴(kuò)展知識(shí)點(diǎn)可以放在第二課堂,供學(xué)生學(xué)完課內(nèi)知識(shí)后自學(xué)以拓寬知識(shí)面。
3.4 改進(jìn)課程考核方式,使其更加面向能力培養(yǎng)
離散數(shù)學(xué)以前的考核是由課后習(xí)題作業(yè)成績(jī)和期末考試成績(jī)兩部分構(gòu)成,期末考試主要是對(duì)理論知識(shí)點(diǎn)的筆試考核。這種考核方式無(wú)法滿(mǎn)足計(jì)算思維和專(zhuān)業(yè)能力的培養(yǎng)。既然從課程內(nèi)容上強(qiáng)調(diào)了計(jì)算思維融合來(lái)設(shè)計(jì)教學(xué)案例,從實(shí)踐上強(qiáng)調(diào)了課程編程作業(yè),那么從考核上需要反映改革的內(nèi)容。
擬從兩方面改進(jìn)課程考核方式。首先,平時(shí)作業(yè)成績(jī)中要包含編程實(shí)踐作業(yè)成績(jī)。對(duì)于編程實(shí)踐不僅要強(qiáng)調(diào)完成,還要強(qiáng)調(diào)質(zhì)量,以培養(yǎng)學(xué)生寫(xiě)優(yōu)質(zhì)代碼的能力。其次,考試內(nèi)容的教學(xué)改革,不僅考查理論知識(shí)點(diǎn),還增加案例分析,讓學(xué)生分析需要用什么知識(shí)點(diǎn)來(lái)建模解決問(wèn)題。
3.5 借助多個(gè)支撐平臺(tái)來(lái)促進(jìn)課程可持續(xù)發(fā)展
離散數(shù)學(xué)課程目前主要借助學(xué)校的課程中心來(lái)進(jìn)行資源共享,但要實(shí)現(xiàn)如上教學(xué)內(nèi)容和方式的改革,并且促進(jìn)課程可持續(xù)發(fā)展,必須借助多個(gè)教學(xué)平臺(tái)的支撐。一方面,現(xiàn)有的課程中心平臺(tái)仍然可以實(shí)現(xiàn)資源的共享;另一方面,需要借助一個(gè)編程平臺(tái)來(lái)實(shí)現(xiàn)編程題庫(kù)和在線(xiàn)編程實(shí)踐。對(duì)于后者,可以依托北京航空航天大學(xué)現(xiàn)有的 accoding 在線(xiàn)編程練習(xí)平臺(tái),此平臺(tái)可以提供豐富的實(shí)踐練習(xí)題庫(kù),鍛煉學(xué)生解決實(shí)際問(wèn)題的能力。此外,在線(xiàn)編程平臺(tái)能記錄學(xué)生的實(shí)踐效果,比如提交通過(guò)次數(shù)等。通過(guò)數(shù)據(jù)分析,學(xué)生可以檢視自己的實(shí)踐能力。
4 離散數(shù)學(xué)教改實(shí)踐結(jié)果
按照以上教改總體思想和措施,2020年秋季,北京航空航天大學(xué)軟件學(xué)院對(duì)離散數(shù)學(xué)展開(kāi)了教學(xué)改革實(shí)踐,通過(guò) 3 項(xiàng)內(nèi)容可以反饋此次實(shí)踐效果。首先,在期末考試中增加了具有實(shí)際背景的分析題,考查學(xué)生選擇合適的圖來(lái)抽象建模并解決問(wèn)題的能力,最終 90% 的學(xué)生都能夠正確解決,但也有 10% 的學(xué)生分析建模錯(cuò)誤。其次,課程中指定用編程語(yǔ)言 Python 完成 3 次實(shí)踐作業(yè)。針對(duì)同一問(wèn)題,例如傳遞閉包的編程實(shí)踐作業(yè),239 名學(xué)生中 71% 的學(xué)生可以在 3 次內(nèi)(含 3 次)在線(xiàn)提交代碼通過(guò),但是也有 5% 的學(xué)生至少要 10 次以上才能正確通過(guò)。從代碼行來(lái)看,通常 14~22 行解決問(wèn)題,也有學(xué)生非常精簡(jiǎn)地用 9 行代碼解決了問(wèn)題,但也有 4% 的學(xué)生至少需要 40 行以上的代碼。這些都反映了學(xué)生編程能力的差異,通過(guò)把相關(guān)數(shù)據(jù)反饋給學(xué)生,并把優(yōu)秀編程作業(yè)展示給學(xué)生,可以促進(jìn)學(xué)生了解差距,提高自身開(kāi)發(fā)能力。最后,課后通過(guò)調(diào)查問(wèn)卷來(lái)了解學(xué)生對(duì) 3 種能力培養(yǎng)的滿(mǎn)意度。學(xué)生對(duì)通過(guò)實(shí)際問(wèn)題建模來(lái)培養(yǎng)解決問(wèn)題能力的滿(mǎn)意度為 92.2%,對(duì)離散數(shù)學(xué)中編程實(shí)踐能力培養(yǎng)的滿(mǎn)意度為 80%,對(duì)自學(xué)能力培養(yǎng)的滿(mǎn)意度為 73%。后兩個(gè)能力培養(yǎng)滿(mǎn)意度不高和實(shí)踐中指定學(xué)生用之前不熟悉的 Python 來(lái)完成編程作業(yè)有關(guān)。根據(jù)調(diào)查,53% 的學(xué)生回答更愿意用已經(jīng)會(huì)的編程語(yǔ)言而不是自學(xué)新的語(yǔ)言來(lái)完成作業(yè),這主要是因?yàn)樵趯W(xué)期中間多門(mén)課并行,自學(xué)新語(yǔ)言學(xué)生感到時(shí)間緊張。這些反饋數(shù)據(jù)為后續(xù)課程的持續(xù)改進(jìn)提供了參考。
5 結(jié) 語(yǔ)
計(jì)算思維是每個(gè)軟件工程專(zhuān)業(yè)學(xué)生都應(yīng)該具備的解決問(wèn)題的思維。在計(jì)算思維的指導(dǎo)下,從思維轉(zhuǎn)變、能力培養(yǎng)、教學(xué)方式、課程考核和平臺(tái)支撐方面進(jìn)行的面向 3 種能力培養(yǎng)的教學(xué)改革實(shí)施后,經(jīng)過(guò)調(diào)查反饋,3 種能力的培養(yǎng)基本達(dá)到預(yù)期目標(biāo),但也存在改進(jìn)的空間。在后續(xù)的教學(xué)實(shí)施過(guò)程中,筆者會(huì)根據(jù)反饋調(diào)整,努力使離散數(shù)學(xué)不僅完成理論授課也完成學(xué)生專(zhuān)業(yè)能力的培養(yǎng)。
論文指導(dǎo) >
SCI期刊推薦 >
論文常見(jiàn)問(wèn)題 >
SCI常見(jiàn)問(wèn)題 >