張玉潔 江蘇省南京外國(guó)語(yǔ)學(xué)校
《普通高中信息技術(shù)課程標(biāo)準(zhǔn)(2017年版)》(以下簡(jiǎn)稱“新課標(biāo)”)在學(xué)科核心素養(yǎng)中對(duì)學(xué)生的計(jì)算思維提出了要求。通過(guò)計(jì)算思維的培養(yǎng),學(xué)生可以掌握如何分析新信息和處理新問(wèn)題。現(xiàn)階段,信息技術(shù)課堂對(duì)學(xué)生計(jì)算思維的培養(yǎng)大多通過(guò)開(kāi)設(shè)編程課來(lái)實(shí)現(xiàn),在課堂上學(xué)生能夠運(yùn)用編程語(yǔ)言解決問(wèn)題被認(rèn)為是有效的計(jì)算思維的培養(yǎng),但編程要做的絕不僅僅是對(duì)學(xué)生進(jìn)行技術(shù)訓(xùn)練,而是要關(guān)注如何讓學(xué)生理解和掌握編程背后用到的思維的過(guò)程。筆者結(jié)合新課標(biāo)對(duì)計(jì)算思維框架的定義與要求,提出了基于計(jì)算思維框架的編程教學(xué)模式,在信息技術(shù)編程課堂上指導(dǎo)學(xué)生運(yùn)用計(jì)算思維框架來(lái)思考問(wèn)題,從而有效引導(dǎo)并培養(yǎng)學(xué)生的計(jì)算思維能力。下面,結(jié)合具體案例展示如何使用計(jì)算思維框架進(jìn)行編程教學(xué)。
新課標(biāo)在對(duì)計(jì)算思維的定義中,明確計(jì)算思維的要素主要包括抽象、分解、算法、模式識(shí)別、泛化和評(píng)估,筆者基于六要素提出了基于計(jì)算思維框架的編程教學(xué)模式,將計(jì)算思維的六要素以具體化的思維活動(dòng)貫穿于課堂教學(xué)活動(dòng)中,從而完成對(duì)學(xué)生計(jì)算思維能力的培養(yǎng)。下表展示了計(jì)算思維框架的步驟及每個(gè)步驟被具體化的思維活動(dòng)。

計(jì)算思維框架步驟及具體化的思維活動(dòng)
結(jié)合提出的計(jì)算思維框架,筆者以《for循環(huán)打印字符圖形》為例,以難度遞進(jìn)的四個(gè)任務(wù)為主線,運(yùn)用計(jì)算思維框架,探索信息技術(shù)編程課堂中基于計(jì)算思維框架的編程教學(xué)模式的具體實(shí)施。
任務(wù)一:編程輸出n行m列的*號(hào)矩形。當(dāng)n=5,m=8時(shí),輸出如圖1所示的圖形。
對(duì)于圖1所示的矩形,引導(dǎo)學(xué)生運(yùn)用計(jì)算思維的6個(gè)步驟來(lái)分析,實(shí)現(xiàn)過(guò)程如下(以n=5,m=8為例)。
模式識(shí)別——輸出的矩形中存在重復(fù)的模式,每行作為一個(gè)整體,那么問(wèn)題就變成了輸出一行*號(hào),并重復(fù)5次(如圖2)。

