陳智敏 黃細(xì)光
摘要:本文以“數(shù)字三角形”一題為例,通過在教學(xué)實(shí)踐中不斷地提出問題并適時(shí)點(diǎn)撥,從深度優(yōu)先搜索到動(dòng)態(tài)規(guī)劃,引導(dǎo)學(xué)生在原有算法的基礎(chǔ)上不斷完善優(yōu)化,從而發(fā)展主動(dòng)思維、發(fā)散思維、求異思維、逆向思維等,形成科學(xué)穩(wěn)定的知識(shí)邏輯結(jié)構(gòu),并最終培養(yǎng)創(chuàng)新思維。
關(guān)鍵詞:拔尖創(chuàng)新人才;創(chuàng)新思維;信息學(xué)教學(xué);數(shù)字三角形
中圖分類號(hào):G434 ?文獻(xiàn)標(biāo)識(shí)碼:A ?論文編號(hào):1674-2117(2021)07-0043-03
相對(duì)于基本的邏輯思維而言,創(chuàng)新思維是一種高階思維,是一種主動(dòng)發(fā)現(xiàn)問題、提出見解并積極探索的思維。在各種思維方式中,主動(dòng)思維、發(fā)散思維、求異思維、逆向思維是創(chuàng)新性思維結(jié)構(gòu)的重要組成要素[1],創(chuàng)新思維就是主動(dòng)對(duì)聚合和發(fā)散思維、求同和求異思維、正向和逆向思維等的交互運(yùn)用。[2]因此,筆者以“數(shù)字三角形”一題為例探討如何在信息學(xué)教學(xué)中通過引導(dǎo)學(xué)生在原有的基礎(chǔ)上更好地完善算法的方式,發(fā)展主動(dòng)思維、發(fā)散思維、求異思維、逆向思維等,最終培養(yǎng)學(xué)生的創(chuàng)新思維。[3]
創(chuàng)新思維培養(yǎng)的教學(xué)實(shí)踐
創(chuàng)新源于對(duì)問題的解決,信息學(xué)教學(xué)中的創(chuàng)新思維培養(yǎng)離不開“一題多解”的問題情境。“數(shù)字三角形”一題的問題描述為:在一個(gè)數(shù)字三角形中,從三角形的頂部到底部有很多條不同的路徑。對(duì)于每條路徑,把路徑上面的數(shù)(每個(gè)數(shù)不超過100)加起來可以得到一個(gè)和,請(qǐng)找到最大的和。注意:路徑上的每一步只能從一個(gè)數(shù)走到下一層中和它最近的左邊的那個(gè)數(shù)或者右邊的那個(gè)數(shù),行數(shù)不超過100,程序運(yùn)行時(shí)間限制為1秒。
1.主動(dòng)思維的培養(yǎng)
一題多解的問題情境有助于激發(fā)學(xué)生的主動(dòng)思維,讓學(xué)生想探究、能探究。結(jié)合之前的基礎(chǔ)算法知識(shí),包括遞歸與遞推算法、深度優(yōu)先及廣度優(yōu)先搜索算法等內(nèi)容的學(xué)習(xí),再通過對(duì)問題的需求情況及已知條件的分析,學(xué)生們很快都提出了算法1,即采用常見的深搜算法定義一個(gè)函數(shù)dfs(int x,int y,int sum),表示從上往下,搜索到第x行、第y列時(shí)得到和sum,每搜索一層則加上當(dāng)前位置上的數(shù)a[x][y],當(dāng)搜索到最后一行,采用打擂臺(tái)的方式存儲(chǔ)最大值到ans中,否則繼續(xù)遞歸到正下方或者右下,即dfs(x+1,y,sum)與dfs(x+1,y+1,sum)。主程序中調(diào)用dfs(1,1,0),最后直接輸出ans即可。算法1的核心參考程序如下頁圖1所示。
2.求異思維的培養(yǎng)
在信息學(xué)教學(xué)中,講題等交流討論活動(dòng)能夠充分調(diào)動(dòng)學(xué)生學(xué)習(xí)的主觀能動(dòng)性,使其思維處于一種興奮的狀態(tài)。[4]通過鼓勵(lì)學(xué)生講述不同的思路,會(huì)有部分學(xué)生突破常規(guī)思維,產(chǎn)生新思路,他們?cè)诓粠?shù)sum的情況下,定義了一個(gè)函數(shù)opt(int x,int y),表示從上往下,搜索到第x行、第y列所能夠得到的最大和,直接遞歸求解,由下至上直到a[1][1],主程序中調(diào)用opt(1,1)并輸出結(jié)果。因此,算法1可采用描述式的寫法表示為圖2所示的樣子。
但是,算法2和算法1在效率上沒有區(qū)別,由于搜索的數(shù)據(jù)過多導(dǎo)致用時(shí)過長(zhǎng),時(shí)間超限。那么,怎么改進(jìn)算法才能在時(shí)間限制范圍內(nèi)通過更多的數(shù)據(jù)?疑問是激發(fā)學(xué)生發(fā)散思維的源泉,因此,筆者設(shè)立數(shù)據(jù)范圍這一障礙激發(fā)學(xué)生疑問,以疑問引發(fā)思考。
3.發(fā)散思維的培養(yǎng)
在討論原有算法的可行性與不足之處的基礎(chǔ)上,加上適當(dāng)?shù)狞c(diǎn)撥,學(xué)生通過發(fā)散思維,對(duì)之前所學(xué)過的知識(shí)進(jìn)行重新組合、分析并變通,找出新的問題解決方案。例如,有學(xué)生提到,opt(x,y)表示一種狀態(tài),“opt(x,y)=a[x][y]+max(opt(x+1,y),opt(x+1,y+1))”是狀態(tài)之間的轉(zhuǎn)移方式,但是每個(gè)狀態(tài)opt(x,y)會(huì)被調(diào)用多次,即出現(xiàn)冗余計(jì)算。而使用標(biāo)記數(shù)組,將與狀態(tài)有關(guān)且有用的信息記錄下來,然后再對(duì)后面的狀態(tài)進(jìn)行搜索,當(dāng)狀態(tài)已經(jīng)搜索過,則可以直接調(diào)用信息,從而減少冗余計(jì)算。這就是記憶化搜索,因此可以將opt(x,y)狀態(tài)的值“a[x][y] + max(opt(x+1,y),opt(x+1,y+1))”存儲(chǔ)到數(shù)組f[x][y]中,算法2可進(jìn)一步表示為如下頁圖3所示的樣子。
那么,是否可以采用遞推方式的做法?遞推算法的基本思想是使用已有的信息推知新的信息,與遞歸的過程恰恰相反。追問可以加快思維節(jié)奏,促成學(xué)習(xí)發(fā)生。聚焦于問題的解決,通過進(jìn)一步的討論與交流,學(xué)生發(fā)現(xiàn)可以采用遞推的方法逐步推進(jìn),由下往上,求解每個(gè)階段每個(gè)狀態(tài)的最優(yōu)解,算法3可以進(jìn)一步改寫為如下頁圖4所示的樣子。
4.逆向思維的培養(yǎng)
很多時(shí)候,學(xué)生在學(xué)習(xí)的過程中容易形成思維定勢(shì),所以,為了提高思維的靈活性,信息學(xué)教學(xué)中需要經(jīng)常反其道而行之,破除正向思維定勢(shì)的束縛。針對(duì)以上問題,也可以設(shè)f[i][j]為從起點(diǎn)到達(dá)i行j列處所能得到的最優(yōu)答案,則轉(zhuǎn)移方程也可改寫為f[i][j]=max(f[i-1][j-1],f[i-1][j])+a[i][j],即當(dāng)前最優(yōu)答案為上一層能轉(zhuǎn)移到此位置的兩個(gè)位置的最優(yōu)答案加上當(dāng)前數(shù)字。
5.聚合思維的培養(yǎng)
聚合思維主要體現(xiàn)為思維的深度,任何領(lǐng)域的創(chuàng)新,都必須先對(duì)該領(lǐng)域已有的知識(shí)和經(jīng)驗(yàn)進(jìn)行深入的了解。上述過程中,通過組織學(xué)生交流與討論,學(xué)生認(rèn)識(shí)到了算法之間時(shí)間效率的差異性,并通過深度搜索到動(dòng)態(tài)規(guī)劃的演化,對(duì)“分階段性求問題的最優(yōu)解”“設(shè)置狀態(tài)轉(zhuǎn)移簡(jiǎn)化問題”“采用遞推的方法逐步推進(jìn)達(dá)到總問題最優(yōu)解”等概念有了初步的認(rèn)識(shí),教師就此直接對(duì)動(dòng)態(tài)規(guī)劃算法的思想及簡(jiǎn)單應(yīng)用進(jìn)行更為詳細(xì)的講解,包括“如何分析問題劃分階段”“如何設(shè)置狀態(tài)推導(dǎo)轉(zhuǎn)移方程”等,以加深對(duì)知識(shí)的理解,并通過一系列的題目促進(jìn)學(xué)生對(duì)知識(shí)的鞏固及運(yùn)用。
總結(jié)
筆者通過“數(shù)字三角形”一題,循序漸進(jìn),不斷地提出問題,引導(dǎo)學(xué)生有序分析與思考問題,加強(qiáng)對(duì)問題及教學(xué)內(nèi)容的思考,養(yǎng)成主動(dòng)思維的習(xí)慣[5];不斷追問點(diǎn)撥,從深度優(yōu)先搜索到動(dòng)態(tài)規(guī)劃,促使學(xué)生在原有算法的基礎(chǔ)上不斷完善優(yōu)化,發(fā)展主動(dòng)思維、發(fā)散思維、求異思維、逆向思維等,形成科學(xué)穩(wěn)定的知識(shí)邏輯結(jié)構(gòu)[6],并最終培養(yǎng)創(chuàng)新思維。該實(shí)踐避免了以標(biāo)準(zhǔn)程序局限學(xué)生的創(chuàng)新思維,全面提升了學(xué)習(xí)品質(zhì)。[7]
參考文獻(xiàn):
[1]魏淑慧.研究式教學(xué)與學(xué)生創(chuàng)新思維能力的培養(yǎng)[J].山東師范大學(xué)學(xué)報(bào):人文社會(huì)科學(xué)版,2008(05):68-72.
[2]張義生.論創(chuàng)新思維的本質(zhì)[J].中共中央黨校學(xué)報(bào),2004(04):28-31.
[3]鐘良鋒.“以人為本”的信息學(xué)競(jìng)賽輔導(dǎo)教學(xué)[J].教育信息技術(shù),2014(09):32-34.
[4]祁進(jìn).中學(xué)生高階思維發(fā)展的PBL教學(xué)模式探索——以信息學(xué)奧賽輔導(dǎo)為例[J].中小學(xué)電教,2018(12):13-14.
[5]劉鳳蘭.基于學(xué)生思維發(fā)展的初中信息學(xué)課堂提問策略[J].中國(guó)教育技術(shù)裝備,2017(05):84-85.
[6]宋新波,陳智敏,黃細(xì)光.信息學(xué)課程教學(xué)中如何開展科學(xué)探究教育——以莫比烏斯反演問題為例[J].中國(guó)信息技術(shù)教育,2020(11):50-53.
[7]陳茂賢.學(xué)習(xí)品質(zhì)培養(yǎng)視角下信息學(xué)編程教育創(chuàng)新實(shí)施[J].中國(guó)信息技術(shù)教育,2019(07):42-44+67.
作者簡(jiǎn)介:陳智敏(1988—),男,廣東汕頭人,中學(xué)一級(jí)教師,碩士,中山紀(jì)念中學(xué)高中信息技術(shù)教師,主要從事學(xué)科教學(xué)設(shè)計(jì)與信息學(xué)競(jìng)賽教育研究。