公務(wù)員期刊網(wǎng) 論文中心 正文

計(jì)算思維為下的C語言程序設(shè)計(jì)教學(xué)

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了計(jì)算思維為下的C語言程序設(shè)計(jì)教學(xué)范文,希望能給你帶來靈感和參考,敬請閱讀。

計(jì)算思維為下的C語言程序設(shè)計(jì)教學(xué)

摘要:分析計(jì)算思維對大學(xué)生的培養(yǎng)非常重要。本文提出C語言程序設(shè)計(jì)課程加強(qiáng)計(jì)算思維的訓(xùn)練,比單純講授知識更重要,將計(jì)算思維方法在課程教學(xué)中加以運(yùn)用,可以提高學(xué)生綜合分析問題和解決問題的能力。

關(guān)鍵詞:C語言程序設(shè)計(jì);計(jì)算思維;教學(xué)研究

1引言

C語言程序設(shè)計(jì)課程是大學(xué)計(jì)算機(jī)專業(yè)的入門課程。教學(xué)過程中存在一些問題,如部分學(xué)生認(rèn)為難度很大、學(xué)習(xí)不感興趣等。為更好地了解實(shí)際情況,針對大一新生做了問卷調(diào)查,結(jié)果如表1所示。表1顯示,新生中有接近一半在高中階段選擇文理兼修。他們的思維與純理科生存在一些差異。另外,在學(xué)習(xí)C語言的過程中,學(xué)生的主要問題是如何能通過編寫程序解決實(shí)際問題。因此,在進(jìn)行C語言授課時,老師應(yīng)該更注重計(jì)算思維的訓(xùn)練。這比單純的講授相關(guān)知識更加重要[1]。如何把重點(diǎn)知識與計(jì)算思維相結(jié)合并進(jìn)行融會貫通,是值得思考的問題。

2計(jì)算機(jī)思維

