許憬
計算思維,是現(xiàn)代人的基本能力,現(xiàn)代人賴以生存的世界就是建立在形形色色的、或顯或隱的計算之上??捎嬎闶怯嬎闼季S之基礎(chǔ)能力,它的培養(yǎng)體現(xiàn)在每項任務、每個作品、每個活動間,體現(xiàn)在更具體的算法程序、智能仿真、問題解決、作品設(shè)計和人類行為理解等不同學科領(lǐng)域里。只有可計算的問題才能構(gòu)建相應的計算模型,才能被語言描述、被計算機精確地符號化表達。
可計算能力與計算化過程
所謂可計算能力,就是能將復雜問題的分析與問題解決的步驟分解,細化至每一個明確、可控、可實現(xiàn)、可操作、可處理的步驟,即實現(xiàn)精確計算,甚至可以實現(xiàn)計算機精確模擬和全程自動化目標的能力。計算機問題解決中的可計算能力包括了對問題的精細分析、對過程(解題方法)的精確描述和對結(jié)果的精準預測。計算機問題解決中所指的可計算就是要求算法(廣義)的每一步都必須是清晰的、確定的、有結(jié)果指向的。從原理上講,可計算問題的解決過程與程序設(shè)計中算法的基本特征高度吻合,都具有確切性、有窮性、唯一性和可行性。
完整問題的計算化過程包含了三步漸進式的操作。一是問題的指令化,即將問題分解成可操作、可處理的指令集合(碎片化)。二是指令的序列化,將散亂的指令集通過一定形式的排列形成有意義的指令序列組合(程序)。三是序列的最優(yōu)化,通過一定的優(yōu)化策略(方法的篩選與步驟的優(yōu)化)形成有效率的指令組合。
可計算能力的培養(yǎng)策略
在信息技術(shù)課堂現(xiàn)場,長期進行可計算能力的訓練和培養(yǎng),必將使學科思考更有序、問題解決更高效。
(1)實踐模擬。模擬法是實現(xiàn)問題解決的有效方法,模擬法用實踐體驗的方式,讓孩子理解計算的每一步,模擬的方式可以是用腳走一遍、用手劃一遍、用筆畫一遍等。
(2)自然語言描述。這是計算素養(yǎng)培養(yǎng)中不可或缺的一個環(huán)節(jié)。我們要重視討論、交流與匯報,自然描述問題解決的算法過程就是一個思維的整理過程,也是一個暴露思維漏洞的過程,是一個精確化、條理化、完善化的過程。
(3)圖表呈現(xiàn)。計算過程需要形式化的符號圖形支撐,圖表便是一種。我們可以采用電子表格等方式表達信息問題的狀態(tài)和結(jié)構(gòu),描述靜態(tài)數(shù)據(jù)的二維邏輯關(guān)系,我們可以采用手繪圖形等可視化方式表示問題解決的進程和流程等。
(4)文字腳本。用文字表述的腳本是解決問題的“劇情”分解,是編寫一個給計算機照著做的文字說明。一份好的腳本,就像導演手中劇本,應包含角色與動作,要有明確的表達主題,要有創(chuàng)意的求解過程,要有可行的技術(shù)指令。讓學生嘗試撰寫自己的腳本,以細節(jié)描述為主,越清晰越易使計算機實現(xiàn)問題解決。
(5)畫流程圖。流程圖是表達計算過程的極好方式,它形象直觀、簡潔扼要,能動態(tài)表達流向。畫流程圖是算法實現(xiàn)過程的預演,用框圖可以把解決問題的思路、數(shù)據(jù)處理的過程、程序執(zhí)行的步驟清晰地用圖形的方式表示出來。
信息技術(shù)模塊學習中可計算能力培養(yǎng)案例
1.算法模塊中可計算能力的培養(yǎng)
案例1:高中“數(shù)組操作——數(shù)據(jù)插入”
課上教師設(shè)問,我們?nèi)绾螌⒁粋€任意的整數(shù)X插入到升序數(shù)組A中?
學生的回答可能不是很完善,教師要提示引導,讓學生的表述準確:第一步,先找到X在數(shù)組A中的位置P;第二步,再將P位后的數(shù)據(jù)逐次后移;第三步,將X賦到數(shù)組中。
教師繼續(xù)追問,怎樣才能準確找到X在數(shù)組A中的合適插入位置,且保持升序不變呢?
學生間充分討論得出結(jié)論:對數(shù)組A的數(shù)據(jù)進行從頭到尾的掃描,尋找到第一個比X大的數(shù)據(jù)。
教師接著追問,怎樣準確描述P位后的數(shù)據(jù)往后移?
學生可能會回答,將P位后數(shù)據(jù)元素逐次向后移一位,也有學生質(zhì)疑會覆蓋上相同數(shù)。
教師可提示用語句實現(xiàn)批量的后移賦值過程。最后可請學生再完整描述一下數(shù)組插入新數(shù)的過程。
程序設(shè)計中算法的形成會經(jīng)歷一個從模糊到清晰的漸變過程,“說”則可以加速這個進程。案例中老師巧妙的3次細節(jié)追問逼迫學生精確思考,只有當學生用數(shù)學語言、口頭語言甚至是動作語言對解決問題的方法和步驟能詳盡描述,頭腦中的算法框架已然形成并逐步完善、清晰、具體化時,那么編程也就水到渠成了。
2.作品設(shè)計中可計算能力的培養(yǎng)
案例2:浙教版第三冊上“涂色”,基于計算能力的課例設(shè)計
油漆桶工具除了用作色塊涂色還能做什么?有位老師在課堂上嘗試運用涂色的技術(shù)在中國行政區(qū)域圖上證明四色定理。最初的地圖涂色,學生操作是無序的、思路是混亂的,然后讓學生用“搜索—回溯”法(讓每個省份遍歷紅黃藍綠4種方案,用“相鄰是否同色”條件決策涂色方案)進行理性地逐一操作,直至嘗試涂遍為止。
作品設(shè)計不是簡單的技術(shù)疊加,也應有思維的含量。本課例模擬了搜索算法的基本原理,讓孩子經(jīng)歷了“從無序操作到有序操作、從無序思考與有序思考、從無意學習到意義學習”的過程,體現(xiàn)了有序計算能力的培養(yǎng)。
3.問題解決中可計算能力的培養(yǎng)
案例3:浙教版第四冊第9課“綜合任務:身邊的學問”
身邊處處有學問,在信息技術(shù)課堂上研究和匯報身邊的學習內(nèi)容,我們應該怎樣展開研究呢?首先教師讓學生明確“身邊的學問”研究的主方向,如結(jié)合生活體驗,選取研究方向。有學生說星期天去農(nóng)村,發(fā)現(xiàn)河道中水葫蘆泛濫,致使河道淤塞,我們能不能研究水葫蘆“污染”?
教師肯定學生的提問,并引導學生回答要完成這個項目還需哪些必要的環(huán)節(jié)。如可以進行成果的匯報展示;可以制作演示文稿讓效果更直觀;要清晰化我們想研究內(nèi)容的線索;上網(wǎng)搜索大量相關(guān)水葫蘆的資料。
教師根據(jù)學生的隨意描述,用板貼把問題解決的五環(huán)節(jié)在黑板上“零亂”地羅列,并提問思考問題的解決過程,根據(jù)需要,我們應該怎樣有效編排這5項看似孤立的研究過程?
然后師生共同整理“五環(huán)節(jié)”板貼,使之變成有意義的、指向問題解決的一般算法流程:提出研究主題——確定研究線索——網(wǎng)上收集資料——制作演示文稿——展示研究成果。
教師進一步提問,我們可以具體研究關(guān)于水葫蘆的哪些方面的學問?學生紛紛提出問題:水葫蘆是外來生物嗎?水葫蘆是什么樣的植物?水葫蘆的生長習性?水葫蘆有哪些危害?沒有土壤的水葫蘆是怎樣生存的?水葫蘆怎樣防治?水葫蘆有天敵嗎… …
問題很多,但有些跟研究方向無關(guān),有些是同一范疇的問題。師生共同將這些問題概括為與水葫蘆相關(guān)的3個核心問題:水葫蘆是什么?水葫蘆的危害?水葫蘆的防治?讓研究聚集于關(guān)鍵性項目。
將學生分成幾個研究小組,并讓學生討論怎樣科學安排這些任務可讓我們的研究過程更高效。
如有的小組就說,我們小組四人打算這樣分工協(xié)作:1人研究水葫蘆是什么,1人研究水葫蘆危害,1人研究水葫蘆防治,三個人負責上網(wǎng)搜集資料并分類保存于指定文件夾內(nèi),由第4人負責匯總篩選與PPT制作。
教材是依據(jù)“提出研究主題——確定研究線索——網(wǎng)上收集資料——制作演示文稿——展示研究成果”這樣的邏輯順序編寫的,如果按這樣的標準次序教學,環(huán)節(jié)規(guī)整、問題良構(gòu)、過程高效,但并不符合孩子思維的規(guī)律,也缺乏學習的意義建構(gòu)。我認為,教學的實施結(jié)構(gòu)與教材的邏輯結(jié)構(gòu)是兩種不同的框架體系,我們可以改變教材的順序,讓孩子經(jīng)歷“問題的指令化、指令的有序化、有序中的優(yōu)化”的算法式學習過程,培養(yǎng)學生問題解決中的可計算能力。由此,案例也給我們提出一個有關(guān)計算的全新課題:能否將抽象的概念性知識、綜合性問題分解成可觀察和可測量的具體操作?
計算機科學中的計算能力更多地體現(xiàn)在問題解決過程中方法的細化與分解上,如同程序設(shè)計可以把數(shù)學問題的求解過程歸結(jié)于程序語言的幾條基本語句,歸結(jié)于一些極其簡單的機器操作命令一樣,所有的復雜問題都可轉(zhuǎn)化成可處理的基本指令、基本問題或基本算法。拓展到人類生活,如果問題可計算,它的求解過程一定也都可以歸結(jié)于若干條最基礎(chǔ)的、最簡單的指令或操作或規(guī)則或行為上,從理論上講,可計算的問題一定可以被計算機模擬或?qū)崿F(xiàn)。
作者單位:浙江余姚市蘭江小學