靳 沖 李 真 張優(yōu)敏
(重慶工程學(xué)院大數(shù)據(jù)與人工智能學(xué)院 重慶 400056)
計(jì)算機(jī)日新月異的發(fā)展極大地改變了人們的生活方式,更改變了人的思維方式[1]。計(jì)算機(jī)科學(xué)家、圖靈獎(jiǎng)得主Edsger Diskstra說(shuō):“我們所使用的工具影響著我們的思維方式和思維習(xí)慣,從而也深刻影響著我們的思維能力?!泵绹?guó)心理學(xué)和教育學(xué)家 Sternberg R J指出:教師在指導(dǎo)、教會(huì)學(xué)生解決問(wèn)題的同時(shí),也應(yīng)該教會(huì)學(xué)生發(fā)現(xiàn)值得解決的問(wèn)題[2]。
人類在認(rèn)識(shí)世界,改造世界過(guò)程中表現(xiàn)為三種基本思維:實(shí)證思維,邏輯思維,計(jì)算思維。以物理學(xué)科為代表的實(shí)證思維驗(yàn)證任何事物都是以實(shí)驗(yàn)為標(biāo)準(zhǔn),只有實(shí)驗(yàn)出的結(jié)果才能成為真理;以數(shù)學(xué)學(xué)科為代表的邏輯思維驗(yàn)證任何事物則以推理和演繹為標(biāo)準(zhǔn),只有經(jīng)過(guò)推理和演繹出來(lái)的結(jié)果才是邏輯上的正確;而以計(jì)算機(jī)科學(xué)學(xué)科為代表的計(jì)算思維則以抽象和自動(dòng)化為特征,需要使用計(jì)算機(jī)抽象出問(wèn)題的模型,設(shè)計(jì)算法,編寫(xiě)程序解決問(wèn)題。以上三種思維中邏輯思維從上小學(xué)數(shù)學(xué)課開(kāi)始就一直在培養(yǎng),實(shí)證思維從初中上物理化學(xué)課開(kāi)始也開(kāi)始培養(yǎng)了,而計(jì)算思維則是學(xué)生普遍所缺乏的思維。計(jì)算思維的缺乏會(huì)對(duì)學(xué)生看待世界的角度和方法產(chǎn)生局限,不利于學(xué)生的創(chuàng)新和發(fā)展,進(jìn)一步的不利于社會(huì)的發(fā)展和創(chuàng)新。
周以真教授指出“計(jì)算思維是運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問(wèn)題求解、系統(tǒng)設(shè)計(jì),以及人類行為理解等涵蓋計(jì)算機(jī)科學(xué)之廣度的一系列思維活動(dòng)”,即借助計(jì)算機(jī)抽象問(wèn)題的模型,設(shè)計(jì)算法系統(tǒng)來(lái)幫助人類完成任務(wù)的思維方式[3]。
計(jì)算思維的本質(zhì)是抽象與自動(dòng)化[4]。抽象即把問(wèn)題符合化,通過(guò)建立模型來(lái)解決問(wèn)題;自動(dòng)化即把模型程序化,通過(guò)計(jì)算機(jī)編寫(xiě)代碼來(lái)自動(dòng)求解問(wèn)題。
Python程序設(shè)計(jì)課程中的Python語(yǔ)法基礎(chǔ)模塊包括變量與常量的使用,字符串的處理,運(yùn)算符與表達(dá)式的應(yīng)用,基本內(nèi)置函數(shù)的調(diào)用,基本輸入與輸出的使用,導(dǎo)入其他模塊的用法。程序結(jié)構(gòu)模塊包括順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)?;緮?shù)據(jù)結(jié)構(gòu)包括列表,字典,元祖,集合結(jié)構(gòu)。函數(shù)模塊包括函數(shù)定義,函數(shù)調(diào)用,Lambda表達(dá)式。面向?qū)ο蟪绦蛟O(shè)計(jì)模塊包括類與對(duì)象,屬性,方法的概念與應(yīng)用。文件操作模塊包括文件讀寫(xiě)與目錄操作。數(shù)值計(jì)算模塊包括numpy模塊的使用。數(shù)據(jù)處理模塊包括Pandas模塊的使用。每個(gè)教學(xué)內(nèi)容對(duì)應(yīng)的計(jì)算思維如表1所示。
表1 教學(xué)內(nèi)容對(duì)應(yīng)計(jì)算思維
計(jì)算思維的本質(zhì)之一抽象(符號(hào)化,系統(tǒng)設(shè)計(jì))Python文件操作計(jì)算思維的本質(zhì)之一自動(dòng)化(遍歷讀寫(xiě)目錄文件)Python數(shù)值計(jì)算強(qiáng)調(diào)使用計(jì)算機(jī)的思路解決問(wèn)題,建立模型,編寫(xiě)代碼,自動(dòng)化求解Python數(shù)據(jù)處理Python面向?qū)ο蟪绦蛟O(shè)計(jì)
教師在課前精心設(shè)計(jì)教學(xué)問(wèn)題,設(shè)計(jì)的教學(xué)案例以培養(yǎng)計(jì)算思維為出發(fā)點(diǎn),將學(xué)過(guò)的知識(shí)巧妙的融合在案例中。比如,在講完P(guān)ython的基礎(chǔ)語(yǔ)法,基本的程序結(jié)構(gòu)后,教師可以設(shè)計(jì)一個(gè)模擬計(jì)算圓周率π的教學(xué)案例問(wèn)題來(lái)講解。
首先,在教學(xué)課堂中使用計(jì)算π的數(shù)學(xué)公式來(lái)求解,這個(gè)過(guò)程留給學(xué)生獨(dú)立完成。由于學(xué)生第一次接觸到求π的問(wèn)題,大多數(shù)學(xué)生會(huì)感到不知所措,無(wú)從下手,甚至有些學(xué)生會(huì)感到害怕,這都是大二上的學(xué)生所展現(xiàn)出來(lái)的正常反應(yīng),教師這時(shí)候應(yīng)該多鼓勵(lì),把問(wèn)題進(jìn)一步分解,允許學(xué)生上網(wǎng)查看求解π的數(shù)學(xué)公式,然后根據(jù)公式編寫(xiě)代碼完成任務(wù)。在這個(gè)過(guò)程中,實(shí)際上體現(xiàn)出計(jì)算思維的含義,利用計(jì)算機(jī)互聯(lián)網(wǎng)來(lái)搜索自己想要的答案(計(jì)算π的數(shù)學(xué)公式),同時(shí)體現(xiàn)了計(jì)算思維的本質(zhì)抽象,利用數(shù)學(xué)公式計(jì)算π,需要定義多個(gè)變量,把公式符號(hào)化。但是,這個(gè)計(jì)算π的思維方式卻是邏輯思維的方式,以數(shù)學(xué)公式為基本出發(fā)點(diǎn)來(lái)計(jì)算的。
然后,引入計(jì)算思維方式的概念和內(nèi)涵,以計(jì)算機(jī)的思考方式來(lái)模擬計(jì)算π的值。教師通過(guò)作圖把問(wèn)題分解為半徑為1的四分之一個(gè)圓和邊長(zhǎng)為1的正方形,提示學(xué)生通過(guò)正方形的面積與1/4圓面積的比來(lái)建模模擬計(jì)算π,主要提示計(jì)算機(jī)如何算面積的(利用之前學(xué)的產(chǎn)生隨機(jī)數(shù)的知識(shí)點(diǎn))。學(xué)生根據(jù)提示完成變量的符號(hào)化,模型的建立,代碼的編寫(xiě),從而自動(dòng)化的求解。整個(gè)過(guò)程的關(guān)鍵在于符號(hào)化,模型的建立,而應(yīng)用型本科生大多數(shù)學(xué)生在一定的時(shí)間內(nèi)無(wú)法完成,這也是學(xué)生缺乏計(jì)算思維方式的必然結(jié)果。學(xué)生經(jīng)過(guò)一定時(shí)間的思維思考后,教師此時(shí)進(jìn)一步詳細(xì)講解如何符號(hào)化,如何建立模型,進(jìn)而如何編寫(xiě)代碼自動(dòng)化求解。比如,正方形的面積為1,1/4圓的面積為π/4,計(jì)算機(jī)模擬面積即可用0-1的隨機(jī)數(shù)點(diǎn)的個(gè)數(shù)來(lái)計(jì)算面積,如把邊長(zhǎng)為1的正方形分解為10000*10000的點(diǎn)組成,正方形面積符號(hào)化為datas=10000*10000,1/4圓的面積符合化為hits,兩個(gè)0-1隨機(jī)數(shù)分別為x,y,計(jì)算點(diǎn)(x,y)到原點(diǎn)的距離d,若d<=1,則點(diǎn)在圓內(nèi)或圓上hist+=1,即可建模得出π=4*(hits/datas)。
最后,教師再次引導(dǎo)學(xué)生積極思考如何編寫(xiě)代碼自動(dòng)化求解π,如學(xué)生還是無(wú)法按時(shí)編寫(xiě)代碼,進(jìn)一步提示學(xué)生循環(huán)10000*10000次產(chǎn)生0-1的隨機(jī)數(shù)x,y計(jì)算距離d,從而算成hits,最后求解π。
計(jì)算思維作為人類認(rèn)識(shí)事物三種思維方式的其中一種,是當(dāng)代高校學(xué)生相對(duì)其他兩種思維方式來(lái)說(shuō)比較欠缺的一種,而計(jì)算機(jī)學(xué)科的課程來(lái)培養(yǎng)計(jì)算思維是最佳選擇。本文以《Python程序設(shè)計(jì)》課程為例,從教學(xué)內(nèi)容設(shè)計(jì)和教學(xué)實(shí)施兩個(gè)方面對(duì)如何培養(yǎng)學(xué)生的計(jì)算思維進(jìn)行了探討實(shí)踐,并已在教學(xué)過(guò)程中取得了一定效果。