謝曉 孟延豹



前言:
轉眼,“教學APP的學科運用”這個欄目設置已快一年了,雖然因被編輯們催稿而四處找人訪談,徹夜無眠,湊了那么幾篇文章,但現(xiàn)在反觀欄目,卻發(fā)現(xiàn)自己也有了隨著中國教育信息化發(fā)展的一點點痕跡。
最初,筆者的目光基本落在學科中能夠應用什么樣的APP;這些APP能夠替代以往教學過程中的哪些工具,帶來什么樣的提升,教師們如何應用這樣的APP,這樣的應用能夠給學科教學帶來什么樣的價值等問題上。
后來,筆者開始懷疑尋找替代品或功能效率提升點的方法,是不是應用教學APP融合教學應用最好的方法,也許我們的出發(fā)點就是有問題的。因此,筆者開始從課程建設角度出發(fā),考察課程平臺類APP在各種應用場景中的應用特性、策略以及方法。
在經(jīng)過了一系列的實驗后,筆者認為從某些方面驗證了一個假定,那就是如果要解決教學APP與學科教學深度融合的問題,必須是在信息技術條件的視角下,從課程建設的角度出發(fā),重構課程結構,重組課程流程,重新定義教學的各種場景。并在重新設計的過程中,在適當?shù)沫h(huán)節(jié)中應用適當?shù)慕虒WAPP,這樣才能做到真正的深度融合。
而看到謝曉老師的這篇文章后,筆者卻發(fā)現(xiàn),還是忽視了一個非常重要的問題,那就是,在考慮利用教學APP進行學科教學的時候,要有一個非常核心的關注點,即如何完成學科核心價值,以及對學生學科核心素養(yǎng)的培養(yǎng)。
本文中,謝曉老師從計算思維角度出發(fā),充分闡釋了建設一門新型信息技術課程的思考過程。這個思考的過程和結論都是很有價值的,值得我們深思。
從一個Scratch教學案例說起
筆者剛剛接觸Scratch時,用了一個下午的時間在官網(wǎng)上走馬觀花地轉了一圈,然后參考案例試編了幾個程序。對Scratch的最初印象是沒有語法障礙,上手簡單。隨著對Scratch的深入接觸,它的可視化、模塊化、界面友好等特性,能有助于一目了然地觀察到程序結構,促使筆者的注意力從程序轉移到自己要實現(xiàn)什么上。這令筆者開始反思自己對計算機編程的認識。Scratch的程序模塊就像是散落在工作臺上的零件,隨手可得,但是要用它們搭建出理想的“建筑物”又感覺好像總差了點什么。這種感覺有點像玩魔方,“易于操作”卻也“無從下手”。
筆者接觸到一個Scratch教學案例——迷宮游戲。這個案例是構建一個迷宮場景,既包括要穿越迷宮的主角,以及和他們狹路相逢的怪物、金幣、障礙物等,也包含判定主角的計分和生命值。筆者發(fā)覺案例提供的參考腳本(Scratch的程序段叫做腳本)中的主角腳本冗長、重復。這樣的程序雖然實現(xiàn)了預期功能,但它是否合乎信息技術課程標準對程序課的信息文化特征的要求呢?是不是解決問題的最佳方案呢?
問題求解過程激發(fā)學生學習動力
還記得大學課堂上用C語言求解“七橋問題”時,眾人抱怨“為何數(shù)學家非要一次不重復地走遍哥尼斯堡的七座橋”的情景,那種不解源于學習材料脫離現(xiàn)實,或者說學習材料中的問題并非由學習者主動提出。隨著工作經(jīng)驗和生活閱歷的積累,學習者對問題的理解有了更深、更多角度的認識,繼而產(chǎn)生的學習感受是不一樣的。例如,雖然還是七橋問題,但它是優(yōu)化方案、減少折損的思路。這樣的學習意義在現(xiàn)實生活中具有重要價值,絕對可以把眼前費解難懂的“七橋”變得生動有趣。
在學生求學時期,尤其是具體形象思維向抽象邏輯思維過渡的階段,抽象命題讓學生感到有難度又煩惱。不論教師如何用外在形象包裝這些命題,都不如由學生自身產(chǎn)生的直接動機所帶來的動力強勁。編程相當于在理解抽象知識和解決真實世界具體問題之間搭了一座橋梁,由學生主動思考,應用必要的程序知識設計并創(chuàng)造,這既能探索新知又能解決問題。程序設計沒有標準答案,再加之Scratch這類圖形化編程語言的包容性,有利于學生構建自己的學習情境,幫助他們提出問題,再由問題探究產(chǎn)生主動的學習動力。
計算思維梳理問題求解的思路
如果以“一次不重復地走遍哥尼斯堡的七座橋”所體現(xiàn)的致簡原則來衡量上述案例的參考腳本,它顯然不是最佳的解決方案。優(yōu)化問題解決的方案,不得不提及華羅庚先生撰寫的《統(tǒng)籌方法》一文,文中提出統(tǒng)籌方法是用數(shù)學的思維方式合理安排工作進程的數(shù)學方法。但隨著信息技術的發(fā)展,計算機應用廣泛普及,數(shù)學方法的形態(tài)也在不斷泛化。近年來,統(tǒng)籌方法也被國際上的一個新概念——計算思維所革新。
2006年,美國卡內基·梅隆大學計算機科學系主任周以真教授在美國計算機權威期刊Communications of the ACM上提出計算思維(Computational Thinking)的概念。周教授認為:計算思維是運用計算機科學的基礎概念進行問題求解、系統(tǒng)設計,以及人類行為理解等涵蓋計算機科學之廣度的一系列思維活動。
自周教授提出計算思維的概念以來,許多組織和學者都對計算思維的概念進行了深入的研究,其中比較有代表性的是國際教育技術協(xié)會(ISTE)聯(lián)合計算機科學教師協(xié)會(CSTA)共同給出的定義:計算思維是一個問題解決的過程,該過程包括制定問題、分析數(shù)據(jù)、抽象、設計算法、選擇最優(yōu)方案、推廣等六大要素。
計算思維在創(chuàng)作Scratch程序“迷宮游戲”中的應用
下面,筆者試切換為計算思維視角,重新思考Scratch“迷宮游戲”的解法。
1.問題是什么
用語言描述“迷宮游戲”通常會這樣說:用Scratch設計創(chuàng)作一個程序游戲,玩家可以用鍵盤方向鍵操控一個虛擬角色“青蛙”從迷宮入口出發(fā),途中它不能碰到壁壘和機關,否則會有懲罰,碰到寶箱、怪獸會增加或減少游戲得分,最后青蛙親吻到迷宮出口處的“公主”則過關。
我們再用計算思維概念,判斷是否已經(jīng)把“要解決的問題是什么”描述清楚。計算思維與一般思考方式的根本區(qū)別在于:計算思維中探求解決問題的方法是算法的思維。算法(Algorithm)是一系列解決問題的清晰指令,它代表用系統(tǒng)的方法描述解決問題的策略機制。也就是說,能夠讓一定規(guī)范的輸入在有限的時間內獲得所要求的輸出,即對問題的把握要以系統(tǒng)為著眼點,以規(guī)范為指引,指示精確、可量化。而上一段的“描述”以這樣的標準判斷,顯然是不合格的。
筆者認為,把問題從模糊到清晰搞清楚的過程需要一系列方法和策略,這就是計算思維的方法論。但從應用的角度,弄清“問題是什么”體現(xiàn)在具體實踐的過程中,是不能脫離人和真實情境。也就是說,應用計算思維時一定要考慮到學生的認知水平、信息技術能力,以及能理解的探究方式、方法。
因此,筆者認為可以把Scratch程序教學“迷宮游戲”這個問題裝載到項目中,用研究性學習方法,幫助學生更好地把握自己的思維過程和實踐過程。例如,在裝載項目的過程中,其劃分階段既可以參考研究性學習的“進入問題情境—實踐體驗—表達交流”三階段模式,也可以由教師引導參考《軟件工程》并結合實際情況,將過程進一步細化為五階段模式,即制定游戲規(guī)則階段、設計和資料準備階段、游戲制作階段、測試并修改階段及保存發(fā)布或展示階段(如圖1)。
計算思維是運用計算機科學的基礎概念去求解問題方法,其特征之一是建立在由人或機器執(zhí)行的計算過程的能力和限制之上的。所以計算思維的思考方式不但要遵循人的認知發(fā)展規(guī)律,還要理解和適應計算機科學的一般規(guī)律。由此,筆者更傾向于用五階段模式劃分項目過程,這也是考慮到“用Scratch創(chuàng)作迷宮游戲”與學生接觸過的研究性學習項目存在一定區(qū)別,它更貼近于軟件工程。
首先,軟件也屬于工程類項目,工程項目都需要以計算為基礎來量化各個生產(chǎn)環(huán)節(jié),用科學的手段控制中間狀態(tài)。如果是程序項目,監(jiān)測中間狀態(tài)的本質就是檢查數(shù)據(jù)流。雖然這樣的學習活動是充滿趣味的虛擬創(chuàng)作,但它的建設過程卻貼近真實世界的生產(chǎn)過程,需要考慮更多的實際因素,對于學生來說,這即便是挑戰(zhàn),也賦予了更深刻的意義。其次,將問題裝載在項目中,原先僅是一段模糊、非量化的“迷宮游戲”的表達,但被劃分到具體的、分階段的工程中后,雖然這個過程并非標準化、數(shù)據(jù)化信息的過程,但它構成了計算量化的前提。再次,筆者認為應將計算思維視角下的明確問題和制定解決方案看成一個完整的思維過程,即在項目中明確問題與問題求解一脈相承,在迭代過程中確定最佳的問題解決方案。
2.把問題轉換為一個信息處理的流程
在應用IT系統(tǒng)時,我們常提及的操作步驟就是業(yè)務流程。而信息流程是業(yè)務流程中執(zhí)行事件形成的數(shù)據(jù)流。創(chuàng)作軟件程序是在你知道“業(yè)務是怎樣的”情況下,合理地部署數(shù)據(jù)流向,至少要按計算機能夠接受的方式或遵循開發(fā)工具(本案例是Scratch)的基本規(guī)則,合理地分解、部署業(yè)務。以“迷宮游戲”為例,如何合理地分解、部署業(yè)務?
“制定游戲規(guī)則階段”和“設計和資料準備階段”是創(chuàng)作前的思考環(huán)節(jié),教師通過對游戲規(guī)則的分析、列寫,可以幫助學生體會計算的標準化控制;通過設計角色、梳理游戲流程,可以有效地把握后續(xù)各階段工作的路徑。在這個環(huán)節(jié)中,把復雜問題分解為易于管理的子集,涉及定量分析或計算,這對還處在基礎教育階段的學生來說,具有相當大的難度。因此,教師需要思考“如何幫助學生搭建思維‘腳手架”的問題,以便引導學生探究和發(fā)揮自己的創(chuàng)造力,在不降低難度的前提下,體會啟發(fā)式推理思考過程的嚴謹與樂趣。
在“迷宮游戲”中,教師幫助學生搭建思維“腳手架”的策略,具體有以下兩點:
(1)思維導圖BOIs策略
根據(jù)“迷宮游戲”出現(xiàn)多角色的場景特征,筆者首先選用思維導圖的BOIs邏輯分類策略,這有利于學生把自己的設計里要出現(xiàn)的角色想全。
BOIs,即基本順序思想(basic order ideas)。它是通過分門別類、條理化的思維技巧,幫助學生厘清思路,發(fā)現(xiàn)所想事件或系統(tǒng)的內在邏輯。思維導圖BOIs策略中最重要的是ordering,也就是要在思維中構建一定的順序。具體如下:
①大的分類。
學生通過分析問題分離角色。筆者想到的第一層大分類是:主角類、配角類、其他角色類。主角類非常明確地指“青蛙”,其他角色類是游戲中的計分、關卡等角色,相對來說這些都比較清晰;較為復雜的是配角類,他們是主角在迷宮中行走時所遇到的各種角色,其中有的會造成加減分,有的會造成“生命值”損失或補給等,并且每個角色都有自己特定的造型、形態(tài)、動作。此時,學生的頭腦中一定會出現(xiàn)很多想法,但整體上是有序的、全面的。
②中間階層的分類。
在劃分大類之后,需要繼續(xù)思考頭腦中涌現(xiàn)的想法與劃分大類之間有無中間階層。根據(jù)之前對“問題是什么”的分析,可以繼續(xù)將配角分為減分、減生命值、加分、加生命值等類型,然后對這些類型重新進行排列組合,這個過程可以去掉其中的一些組合,最后確定創(chuàng)作者自定義的角色類型(如圖2)。
當然,還可以進一步分類并完善一些細節(jié)。例如,“不減分、減生命值”角色類型可以分為炸彈和障礙物兩種,“減分”和“加分”的角色類型可以細化為三個得分檔位(如圖3)。通過這樣的思路梳理,已經(jīng)基本可以確定游戲要構建哪些角色,以及這些角色的屬性特征。
相較于把已知的東西羅列在紙上,思維導圖BOIs策略是把頭腦中還不夠準確、全面的想法激活出來。這種舉一反十的思考方式,實現(xiàn)了從無到有的過程,是創(chuàng)造的一部分。
(2)繪制表格策略
遵循Scratch程序的“廣播—接收廣播”“新建功能塊”等規(guī)則,把眾多角色直接或間接的互動關系一一梳理、記錄在案。此時可以采用繪制表格策略:先把各角色在同一橫排依次列寫。然后把每個角色的屬性,與其他角色之間的互動關系在縱列中逐一記錄。接著給各個角色起名,帶入細節(jié)信息,直到表格中的角色數(shù)據(jù)可以用于后續(xù)階段的程序創(chuàng)作(如下表)。
思維導圖BOIs策略和繪制表格策略既體現(xiàn)了學生進入問題情境時的思維過程,也體現(xiàn)了學生制定問題解決方案的實踐過程。教師引導學生借助思維工具在項目中探索,從根本上說是培養(yǎng)學生的邏輯思維能力。
應用計算思維過程中的悖論
上述內容僅僅是通過兩個思維策略把計算思維針對問題解決過程中的“思考環(huán)節(jié)”粗略地勾勒出來。而計算思維是數(shù)學思維和工程思維的互補及組合,思考環(huán)節(jié)的成果可以統(tǒng)御項目中的后續(xù)階段。教師不斷探索計算思維與教學策略結合,也是在整合自己的思維邏輯。
計算思維運用到非計算機學科或一門課程上,如何分解步驟、如何應用策略使用思維工具等,都將是教師設計課程時的難點(思維工具應用的有效性)。除此之外,對于中小學生的課程,教師是教會學生一門編程語言,或是帶學生實踐一次軟件工程最基礎的規(guī)劃,還是讓學生體驗流程后形成這樣的思考習慣?這都還存在一定的爭議。