

● 問題:算法的行為主體是人還是計算機
計算思維的思維主體是人而不是計算機,這一觀點沒有異議。至目前為止,計算機并沒有意識,也不會思維,計算機的自動化行為都是由人預先以命令序列形式加載所形成的。作為一個具備計算思維的人,習慣于站在計算機自動執行的角度,理解計算機的行為和輸出。
筆者考察了一堂教授算法的課,這堂課的教學目標是通過實例分析認識循環結構。教師這樣設計:新冠疫情期間,入境人員需要14天的居家隔離;教師繪制了如圖1所示的流程圖,用以描述居家隔離規則,即每隔離一天計數器加1,居家隔離滿14天,計算機輸出“解除隔離”。教師展示與分析了反復執行“居家隔離”的循環操作過程,并得到了有關循環的一般化結構。
算法源于生活,又高于生活。生活算法,就是按時間的維度,把生活中解決問題的方法與步驟看成是一個個操作,那么針對解決生活問題的方法而形成的行動規則,就可以看成是算法。教師將生活實例用算法來描述,可以使學生有親切感,容易產生興趣,有助于學生更好地學習算法。然而,分析算法的行為主體,就會發現,上例中教師描述的算法存在明顯的缺陷,算法中執行“居家隔離”的行為者肯定是人而不是計算機,而輸出“解除隔離”的行為者則是計算機而不是人。一個算法執行流程中,存在著兩個行為主體。
造成這樣的原因在于,教師習慣于將自己已經形成的固有的循環結構形式傳授給學生,而沒有站在算法執行的行為主體角度思考如何用循環的方法來解決問題。也就是說,教師關注的重點是學生是否記憶循環結構的流程圖表示形式,而不是作為行為主體對循環結構的正確運用。
運用生活算法,學生可以從日常生活中體驗算法以及算法解決問題的過程,克服計算機算法的抽象與執行過程不可以見的困難,理解算法,同時發展思維。但是,通俗化的生活算法仍然需要符合算法的可行性特征。生活算法中的行為主體是人,該“人”可以按算法規定的操作步驟執行,而為計算機設計的算法,算法的執行主體是計算機。在一個算法給定的執行流程中,部分執行的行為主體是“人”,部分執行的行為主體是計算機,這樣的行為主體變更,會引起學習者思維的混亂。
● 分析:信息處理的計算機學科視角
在現有的信息技術課程中,信息處理主體是多元的。人是信息處理的主體,計算機也是信息處理的主體。在實際教學中,信息處理主體往往是被模糊化的。下例是教師安排學生的一項學習內容,要求列舉生活中的一個信息處理設備,描述其處理信息的過程,將其填寫在如圖2所示的最后一行中。
該學習材料提供了以地鐵閘機和計算器為樣例的信息處理過程分析,引導學生舉例并模仿分析,促進學生思考并理解信息處理一般過程由輸入、處理、輸出三個階段組成。學習情境來源于生活,學習支架幫助學生思考,教學設計符合學生的學習規律。然而,分析信息處理的行為主體就會發現,該學習材料存在同樣的缺陷。其中,信息處理步驟1的行為主體是人,如在地鐵閘機處“刷交通卡”;而步驟2和步驟3中的行為主體都是設備,如地鐵閘機進行費用計算和打開閘門動作等行為。作為認知主體的學生,能夠基于生活經驗知道信息處理的三個階段,但是難以建立起清晰的思維方式以計算機學科視角來正確理解信息處理過程。
人、信息以及以計算機為代表的信息處理工具都是信息技術課程所關注的要素,這三者的關系是:人處理信息,人運用計算機處理信息以及計算機處理信息。長期以來,信息技術課程一直關注人是如何處理信息的,以及人是如何利用計算機處理信息的。計算機技術日新月異的發展既是信息技術課程的困惑,也是課程發展的動力。作為人處理信息的一般方法一直是課程穩定而核心的學習內容,至于計算機如何處理信息則是計算機科學重點關注的內容。
分析信息技術課程中人與計算機的關系可以發現,人是課程的中心,如何使用計算機解決問題是課程的主要學習內容。因此,如何使用一系列的應用軟件來設計某個應用的解決方案、如何選擇合適的軟硬件以及正確評估軟硬件都是信息技術課程的學習內容。作為計算機科學,計算是計算機學科的中心,可計算問題是學科的基本問題,計算機系統如何工作是學科關注的重點。面對一個現實問題,現有的軟件硬件無法解決,則需要從計算機學科出發,考慮通過編寫新的軟件、設計新的硬件、開發新系統來實現。
因此,信息處理中的計算機,本質上是進行數據處理。狹義地說,所謂的處理即是“計算”,處理的對象是數據,待加工的信息是需要用數據表征以后,才能由計算機加工處理。作為計算機學科知識的學習者,通過計算機原理的學習,可以認知計算機并制造計算機的相關產品,包括開發計算機軟件和硬件。同時,通過“計算”這一面“鏡子”,學習者可以以一種新的方式理解客觀世界,形成一種新的思維方式。這也就是計算思維教育的意義所在。
● 置換:認知主體的思維客體化
在人與信息的關系中,人是處理信息的行為主體,人可以直接處理信息,也可以借助工具處理信息。在計算機與信息的關系中,計算機作為數據處理工具,是信息處理的行為主體。計算機的信息處理行為是由人預設的。一般而言,能夠預設計算機信息處理行為的人是具備計算思維的,人是計算思維的思維主體。在計算思維教育中,當計算思維成為一項學習內容時,學習者就是計算思維的認知主體。發展認知主體的思維,是計算思維教育的目標。
因此,開展計算思維教育需要明晰:思維的主體是人即學習者,思維的客體是計算機。這里的計算機,不是指具體的一臺計算機,而是具備預設并自動地實現信息處理功能的行為主體。學習者作為思維主體需要考慮如何使用計算機這一信息處理工具處理信息,同時也需要角色轉換,即假設學習者“我”是計算機,即站在計算機這一思維客體也是信息處理的行為主體角度思考計算機是如何運用計算機學科思想方法處理數據的。這種角色轉換,就是思維客體化。
在教學實踐中,認知主體的思維客體化,可以幫助學生清晰思維起點和思維路徑,有利于學生分析問題和發展思維。例如,在關于Excel公式使用的教學實施中,學生往往會混淆數學公式和Excel公式的表示方式,以及在實際使用Excel公式時常常遺忘輸入“等于號”“回車鍵”等關鍵操作步驟。為了幫助學生了解Excel公式要點,牢記選擇單元格、輸入等于號、輸入公式和輸入回車這四個步驟,教師會安排學生討論數學公式表示與Excel軟件公式表示的異同,并且用“等公車”這樣的諧音來對應操作的四個步驟,幫助學生記憶。“等公車”諧音的運用,教學效果明顯,解決了教學難點,但這樣的教學技巧的運用,其出發點依然是機械記憶,對發展學生思維幫助不大。如果轉換一下思考的立場,要求學生站在計算機的角度對Excel公式輸入提出要求:因為Excel軟件單元格只能線性地顯示數據,所以普通公式中的分數需要用除法形式表示;受現有鍵盤的限制,“÷”需要用“/”鍵來代替;操作順序中首先選定單元格,是因為Excel軟件需要知道在什么位置執行公式計算;輸入“=”號,是因為要明確標識當前輸入的是公式從非普通字符串;最后輸入的“回車”是因為Excel軟件需要知道當前公式輸入是否結束。組織這樣的討論,可以養成學生從計算機角度思考問題,在大腦中形成計算機處理數據的思維過程,通過理解來達到記憶的目的。
● 思考:從計算機學科出發理解計算思維
計算思維是一種計算機學科思維,計算思維是計算機的數據處理過程在人腦中的再現。同樣的事物,不同學科考察的視角是不一樣的。例如,對于電子地圖,從人使用信息技術工具的角度出發,學習者的認知目標是了解電子地圖的功能,熟練使用電子地圖選擇合適的出行方案。當角色轉換以后,從計算機學科出發,關注的重點是電子地圖如何實現處理數據功能,以滿足人們使用的需要。因此,認知主體的思維客體化,可以幫助學生理解計算思維。
基于計算思維教育,有必要使學生認識到目前信息技術課程所涉及的信息處理設備,都是以計算機原理為核心實現數據處理。計算思維對應的學科思想方法,主要是以圖靈機為起點的可計算理論,隨意擴大計算思維的學科思想,將信息概念相關理論和計算機操作技能包括其中,會模糊計算思維的認知起點和思維路徑。
角色置換,即思維客體化,是一種思考問題的方式,不僅適用于計算思維,更具有普遍的教育價值。在計算思維教育中,除了思維角色置換,還需要角色的行為推演,在人腦中經歷自動化的過程。在大眾的心目中,計算機是最“聰明”的裝置,而具備計算思維的人,一定能清醒地認識到計算機是最“笨”的,只有人為安排了所有的行為細節,計算機才能作為行為主體自動地處理數據。
參考文獻:
[1]王榮良.信息科學學科的基本框架與信息技術課程的內容層次結構[J].中國教育技術裝備,2013(03):16-18.
[2]王榮良.計算思維教育[M].上海:上海科技教育出版社,2014.