- 相關(guān)推薦
算法優(yōu)化要五問
在《全日制義務(wù)教育數(shù)學(xué)課程標準》(實驗稿)中輸入關(guān)鍵詞"多樣化"進行搜索,多達19處,其中有8處是直接或間接針對"算法"提出的。而搜索"算法優(yōu)化""最優(yōu)化""優(yōu)化"等關(guān)鍵詞,卻是一無所獲。從本人所涉獵的書籍、資料中也可以看出,對二者闡述的材料的數(shù)量也是天壤之別。這說明我們的相關(guān)研究對算法多樣化是偏愛有加的,卻冷落了算法優(yōu)化。算法多樣化和算法優(yōu)化是一對"歡喜冤家",它們一個重在"多",是一個"散"的過程,另一個重在"優(yōu)",是一個"聚"的過程。同時,它們又是密不可分的,算法優(yōu)化是算法多樣化的繼續(xù),是算法多樣化的最終歸宿。因為學(xué)生的思維存在著差異性、層次性,有些算法不具有普遍性,有些算法操作繁瑣,有些算法思維層次偏低,這就需要我們的教師對這些算法要進行提升。正如葉瀾教授所說:"沒有聚焦的發(fā)散是沒有價值的,聚焦的目的是為了促進學(xué)生發(fā)展。"但是,我們有些教師唯恐對算法進行優(yōu)化會影響算法的多樣化,會制約著學(xué)生思維的發(fā)展,會被聽課者定位于"穿新鞋走老路",會和課標中的"應(yīng)重視口算,加強估算,提倡算法多樣化"相悖。于是,部分教師沒有意識到算法優(yōu)化的意義,沒有理順優(yōu)化與多樣化的辯證關(guān)系,沒有掌握具體的優(yōu)化策略,不考慮學(xué)生已有的知識水平和學(xué)生的切身感受,不讓學(xué)生的經(jīng)歷觀察、思考、交流、選擇、體驗、再思考、再選擇、最后感悟等幾個漸進的層次而硬性地去優(yōu)化,出現(xiàn)了算法優(yōu)化的表面化、形式化的現(xiàn)象。更有甚者,個別教師"開門見山",直接把"最優(yōu)化"的算法呈現(xiàn)給學(xué)生,"親自"幫助學(xué)生在多種算法中找出那些有助于提高學(xué)生的數(shù)學(xué)素養(yǎng)、促進學(xué)生學(xué)習(xí)可持續(xù)發(fā)展、接近數(shù)學(xué)本質(zhì)的算法。本文僅把算法優(yōu)化中五個常見現(xiàn)象及應(yīng)對策略呈現(xiàn)給大家,請老師們在進行算法優(yōu)化之前問問自己,是否思考了這樣幾個問題。
一問:是否關(guān)注學(xué)生已有的知識基礎(chǔ)?
在算法優(yōu)化的過程中,讓每個學(xué)生掌握一種方法是優(yōu)化的基礎(chǔ),讓學(xué)生全身心的參與到優(yōu)化過程中來是關(guān)鍵。但是,在實際的教學(xué)中,我們不難看到,仍有部分學(xué)生總是認為自己的算法是經(jīng)過自己獨立嘗試、探索得來的,是自己勞動的"成果",所以不愿意放棄自己最初的方法。
例如:一年級下冊的"十幾減9"。
在研究13-9=?的時候,由于教師給學(xué)生留足了探究的時間,學(xué)生們出現(xiàn)了數(shù)一數(shù)、破十法、平十法、想加算減法和推理的方法共五種,下面是一個老師進行算法優(yōu)化的課堂簡錄:(由于學(xué)生的回答太多,所以改成了敘述的形式)
老師安排四個同學(xué)為一學(xué)習(xí)小組,依照次序說一說五種方法的計算特點。然后是指名進行全班匯報。
師:我們已經(jīng)研究了這五種方法,你喜歡哪種方法?
學(xué)生們的意見很不統(tǒng)一,五種方法都有學(xué)生說喜歡。
師:如果讓你重新選擇一種方法計算,你會選哪一種?為什么要選這一種?
由于方法一需要學(xué)生數(shù)一數(shù),比較費時、方法五的邏輯性太強,有些孩子不能從實質(zhì)上進行理解、方法四是采用逆向思維來解決問題,所以,這三種方法學(xué)生選擇的較少,而平十法和破十法卻倍受孩子們的青睞,大多數(shù)的孩子都選擇了這兩種算法。
五種方法都有學(xué)生選擇,只是選的人數(shù)多與少而已。教師似乎已經(jīng)估計到會出現(xiàn)這種情況,于是不緊不慢的又拋出一個問題。
師:用你喜歡的方法再算一題17-9=?
評析:教師此舉旨在讓學(xué)生通過再做一道題目,一是試圖讓部分學(xué)生根據(jù)對五種方法研究和交流而調(diào)整自己的思路,放棄自己最初的方法而去重新選擇;二是讓部分學(xué)生比較前、后兩種方法,通過兩種方法的對比,感受到新選擇方法的優(yōu)勢。但是,學(xué)生是否愿意買老師的"帳"呢?看看學(xué)生的反饋情況就知道了。
第二次交流的時候,已經(jīng)沒有學(xué)生選擇方法一和方法五了,僅有幾個學(xué)生選擇想加算減的方法,大部分的學(xué)生仍然選擇平十法和破十法。這種情況好像出乎教師的預(yù)料。于是,教師只好再次引導(dǎo):
師:方法二的13-9=10-9+3和方法三的13-9=13-3-6,它們都是幾步計算?
生:兩步。
師:而想加算減的方法,只要想9加幾(4)等于13,然后直接寫出13-9=4。你們比較一下,到底是哪種方法方便?
學(xué)生不語。
教師有些著急,又問了一次。
個別學(xué)生小聲說:先減3再減6,好算。
還有的學(xué)生說:先用10減9,好減。
對于學(xué)生的"頑固不化"和"堅持到底",教師只好來"硬"的了。
師:我們一定要掌握第四種算法,因為它對今后的學(xué)習(xí)很重要。
…
思考:學(xué)生為什么就是不"入套"、不"中招"呢?建構(gòu)主義認為學(xué)生的學(xué)習(xí)是在已有知識和經(jīng)驗的基礎(chǔ)上進行建構(gòu)的,這就是說要實現(xiàn)算法最優(yōu)化的建構(gòu),教師就要關(guān)注學(xué)生已有的知識基礎(chǔ)。"想加算減"這種方法對學(xué)生思維靈活性的訓(xùn)練和后續(xù)知識的學(xué)習(xí)都很有幫助,是我們這一節(jié)課優(yōu)化的目標,比較省時、比較快捷,但是這種方法在五種方法中卻是最困難的。因為,這種方法不僅需要學(xué)生有一定的推理能力,更需要學(xué)生有非常熟練的20以內(nèi)加法的基礎(chǔ)。換句話說,要想讓學(xué)生掌握"想加算減"這種方法,學(xué)生不僅對20以內(nèi)的加法達到脫口而出的熟練程度,還要會根據(jù)加法算式寫出相應(yīng)的減法算式,會熟練地求括號里的未知數(shù),沒有了這些基礎(chǔ),"想加算減"的方法就免談。心理學(xué)家奧蘇貝爾在他的代表性論著《教育心理學(xué):一種認知觀》一書的扉頁中寫到:"假如讓我把全部教育心理學(xué)僅僅歸結(jié)為一條原理的話,那么,我將一言以蔽之曰:影響學(xué)習(xí)的唯一最重要因素就是學(xué)習(xí)者已經(jīng)知道了什么。要探明這一點,并應(yīng)據(jù)此進行教學(xué)。"所以,我們在優(yōu)化算法的時候一定要思考:優(yōu)化的目標距離學(xué)生有多遠?新知識的生長點在哪里?新舊知識的"支架"在何處?怎樣準確定位學(xué)生的最近發(fā)展區(qū)等問題。就本節(jié)課而言,教師在課前對學(xué)生的20以內(nèi)加法的熟練程度和求括號中未知數(shù)的掌握情況進行了解,并有針對性地進行訓(xùn)練和鋪墊,夯實優(yōu)化的基礎(chǔ),才能順利完成算法優(yōu)化的目標。
二問:是否守住了學(xué)生的"底線"?
教師出示掛圖。(一年級上冊)
師:我們先來仔細觀察圖,桃子是怎樣擺的?
生:盒子里有9個,盒子外有4個。
師:要求一共有多少個桃?該怎樣列式呢?
生:9+4=13
師:9+4=13,你是怎么想的?
生:拿一個桃子到盒子里,盒子里就有10個,10個再加上3個等于13個。
師:你用的是9找1變成10的方法。找到了10,算起來就很快了。簡單的說,就是"湊十法",你真棒!其他同學(xué)聽懂了嗎?
還沒有等學(xué)生回答,教師就說:那么,我們就用他的方法擺一擺,移一移桃子圖,找找結(jié)果,好嗎?
…
這種模式在很多的課堂上都是習(xí)以為常的,老師寫出算式或剛提出問題后,只要有學(xué)生舉手,教師就立即讓舉手的孩子來回答,一個或幾個優(yōu)秀的學(xué)生與教師產(chǎn)生互動完成了教學(xué)任務(wù)。其實,舉手的僅是一部分學(xué)生,多數(shù)還是優(yōu)等生,還有相當(dāng)多的中等及中等以下的學(xué)生沒有舉手或者還沒有來得及舉手。另外,這些舉手的學(xué)生真的經(jīng)過獨立思考了嗎?真的經(jīng)過自主探索了嗎?這樣的教學(xué),一是直接導(dǎo)致了部分學(xué)生游離于教學(xué)活動之外;二是導(dǎo)致了學(xué)生嚴重的"兩極"分化,成績稍差的學(xué)生沒有機會品嘗到成功的喜悅;三是忽略了每人至少掌握一種算法的基本要求。
每個學(xué)生至少掌握一種算法,這是算法優(yōu)化的"底線"。因為,只有每個同學(xué)都有了自己的算法,才能構(gòu)成算法的多樣化;只有出現(xiàn)算法多樣化的局面,才能進行算法的優(yōu)化。鑒于此,教師一定要舍得放手,相信學(xué)生,故意放慢教學(xué)的進程。首先,面對數(shù)學(xué)問題,要給學(xué)生充分的獨立思考的時間,并提出要求:每個同學(xué)至少要想出一種方法,并把這種方法在腦海中用自己的語言說一遍,完成后才可以去思考第二或第三種方法。這樣一來,好的學(xué)生能想起幾種方法,思維得到了全面的展開和激活,實現(xiàn)了"吃好"的目標;中下等的學(xué)生也能有一種方法"保底",達到了"吃飽"的標準。其次,在小組交流的時候,老師要有意識的讓那些學(xué)習(xí)困難的學(xué)生先發(fā)言,爭取讓每一個學(xué)生都能把自己的思維過程暴露出來。這樣的處理,每個孩子都要認真思考,都要自主探索,都會積極參與到學(xué)習(xí)活動中來,"學(xué)困生"也能得到充分的展示,實現(xiàn)了好、中、差學(xué)生"同步走"的全面發(fā)展的目標,這才是"不同的人在數(shù)學(xué)上得到不同的發(fā)展"的理念的具體體現(xiàn)。
三問:是否為了優(yōu)化而故意多樣化?
二年級下冊"一位數(shù)乘兩位數(shù)的筆算"
教師出示情境圖引導(dǎo)學(xué)生列出算式14×2后,安排學(xué)生自主探究解決的方法,然后組織全班交流。
生1:兩個10是20,兩個4是8,加起來是28。
生2:兩個14加起來是28,所以14乘2是28。
生3:我是看圖的,左面兩個筐里是20個,右面筐里是8個,合起來是28個。
教師意猶未盡,繼續(xù)問:除了乘法、加法、看圖三種方法以外,還有別的解法嗎?
等了半天,教師看見沒有學(xué)生舉手,唯恐"冷"了場,又拋出一個"技術(shù)性含量"很高的問題:剛才的三個學(xué)生非常聰明,能認真開動腦筋,想出了屬于自己的解題方法。誰能超過他們?
過了一會,終于有學(xué)生舉手了。
生4:14加10等于24,24加4等于28。
這個答案可能讓教師始料未及,所以教師楞了一下,接著說:還有嗎?
生5:4加14等于18,18加10等于28。
…
表內(nèi)乘除法、對乘法意義的理解,在二年級上冊已經(jīng)學(xué)過了。本節(jié)課,主要是讓學(xué)生掌握一位數(shù)乘兩位數(shù)的豎式計算。而在上例中,教師卻"跑題"了,距離本節(jié)課的教學(xué)重點--學(xué)會一位數(shù)乘兩位數(shù)的筆算和教學(xué)難點--理解一位數(shù)乘兩位數(shù)的算理卻是漸行漸遠了。仔細分析之:都是算法優(yōu)化惹的禍。
算法優(yōu)化為什么會惹禍呢?這是我們的老師對算法優(yōu)化的誤解,有些老師認為:算法多樣化就是方法要多種多樣,學(xué)生的解題方法越多越好,方法多了才能把學(xué)生的思維激活起來,方法多了才是算法多樣化,只有達到算法多樣化才能實現(xiàn)算法優(yōu)化。正是在這樣的理念指導(dǎo)下,教師才讓學(xué)生盡可能的尋找算法,前三個學(xué)生的方法已經(jīng)很好了,而教師還是認為方法太少不便于優(yōu)化,于是繼續(xù)引導(dǎo),讓學(xué)生說出了兩種加法中的算法。因為本節(jié)課學(xué)習(xí)的是乘法豎式,所以這兩種方法是屬于低層次的算法,前面三個學(xué)生已經(jīng)超越了這些算法,教師應(yīng)該乘勢而上,抓緊進入豎式的教學(xué),而不是偏離主題,為了算法優(yōu)化而故意設(shè)置所謂的算法多樣化。實際上,并不是所有題目都要實現(xiàn)算法多樣化的,教師不要為了對計算方法進行優(yōu)化而讓學(xué)生去機械地多樣化,更不能在學(xué)生已經(jīng)掌握基本算法的基礎(chǔ)上去倒退學(xué)生的思維,逼迫學(xué)生找出低層次的算法,完成老師"湊數(shù)"的目的。
四問:學(xué)生是否具有了優(yōu)化的意識?
請看課例:六年級上冊的"分數(shù)除以整數(shù)"
學(xué)生列式后師問:你們會計算嗎?
生:會。
師:你們先算算看,看誰的方法多?
學(xué)生練習(xí)后匯報如下:
生1:÷2=÷2=
生2:求÷2就是求的是多少?所以÷2=×=
生3:因為×2=所以÷2=
生4:我是用畫圖的方式求(走上黑板作圖)
…
師:這些方法都不錯,你喜歡哪種方法?為什么喜歡這種方法?同位之間先說一說。
在同桌交流后,教師指名回答。結(jié)果,有的說方法一好計算,有的說方法四看得明白,還有的說方法二約分起來方便,等等。眾說紛紜,莫衷一是。
教師見出現(xiàn)了這種情況,只好指著方法二直接說:這種方法具有普遍性,有推廣的價值,今后我們就用這種方法來解答分數(shù)除以整數(shù)的題目?墒菍W(xué)生們真的服氣嗎?課堂上仍然能聽到有學(xué)生小聲嘀咕說方法一更簡便。
看到這樣的課例,我們不禁要問:算法優(yōu)化是告訴?是推薦?還是教師的"一廂情愿"?
建構(gòu)主義認為,學(xué)習(xí)不是知識由教師向?qū)W生的傳遞,而是學(xué)生建構(gòu)自己的知識的過程;學(xué)習(xí)者不是被動的信息接受者,相反,他要主動地建構(gòu)信息的意義,這種建構(gòu)不可由其他人代替。從這段理論中,我們可以很明顯的感覺到,教師的"告訴"時逼著學(xué)生被動的接受知識,并不是學(xué)生主動建構(gòu)的過程。雖然,在算法優(yōu)化的過程中,我們不排斥教師的指導(dǎo)和引領(lǐng)作用。但是,一切要順其自然,孔子強調(diào):"不憤不啟不悱不發(fā)",這就要求教師一定要創(chuàng)設(shè)一個體驗的情景,讓學(xué)生產(chǎn)生優(yōu)化的意識,對算法優(yōu)化的指導(dǎo)要適時、適當(dāng)、適度,絕對不能"強行優(yōu)化",逼迫學(xué)生去按照自己的意愿去選擇算法,"瓜熟自然就蒂落",一定要等到時機成熟,學(xué)生有優(yōu)化的沖動時再進行優(yōu)化。針對上面的例子,教師可以安排學(xué)生進行計算比賽,通過比賽使學(xué)生主動去探尋落后的原因,思索自己所使用算法的優(yōu)劣,產(chǎn)生需要對算法進行優(yōu)化的內(nèi)在需求,然后再組織學(xué)生討論交流,讓學(xué)生們說出喜歡哪種方法和為什么喜歡這種方法。在學(xué)生的討論中,學(xué)生會因為方法四的麻煩和方法三思考的困難而將這兩種方法淘汰,只剩下方法一和方法二。這樣,教師就讓學(xué)生無意識的排除了兩種方法,達到了第一次優(yōu)化的目的。然后,教師可以讓學(xué)生再用自己喜歡的方法計算型如÷4=?÷5=?之類的題目,讓學(xué)生在實際的計算中感受到方法一的局限性,再一次產(chǎn)生矯正自己思路的內(nèi)需,篩選出適合自己的方法,從而達到自覺優(yōu)化的境界。
五問:學(xué)生是否經(jīng)歷了優(yōu)化的過程?
一個故事:有人發(fā)現(xiàn)已經(jīng)裂開一條縫的繭中蝴蝶正在痛苦地掙扎,他于心不忍,便拿起剪刀把繭剪開,幫助蝴蝶脫繭而出?墒,蝴蝶卻因為身體臃腫、翅膀干癟,根本飛不起來,不久就死去了。省去了過程看似為其免去了痛苦,但結(jié)果卻適得其反,忽略了過程,其結(jié)果是可悲的,學(xué)生的學(xué)習(xí)不也是這樣嗎?
三年級下冊"兩位數(shù)乘整十?dāng)?shù)的口算"
教師出示情境圖,指名列出算式12×10,先是布置學(xué)生獨立思考計算的方法,然后四個學(xué)生為一個學(xué)習(xí)小組進行組內(nèi)交流討論形成自己小組的解答方法(教師唯恐不能構(gòu)成多樣化的算法,還時不時的邊巡視邊提醒學(xué)生:盡量不要和其他小組的方法一樣),最后是各小組代表匯報,教師板書:
生1:12×2=24 24×5=120。
生2:12×5=60 60×2=120。
生3:2×10=20 20×6=120。
生4:12+12+12+…+12=120。
生5:12×9=108,108+12=120
生6:10×10=100,10×2=20,100+20=120。
生7:10×4=40,10×8=80,40+80=120。
生8:12×1=12,12×10=120。
生9:12×5=60,12×5=60,60+60=120。
…
由于班級的學(xué)生數(shù)較多,還有幾個學(xué)生躍躍欲試,老師急忙打住。夸獎道:同學(xué)們真棒,想出了這么多的方法。請你們用自己喜歡的方法計算下面三題。
27×10 30×23 50×30
通過課堂巡視可以看出,不少學(xué)生沒有改變算法,繼續(xù)使用自己剛才的方法進行計算。等到全班匯報交流的時候,老師讓選擇各種方法的同學(xué)分別舉手,居然沒有過半數(shù)的學(xué)生選擇同一種算法。
反思:本節(jié)課上,既有學(xué)生個人的獨立思索,又有小組的合作交流,既讓每一個學(xué)生經(jīng)歷了算法的探索過程,又形成了豐富多彩的研究成果,既體現(xiàn)出新的學(xué)習(xí)方式,又讓學(xué)生的思維得到了展開。但是,為什么最后的優(yōu)化沒有成功呢?原因就在于沒有讓學(xué)生參加算法優(yōu)化的過程。
建議:在學(xué)生們匯報出多種算法以后,教師可以分成了這樣的幾個步驟:
第一步:讓學(xué)生把9種方法進行歸類。再一次給學(xué)生提供了獨立思考和小組合作的機會,達成共識,形成小組意見,最后是全班交流。師生共同把各種算法的不同點進行比較并分為這樣的幾類:(1)學(xué)生1、2、3都是轉(zhuǎn)化成連乘;(2)學(xué)生4用的是連加法;(3)學(xué)生5、6、7、9轉(zhuǎn)化成兩個兩位數(shù)乘一位數(shù),再把所得的積相加;(4)學(xué)生8是先和1相乘,再在末尾添上一個0。
由于前三種算法的算理很明顯,所以教師著重向?qū)W生講清最后一種方法計算的道理。
第二步:對歸納后的四種算法進行比較。安排學(xué)習(xí)小組進行討論、比較這四種方法,找出自己喜歡的、自認為比較簡便的方法,再指名匯報。
第三步:請你們用自己喜歡的方法計算下面三題。
27×10 30×23 50×30
第四步:前、后兩次的解題方法進行對比。讓學(xué)生仔細觀察自己的練習(xí)作業(yè),看看自己在解答12×10的時候用什么算法,現(xiàn)在做27×10、30×23、50×30的時候又用什么算法?然后思考:自己的計算方法前后改變嗎?為什么改變或者為什么沒有改變,并在小組內(nèi)說說理由。
經(jīng)過這樣反復(fù)思考、對照、探究,一定會順利完成算法優(yōu)化的教學(xué)任務(wù)。
評析:沒有比較,就沒有鑒別;沒有鑒別,就沒有思考;沒有思考,就沒有感悟;沒有感悟,也就沒有了優(yōu)化。前蘇聯(lián)教育家阿莫納什維利說過:"兒童單靠動腦,只能理解和領(lǐng)會知識;如果加上動手,他就會明白知識的實際意義;如果再加上心靈的力量,那么認識的所有大門都將在他面前敞開,知識將成為他改造事物和進行創(chuàng)造的工具。"這就是說,在算法優(yōu)化的過程中,學(xué)生們僅僅用眼觀察、動腦思考還是不夠的,還要加上動手和心靈的力量。學(xué)生在選擇簡便算法的時候,雖然也經(jīng)過了觀察和思考,但是對所有的算法沒有一個整體的認識。教師讓學(xué)生說出簡便的原因和兩種方法的比較,讓學(xué)生的思路出現(xiàn)逆轉(zhuǎn),又一次把學(xué)生的思維過程暴露了出來,然后是動手操作--用自己認為比較簡便的方法再次計算,最后是在動手的基礎(chǔ)上再一次提升,用心靈去比較、去感悟,這時候?qū)W生的思考是是全面的,感悟是深刻的、系統(tǒng)的,順利的把優(yōu)化后的方法進行了內(nèi)化,完成了探究→交流→觀察→思考→選擇→體驗→比較→再選擇→感悟→內(nèi)化的完整鏈接,從而形成了較高層面上的認識。
該文發(fā)表于《中國教師》
【算法優(yōu)化要五問】相關(guān)文章:
面試時要怎么問公司問題08-19
算法崗位職責(zé)03-15
《加、減法的簡便算法》教案03-05
算理和算法概述10-26
問秋的作文09-12
問天的作文01-26
《問銀河》教案03-03
關(guān)于問的作文08-07
《學(xué)與問》教案01-26