圖2
分解——輸出一行*號(hào)還是無(wú)法直接用輸出語(yǔ)句實(shí)現(xiàn),本例中輸出一行8個(gè)*號(hào)可以分解成輸出一個(gè)*號(hào)不換行,此動(dòng)作重復(fù)8次。
抽象——經(jīng)過(guò)前面兩步,問(wèn)題可以抽象成:①輸出一個(gè)*號(hào)不換行,重復(fù)8次;②輸出一行*號(hào)重復(fù)5次。
算法——基于上述分析,可以得出一個(gè)步驟列表:①輸入行號(hào)n和列號(hào)m;②重復(fù)執(zhí)行抽象、算法步驟n次;③重復(fù)執(zhí)行輸出*號(hào)m次不換行;④換行。
泛化——如果將本題進(jìn)行變換,輸出其他的圖形或者數(shù)字,上述思想同樣適用。因此,我們可以將問(wèn)題進(jìn)行抽象,用于解決輸出相同形狀的符號(hào)矩形問(wèn)題。
評(píng)估——上述算法可以簡(jiǎn)潔有效地解決輸出*號(hào)矩形的問(wèn)題,并且有很強(qiáng)的復(fù)用性,類似輸出字符圖形的問(wèn)題都可以用此模板來(lái)解決。
在完成任務(wù)一的基礎(chǔ)上,將任務(wù)一進(jìn)行變換,實(shí)現(xiàn)輸出圖1所示的*號(hào)直角三角形。學(xué)生仍然運(yùn)用計(jì)算思維框架來(lái)分析完成。在課堂實(shí)施過(guò)程中,學(xué)生快速地完成了模式識(shí)別這一步驟。在分解這一步驟,由于每行做的事情仍然是重復(fù)輸出一個(gè)*號(hào),不同點(diǎn)在于每行輸出的*號(hào)個(gè)數(shù)不同,因此重復(fù)次數(shù)不同。引導(dǎo)學(xué)生觀察每行*號(hào)個(gè)數(shù)的出現(xiàn)規(guī)律,第一行1個(gè)*號(hào),第二行2個(gè)*號(hào)……第五行5個(gè)*號(hào),可以得出結(jié)論每行的*號(hào)數(shù)與行數(shù)相同,因此抽象出每行*號(hào)重復(fù)次數(shù)與行數(shù)相等。基于上述分析,學(xué)生很容易地完成了算法過(guò)程,并能快速編程實(shí)現(xiàn)。
進(jìn)一步給出輸出圖1所示*號(hào)平行四邊形的任務(wù)。平行四邊形和前面圖形的區(qū)別在于需要在輸出*號(hào)前輸出空格,因此存在相同的模式即每行先輸出空格再輸出*號(hào)。在分解階段,將每行輸出內(nèi)容分解為先輸出空格不換行,重復(fù)若干次,再輸出*號(hào)不換行,重復(fù)5次。學(xué)生觀察空格規(guī)律得出每行輸出的空格數(shù)為行數(shù)減一。基于以上分析,問(wèn)題可以抽象為輸出一個(gè)空格不換行,重復(fù)次數(shù)為行數(shù)減一次,緊接著輸出一個(gè)*號(hào)不換行,重復(fù)5次。將上面的操作重復(fù)行數(shù)次即可實(shí)現(xiàn)輸出*號(hào)平行四邊形。

圖1
經(jīng)過(guò)運(yùn)用計(jì)算思維框架完成三個(gè)圖形的輸出任務(wù)后,學(xué)生對(duì)計(jì)算思維的一系列思維活動(dòng)有了清晰的認(rèn)知,能夠較為熟練地運(yùn)用計(jì)算思維框架去思考并解決問(wèn)題。因此在課程最后,拋出一個(gè)與前面的任務(wù)有關(guān)聯(lián)但是有難度跨度的問(wèn)題,即編程輸出如下頁(yè)圖3所示的乘法口訣表。

