陳文勤
摘 要:算法與程序設(shè)計(jì)的學(xué)習(xí)有助于培養(yǎng)高中生計(jì)算思維,在開展此模塊教學(xué)中需要教師結(jié)合學(xué)生生活實(shí)際,創(chuàng)設(shè)問題情境,激發(fā)學(xué)生學(xué)習(xí)熱情,給予他們求同存異的空間,允許他們“犯錯(cuò)”,從而達(dá)到培養(yǎng)學(xué)生計(jì)算思維的目的。
關(guān)鍵詞:計(jì)算思維;算法與程序設(shè)計(jì);教學(xué)微探
在新一輪的課程改革中,首次將學(xué)科核心素養(yǎng)納入教學(xué)的各個(gè)環(huán)節(jié)中。高中信息科技學(xué)科素養(yǎng)包括了信息意識、計(jì)算思維、數(shù)字化學(xué)習(xí)與創(chuàng)新和信息社會責(zé)任。核心素養(yǎng)中強(qiáng)調(diào)了計(jì)算思維,既要求教師培養(yǎng)學(xué)生在信息化環(huán)境下發(fā)現(xiàn)信息、使用信息的能力,也要求教師注重提升學(xué)生自動化、形式化、模塊化、系統(tǒng)化處理信息的能力。信息化社會中的學(xué)生應(yīng)當(dāng)具備一定的計(jì)算思維能力,這就要求信息科技學(xué)科教師在教學(xué)中重視對學(xué)生計(jì)算思維的培養(yǎng),而學(xué)習(xí)算法與程序設(shè)計(jì)恰好是實(shí)現(xiàn)計(jì)算思維提升的有效途徑。
一、對計(jì)算思維的理解
2006年3月,美國卡內(nèi)基·梅隆大學(xué)計(jì)算機(jī)科學(xué)系主任周以真(Jeannette M. Wing)教授在美國計(jì)算機(jī)權(quán)威期刊Communi-cations of the ACM雜志上給出并定義了計(jì)算思維(Computational Thinking)。周教授認(rèn)為:計(jì)算思維是運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問題求解、系統(tǒng)設(shè)計(jì)以及人類行為理解等涵蓋計(jì)算機(jī)科學(xué)之廣度的一系列思維活動。
從周教授提出的概念中,我們可以分析得到:對于高中階段的學(xué)生來說,具備計(jì)算思維的學(xué)生應(yīng)該在信息活動中采用計(jì)算機(jī)可以處理的方式界定問題、抽象特征、建立結(jié)構(gòu)模型、合理組織數(shù)據(jù);通過判斷、分析與綜合各種信息資源,運(yùn)用合理的算法形成解決問題方案;總結(jié)利用計(jì)算機(jī)解決問題的過程與方法,并遷移到與之相關(guān)的其他問題解決之中。
二、當(dāng)前高中生計(jì)算思維的現(xiàn)狀
高中階段是一個(gè)人思維轉(zhuǎn)變與提升的階段,從過去具體、形象、別人給予的接受思維逐步轉(zhuǎn)變?yōu)槌橄?、概括、自我提煉的思維能力,這一轉(zhuǎn)變在高中信息科技課程中尤為明顯。身處信息時(shí)代的學(xué)生知道很多、接觸很多,但缺乏的是組織、遷移、綜合運(yùn)用的能力。當(dāng)面對一個(gè)綜合性問題時(shí),如何用計(jì)算思維去尋找解決問題的步驟并加以實(shí)施、檢驗(yàn),如何用一種方法解決一類問題,是高中信息科技教學(xué)中需要達(dá)成的培養(yǎng)目標(biāo)。
學(xué)習(xí)算法與程序設(shè)計(jì)是培養(yǎng)學(xué)生計(jì)算思維的有效途徑之一。學(xué)生通過對算法與程序設(shè)計(jì)的學(xué)習(xí),能夠體驗(yàn)到解決問題的過程中包含了問題歸納、信息概括、數(shù)據(jù)抽象、思維邏輯,從而提升以“邏輯能力、算法能力、遞歸能力、抽象能力”為一體的計(jì)算思維。
然而,在實(shí)際教學(xué)中,學(xué)生對于學(xué)習(xí)算法與程序設(shè)計(jì)的目的并不明確,在學(xué)習(xí)算法一段時(shí)間后容易產(chǎn)生諸如“學(xué)習(xí)算法就是用計(jì)算機(jī)去計(jì)算數(shù)學(xué)問題、物理問題”“我不想做程序員,我為何要學(xué)習(xí)算法?”之類的困擾,這其實(shí)走入了一個(gè)學(xué)習(xí)誤區(qū),也是不利于學(xué)生計(jì)算思維能力的培養(yǎng)和提升的。
三、算法與程序設(shè)計(jì)教學(xué)中培養(yǎng)學(xué)生計(jì)算思維的思考與探索
計(jì)算思維是從機(jī)器計(jì)算的實(shí)現(xiàn)過程來理解、解釋信息處理問題的一般方法,幫助學(xué)生認(rèn)識到機(jī)器計(jì)算與人腦計(jì)算間的特點(diǎn)與差異。通過對算法和程序設(shè)計(jì)的學(xué)習(xí),學(xué)生可以提升分析問題、建立結(jié)構(gòu)模型、運(yùn)用合理的算法步驟去解決問題的能力,也能體驗(yàn)到如何使用計(jì)算思維去解決實(shí)際問題。
計(jì)算思維的培養(yǎng)不是一蹴而就的,單靠機(jī)械重復(fù)的訓(xùn)練也不可能達(dá)成,但是現(xiàn)階段,計(jì)算思維更多還停留在理念層面,能夠用以指導(dǎo)教師開展計(jì)算思維的教學(xué)策略還比較少。這就需要我們教師在教學(xué)設(shè)計(jì)中以使用計(jì)算思維分析處理問題為出發(fā)點(diǎn),通過情境創(chuàng)設(shè)、任務(wù)驅(qū)動激發(fā)學(xué)生對計(jì)算思維的興趣?;谶@樣的思考,在算法和程序設(shè)計(jì)模塊教學(xué)設(shè)計(jì)中,我更多地關(guān)注如何將學(xué)生現(xiàn)有的理解力、思維習(xí)慣和生活體驗(yàn)與我們的算法結(jié)合起來,在他們感興趣的問題中逐步深入培養(yǎng)他們的計(jì)算思維。
(一)貼近生活實(shí)際,創(chuàng)設(shè)學(xué)習(xí)情境
教師可以選擇貼近實(shí)際生活的案例,借用學(xué)生熟悉的或者感興趣的內(nèi)容來創(chuàng)設(shè)學(xué)習(xí)情境,從而引導(dǎo)學(xué)生運(yùn)用計(jì)算思維去尋找答案。例如,分支結(jié)構(gòu)是算法三大基本結(jié)構(gòu)之一。從分支結(jié)構(gòu)開始,對學(xué)生的邏輯判斷能力有了較高的要求。學(xué)生不僅需要合理、規(guī)范地運(yùn)用表達(dá)式描述判斷的情況,還需要分析判斷的結(jié)果(是與否)分別代表了什么;同時(shí),算法步驟的嚴(yán)密性也得以加強(qiáng),在設(shè)計(jì)相應(yīng)的算法時(shí)必須考慮“符合情況需要執(zhí)行哪些步驟,不符合情況需要執(zhí)行哪些步驟,退出分支后是否還有步驟”這幾個(gè)問題。只有對分支結(jié)構(gòu)理解透徹,才能有助于學(xué)生學(xué)會區(qū)分分支結(jié)構(gòu)與循環(huán)結(jié)構(gòu),為后續(xù)的學(xué)習(xí)打好基礎(chǔ)。
在本節(jié)課的一開始,我用《幸福拍手歌》導(dǎo)入取代了一開始構(gòu)思的探究海倫公式導(dǎo)入。用學(xué)生熟悉的歌詞引入分支結(jié)構(gòu)這個(gè)課題,讓他們能夠感受到原來生活中就充滿了計(jì)算思維。對學(xué)生來說,雖然之前沒有了解過什么是分支結(jié)構(gòu),但看到歌詞“如果……就……”他們馬上就能理解相關(guān)含義了。與此同時(shí),這首歌中還包含了單分支的思想,因此,我在導(dǎo)入單分支前讓學(xué)生用流程圖來描述其中一句歌詞“如果感到幸福你就拍拍手”,學(xué)生在設(shè)計(jì)N分支時(shí)會發(fā)現(xiàn)歌詞中沒有描述這根分支上的步驟,自然而然地就用單分支的形式進(jìn)行描述(見圖1)。在這個(gè)過程中,學(xué)生通過將歌詞抽象化,概括出了判斷表達(dá)式、Y分支步驟、退出分支后的步驟,即為信息概括→數(shù)據(jù)抽象→邏輯思維的體驗(yàn)過程。
(二)尊重思維差異,支撐個(gè)性學(xué)徑
學(xué)生會產(chǎn)生“程序員才需要學(xué)習(xí)算法”的誤解,一定程度上是因?yàn)槲覀冞^于關(guān)注學(xué)生是否能夠通過編寫程序來實(shí)現(xiàn)算法,并在相似的題目上進(jìn)行反復(fù)的訓(xùn)練。計(jì)算思維是一種循序漸進(jìn)的能力培養(yǎng),也體現(xiàn)出每個(gè)人是如何思考問題、解決問題的,因此我們要尊重學(xué)生思維的差異,即在算法與程序設(shè)計(jì)的教學(xué)中,我們應(yīng)當(dāng)更多地去關(guān)注學(xué)生是怎么思考的,去鼓勵(lì)學(xué)生之間的思維差異性,通過分析、比較算法的結(jié)構(gòu)與步驟內(nèi)容,從而感受學(xué)習(xí)算法與程序設(shè)計(jì)是對思維的訓(xùn)練。