季雁
“變式探究”是教師在“變式教學(xué)”的基礎(chǔ)上,根據(jù)學(xué)生的特點(diǎn),通過創(chuàng)設(shè)合理的、有挑戰(zhàn)性的問題變式,激發(fā)學(xué)生的探究興趣,點(diǎn)燃學(xué)生內(nèi)心探究的種子。通過“變式探究”,教師為學(xué)生的思維發(fā)展提供支架,有助于學(xué)生構(gòu)建脈絡(luò)清晰的知識(shí)。通過“變式探究”,教師有目的、有意識(shí)地引導(dǎo)學(xué)生從“變”的現(xiàn)象中發(fā)現(xiàn)“不變”的本質(zhì),從“不變”的本質(zhì)中探究“變”的規(guī)律,真正做到融會(huì)貫通。本文筆者通過算法與程序設(shè)計(jì)教學(xué)的具體實(shí)踐,歸納出層次型、發(fā)散型、逆向型、情境型、類比型的“變式探究”,呈現(xiàn)了“變式探究”對(duì)提高學(xué)生學(xué)習(xí)效率、提升學(xué)生思維品質(zhì)等方面的效果與價(jià)值。
● “層次型”變式探究:跳一跳,摘到桃
維果斯基的“最近發(fā)展區(qū)”理論中最經(jīng)典的話語莫過于“跳一跳,摘到桃”?!白罱l(fā)展區(qū)”是指“學(xué)生獨(dú)立解決問題的實(shí)際水平與在教師指導(dǎo)下解決問題的潛在發(fā)展水平之間的差距”?!白罱l(fā)展區(qū)”強(qiáng)調(diào)了教學(xué)的本質(zhì)特征不在于訓(xùn)練和強(qiáng)化已形成的內(nèi)部知識(shí)體系,而在于激發(fā)形成正處于成熟過程中而又未完全成熟的知識(shí)體系。因此,在教學(xué)中,要從學(xué)生的學(xué)習(xí)能力和思維特點(diǎn)出發(fā),關(guān)注學(xué)生的需求,可采用“層次型”的變式來啟發(fā)、引導(dǎo),激發(fā)學(xué)生主動(dòng)探究。
教學(xué)闡析:循環(huán)語句是程序設(shè)計(jì)學(xué)習(xí)中的重點(diǎn)和難點(diǎn),學(xué)生如何靈活應(yīng)用循環(huán)語句來解決生活中的實(shí)際問題,如何找出這些問題的共性,并在解題過程中找出規(guī)律、提煉方法,是課堂教學(xué)所要突破的關(guān)鍵。如圖1所示,首先,從一個(gè)簡(jiǎn)單又充分體現(xiàn)循環(huán)思想的問題入手,讓學(xué)生認(rèn)識(shí)For語句,理解循環(huán)的原理。然后,給出探究變式1和變式2,讓學(xué)生自主完成值的計(jì)算。教師針對(duì)巡視中發(fā)現(xiàn)的問題進(jìn)行釋疑后,讓學(xué)生完成變式3、變式4。在從變式1到變式4的認(rèn)知過程中,大部分學(xué)生都能“跳一跳,摘到桃”,逐步熟悉For循環(huán)的結(jié)構(gòu)并真正掌握其具體用法。“層次性”變式探究的學(xué)習(xí)過程,使學(xué)生真正實(shí)現(xiàn)自主地構(gòu)建知識(shí)。
● “發(fā)散型”變式探究:一千個(gè)讀者眼中有一千個(gè)哈姆雷特
莎士比亞有句名言:“一千個(gè)讀者眼中有一千個(gè)哈姆雷特”。也就是說,每個(gè)立場(chǎng)不同的人都可以在“哈姆雷特”這本書里看出完全不同的意境。筆者以為,這個(gè)道理用在算法與程序設(shè)計(jì)教學(xué)中也十分恰當(dāng)。同一個(gè)問題,學(xué)生與學(xué)生、學(xué)生與教師之間往往也會(huì)因?yàn)橹R(shí)儲(chǔ)備、興趣愛好、能力差異、思維特點(diǎn)等不同而產(chǎn)生多種變式。
教學(xué)闡析:如圖2所示,在學(xué)習(xí)雙重循環(huán)這塊內(nèi)容時(shí),首先通過平行四邊形的打印讓學(xué)生理解雙層循環(huán)、tab()函數(shù)和print方法的用法,了解它們的具體功能。然后,讓學(xué)生自由選擇規(guī)則圖形編寫代碼,從不同圖形的打印代碼中找出相同的規(guī)律,即:①外循環(huán)控制打印的行數(shù);②tab()函數(shù)控制每行打印的位置;③內(nèi)循環(huán)控制每行的打印個(gè)數(shù)。很多學(xué)生采用了不同的打印圖案,甚至同一圖案采用了多種方法。通過引導(dǎo),學(xué)生展開自主探究,進(jìn)行創(chuàng)造變式、解決變式,從而更深入地體會(huì)問題的異化、遷移,更好地把握問題不變的本質(zhì)特征。“發(fā)散型”變式探究的學(xué)習(xí)過程,能有效培養(yǎng)學(xué)生思維的探索性和深刻性。
● “逆向型”變式探究:反其道而思之
正向思維是指常規(guī)的、公認(rèn)的、習(xí)慣的想法與做法。逆向思維則恰恰相反,是對(duì)傳統(tǒng)、慣例、常識(shí)的挑戰(zhàn)。循規(guī)蹈矩的思維和按傳統(tǒng)方式解決問題雖然簡(jiǎn)單,但容易使思路僵化、刻板,擺脫不掉習(xí)慣的束縛,得到的往往是一些司空見慣的答案。逆向思維則能克服這一障礙,得到的答案往往出人意料,給人以耳目一新的感覺。有時(shí)候從思維的反方向開展“變式探究”,反其道而思之,往往能另辟蹊徑,讓人豁然開朗,對(duì)知識(shí)的靈活應(yīng)用更為得心應(yīng)手。
教學(xué)闡析:教材中對(duì)冒泡排序的算法僅局限于自下而上的比較相鄰兩數(shù)。首先,學(xué)生通過數(shù)字實(shí)例的內(nèi)、外循環(huán)變量跟蹤,理解冒泡排序算法的基本思想,理清內(nèi)、外循環(huán)變量之間的關(guān)系,基本掌握自下而上的升序排序代碼。接著,筆者提出:如何實(shí)現(xiàn)自上而下的反向排序?學(xué)生通過小組合作的方式展開逆向探究,回憶自下而上的過程,反向抽取內(nèi)、外循環(huán)變量之間的關(guān)系,從而得出變式,如下頁圖3所示。
在算法與程序設(shè)計(jì)教學(xué)中,從問題的反面進(jìn)行深入探索的例子還有很多。求解n的階乘問題,正向的思路則是通過解析算法,找出問題的前提條件和所求結(jié)果之間的數(shù)學(xué)關(guān)系表達(dá)式,用循環(huán)結(jié)構(gòu)得出問題的解。筆者通過啟發(fā)學(xué)生開展“逆向型”變式探究,讓學(xué)生使用遞歸算法,將大問題分割成小問題,通過已知的小問題逆推得出最終的解?!澳嫦蛐汀弊兪教骄拷鉀Q算法中的問題,往往會(huì)有一條新奇的出路,使學(xué)生的思維更加靈活。
● “情境型”變式探究:一切知識(shí)都是從感官開始的
“一切知識(shí)都是從感官開始的?!边@是捷克教育家夸美紐斯在《大教學(xué)論》中的至理名言。陶行知也說過:“生活即教育。”課堂中問題的呈現(xiàn)要具有一定的生活情境,才能激起學(xué)生主動(dòng)探究的熱情和思考問題的積極性。尤其是在算法與程序設(shè)計(jì)教學(xué)中,教師更需要有目的地引入或創(chuàng)設(shè)情境,以激發(fā)學(xué)生的興趣,提高學(xué)生對(duì)知識(shí)的記憶、理解和應(yīng)用。學(xué)生從不同的情境變式中探究得出類似問題的統(tǒng)一解決方案,從多變到不變,思維的總結(jié)和概括能力得以提升。
教學(xué)闡析:如圖4所示,在講授多條件的塊if語句時(shí),筆者選用了“田徑運(yùn)動(dòng)員技術(shù)等級(jí)判定”問題作為實(shí)例,幫助學(xué)生認(rèn)識(shí)if語句的語法及功能。雖然if語句理解起來較為簡(jiǎn)單,但在具體的上機(jī)實(shí)踐中,學(xué)生往往錯(cuò)漏百出,需要相關(guān)的練習(xí)進(jìn)行鞏固。采用“情境型”變式探究,結(jié)合學(xué)生的生活實(shí)際,可以使枯燥的練習(xí)內(nèi)容變得鮮活起來。學(xué)生展開熱烈的討論,歸納并總結(jié)了生活中可以用if語句解決的情境問題,以及具體的操作方式。運(yùn)用“情境型”變式探究,從不同的問題背后抽取出相同的處理方式,學(xué)生真正感受到算法與程序設(shè)計(jì)的實(shí)用性、趣味性、生動(dòng)性。
● “類比型”變式探究:他山之石,可以攻玉
類比是一種重要的思維方法,在新舊知識(shí)間進(jìn)行異中求同、同中求異。類比的過程是由此及彼、找尋問題的相似點(diǎn)或相異點(diǎn)的過程?!八街?,可以攻玉”,“類比型”變式探究可以從一種問題的解決方法引申出更為優(yōu)化的解決方法,由這種方法所得出的結(jié)論,既有模仿又有創(chuàng)新,是思維的升華,富有創(chuàng)造性,往往能給予學(xué)生許多啟發(fā)。2015年選考試題第16題冒泡排序優(yōu)化的改錯(cuò)題、2016年10月選考試題第16題冒泡排序數(shù)據(jù)的移動(dòng)問題也涉及此類問題。
教學(xué)闡析:如下頁圖5所示,在給出“百錢買百雞”問題之前,學(xué)生已通過相關(guān)實(shí)例掌握了枚舉算法的基本用法,并總結(jié)了枚舉算法的常規(guī)解法,即問題有幾個(gè)變量就采用幾層循環(huán),并在最內(nèi)層循環(huán)中添加所有的條件。雖然這樣的解法能解決問題,但卻不是最優(yōu)的算法。一個(gè)好的算法,很多時(shí)候需要考慮程序的執(zhí)行效率。因此,筆者引導(dǎo)學(xué)生思考枚舉算法解決問題的關(guān)鍵,從問題的范圍、條件著手進(jìn)行優(yōu)化,學(xué)生順利地得出了變式。然后,筆者將兩種方法做類比,前者所需執(zhí)行的循環(huán)為100×100×100次,判斷條件為2個(gè),而變式所需執(zhí)行的循環(huán)為20×33=660次,判斷條件為1個(gè)。通過這樣的“類比型”變式探究,學(xué)生的思維得到了升華,在“孫子算經(jīng)”問題中立馬活學(xué)活用,順利應(yīng)用了優(yōu)化的枚舉算法變式來解決問題,使循環(huán)次數(shù)從500次減少到(500-9)/7次,條件從3個(gè)減少為2個(gè)。
教學(xué)闡析:斐波那契序列、兔子數(shù)列以及類似其他數(shù)列的求解是算法中常見的、經(jīng)典的問題。在學(xué)習(xí)遞歸算法以后,學(xué)生往往會(huì)有思維定式,千篇一律地采用遞歸算法來編程求解。因此,筆者提出了能否用解析的方法來解決斐波那契序列問題,學(xué)生很快通過數(shù)學(xué)關(guān)系表達(dá)式的求解,順利得出了變式。接著,筆者讓學(xué)生用n=35調(diào)試兩種算法。學(xué)生驚喜地發(fā)現(xiàn)解析算法的機(jī)器反應(yīng)快,遞歸算法明顯遲鈍。由此,筆者提出運(yùn)行效率問題,讓學(xué)生利用n=5進(jìn)行遞歸函數(shù)的調(diào)用次數(shù)分析,得出結(jié)論:Fib(5)調(diào)用1次,F(xiàn)ib(4)調(diào)用1次,F(xiàn)ib(3)調(diào)用2次,F(xiàn)ib(2)調(diào)用3次,F(xiàn)ib(1)則需要調(diào)用5次。函數(shù)的多次調(diào)用造成大量的重復(fù)計(jì)算,從而使得遞歸算法的效率低下。通過類比,學(xué)生總結(jié)了解析算法和遞歸算法解決此類問題的優(yōu)劣。“類比型”變式探究,拓寬了思維的廣度,實(shí)現(xiàn)了有效拓展,學(xué)生深受啟發(fā),明確了遇到問題時(shí)應(yīng)該綜合考慮的方方面面,從而學(xué)會(huì)選擇最優(yōu)的算法來解決問題,如圖6所示。
綜上所述,筆者以為,在算法與程序設(shè)計(jì)教學(xué)中開展“變式探究”,就是用有效的變式問題引導(dǎo)學(xué)生進(jìn)行由表及里的深入探索,抽取問題的本質(zhì)和核心,真正學(xué)會(huì)融會(huì)貫通,從而實(shí)現(xiàn)以“變”應(yīng)“不變”,以“不變”應(yīng)“萬變”。有關(guān)變式探究問題的有效設(shè)計(jì),需注意教學(xué)的目標(biāo)導(dǎo)向性、學(xué)生的主體參與性,以及變式問題的適度性。