圖3
輸出九九乘法表的計(jì)算思維過(guò)程如下。
模式識(shí)別——此圖存在重復(fù)的模式,每行輸出和行數(shù)相同個(gè)數(shù)的等式。每行中等式的第一個(gè)乘數(shù)是遞增的,第二個(gè)乘數(shù)相同。
分解——具體分析每一個(gè)等式,可以分解為先輸出第一個(gè)乘數(shù),輸出x號(hào),輸出第二個(gè)乘數(shù),輸出等號(hào),最后輸出兩個(gè)數(shù)的乘積。
抽象——觀察可得,每一行等式的第一個(gè)乘數(shù)從1變化到行數(shù)n,第二個(gè)乘數(shù)和行數(shù)n相等。因此問(wèn)題可抽象為:①每行輸出行數(shù)個(gè)等式;②每個(gè)等式表示為i*j=res,其中i表示當(dāng)前行的第幾個(gè)等式,j表示當(dāng)前的行數(shù),res表示i乘以j的乘積。
算法——基于上述的分析,可得出算法如下:①重復(fù)執(zhí)行步驟[2]9次;②重復(fù)執(zhí)行抽象步驟j次(j∈(1,9));③輸出i*j=res,輸出空格不換行(i∈(1,j));④換行。
泛化——如果將本題進(jìn)行變換,輸出有規(guī)律變化的式子,上述思想同樣適用。因此,我們可以將問(wèn)題進(jìn)行抽象,用于解決有規(guī)律變化的式子輸出問(wèn)題。
評(píng)估——上述算法可以簡(jiǎn)潔高效地解決輸出乘法表的問(wèn)題,并且有很強(qiáng)的復(fù)用性,類似輸出有規(guī)律變化的式子問(wèn)題都可以用此模板來(lái)解決。
在實(shí)際課堂實(shí)施中,筆者選取四個(gè)班級(jí),將本文中的教學(xué)任務(wù)按照傳統(tǒng)教學(xué)模式和基于計(jì)算思維框架的教學(xué)模式兩種方式展開(kāi)對(duì)比教學(xué)實(shí)驗(yàn)。傳統(tǒng)教學(xué)模式指按照常規(guī)的教學(xué)方法即老師講解解題思路,學(xué)生編程實(shí)現(xiàn);基于計(jì)算思維框架的教學(xué)模式在課堂中要求學(xué)生首先按照計(jì)算思維的六個(gè)步驟進(jìn)行思考,完成思維活動(dòng)后再編程實(shí)現(xiàn)。A1、A2兩個(gè)班級(jí)運(yùn)用傳統(tǒng)教學(xué)模式完成教學(xué),B1、B2兩個(gè)班級(jí)運(yùn)用基于計(jì)算思維框架的教學(xué)模式展開(kāi)。對(duì)比兩種教學(xué)模式在教學(xué)過(guò)程中學(xué)生對(duì)四個(gè)任務(wù)(輸出星號(hào)矩形T1、星號(hào)三角形T2、星號(hào)平行四邊形T3、乘法表T4)的初始完成率c_1和最終完成率c_2。其中,初始完成率c_1是指教師沒(méi)有講解題目前學(xué)生獨(dú)立思考編寫的程序能夠通過(guò)OJ系統(tǒng)評(píng)測(cè)的占所有學(xué)生的比值;最終完成率c_2是指在傳統(tǒng)教學(xué)模式下教師講解解題思路后學(xué)生的題目提交通過(guò)率和基于計(jì)算思維框架教學(xué)模式下教師帶領(lǐng)學(xué)生按照計(jì);算思維框架的六個(gè)步驟完成思維活動(dòng)后,學(xué)生的題目提交通過(guò)率。
在實(shí)驗(yàn)結(jié)束后,筆者根據(jù)學(xué)生的初始完成率c_1和最終完成率c_2統(tǒng)計(jì)數(shù)據(jù)分析得出:對(duì)于T1和T2兩道題,在傳統(tǒng)教學(xué)模式下學(xué)生的題目初始完成率和基于計(jì)算思維框架的教學(xué)模式?jīng)]有明顯的差別,而T3和T4兩道題,使用基于計(jì)算思維框架的教學(xué)模式的初始完成率要高于傳統(tǒng)教學(xué)模式。分析其原因在于,T1是本堂課的第一個(gè)任務(wù),在教師沒(méi)有講解之前,初始完成率是四個(gè)班級(jí)學(xué)生的真實(shí)水平的反映,而T2作為第二個(gè)任務(wù),學(xué)生對(duì)計(jì)算思維框架理解還不夠透徹,因此計(jì)算思維框架對(duì)其思維活動(dòng)的幫助還沒(méi)有顯現(xiàn)。隨著學(xué)生對(duì)計(jì)算思維框架的不斷熟悉,對(duì)計(jì)算思維框架的一系列思維活動(dòng)的深入理解,學(xué)生在完成T3和T4兩道題時(shí),已經(jīng)可以很好地應(yīng)用計(jì)算思維框架幫助自己一步步分析問(wèn)題,根據(jù)計(jì)算思維的一系列思維活動(dòng)將復(fù)雜問(wèn)題分解為可以具體化的小問(wèn)題,從而編程實(shí)現(xiàn)。
通過(guò)以上分析可以看出,學(xué)生運(yùn)用計(jì)算思維框架的六個(gè)步驟來(lái)思考問(wèn)題,能夠幫助他們將遇到的復(fù)雜問(wèn)題分析簡(jiǎn)化成更容易解決的小問(wèn)題,從而完成對(duì)問(wèn)題的求解。在信息技術(shù)編程課堂上通過(guò)具體化的思維活動(dòng)來(lái)培養(yǎng)學(xué)生的計(jì)算思維,可以幫助學(xué)生養(yǎng)成自主思考、嘗試多角度解決復(fù)雜問(wèn)題甚至提出新問(wèn)題的能力。