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