計(jì)算思維主要有算法思維和程序思維兩大分支。最初計(jì)算機(jī)采用“計(jì)算”這一概念時,就出現(xiàn)過“計(jì)算思維”這一常用名詞,也被稱為“算法思維”,是將問題轉(zhuǎn)換為從輸入到輸出的轉(zhuǎn)換過程。此時,計(jì)算機(jī)作為工具更多應(yīng)應(yīng)用在數(shù)值計(jì)算中[2]。周以真教授提出計(jì)算思維(ComputationalThinking)是指運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念去求解問題、設(shè)計(jì)系統(tǒng)和理解人類行為,其本質(zhì)是抽象和自動化[3]。很多專家學(xué)者認(rèn)為,計(jì)算思維是人類應(yīng)具備的第三種思維。第一種思維是實(shí)驗(yàn)思維:通過實(shí)驗(yàn)來觀察結(jié)果,發(fā)現(xiàn)、推斷與總結(jié)。這種思維強(qiáng)調(diào)觀察與歸納。第二種思維是理論思維:通過假設(shè)、預(yù)設(shè)來推導(dǎo)出定義、性質(zhì)、定理并且通過各種方法來證明其正確與錯誤。這種思維強(qiáng)調(diào)推理和演繹。而計(jì)算思維強(qiáng)調(diào)的是設(shè)計(jì)與構(gòu)造。它關(guān)注的是人類思維中有關(guān)可行性、可構(gòu)造性和可評價性的部分。在當(dāng)前環(huán)境下,理論與實(shí)驗(yàn)手段面臨著大規(guī)模數(shù)據(jù)的處理,不可避免地要應(yīng)用計(jì)算手段來輔助[4]。人類的思維方式與機(jī)器不同。人在解決某個問題時,一般會尋找某種公式來快速解決。人類求解的方式,希望有較小的計(jì)算量,只需要根據(jù)數(shù)學(xué)公式或經(jīng)驗(yàn),就能找到相應(yīng)的答案。但是計(jì)算機(jī)需要按照指令完成相關(guān)工作。人類要根據(jù)計(jì)算機(jī)的特點(diǎn),遵循計(jì)算思維,設(shè)計(jì)一定的算法來進(jìn)行求解,這就要求按照計(jì)算思維的特點(diǎn)來進(jìn)行設(shè)計(jì)。例如求解12和18的最大公約數(shù)的問題。人類往往能根據(jù)經(jīng)驗(yàn),一眼就判斷出答案是6。而計(jì)算機(jī)卻沒有這個能力,需要設(shè)計(jì)一些算法來解決。第1種方法是枚舉法。這種方法的求解過程,規(guī)則可能很簡單,只要把滿足條件的結(jié)果都列舉出來,逐個測試,但是計(jì)算量很大,需要循環(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,計(jì)算結(jié)束,a是最大公約數(shù);(2)否則,計(jì)算a除以b的余數(shù),讓a等于b,b等于那個余數(shù);(3)回到第1步。通過上述比較可以看出,學(xué)習(xí)程序設(shè)計(jì)類課程,掌握計(jì)算思維,遵循計(jì)算機(jī)思考的方式來解決問題,是一種非常重要的能力。

3基于計(jì)算思維的教學(xué)

將計(jì)算思維能力的培養(yǎng)貫通在C語言教學(xué)中,有目的地培養(yǎng)學(xué)生應(yīng)用計(jì)算思維解決平時學(xué)習(xí)遇到的問題,以達(dá)到提高學(xué)生解決實(shí)際問題的能力。(1)將語法融入問題的求解中。從實(shí)際應(yīng)用案例中抽取教學(xué)要素。從算法的維度,將迭代、枚舉、遞歸、分治、排序等算法融入實(shí)際問題的求解過程,讓學(xué)生在潛移默化中提高計(jì)算思維能力[5]。例如,可以利用韓信點(diǎn)兵的案例,融入的知識點(diǎn)包括邏輯運(yùn)算符和break的使用,同時將枚舉法的算法思想引入教學(xué)中。這樣可以讓學(xué)生在學(xué)習(xí)新知識的同時訓(xùn)練計(jì)算思維。如何將一個具體的問題進(jìn)行抽象是解決問題的關(guān)鍵。韓信命令士兵5人一排,結(jié)果多出3人。命令士兵7人一排,結(jié)果多出6人。命令士兵11人一排,結(jié)果多出4人。提出韓信的兵人數(shù)滿足什么條件?在計(jì)算機(jī)中如何表達(dá)出人數(shù)的條件?引出邏輯運(yùn)算符,于是韓信點(diǎn)兵的人數(shù)使用C語言寫出表達(dá)式為i%5==3&&i%7==6&&i%11==4。然后引導(dǎo)學(xué)生學(xué)會思考如何應(yīng)用計(jì)算機(jī)C語言來解決這個問題。提出利用計(jì)算機(jī)運(yùn)行速度快的特點(diǎn),發(fā)揮它的優(yōu)勢,讓它來逐個檢驗(yàn)。檢驗(yàn)的范圍在500----1000之間,使用循環(huán)語句可以解決這個問題,進(jìn)而引出枚舉法的思想。枚舉法是計(jì)算機(jī)解決問題很擅長的方法。利用運(yùn)算速度快、精確度高的特點(diǎn),能對解決問題的所有可能情況一個不漏地進(jìn)行檢驗(yàn)。枚舉法應(yīng)用廣泛,學(xué)生掌握這種方法,可以舉一反三,求素數(shù)、閏年等很多情況下可以都使用。這種思想對計(jì)算思維的理解,對以后的學(xué)習(xí)和工作都有很好的幫助。(2)采用圖示化方法。將復(fù)雜的思維來進(jìn)行描述,可以讓學(xué)生對所接受的問題一目了然。對于復(fù)雜的問題,可以先通過規(guī)模較小的問題求解。(3)通過OJ平臺在線訓(xùn)練學(xué)生的編程能力。通過不斷做題,強(qiáng)化學(xué)生的實(shí)際動手能力,挑選經(jīng)典的問題,用經(jīng)典的算法進(jìn)行求解,培養(yǎng)學(xué)生的計(jì)算思維能力。

4總結(jié)

在C語言程序設(shè)計(jì)教學(xué)中,將計(jì)算思維的培養(yǎng)作為教學(xué)的重要指導(dǎo)思想來促進(jìn)授課方式的改革,勢在必行。在教學(xué)中發(fā)現(xiàn),學(xué)生使用計(jì)算思維來求解遇到的問題有助于能力的提高,有助于培養(yǎng)大學(xué)生的創(chuàng)新能力。當(dāng)學(xué)生具備一定的計(jì)算思維能力后,需要舉一反三地解決所遇到的問題,將所學(xué)知識融會貫通,以達(dá)到事半功倍的效果。

參考文獻(xiàn)

[1]趙美利,牛曉峰.師范類計(jì)算機(jī)課程體系與計(jì)算思維的培養(yǎng).貴陽學(xué)院學(xué)報(自然科學(xué)版),2016,11(01):78-80

[2]王梅娟,李輝,韓敬利,鄭長友,蔣園園.基于計(jì)算思維的大學(xué)計(jì)算機(jī)基礎(chǔ)課程改革研究與實(shí)踐.計(jì)算機(jī)教育,2020(03):59-63

[5]揭安全.高級語言程序設(shè)計(jì)—基于計(jì)算思維能力培養(yǎng).北京:北京郵電出版社,2015

作者:胡華 王瑩 單位:棗莊學(xué)院信息科學(xué)與工程學(xué)院