張萬(wàn)里 龍莆均
摘要:高校計(jì)算機(jī)語(yǔ)言課程的學(xué)習(xí)過(guò)程中數(shù)學(xué)思維至關(guān)重要。計(jì)算機(jī)課堂教學(xué)尤其是算法設(shè)計(jì)及編程教學(xué)中,融人數(shù)學(xué)思維、培養(yǎng)學(xué)生的數(shù)學(xué)素養(yǎng)是一個(gè)潛移默化的過(guò)程,將會(huì)對(duì)學(xué)生的長(zhǎng)遠(yuǎn)發(fā)展產(chǎn)生影響。該文從數(shù)學(xué)邏輯思維、計(jì)算思維能力、數(shù)學(xué)推理思維、數(shù)學(xué)建模思維和數(shù)學(xué)運(yùn)用思維等五個(gè)方面給出了一點(diǎn)粗淺的認(rèn)識(shí)和理解,希望能給算法設(shè)計(jì)及編程教學(xué)提供一點(diǎn)參考。
關(guān)鍵詞:算法設(shè)計(jì);計(jì)算機(jī)編程;課堂教學(xué);數(shù)學(xué)素養(yǎng)
中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2020)19-0137-02
開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
眾所周知,數(shù)學(xué)知識(shí)在學(xué)習(xí)過(guò)程中相對(duì)較為枯燥,晦澀難懂的數(shù)學(xué)邏輯,曲曲折折的數(shù)學(xué)符號(hào),很多抽象的概念等都會(huì)讓人望而卻步。特別是高校數(shù)學(xué)相關(guān)課程更是抽象得令無(wú)數(shù)英雄競(jìng)折腰,但是數(shù)學(xué)卻是很多學(xué)科的基礎(chǔ)。例如,高等數(shù)學(xué)、線性代數(shù)、數(shù)理統(tǒng)計(jì)和離散數(shù)學(xué)等課程是高校計(jì)算機(jī)課程學(xué)習(xí)的必備知識(shí),在培養(yǎng)學(xué)生邏輯思維和推理能力方面發(fā)揮著重要作用。數(shù)學(xué)素養(yǎng)與計(jì)算機(jī)技術(shù)的結(jié)合為解決具體問(wèn)題提供了有效途徑?;诳茖W(xué)(Science),技術(shù)(Technology)。工程(Engi-neering),數(shù)學(xué)(Mathematics)四個(gè)概念發(fā)展起來(lái)的STEM教育就是以數(shù)學(xué)為基礎(chǔ)利用計(jì)算機(jī)解決工程和技術(shù)問(wèn)題的范例。
算法設(shè)計(jì)和編程影響著3D打印、機(jī)器學(xué)習(xí)、人工智能等新技術(shù)的發(fā)展,而技術(shù)人員和科研人員的數(shù)學(xué)素養(yǎng)卻對(duì)算法設(shè)計(jì)和計(jì)算機(jī)編程產(chǎn)生著重要影響。為此,高校計(jì)算機(jī)課程尤其是算法設(shè)計(jì)及編程相關(guān)的課堂教學(xué)中需要融合數(shù)學(xué)思想,強(qiáng)化利用數(shù)學(xué)思維和數(shù)學(xué)工具解決問(wèn)題的意識(shí),為學(xué)生學(xué)習(xí)更高層次的知識(shí)做好準(zhǔn)備。注意到,現(xiàn)有一些文獻(xiàn)如[1-4]等雖已關(guān)注計(jì)算機(jī)專業(yè)中數(shù)學(xué)思維的培養(yǎng),但討論的內(nèi)容還不夠全面。本文結(jié)合算法設(shè)計(jì)及編程教學(xué)從數(shù)學(xué)邏輯思維、計(jì)算思維能力、數(shù)學(xué)推理思維、數(shù)學(xué)建模思維和數(shù)學(xué)運(yùn)用思維等五個(gè)方面來(lái)探討計(jì)算機(jī)專業(yè)教學(xué)尤其是算法設(shè)計(jì)及編程教學(xué)與數(shù)學(xué)素養(yǎng)的培養(yǎng)。
1 數(shù)學(xué)邏輯思維
計(jì)算機(jī)課程的初學(xué)者通過(guò)傳統(tǒng)流程圖、結(jié)構(gòu)化流程圖能夠清晰地展示編程的邏輯和思路。課堂教學(xué)中有意識(shí)的引導(dǎo)學(xué)生畫(huà)流程圖是學(xué)生向?qū)W習(xí)計(jì)算機(jī)編程邁出的重要一步。一些基本語(yǔ)言中的順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)等邏輯性強(qiáng)的內(nèi)容無(wú)疑是重要的也是學(xué)生容易出錯(cuò)的地方。設(shè)計(jì)結(jié)構(gòu)緊湊,簡(jiǎn)單易運(yùn)行,計(jì)算復(fù)雜度較低的程序無(wú)疑需要好的邏輯思維。特別是程序偽代碼和源代碼較多的程序更需清晰的層次,提高程序的可讀性。學(xué)生畏懼編程,無(wú)從下手很可能就是因?yàn)榻鉀Q問(wèn)題的思路不清晰,編程時(shí)由于邏輯性問(wèn)題頻頻出錯(cuò)更會(huì)導(dǎo)致學(xué)生的畏難情緒。一段優(yōu)雅、清晰、簡(jiǎn)潔的程序代碼離不開(kāi)有序的邏輯。培養(yǎng)學(xué)生的算法和編程能力一定程度上要重視培養(yǎng)學(xué)生的數(shù)學(xué)邏輯思維,在算法設(shè)計(jì)、算法步驟、編程實(shí)現(xiàn)等各個(gè)環(huán)節(jié)中向?qū)W生展現(xiàn)數(shù)學(xué)邏輯,強(qiáng)化數(shù)學(xué)邏輯。
2 數(shù)學(xué)計(jì)算思維
很多編程問(wèn)題本身就是數(shù)學(xué)式子,編程的過(guò)程就是怎么具體利用插值、中值定理、數(shù)值逼近等的數(shù)學(xué)知識(shí)來(lái)解決。同一個(gè)問(wèn)題可通過(guò)多種計(jì)算方式實(shí)現(xiàn),但快速、準(zhǔn)確的解決問(wèn)題需要強(qiáng)化計(jì)算思維能力。計(jì)算機(jī)可以通過(guò)循環(huán)實(shí)現(xiàn)重復(fù)計(jì)算,使得具體問(wèn)題的計(jì)算化繁為簡(jiǎn),從而提高計(jì)算效率。計(jì)算機(jī)能夠憑借其快速運(yùn)算能力實(shí)現(xiàn)對(duì)復(fù)雜或煩瑣問(wèn)題的計(jì)算,怎么借助于數(shù)學(xué)知識(shí)快速實(shí)現(xiàn)計(jì)算也是算法設(shè)計(jì)中需要考慮的問(wèn)題之一。數(shù)學(xué)計(jì)算好的學(xué)生在計(jì)算機(jī)編程上也可能具有優(yōu)勢(shì),在一定程度上人的計(jì)算思維能夠通過(guò)計(jì)算機(jī)編程得到體現(xiàn)。程序的實(shí)現(xiàn)有多種方式,簡(jiǎn)單有效的實(shí)現(xiàn)方式往往也是數(shù)學(xué)計(jì)算較簡(jiǎn)單的方式。在教學(xué)中適當(dāng)?shù)倪€原數(shù)學(xué)計(jì)算的本質(zhì),寫(xiě)出數(shù)學(xué)計(jì)算過(guò)程,清晰的向?qū)W生展示計(jì)算原理和計(jì)算過(guò)程,引導(dǎo)學(xué)生利用數(shù)學(xué)知識(shí)簡(jiǎn)化計(jì)算,精簡(jiǎn)計(jì)算步驟進(jìn)而精簡(jiǎn)程序設(shè)計(jì)。
3 數(shù)學(xué)推理思維
從不同角度推理能夠設(shè)計(jì)不同的算法,而實(shí)現(xiàn)不同算法又要用不同的程序代碼。編寫(xiě)程序往往并不能一蹴而就,需要不斷調(diào)試,經(jīng)過(guò)推理發(fā)現(xiàn)錯(cuò)誤,進(jìn)而通過(guò)修正得到運(yùn)行良好的程序?qū)崿F(xiàn)預(yù)設(shè)的功能。一些算法設(shè)計(jì)和編程的關(guān)鍵在于寫(xiě)出遞推公式,通過(guò)遞推反復(fù)運(yùn)算按照精度或運(yùn)行次數(shù)的要求得到需要的結(jié)果。在計(jì)算機(jī)課堂解釋程序設(shè)計(jì)的思想,有時(shí)就要拋出其中用到的數(shù)學(xué)知識(shí),并寫(xiě)出推理步驟,通過(guò)對(duì)這些步驟的剖析向?qū)W生呈現(xiàn)算法和程序設(shè)計(jì)的重點(diǎn)和難點(diǎn),讓學(xué)生理解編程的原理和思想。數(shù)學(xué)推理能夠在理論上解釋算法設(shè)計(jì)和編程的有效性,為算法設(shè)計(jì)和編程提供一些合理建議和有益指導(dǎo)。例如,我們通過(guò)推理得到一些算法的收斂性和收斂速率,就可以利用收斂性判斷算法是否可行,結(jié)合收斂速率和仿真就可檢驗(yàn)算法的效果。由此可見(jiàn),數(shù)學(xué)推理在算法設(shè)計(jì)和編程中發(fā)揮著重要作用。
4 數(shù)學(xué)建模思維
利用算法和編程解決問(wèn)題,往往需要從生產(chǎn)和生活實(shí)際中抽象出數(shù)學(xué)模型,基于清晰的數(shù)學(xué)表達(dá)設(shè)計(jì)算法,進(jìn)行編程。目前數(shù)學(xué)建模和計(jì)算機(jī)結(jié)合已發(fā)展成為運(yùn)用數(shù)學(xué)和計(jì)算機(jī)知識(shí)解決具體問(wèn)題的重要方法。在數(shù)學(xué)建模中,我們需要對(duì)具體問(wèn)題進(jìn)行抽象的描述和建模,運(yùn)用數(shù)學(xué)的方式和方法進(jìn)行推理演義,借助于專業(yè)軟件和計(jì)算軟件進(jìn)行計(jì)算和仿真,有時(shí)還需要針對(duì)具體問(wèn)題設(shè)計(jì)算法。將算法設(shè)計(jì)與數(shù)學(xué)模型建立相結(jié)合,注重引導(dǎo)學(xué)生進(jìn)行思考和運(yùn)用,有效實(shí)現(xiàn)學(xué)科知識(shí)的遷移和轉(zhuǎn)化應(yīng)用,將會(huì)強(qiáng)化數(shù)學(xué)建模思維,使學(xué)生獲得更多的學(xué)習(xí)體驗(yàn)。計(jì)算機(jī)專業(yè)相關(guān)課程中有的也開(kāi)設(shè)了《數(shù)學(xué)建?!氛n程,學(xué)生可以從中學(xué)到建模思想和方法。有的學(xué)生還通過(guò)參加數(shù)學(xué)建模競(jìng)賽體會(huì)了從建模到編程計(jì)算的全過(guò)程。然而,在算法設(shè)計(jì)和編程教學(xué)中,只是在涉及具體問(wèn)題時(shí)建立簡(jiǎn)單的數(shù)學(xué)模型,主要是為了向?qū)W生更好地展示算法的思想和編程原理。但在此過(guò)程中借以引導(dǎo)學(xué)生數(shù)學(xué)建模也是培養(yǎng)學(xué)生數(shù)學(xué)素養(yǎng)的重要方式和方法。
5 數(shù)學(xué)運(yùn)用思維
很多高校,在計(jì)算機(jī)等學(xué)科中開(kāi)設(shè)的數(shù)學(xué)課程仍然只是數(shù)學(xué),沒(méi)有很清楚的體現(xiàn)數(shù)學(xué)在計(jì)算機(jī)中的應(yīng)用。教授給學(xué)生的還只是數(shù)學(xué)的概念、計(jì)算方法、抽象的邏輯證明和推理演化等。學(xué)生不但學(xué)起來(lái)很枯燥,而且在以后要應(yīng)用時(shí)很多數(shù)學(xué)基礎(chǔ)知識(shí)也已經(jīng)逐漸淡忘,還得重新回過(guò)頭自學(xué)。如果能夠使學(xué)生經(jīng)常接觸到有關(guān)數(shù)學(xué)知識(shí),無(wú)疑會(huì)強(qiáng)化數(shù)學(xué)的運(yùn)用,在讓學(xué)生體會(huì)到數(shù)學(xué)用處的同時(shí)也讓數(shù)學(xué)基礎(chǔ)知識(shí)更好地服務(wù)于計(jì)算機(jī)學(xué)科教學(xué)。正如前面所述,在算法設(shè)計(jì)和編程教學(xué)中,數(shù)學(xué)思想和邏輯無(wú)處不在,利用課堂教學(xué)引導(dǎo)學(xué)生形成數(shù)學(xué)運(yùn)用的思維,有利于學(xué)生的進(jìn)一步深化學(xué)習(xí)。借助于算法設(shè)計(jì)和編程教學(xué),強(qiáng)化利用數(shù)學(xué)知識(shí)的意識(shí),促使學(xué)生在運(yùn)用數(shù)學(xué)知識(shí)實(shí)現(xiàn)計(jì)算機(jī)程序設(shè)計(jì)的同時(shí)體驗(yàn)運(yùn)用數(shù)學(xué)和算法設(shè)計(jì)解決具體問(wèn)題的樂(lè)趣。
算法設(shè)計(jì)中,往往是很多求解思想的融合,通過(guò)代碼實(shí)現(xiàn)特定的運(yùn)算功能。在此中蘊(yùn)含了很多的數(shù)學(xué)邏輯、推論、計(jì)算等思想,在教學(xué)過(guò)程中將這些內(nèi)容清晰的展現(xiàn)在學(xué)生面前有利于學(xué)生理解算法的意義和思想,易于掌握其中的原理和方法,有助于提高學(xué)生綜合運(yùn)用數(shù)學(xué)知識(shí)、算法設(shè)計(jì)和編程技術(shù)解決具體問(wèn)題的能力,有利于學(xué)生邏輯思維和推理能力的提升。課堂教學(xué)不單單是只教授學(xué)生本門(mén)課程的知識(shí),而是要從更長(zhǎng)遠(yuǎn)的角度看待學(xué)生的學(xué)習(xí)。因此,在計(jì)算機(jī)相關(guān)課程尤其是算法設(shè)計(jì)和編程教學(xué)中注重培養(yǎng)學(xué)生的數(shù)學(xué)素養(yǎng),將會(huì)為學(xué)生的進(jìn)一步深造和從事程序設(shè)計(jì)、軟件開(kāi)發(fā)等工作奠定一定的基礎(chǔ)。
參考文獻(xiàn):
[1]章立亮.計(jì)算機(jī)程序設(shè)計(jì)與數(shù)學(xué)思維品質(zhì)[J].寧德師專學(xué)報(bào) (自然科學(xué)版),1999,11(1):17-20.
[2]吳海峰.數(shù)學(xué)思維在計(jì)算機(jī)程序設(shè)計(jì)中的體現(xiàn)[J].軟件導(dǎo)刊,2012,11(8):48-49.
[3]朱宏,朱思瑋.計(jì)算機(jī)專業(yè)學(xué)生數(shù)學(xué)思維方法的培養(yǎng)[J].高師理科學(xué)刊,2014,34(4):75-77.
[4]周玉斌,劉海飛,麻選東.數(shù)學(xué)算法對(duì)計(jì)算機(jī)編程優(yōu)化策略分析[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2020,2:48-49.
【通聯(lián)編輯:代影】
作者簡(jiǎn)介:張萬(wàn)里(1987-),河南鄲城人,博士,講師,主要從事計(jì)算機(jī)教學(xué)與研究。