李偉
與傳統(tǒng)的教學模式相比較,基于計算思維的教學模式在培養(yǎng)學生自我建構(gòu)知識以及創(chuàng)新思維能力方面有較大的優(yōu)勢,不僅可以提高學生的學習效率,還可以培養(yǎng)他們的計算思維能力。在高中信息技術(shù)學科核心素養(yǎng)中,計算思維作為重要的組成部分,其定義是:個體在運用計算機科學領(lǐng)域的思想方法形成問題解決方案的過程中產(chǎn)生的一系列思維活動。然而在實際教學中,教師會發(fā)現(xiàn),信息科技學科的屬性越來越缺失,信息科技課程中“唯工具”思想越來越明顯,信息科技承載的“學信息技術(shù)、用信息技術(shù)和技術(shù)一起學”三個層次功能的體現(xiàn)越來越弱化。下面,筆者以《算法與程序設計——遞推算法》一課例為例,闡述計算思維在高中信息科技課堂中的應用。
引入部分
筆者講述斐波那契和兔子的故事,然后拋出問題:假設一對初生兔子要一個月才到成熟期,而一對成熟兔子每月會生一對兔子。那么,由一對初生兔子開始,12個月后會有多少對兔子呢?
要求學生在草稿紙上列出前6個月的兔子數(shù)。學生根據(jù)題意,很快能得出每個月的兔子數(shù),結(jié)果以列表形式給出(如下表)。
歸納通項公式
學生在觀察前6個月的兔子數(shù)后,能總結(jié)出通項公式fn=f(n-2)+f(n-1) n>=3,從而快速計算出12個月后兔子的總數(shù)為144。解決這個問題的關(guān)鍵是得出通項公式,也就是形式化表達的過程。學生在課堂上通過小組討論,觀察、分析數(shù)字之間的內(nèi)在關(guān)系,得到通項公式,用前兩個月的兔子數(shù)相加得出當前月的兔子數(shù)。因前兩個月的兔子數(shù)都為1,所以f3=f2+f1,就能得出f3=2,同理,f4的值也能這樣得出,這就是經(jīng)典的數(shù)列中的遞推公式。
換一種思考角度看問題
在推導出遞推公式后,教師從生活實例中又引入了一個新的走地板的問題:機房內(nèi)一共有15塊地板,規(guī)定每步可以走一塊或兩塊地板,如果要走到最后一塊地板,一共有多少種不同的走法?
提出此問題的目的是讓學生進行逆向思維,讓他們換個角度看問題,學生的思維有些障礙,教師要適時搭腳手架,分析第5塊地板的情況(如圖1)。
分析過程:如果差一步走到第5塊地板,這一步有幾種走法?①假設已走到了第4塊地板,一步走1塊地板到達第5塊地板。②假設已走到了第3塊地板,一步走2塊地板到達第5塊地板。
得出結(jié)論:f5=f4+f3(f5、f4、f3分別為走到第5、4、3塊地板的走法數(shù)目),由此過渡到f15=f14+f13(f15、f14、f13分別為走到第15、14、13塊地板的走法數(shù)目),最后得出通項公式fn=f(n-2)+f(n-1) (n≥3)。
計算思維的體現(xiàn)
學生在這里會發(fā)現(xiàn)走地板的問題和課堂前半段推導的斐波那契數(shù)兔子公式一樣,進而引發(fā)思考。前面是根據(jù)數(shù)列的規(guī)律歸納出來的,而走地板問題是由后往前推導,當前地板的走法是由前兩塊地板走法相加得到的,這樣一次次往前推,直到出現(xiàn)確切的f2=2,f1=1。除了f2的值不同外,表面上推導出的公式fn=f(n-2)+f(n-1) (n≥3)是相同的。但后面這種方法考慮的問題就是計算思維的具體體現(xiàn),把復雜的問題抽象分解成相對簡單的形式,這種形式是相對固定的,這就是抽象和形式化表達,這是遞歸算法的典型應用。用公式可以表示為:
從遞歸所體現(xiàn)的核心思想來看:其一,將一個復雜的問題簡單化處理,這反映了計算思維簡潔的特性;其二,每次簡單化后的問題表達方式與原方式是一致的,這也反映了計算思維簡潔的特性;其三,是有終止的,問題簡化到一定程度,一定是可以解決的,這反映了計算思維的構(gòu)造特性;其四,遞歸是一種漂亮的形式化表達,可以用有限的步驟描述、實現(xiàn)近于無限功能的方法。到此,就用計算機科學的基礎(chǔ)概念對問題進行了求解,接下去就是用編程工具在計算機上實現(xiàn)的過程。
程序?qū)崿F(xiàn)
借助流程圖(如圖2),分析得出循環(huán)體的內(nèi)容,學生在VB程序中調(diào)試,得出結(jié)果。
循環(huán)體中的內(nèi)容就是fn=f(n-2)+f(n-1),最后生成的VB語句,如圖3所示。
在課堂的拓展部分,筆者提出用函數(shù)的表示形式,更好地實現(xiàn)遞歸思想。VB代碼如圖4所示。
課例反思
本節(jié)課例是高中信息科技“算法與程序設計”模塊的典型應用是計算思維中形式化表達的過程,體現(xiàn)了計算思維抽象和自動化的特征。在代碼實現(xiàn)階段,先用do while語句實現(xiàn)從前往后的正向遞推,再用函數(shù)的形式表達遞歸的思想,這里學生的思維更進一步,通過代碼編寫、體會遞歸調(diào)用自身的過程,重點體會把復雜問題逐步簡單化,每次調(diào)用自身就縮小規(guī)模,一直到最簡單的規(guī)模直接給出值??v觀這三個環(huán)節(jié),學生的思維是有梯度、層層遞進的。教師通過這樣的教學實踐,促使學生用計算思維的方式思考問題,對提升其思維非常有幫助。
在高中信息科技課程中,與算法相關(guān)的方法教學已實施多年。計算思維的提出,對相關(guān)方法教學提出了新的要求。同時,依據(jù)高中學生的年齡心智特征,梳理計算思維的方法教育內(nèi)容,是一項有意義、有挑戰(zhàn)性的工作。計算思維的開發(fā)有助于提高信息科技課程的教學效率,促進學生信息素養(yǎng)的培養(yǎng)。但學生計算思維的培養(yǎng)不是一蹴而就的,需要一線教師在高中信息科技課堂教學中精心設計教學內(nèi)容與過程,將計算思維的培養(yǎng)融入到實際的課堂教學中,只有不斷地在課堂教學中培養(yǎng)學生的計算思維能力,才能更好地激發(fā)他們的內(nèi)在潛能,為其終身學習打下基礎(chǔ)。endprint