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