前言:想要寫出一篇引人入勝的文章?我們特意為您整理了計算思維為下的C語言程序設計教學范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:分析計算思維對大學生的培養非常重要。本文提出C語言程序設計課程加強計算思維的訓練,比單純講授知識更重要,將計算思維方法在課程教學中加以運用,可以提高學生綜合分析問題和解決問題的能力。
關鍵詞:C語言程序設計;計算思維;教學研究
1引言
C語言程序設計課程是大學計算機專業的入門課程。教學過程中存在一些問題,如部分學生認為難度很大、學習不感興趣等。為更好地了解實際情況,針對大一新生做了問卷調查,結果如表1所示。表1顯示,新生中有接近一半在高中階段選擇文理兼修。他們的思維與純理科生存在一些差異。另外,在學習C語言的過程中,學生的主要問題是如何能通過編寫程序解決實際問題。因此,在進行C語言授課時,老師應該更注重計算思維的訓練。這比單純的講授相關知識更加重要[1]。如何把重點知識與計算思維相結合并進行融會貫通,是值得思考的問題。
2計算機思維
計算思維主要有算法思維和程序思維兩大分支。最初計算機采用“計算”這一概念時,就出現過“計算思維”這一常用名詞,也被稱為“算法思維”,是將問題轉換為從輸入到輸出的轉換過程。此時,計算機作為工具更多應應用在數值計算中[2]。周以真教授提出計算思維(ComputationalThinking)是指運用計算機科學的基礎概念去求解問題、設計系統和理解人類行為,其本質是抽象和自動化[3]。很多專家學者認為,計算思維是人類應具備的第三種思維。第一種思維是實驗思維:通過實驗來觀察結果,發現、推斷與總結。這種思維強調觀察與歸納。第二種思維是理論思維:通過假設、預設來推導出定義、性質、定理并且通過各種方法來證明其正確與錯誤。這種思維強調推理和演繹。而計算思維強調的是設計與構造。它關注的是人類思維中有關可行性、可構造性和可評價性的部分。在當前環境下,理論與實驗手段面臨著大規模數據的處理,不可避免地要應用計算手段來輔助[4]。人類的思維方式與機器不同。人在解決某個問題時,一般會尋找某種公式來快速解決。人類求解的方式,希望有較小的計算量,只需要根據數學公式或經驗,就能找到相應的答案。但是計算機需要按照指令完成相關工作。人類要根據計算機的特點,遵循計算思維,設計一定的算法來進行求解,這就要求按照計算思維的特點來進行設計。例如求解12和18的最大公約數的問題。人類往往能根據經驗,一眼就判斷出答案是6。而計算機卻沒有這個能力,需要設計一些算法來解決。第1種方法是枚舉法。這種方法的求解過程,規則可能很簡單,只要把滿足條件的結果都列舉出來,逐個測試,但是計算量很大,需要循環多次。求最大公約數的步驟為:(1)設變量i為1;(2)如果a和b都能被i整除,則記下這個i;(3)i加1,重復第2步,直到i等于a或b;(4)記下最大可以整除的a和b的i,就是最大公約數。第2種方法是輾轉相除法。這種算法效率較高,但是對于人們來說不易理解。其步驟如下:(1)如果b等于0,計算結束,a是最大公約數;(2)否則,計算a除以b的余數,讓a等于b,b等于那個余數;(3)回到第1步。通過上述比較可以看出,學習程序設計類課程,掌握計算思維,遵循計算機思考的方式來解決問題,是一種非常重要的能力。
3基于計算思維的教學
將計算思維能力的培養貫通在C語言教學中,有目的地培養學生應用計算思維解決平時學習遇到的問題,以達到提高學生解決實際問題的能力。(1)將語法融入問題的求解中。從實際應用案例中抽取教學要素。從算法的維度,將迭代、枚舉、遞歸、分治、排序等算法融入實際問題的求解過程,讓學生在潛移默化中提高計算思維能力[5]。例如,可以利用韓信點兵的案例,融入的知識點包括邏輯運算符和break的使用,同時將枚舉法的算法思想引入教學中。這樣可以讓學生在學習新知識的同時訓練計算思維。如何將一個具體的問題進行抽象是解決問題的關鍵。韓信命令士兵5人一排,結果多出3人。命令士兵7人一排,結果多出6人。命令士兵11人一排,結果多出4人。提出韓信的兵人數滿足什么條件?在計算機中如何表達出人數的條件?引出邏輯運算符,于是韓信點兵的人數使用C語言寫出表達式為i%5==3&&i%7==6&&i%11==4。然后引導學生學會思考如何應用計算機C語言來解決這個問題。提出利用計算機運行速度快的特點,發揮它的優勢,讓它來逐個檢驗。檢驗的范圍在500----1000之間,使用循環語句可以解決這個問題,進而引出枚舉法的思想。枚舉法是計算機解決問題很擅長的方法。利用運算速度快、精確度高的特點,能對解決問題的所有可能情況一個不漏地進行檢驗。枚舉法應用廣泛,學生掌握這種方法,可以舉一反三,求素數、閏年等很多情況下可以都使用。這種思想對計算思維的理解,對以后的學習和工作都有很好的幫助。(2)采用圖示化方法。將復雜的思維來進行描述,可以讓學生對所接受的問題一目了然。對于復雜的問題,可以先通過規模較小的問題求解。(3)通過OJ平臺在線訓練學生的編程能力。通過不斷做題,強化學生的實際動手能力,挑選經典的問題,用經典的算法進行求解,培養學生的計算思維能力。
4總結
在C語言程序設計教學中,將計算思維的培養作為教學的重要指導思想來促進授課方式的改革,勢在必行。在教學中發現,學生使用計算思維來求解遇到的問題有助于能力的提高,有助于培養大學生的創新能力。當學生具備一定的計算思維能力后,需要舉一反三地解決所遇到的問題,將所學知識融會貫通,以達到事半功倍的效果。
參考文獻
[1]趙美利,牛曉峰.師范類計算機課程體系與計算思維的培養.貴陽學院學報(自然科學版),2016,11(01):78-80
[2]王梅娟,李輝,韓敬利,鄭長友,蔣園園.基于計算思維的大學計算機基礎課程改革研究與實踐.計算機教育,2020(03):59-63
[5]揭安全.高級語言程序設計—基于計算思維能力培養.北京:北京郵電出版社,2015
作者:胡華 王瑩 單位:棗莊學院信息科學與工程學院