謝永盛 張 超 王 璐 蘇 柏 苑井孝
(西北民族大學(xué),甘肅 蘭州 730124)
近些年STEM教育在國(guó)內(nèi)開(kāi)展的如火如荼,不少?lài)?guó)內(nèi)學(xué)者、研究人員針對(duì)STEM教育進(jìn)行了不同程度上的探究,從理論分析到實(shí)踐驗(yàn)證。STEM教育強(qiáng)調(diào)通過(guò)跨學(xué)科整合,這一集合,不是課程的簡(jiǎn)單組合,而是把學(xué)生學(xué)習(xí)到的零碎知識(shí)與項(xiàng)目工程轉(zhuǎn)變成一個(gè)探究世界相互聯(lián)系的不同側(cè)面的過(guò)程,強(qiáng)調(diào)學(xué)生在“雜亂無(wú)章”的學(xué)習(xí)情境中提升設(shè)計(jì)能力、合作能力、問(wèn)題解決能力和實(shí)踐創(chuàng)新能力[1]。枚舉算法起源于原始的計(jì)數(shù)方法,即數(shù)數(shù)。其本質(zhì)是一種列舉式搜索的算法,常常借助循環(huán)嵌套分支結(jié)構(gòu)和計(jì)算機(jī)的超強(qiáng)運(yùn)算能力,一一驗(yàn)證大量可能的答案。
某人將自己的旅行箱密碼忘記了,密碼可能是生日也可能是電話(huà)號(hào)碼。同學(xué)們列出的多種情況促使當(dāng)事人想起他的密碼是一個(gè)三位自然數(shù),并且密碼個(gè)位數(shù)是8,其它位含有1但是不能確定在哪個(gè)位置。那么如果要解決上面的問(wèn)題,我們就要把問(wèn)題的所有可能解都一一列舉出來(lái),并按照問(wèn)題要求的條件逐個(gè)判斷每個(gè)答案是否是正確的解。
按照項(xiàng)目所學(xué)內(nèi)容可將同學(xué)們分成若干組,本項(xiàng)目學(xué)習(xí)過(guò)程中,學(xué)習(xí)小組可以參考以下活動(dòng)建議進(jìn)行合作學(xué)習(xí)和交流分享。
表1 項(xiàng)目活動(dòng)建議
圖1 找回密碼程序
運(yùn)行結(jié)果:108、118、128、138、148、158、168、178、198、218、318、418、518、618、718、818、918。
教師可根據(jù)學(xué)生在課堂上的學(xué)習(xí)情況開(kāi)展下一項(xiàng)教學(xué)任務(wù)。在這個(gè)項(xiàng)目中學(xué)生們將借助Python程序語(yǔ)言和數(shù)學(xué)知識(shí)來(lái)解決問(wèn)題。Python是一種面向?qū)ο?、解釋型?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,由Guido van Rossum(吉多·范羅蘇姆)于1989年發(fā)明,第一個(gè)公開(kāi)發(fā)行版發(fā)行于1991年。它是一個(gè)開(kāi)源語(yǔ)言,擁有大量的庫(kù),可以高效地開(kāi)發(fā)各種應(yīng)用程序。特點(diǎn):簡(jiǎn)單、高級(jí)、面向?qū)ο?、可擴(kuò)展性、免費(fèi)開(kāi)源、可移植性、豐富的庫(kù)、可嵌入性[2]。這個(gè)過(guò)程需要每個(gè)小組成員的參與,動(dòng)手敲代碼并將本小組的運(yùn)行結(jié)果通過(guò)教學(xué)平臺(tái)分享給大家。
圖2 尋找三位數(shù)中的水仙花數(shù)程序
運(yùn)行結(jié)果:153、370、371、407。
在程序中:通過(guò)取余運(yùn)算%判斷個(gè)位數(shù)。如x%10==8成立,則可判斷個(gè)位數(shù)為8;借助邏輯運(yùn)算符“and”可以判斷復(fù)雜情況;可使用整除運(yùn)算(//是整除運(yùn)算符號(hào))取得該自然數(shù)的前兩位數(shù),利用in判斷前兩位中是否有1。程序,見(jiàn)圖1。
本節(jié)課教師通過(guò)項(xiàng)目式學(xué)習(xí)的方式開(kāi)展教學(xué),借助找回密碼的生活場(chǎng)景吸引學(xué)生學(xué)習(xí)興趣,融合數(shù)學(xué)學(xué)科知識(shí)并通過(guò)Python程序語(yǔ)言掌握了枚舉算法中的邏輯框架。借助STEM教育理念培養(yǎng)學(xué)生的思維能力和動(dòng)手能力達(dá)到預(yù)期的教學(xué)目標(biāo)。
通過(guò)上一個(gè)項(xiàng)目——找回忘記的密碼的介紹,我們?cè)賮?lái)感受下尋找水仙花數(shù)的教學(xué)過(guò)程。水仙花數(shù)是各位數(shù)字的立方之和等于該本身的數(shù),如153=13+53+33?,F(xiàn)讓求出所有三位數(shù)的水仙花數(shù)。
我們根據(jù)已有的知識(shí)判斷出水仙花數(shù)的特征和所給問(wèn)題的數(shù)字范圍,對(duì)該項(xiàng)目逐一給出解決方案。確定枚舉對(duì)象的取值范圍:用i表示該三位數(shù),foriinrange(100,1000);一個(gè)三位數(shù)的百位上的數(shù)用整除的計(jì)算方式獲
得:用a表示,a=i//100;十位上的數(shù)用整除和求余兩種計(jì)算方式獲得:用b表示,b=i//10%10;個(gè)位上的數(shù)用求余的計(jì)算方式獲得:用b表示,c=i%10。
要求水仙花數(shù)等于各位數(shù)字的立方之和,所以枚舉條件是i==a**3+b**3+c**3,程序,見(jiàn)圖2。
在STEM教學(xué)理論的指導(dǎo)下,利用算法和編程去優(yōu)化并解決生活中的問(wèn)題,這不僅有效提高學(xué)生對(duì)數(shù)學(xué)和編程學(xué)習(xí)興趣的提升而且也為國(guó)內(nèi)STEM教育的實(shí)踐探索提供可以研究的視角。人工智能和大數(shù)據(jù)充斥著生活中的各個(gè)方面,從生活中學(xué)習(xí)再回歸到生活中,讓學(xué)生真正體會(huì)到編程的無(wú)限樂(lè)趣。同時(shí)在學(xué)習(xí)過(guò)程中,切實(shí)地提升了學(xué)生綜合運(yùn)用知識(shí)的能力和解決問(wèn)題的創(chuàng)新能力,逐漸養(yǎng)成STEM素養(yǎng)[3]。