邊楚女
在以前的文章里,我曾經(jīng)提出:學習本身是學生通過對經(jīng)驗的主動改造來創(chuàng)造知識,與教師無關(guān)。有教師不解:學習怎么和教師無關(guān)呢?是的,學習是學生自己的事情,教師無法代替。但正因為學習和教師“無關(guān)”,所以對教師就提出了更高的要求。因為教師要做的就是最大化地調(diào)動學生的學習積極性,引導(dǎo)學生主動思考、質(zhì)疑問難,助力學生成為自主獨立、有創(chuàng)造個性的學習者。這就衍生出一個新問題:教師應(yīng)該怎么做,才能最大化地解放學生的思維,激活學生的學習力?
最近我上的一節(jié)《枚舉算法》課對我觸動很大。經(jīng)過前幾年的積累,這一課的教學設(shè)計已經(jīng)相對成熟。在整堂課上,我盡量精講,讓學生多練,也有留白讓學生自主研究,還設(shè)置了一些知識沖突來培養(yǎng)學生的綜合能力。但今年在備課時,我問自己:這樣的設(shè)計真的沒有問題了嗎?還可不可以做得更好?從教的角度來說,我感覺沒有太大問題,而從學的角度追問:這樣的教學真的激活學生的學習力了嗎?一問喚醒夢中人!我突然驚醒:我自以為非常成熟的教學設(shè)計,如果從學生的學這方面來考量,依舊還有很多提升變革的空間。
于是,我從“最大化地解放學生思維、激活學生學習力”這一訴求出發(fā),對教學設(shè)計進行了改進。為了更好地進行前后對比,我先呈現(xiàn)原先的教學過程,然后再闡述改進方案。我設(shè)定《枚舉算法》這節(jié)課的主要教學目標為:通過解決“找密碼”問題逐步理解枚舉算法原理;初步掌握ListBox列表框的使用;進一步培養(yǎng)編程綜合能力。
改進前的教學過程
1.提出“找密碼”任務(wù)
上課伊始,我打開一個Word文檔,發(fā)覺設(shè)置了密碼。然后告知學生找密碼的條件:①該密碼是5位數(shù);②密碼為25**1,百位和十位上的數(shù)字不記得了;③這個5位數(shù)是17或53的倍數(shù)。請他們編程找出密碼。
教學闡析:為了引出枚舉算法,我用“找密碼”這個問題作為載體,但沒有設(shè)置復(fù)雜情境,直接開門見山給出找密碼的條件。
2.師生共同分析問題
根據(jù)密碼條件,我和學生一起分析問題,達成幾點共識:①確定25**1中“**”的初值是0,終值為99。②“**”以j表示,在j從0到99變化過程中,密碼n=25001+j*10。③“密碼是17或53的倍數(shù)”的表達式是n mod 17=0 or n mod 53=0。所以,這個問題就變成:在變量j從0到99變化的過程中,計算n=25001+j*10的值,判斷n mod 17=0 or n mod 53=0條件是否成立,如果成立,就輸出n的值。
教學闡析:為了讓學生初步建構(gòu)枚舉算法原理,我從“確定范圍”“情況枚舉”“條件判斷”幾個層次引導(dǎo)學生達成幾點共識,這幾點共識都是基于我的預(yù)設(shè)而形成的,學生的思考也在我的引導(dǎo)下完成。
3.教師講解主要程序體
上課前我事先建好窗體,程序的變量定義部分也已完成(如圖1),隨后我邊講解邊輸入主要程序。該程序用到了列表框ListBox,這是這節(jié)課的新知識點,在程序編寫過程中需要講解。同時,我也留白了密碼計數(shù)語句和密碼個數(shù)輸出語句讓學生自己研究。
教學闡析:事先建好窗體和完成變量定義是為了節(jié)約時間,聚焦重點。留白密碼計數(shù)語句和密碼個數(shù)輸出語句,能讓學生在自主編程環(huán)節(jié)產(chǎn)生知識沖突,促進學生自主思考和探究。
4.學生編寫主要程序體
講解分析后,學生開始自主編寫主要程序。學生可能會遇到的問題主要有三個:①程序結(jié)構(gòu)梳理不夠清晰。②密碼計數(shù)語句c=c+1放錯地方。③程序格式不夠規(guī)范。幾分鐘后,陸陸續(xù)續(xù)有學生成功了。運行成功的學生發(fā)現(xiàn),輸出的密碼個數(shù)并不唯一,而是8個(如圖2)。
教學闡析:主體語句雖然不到十行,但如果學生的程序邏輯結(jié)構(gòu)不清晰,就會產(chǎn)生問題。密碼計數(shù)語句應(yīng)該放在哪里?是分支結(jié)構(gòu)里還是分支結(jié)構(gòu)外循環(huán)結(jié)構(gòu)內(nèi)?密碼個數(shù)輸出語句的位置,個別學生也會犯錯。同時,字符串連接符號“+”的運用也是一個需要鞏固的知識點。雖然前面已經(jīng)有了教師講解,但學生只有通過自身實踐,才會真正解決并理解這些問題。
5.解決平方數(shù)的問題
沒錯!按照以上條件,密碼確實有8個。隨后我拋出新條件:該密碼是一個平方數(shù)。要解決這個問題,學生首先要寫出判斷平方數(shù)的關(guān)系表達式。我讓學生自己思考這個問題,同時告訴學生,如果想不出來,可以看一看這個題目,也許在表達式的格式上會有一些啟發(fā):在Visual Basic中,已知x、y均是正整數(shù),關(guān)系表達式Int(x/y)=x/y為真時,則表示(A)x不能被y整除,(B)x能被y整除,(C)x與y一定相等,(D)x小于y。
過了一會兒,有學生說平方數(shù)的問題解決了,但密碼卻有7個。我堅持說按照這個條件,密碼只有1個。那問題出在哪兒呢?學生經(jīng)過研究,終于明白,原來是優(yōu)先級惹的禍。學生最初的表達式是n Mod 17=0 Or n Mod 53=0 And Sqr(n)=Int(Sqr(n)),而正確的語句應(yīng)該是(n Mod 17=0 Or n Mod 53=0)And Sqr(n)=Int(Sqr(n))。密碼終于找到,學生用密碼興致勃勃地打開Word文檔,發(fā)現(xiàn)里面寫了一句話:只要堅持,夢想總是會實現(xiàn)的。完整程序如上頁圖3所示。
教學闡析:這是這節(jié)課的一個設(shè)計亮點,學生在解決這個問題的過程中非常有興趣,也有探究成功的滿足感。為了幫助學生思考,我提供了一道題目供對照,初衷是為了讓學生在思考時找到著力點。至于Word文檔里放的是什么,可以根據(jù)具體情況巧妙設(shè)置。
6.提出枚舉算法,分析其原理
解決好這個問題后,我告訴學生,剛才問題求解的過程其實就是在踐行一個經(jīng)典算法——枚舉算法。我先提問:你們認為枚舉算法是怎樣的一種算法?學生思考回答后,我再呈現(xiàn)書面陳述:按照問題要求確定問題解的范圍,然后在此范圍內(nèi)把所有可能的解一一羅列出來,并對每個解進行判斷,以確定這個可能解是不是問題的真正解,最后把符合要求的解輸出,直到所有真正解全部列舉完畢。
教學闡析:讓學生經(jīng)歷問題解決過程后,再提出其背后的算法原理,符合學習從思考到實踐,再到理論總結(jié)的學習邏輯。
7.繼續(xù)完成其他任務(wù)
完成“找密碼”任務(wù)后,學生再自主完成取紙幣、找因子、百錢買百雞等任務(wù),以進一步消化理解枚舉算法的原理。這節(jié)課沒有完成的任務(wù),下節(jié)課繼續(xù)。
教學闡析:對于程序編寫課,學生的水平差異會比較明顯,有些學生能很快完成任務(wù),有些學生卻要花較長時間。為了滿足較高水平學生的學習需求,教師需要及時跟進后續(xù)任務(wù)。
改進方案
以上是我以前的教學設(shè)計和上課流程,學生學得很投入,效果也不錯。但靜下心來分析,我好像被表面的繁華遮蔽而忽略了學習的本真??此茻o縫對接的設(shè)計、看似行云流水的課堂,其實學生還是在被我“牽著走”,他們的思考力并沒有被解放,他們的學習力也沒有被充分激活。而按照我的預(yù)估,基于學生的前置知識,只需要把一些必要的新知識告訴學生,“找密碼”任務(wù)應(yīng)該在學生的最近發(fā)展區(qū)。好,那就大膽放手試一試!于是我嘗試作了這樣的改變:課堂一開始,先用一個小程序講解ListBox使用方法,然后讓學生操作理解。接著放手讓學生自主編寫“找密碼”問題。在學生編程的過程中,我只作個別指導(dǎo)或旁白提醒。結(jié)果,學生交上來的作業(yè)驚到了我,青出于藍而勝于藍。原來我擔心的問題,如程序結(jié)構(gòu)、平方數(shù)、優(yōu)先級等,都被學生通過自己的理解和邏輯解決了。
限于篇幅,我選取了5份有代表性的作業(yè)。上頁圖4中的作業(yè)一,該學生用Do語句來解決,而不是我原來預(yù)設(shè)的If語句;作業(yè)二用If嵌套語句,有效規(guī)避了優(yōu)先級問題。上頁圖5中的作業(yè)三使用If嵌套語句,而且用另外一種方法來判斷平方數(shù);作業(yè)四用另一種關(guān)系表達式描述了“密碼是17或53的倍數(shù)”,而如果按照我的引導(dǎo),學生的認知就只停留在一種方法。上頁圖6中的作業(yè),循環(huán)變量的初值和終值另辟蹊徑,對平方數(shù)的處理更是讓人眼前一亮。
課堂綜述
原先的教學設(shè)計,從課堂一開始,學生就在我的牽引下按部就班地學習,每一步都有預(yù)設(shè)好的唯一答案。我擔心學生自主編程會打亂課堂節(jié)奏,所以把每一步都精準設(shè)計;我擔心學生想不出平方數(shù)的關(guān)系表達式,還特意提供題目讓他們參考。當我沾沾自喜這樣精妙的設(shè)計時,殊不知,早已禁錮了學生的學習力,忽視了學生的創(chuàng)造力。試想,如果沒有我的放手,學生會獨立自主地解決問題嗎?學生會絞盡腦汁地突破自己的思考極限嗎?學生能反饋這些個性化作業(yè)嗎?學生能看到其他同學的創(chuàng)意和亮點嗎?如果沒有我的放手,我能更好地了解學生的認知水平和潛力嗎?我能更全面地了解學生存在的問題嗎?雖然在課堂中,我能感受到有些學生解決不出問題時的急躁,但更多的是他們積極思考的態(tài)度,不斷嘗試的勇氣,面對錯誤持續(xù)調(diào)試的堅持;我看到的是他們看到參考答案后的若有所思,看到其他同學解題方法后的驚嘆和認同。這些豐富的體驗,是教師領(lǐng)著他們亦步亦趨看風景時完全感受不到的。當然,這樣的設(shè)計還有很多需要討論改進的地方,但至少這樣的嘗試給了我一個變革的方向。
觀點總結(jié)
我們總是擔心學生能力不夠而選擇把答案直接告訴他們;我們總是憂慮學生自主思考占用較多時間影響課堂節(jié)奏而選擇先教后學;我們總是害怕放手了,課堂會變得無序而寧愿戴著鐐銬跳舞。雖然這樣的擔心和憂慮可以理解,但如果回歸學習和教學的本質(zhì)去思考,我們就會發(fā)現(xiàn),一條循規(guī)蹈矩的學習路徑會讓學生的學習能力和創(chuàng)造個性在無形中被一點點弱化,更遑論批判性思維的培養(yǎng)。而我們只有在精細的教學設(shè)計中,轉(zhuǎn)換一下教學思路,多給學生真正自主學習的時間和生生之間共享學習資源的機會,才能讓課堂真實、有效且豐富。
因此,不要束縛學生,要相信學生的能力,讓教師的單兵作戰(zhàn)變成師生集體抱團的合作;不要擔心時間成本的付出,要學會耐心等待,只要學生在全身心地思考和實踐,那我們的等待都是值得的。學生的學習力就是在教師的信任、等待,以及當學生有需要時及時出現(xiàn)的指導(dǎo)釋疑中逐漸蓄積,最終厚積薄發(fā),反哺給你一個自主獨立、敢于質(zhì)疑問難、有創(chuàng)造力的學習者。
葉圣陶先生曾說,“我以為好的先生不是教書,不是教學生,乃是教學生學。教學生學,這是教育最自然的常識,也是我們必須回歸的旅途”。
收筆之際,有句歌詞突然跳了出來:有一種愛叫做放手!