翁良杉
摘 要:Scratch編程軟件以其圖形化的簡(jiǎn)易形式,贏得全世界青少年的喜愛,在Scratch與數(shù)學(xué)相整合的課堂教學(xué)活動(dòng)中,通過編程與數(shù)學(xué)知識(shí)間的聯(lián)系,不斷滲透數(shù)學(xué)核心素養(yǎng),讓數(shù)學(xué)核心素養(yǎng)的培養(yǎng)有一個(gè)更顯性的舞臺(tái)。以小學(xué)數(shù)學(xué)《找因數(shù)》為例,在學(xué)生充分掌握找因數(shù)的數(shù)學(xué)基礎(chǔ)知識(shí)與基本技能后,以優(yōu)化找因數(shù)算法為目標(biāo),通過數(shù)學(xué)建模思想,將找因數(shù)的算法運(yùn)用到Scratch編程課程上。同時(shí)也讓學(xué)生在自主探索不同算法所需時(shí)間差中,感知數(shù)學(xué)算法優(yōu)化對(duì)問題解決帶來的實(shí)效性。在數(shù)學(xué)與Scratch編程相整合的課程中,不斷激發(fā)學(xué)生潛能,提升學(xué)生數(shù)學(xué)核心素養(yǎng)。
關(guān)鍵詞:Scratch;數(shù)學(xué)核心素養(yǎng);有效性;找因數(shù)
《中國(guó)教育現(xiàn)代化2035》中提出要明確學(xué)生發(fā)展核心素養(yǎng)的要求。對(duì)于數(shù)學(xué)來講,數(shù)學(xué)素養(yǎng)也是現(xiàn)代社會(huì)每一個(gè)公民所必須具備的基本素養(yǎng)。而數(shù)學(xué)核心素養(yǎng)是提高學(xué)生數(shù)學(xué)認(rèn)知能力,培養(yǎng)高素質(zhì)綜合人才的必要條件。以2018版《高中數(shù)學(xué)課程標(biāo)準(zhǔn)(實(shí)驗(yàn)稿)》為標(biāo)準(zhǔn),數(shù)學(xué)核心素養(yǎng)包括數(shù)學(xué)抽象、邏輯推理、數(shù)學(xué)建模、數(shù)學(xué)運(yùn)算、直觀想象、數(shù)據(jù)分析。Scratch編程解決問題過程中蘊(yùn)含著大量與數(shù)學(xué)知識(shí)相關(guān)的問題,這些問題需要用數(shù)學(xué)的思維去解決。通過Scratch編程與數(shù)學(xué)學(xué)科整合,讓學(xué)生深入掌握數(shù)學(xué)知識(shí),提高學(xué)生數(shù)學(xué)核心素養(yǎng),促進(jìn)學(xué)生全面發(fā)展。
一、素養(yǎng)點(diǎn)撥,因數(shù)初探究
以北師大版小學(xué)數(shù)學(xué)五年級(jí)下冊(cè)《找因數(shù)》為例,本課學(xué)生將會(huì)掌握以下知識(shí)與技能:
1. 兩個(gè)正整數(shù)相乘,那么這兩個(gè)數(shù)都叫做積的因數(shù),又稱約數(shù);
2. 一個(gè)數(shù)的因數(shù)是有限的,最大的因數(shù)是它本身,最小的因數(shù)是1;
3. 找因數(shù)一般有兩種,第一種運(yùn)用乘法來找因數(shù),而第二種運(yùn)用除法。
乘法找因數(shù)方法為兩個(gè)整數(shù)相乘, 其中這兩個(gè)數(shù)都叫做積的因數(shù)。如找12的因數(shù),有1×12=12、2×6=12、3×4=12(嘗試第一個(gè)乘數(shù)3加1為4時(shí),發(fā)現(xiàn)因數(shù)重復(fù)則停止)。那么12的因數(shù)有:1、2、3、4、6、12。其中蘊(yùn)含的基本方法是讓兩個(gè)乘數(shù)分別從1開始嘗試相乘,直到積等于那個(gè)數(shù)為止。
除法找因數(shù)的方法為一個(gè)整數(shù)被另一個(gè)整數(shù)整除,后者即是前者的因數(shù)。如求12的因數(shù),那么12÷1=12;12÷2=6;12÷3=4那么12的因數(shù)有:1、2、3、4、6、12。
在這兩種方法中,對(duì)學(xué)生找100以內(nèi)某一個(gè)數(shù)的因數(shù)綽綽有余。而用乘法或除法找因數(shù),學(xué)生更喜歡用乘法進(jìn)行找因數(shù)計(jì)算,因?yàn)閷W(xué)生有乘法口訣的功底。可計(jì)算機(jī)在找因數(shù)計(jì)算時(shí),除法找因數(shù)的有效性很容易凸顯出來。我們?cè)谂囵B(yǎng)學(xué)生數(shù)感時(shí)最重要的是為了讓孩子能清楚如何利用數(shù)學(xué)知識(shí)去構(gòu)建數(shù)學(xué)模式,解決生活中實(shí)際問題。所以利用Scratch學(xué)習(xí)“找因數(shù)”主要目的在于讓學(xué)生理清該用什么方法更有效,以達(dá)到解決實(shí)際問題的目的。
二、了解Scratch,編程任我行
Scratch是由麻省理工學(xué)院媒體實(shí)驗(yàn)室“終身幼兒園團(tuán)隊(duì)”基于Google Blockly開發(fā)的一款將代碼積木塊化的編程軟件,它最大的特點(diǎn)是讓不認(rèn)識(shí)英語(yǔ)單詞的人也能學(xué)程序、學(xué)邏輯、學(xué)數(shù)學(xué),促進(jìn)學(xué)生想象、編程、分享等綜合能力的提高。在IOBE全球編程軟件排行榜中Scratch于2018年8月排名全世界編程軟件第21名。
Scratch在小學(xué)一般作為校本課程,可以從小學(xué)四年級(jí)開始學(xué)起,到了五年級(jí)下冊(cè)一般已具備較高的編程技能,懂得各個(gè)Scratch積木塊用法。熟練掌握變量、鏈表的使用,對(duì)程序設(shè)計(jì)的順序、分支、循環(huán)結(jié)構(gòu)能熟練掌握,會(huì)靈活運(yùn)用Scratch解決比較復(fù)雜的編程問題。
三、探尋因數(shù),更上一層樓
如何利用Scratch實(shí)現(xiàn)“找因數(shù)”,對(duì)于五年級(jí)有數(shù)學(xué)找因數(shù)學(xué)習(xí)經(jīng)驗(yàn)且有Scratch編程經(jīng)驗(yàn)的學(xué)生來講并不難。在學(xué)生學(xué)完《找因數(shù)》課程之后,通過編程課來進(jìn)一步深化知識(shí)。編程課堂教學(xué)中首先要引導(dǎo)學(xué)生重新復(fù)習(xí)找因數(shù)的方法,再讓學(xué)生進(jìn)行編程學(xué)習(xí)。此時(shí)若讓學(xué)生判斷用什么方法最容易找出因數(shù),學(xué)生因慣性思維很容易想到用乘法。在編寫求任意數(shù)因數(shù)的程序時(shí),首先要讓Scratch提出詢問:“你要求哪個(gè)數(shù)的因數(shù)?”通過運(yùn)算最終讓Scratch程序?qū)⑺械囊驍?shù)結(jié)果顯示在列表中。
1. 小試牛刀 乘法的解決辦法
第一:詢問:你要求哪個(gè)數(shù)的因數(shù)?并輸入值。設(shè)2個(gè)變量“乘數(shù)1”和“乘數(shù)2”, 初始值等于1。并將列表“因數(shù)”清空。
第二:因?yàn)橛?jì)算機(jī)不懂乘法口訣,必須利用窮舉法進(jìn)行計(jì)算。先將“乘數(shù)1”與“乘數(shù)2”相乘判斷得數(shù),其中“乘數(shù)2”從1開始嘗試至大于“回答”值??纯?“乘數(shù)2”所取的哪個(gè)值能與“乘數(shù)1”相乘等于“回答”的值,如果有則將“乘數(shù)1”與“乘數(shù)2”放入鏈表因數(shù)中,否則將“乘數(shù)2”繼續(xù)增加1。
第三:如果“乘數(shù)2”加到“回答”的值與“乘數(shù)1”相乘都不等于 “回答”的值,則將“乘數(shù)1”加1,“乘數(shù)2”重新從1開始繼續(xù)測(cè)試。
第四:循環(huán)以上過程,直到“乘數(shù)1”等于“回答”的值為止。
顯然,這種方法如果“回答”的值的比較大,所用的時(shí)間也會(huì)很長(zhǎng),并不是最優(yōu)方法。此時(shí)可以引導(dǎo)學(xué)生想一下,有什么方法可以進(jìn)一步優(yōu)化嗎?聰明學(xué)生會(huì)在程序中第三步修改為:如果“乘數(shù)2”從1測(cè)試到“回答”,或“乘數(shù)2”與“乘數(shù)1”相乘的值大于“回答”的值,則將“乘數(shù)1”加1,“乘數(shù)2”重新從1開始測(cè)試起??此坪?jiǎn)單的增加一個(gè)條件,將求值的效率提高一個(gè)檔次,省略掉許多不必要的乘法測(cè)試。
2、鋒芒畢露 除法的思考方向
第一步:詢問:“你要求哪個(gè)數(shù)的因數(shù)”將“回答”的值作為被除數(shù),設(shè)變量“除數(shù)”初始值為1,并將列表“因數(shù)”清空。
第二步:如果被除數(shù)除以除數(shù)沒有余數(shù),則將除數(shù)與商存入列表“因數(shù)”中,否則將除數(shù)加1。
第三步:重復(fù)執(zhí)行直到除數(shù)等于被除數(shù)。
除法找因數(shù)的簡(jiǎn)便在于不需要循環(huán)對(duì)兩個(gè)數(shù)進(jìn)行窮舉法取值,只要一直測(cè)試每一個(gè)除數(shù)即可。那么如何進(jìn)行進(jìn)一步的優(yōu)化?學(xué)生在了解之前的乘法找因數(shù)程序優(yōu)化方法的前提下,會(huì)遷移到除法的方法中來,讓學(xué)生通過觀察后會(huì)設(shè)除數(shù)小于的被除數(shù)的一半。還有些學(xué)生會(huì)讓除數(shù)與因數(shù)進(jìn)行比較,重復(fù)執(zhí)行直到因數(shù)的結(jié)果鏈表中包含有除數(shù)。兩種方法僅在毫秒中有區(qū)別,為了避免出錯(cuò),可以引導(dǎo)對(duì)除法找因數(shù)的優(yōu)化方案進(jìn)行深入探索,看看哪種更理想。
3、優(yōu)劣分明,找因數(shù)時(shí)間對(duì)比
兩種方法對(duì)比,顯然除法更容易理解,程序量也會(huì)更小。但學(xué)生尚不清楚除法真正的優(yōu)勢(shì)在于求值的速率上,這時(shí)候教師可以讓學(xué)生測(cè)試找出“123456789”這個(gè)9位數(shù)的因數(shù)。在測(cè)試時(shí)可以對(duì)兩個(gè)程序均加入計(jì)時(shí)器進(jìn)行測(cè)試。那么這樣很容易發(fā)現(xiàn),除法找因數(shù)所用的時(shí)間比乘法要少。
在探索找因數(shù)過程中,對(duì)于列表排序也可以進(jìn)一步深入探索,利用有效的方法提高排序的高效性。
四、尋求真諦 提高學(xué)生數(shù)學(xué)核心素養(yǎng)
找因數(shù)的方法在百以內(nèi),利用乘法口訣確實(shí)比較容易解出。而在實(shí)際探索中,我們會(huì)發(fā)現(xiàn)除法是找因數(shù)的有效方法。因此通過數(shù)學(xué)與Scratch編程相整合的課堂模式,可以讓學(xué)生懂得選用合理有效的數(shù)學(xué)方法去解決實(shí)際問題,明白運(yùn)算的算理。同時(shí)還能發(fā)展學(xué)生數(shù)學(xué)建模思想,明白數(shù)學(xué)與生活之間,數(shù)學(xué)與其他學(xué)科之間的聯(lián)系,有效提高學(xué)生數(shù)學(xué)核心素養(yǎng)。
總而言之,通過Scratch編程“找因數(shù)”的課堂教學(xué),讓學(xué)生了解數(shù)學(xué)的知識(shí)在學(xué)科間是可以相互滲透的,讓學(xué)生明白數(shù)學(xué)源于生活,在處理其他學(xué)科問題時(shí)應(yīng)該尋找合理高效的數(shù)學(xué)知識(shí)來解決問題。數(shù)學(xué)與Scratch編程之間是相輔相成的,兩者的相互整合將會(huì)讓學(xué)生對(duì)數(shù)學(xué)知識(shí)的理解與應(yīng)用得到質(zhì)的提升,是有效提高學(xué)生數(shù)學(xué)核心素養(yǎng)的關(guān)鍵。