林文英
信息技術(shù)的變革不斷更新著人們的交互方式,大數(shù)據(jù)時代應(yīng)該怎樣培養(yǎng)學(xué)生的信息素養(yǎng)?學(xué)生學(xué)習(xí)信息技術(shù)這門課程之后應(yīng)具備什么樣的能力呢?這些都是值得信息技術(shù)教師思考的問題。筆者認為,要解決這些問題,必須讓學(xué)生主動參與課堂,讓實踐在課堂真實發(fā)生,讓學(xué)生在課堂實踐中培養(yǎng)具有學(xué)科特點的必備品格和能用計算思維解決問題的能力。計算機思維是個體運用計算機科學(xué)領(lǐng)域的思想方法,在形成問題解決方案的過程中產(chǎn)生的一系列思維活動。項目教學(xué)法(Project-learning)是師生通過共同實施一個完整的項目工作而進行的教學(xué)活動,突出實踐在課程中的主體地位,使理論從屬于實踐,在實踐中獲得知識、技能,又讓學(xué)生學(xué)會應(yīng)用能力。這里以階乘的項目教學(xué)為案例,闡述數(shù)據(jù)如何改變思維,計算思維如何走進課堂并真實發(fā)生。
● 活動一:理解問題中的關(guān)鍵詞
高一學(xué)生已經(jīng)具備了網(wǎng)絡(luò)信息檢索的關(guān)鍵技能,能初步完成對題目中的關(guān)鍵概念的探究活動。在活動中,教師充分引導(dǎo)學(xué)生利用數(shù)字化工具完成概念(階乘)的學(xué)習(xí),通過進一步探究階乘概念形成抽象建模意識。階乘是指從1乘以2乘以3乘以4一直到所要求的數(shù)。一個正整數(shù)的階乘是所有小于及等于該數(shù)的正整數(shù)的積,并且0的階乘為1。自然數(shù)n的階乘寫作n!,轉(zhuǎn)化為數(shù)據(jù)表示為n*(n-1)*(n-2)*(n-3)*…3*2*1,抽象成模型遞歸式即0!=1,n!=(n-1)!×n。
● 活動二:利用計算器分析數(shù)據(jù)
N的取值為1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20……50000000。本題(如上圖)中的N值不是一個固定值,學(xué)生在理解了階乘概念之后依然有點無從下手,因為不知道這里的N值會是多少。教師接著引導(dǎo)學(xué)生嘗試利用計算器對前20個數(shù)據(jù)進行處理并觀察分析數(shù)據(jù):0!=1,1!=1,2!=2,3!=6,4!=24,5!=120,6!=720,7!=5040,8!=40320,9!=362880,10!=3628800,11!=39916800,12!=479001600,13!=6227020800,14!=87178291200,15!=1307674368000,16!=20922789888000,17!=355687428096000,18!=6402373705728000,19!=121645100408832000,20!=2432902008176640000。嘗試1到20之后讓學(xué)生對數(shù)據(jù)結(jié)果進行分析。學(xué)生從枚舉出來的數(shù)據(jù)中發(fā)現(xiàn)特征:(1)除了0和1以外,其他的數(shù)據(jù)都是偶數(shù)。(2)逢N值的末位數(shù)為5時,階乘結(jié)果末尾0的個數(shù)增加1個。(3)數(shù)據(jù)成長得很快,20的階乘值已經(jīng)是一個18位的數(shù)據(jù),當(dāng)N=50000000時呢?(4)計算器有位數(shù)限制,想通過人工和計算器求解的學(xué)生遇到瓶頸。
● 探究一:利用計算機編程求解問題
學(xué)生對數(shù)據(jù)初步分析、類比之后,順利地轉(zhuǎn)向?qū)で笥嬎闼季S解決問題:先分析階乘問題的特征,抽象建立結(jié)構(gòu)模型0!=1,n!=(n-1)!,再用計算機程序設(shè)計語言實現(xiàn)算法。學(xué)生根據(jù)已有的程序設(shè)計基礎(chǔ),設(shè)計問題求解方案,為保證取得的末位是非零位,遇有零位的要去零位,即采用取余運算,對每個數(shù)i進行累乘,對乘積s只保留最后一位。
學(xué)生A根據(jù)這一思路編程求解,但在評測時只能拿到29分,為什么呢?因為當(dāng)s的末位數(shù)是2、i末位數(shù)是5時會有進位,如果只取一位最右非零余數(shù)會影響最終的非零取值,如s=92,i=95,92*95=8740末位數(shù)是4,而不是2*95=190中的9。學(xué)生A按照這個思路繼續(xù)改進程序,但結(jié)果全部是錯誤答案,又是為什么呢?程序中考慮了進位的保留問題,但最后輸出結(jié)果保留了最右邊七位非零數(shù)。學(xué)生B采用函數(shù)的結(jié)構(gòu)化程序設(shè)計思路,先求結(jié)果再取第一個非零數(shù),但同樣沒有滿分。問題在于求解階乘時由于數(shù)據(jù)是爆炸式增長,定義int或者long數(shù)據(jù)類型容易溢出。學(xué)生小組繼續(xù)修改完善程序,一方面考慮到溢出問題,另一方面考慮到進位問題,在不斷的嘗試中發(fā)現(xiàn),在保留位增加到8位時能通過全部測試數(shù)據(jù)。為什么是8位呢?因為數(shù)據(jù)N最大值是50000000,末尾零不會影響最終結(jié)果,每次乘法運算后可以進行去0操作。
● 探究二:優(yōu)化算法求解問題
學(xué)生將計算思維實現(xiàn)問題求解運用到本項目收集信息、觀察數(shù)據(jù)、設(shè)計求解方案一步步優(yōu)化的實施過程中。根據(jù)學(xué)生發(fā)現(xiàn)的特征做出何時可以模10取非零末位數(shù)的判斷,即乘法運算中只有在乘數(shù)的末位出現(xiàn)5時才會進位影響結(jié)果,末位為其他數(shù)據(jù)時不影響結(jié)果。由于5*2=10,嘗試去掉因子5,再去掉相同個數(shù)的因子2就可以去掉一個末位0,又因2的個數(shù)比5的個數(shù)多,去0后的乘積數(shù)一定是偶數(shù),那么,末位非零數(shù)只能取2,4,6,8這個四個數(shù)字中的一個。在除去末位2時也需要注意到結(jié)果一定是偶數(shù),所以當(dāng)末位數(shù)為2時直接將末位借位除2轉(zhuǎn)變?yōu)?,末位數(shù)為6時轉(zhuǎn)變?yōu)?,其他的正常除2,編寫的程序代碼順利通過所有測試點。教師再次引導(dǎo)學(xué)生繼續(xù)思維優(yōu)化法,構(gòu)造計算模型求解,分析非零位為偶數(shù)的有2,4,6,8四個數(shù)字,2/2=1為奇數(shù),為保證末位為偶數(shù),2借位除2得6,4/2=2,而6/2=3,6借位后除2得8,8/2=4,假設(shè)6在數(shù)組第一個元素,8在第三個元素,2在第二個位置,4在第四個位置,此時通過元素除2做下標(biāo)可以有規(guī)律表示元素,于是初始化數(shù)組b為{6,2,8,4},去2操作轉(zhuǎn)換為a=b[a/2],a為正解。也可以利用計算思維構(gòu)造數(shù)組,根據(jù)數(shù)據(jù)規(guī)律可以發(fā)現(xiàn)四個一循環(huán),模4也可以求得正解。
● 應(yīng)用拓展:階乘知識的遷移
階乘主要應(yīng)用在排列組合數(shù)的求解中,在現(xiàn)實生活中有啥用途?用偶然性方法去解決確定性計算,如果你想買一種彩票32選7的,你想知道中特等獎的概率1/C(32,7)=7!*(32-7)!/32!,求階乘可用計算機求解。學(xué)生掌握數(shù)字化工具獲取信息,能用計算思維方式思考問題求解方法并遷移到實際生活和學(xué)習(xí)中,激發(fā)繼續(xù)學(xué)習(xí)的內(nèi)驅(qū)力,強化信息意識和社會責(zé)任感。
● 教學(xué)評價
項目評價時采用多元評價方式,將互評、自評等多種方式相結(jié)合。在活動一中希望達成認識數(shù)字化表示信息的優(yōu)勢和能夠根據(jù)需求選擇適當(dāng)?shù)臄?shù)字化工具獲取信息的目標(biāo),評價主要依據(jù)學(xué)生獲取概念的時間和結(jié)果等信息;在活動二中希望達成提取問題的基本特征,分析數(shù)據(jù)進行抽象處理,并用形式化的方法表述問題的活動目標(biāo),主要對學(xué)生的數(shù)據(jù)呈現(xiàn)、觀察結(jié)果、提出的設(shè)想等數(shù)據(jù)處理能力進行評價;在探究一中希望達成使用編程語言,進行模塊化、系統(tǒng)化設(shè)計算法解決問題的目標(biāo),對學(xué)生的算法設(shè)計、程序編寫以及問題解決情況、活動中參與討論的情況進行評價;在探究二中希望達成采用恰當(dāng)?shù)姆椒ǖ鷥?yōu)化解決方案的目標(biāo),引導(dǎo)學(xué)生從創(chuàng)意性、可行性等方面進行調(diào)適和改進,對完成程序作品開展成果交流評價;在應(yīng)用拓展模塊希望學(xué)生達成將所學(xué)知識和方法遷移到學(xué)習(xí)和生活的其他相關(guān)問題的解決過程中的目標(biāo)。
通過人機交互完成輸入和輸出,程序求解過程類似黑箱操作,問題的人工求解轉(zhuǎn)化為只需輸入便能快速得出結(jié)果的計算機求解。活動二讓學(xué)生參與對數(shù)據(jù)的分析觀察,并對觀察結(jié)果提出假設(shè),在數(shù)據(jù)的作用下循序漸進地挖掘問題的本質(zhì),轉(zhuǎn)變學(xué)生思考問題的方式,綜合運用數(shù)據(jù)學(xué)習(xí)理論和數(shù)據(jù)處理工具將人工解題轉(zhuǎn)化為計算機解題,讓計算思維走進課堂教學(xué)。探究一和探究二采用計算機科學(xué)領(lǐng)域的思想方法界定問題,抽象問題特征,建立結(jié)構(gòu)模型,判斷、分析、類比各種信息資源,運用合理的算法形成解決問題的方案,這一系列思維過程實現(xiàn)了“數(shù)據(jù)改變思維,計算走進課堂”的項目核心目標(biāo)。在評價過程中,用成長型思維評價學(xué)生,結(jié)合學(xué)生的日常學(xué)習(xí)表現(xiàn)、知識與技能的掌握情況,以及是否經(jīng)過努力可達成目標(biāo)全面評價學(xué)生學(xué)科核心素養(yǎng)水平。
參考文獻:
[1]中華人民共和國教育部.普通高中信息技術(shù)課程標(biāo)準(2017年版)[M].北京:人民教育出版社,2018,1.
[2]李維明.關(guān)注發(fā)展,實踐課程[J].中國信息技術(shù)教育,2018(5).
[3]李維明.普通高中信息技術(shù)學(xué)科教學(xué)中核心素養(yǎng)的培育[J].中國電化教育,2017(5):26-29.
[4](美)卡羅爾·德韋克.終身成長[M].南昌:江西人民出版社,2017,11.