曾翰穎
摘要:計(jì)算思維的核心在于問(wèn)題求解。本文首先介紹了二進(jìn)制的有關(guān)概念,指出二進(jìn)制思維的實(shí)質(zhì)與問(wèn)題求解之間的關(guān)系,然后探討了問(wèn)題在計(jì)算思維培養(yǎng)中的作用,最后以“狼羊菜”為例詳細(xì)描述了計(jì)算思維培養(yǎng)的教學(xué)實(shí)施過(guò)程。
關(guān)鍵詞:大學(xué)計(jì)算機(jī)基礎(chǔ);計(jì)算思維;二進(jìn)制;問(wèn)題求解;教學(xué)案例
中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2019128-0122-03
計(jì)算思維目前是大學(xué)信息教育的重要內(nèi)容。按照周以真教授的定義,計(jì)算思維是指運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問(wèn)題求解、系統(tǒng)設(shè)計(jì),以及人類行為理解等涵蓋計(jì)算機(jī)科學(xué)之廣度的一系列思維活動(dòng),盡管對(duì)此還存在著不同的看法,但計(jì)算思維的核心是問(wèn)題求解卻已是普遍的共識(shí)嘲。
1二進(jìn)制思維
二進(jìn)制是計(jì)算機(jī)科學(xué)中的一個(gè)重要概念,現(xiàn)代計(jì)算機(jī)所采用的馮·諾依曼體系結(jié)構(gòu),其要點(diǎn)之一就是使用二進(jìn)制來(lái)表示數(shù)據(jù)和指令,因此對(duì)二進(jìn)制的學(xué)習(xí)不僅有助于更好地掌握計(jì)算機(jī)工作原理,同時(shí)還能提升對(duì)于信息世界及其運(yùn)作機(jī)制的理解。二進(jìn)制有0和1兩種狀態(tài),這個(gè)特點(diǎn)保障了計(jì)算機(jī)系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)的可行性、簡(jiǎn)易性和可靠性,如物理的高低電平、校驗(yàn)碼糾錯(cuò)等;同時(shí),0和1的二元狀態(tài)又對(duì)應(yīng)著邏輯上“對(duì)與錯(cuò)、真與假”,這成為二進(jìn)制描述現(xiàn)實(shí)和問(wèn)題求解的關(guān)鍵。
對(duì)立和統(tǒng)一是矛盾的根本屬性,它們相互依存,但彼此間的作用又促使著事物的發(fā)展演變,因此通過(guò)挖掘事物中存在的矛盾對(duì)立點(diǎn)及其關(guān)聯(lián),經(jīng)過(guò)不斷的篩選、重組,從而讓問(wèn)題的答案逐漸顯現(xiàn)出來(lái),在這個(gè)過(guò)程中,新的矛盾會(huì)不斷出現(xiàn),所以上述步驟在問(wèn)題求解的過(guò)程中會(huì)往復(fù)出現(xiàn)。在二進(jìn)制中,0和1可以用來(lái)表示矛盾中的對(duì)立點(diǎn),而0和1的組合(二進(jìn)制序列)則可以表示矛盾之間的關(guān)聯(lián),然后通過(guò)約簡(jiǎn)、仿真、遞歸等多種手段來(lái)模擬演變的過(guò)程,最后獲取問(wèn)題的解答,因而二進(jìn)制思維本質(zhì)上就是一種“矛盾”思維,利用存在于事物內(nèi)部的對(duì)立與統(tǒng)一,為問(wèn)題求解提供了一條潛在的路徑,同時(shí)由于矛盾存在的普遍性,使得二進(jìn)制的問(wèn)題求解方式具有較強(qiáng)的普適特點(diǎn)。
2問(wèn)題的選擇
思維能力培養(yǎng)的關(guān)鍵是知識(shí)遷移嘲,即通過(guò)探尋事物之間的聯(lián)系,實(shí)現(xiàn)將現(xiàn)有經(jīng)驗(yàn)投射到新的應(yīng)用情境中,從而獲得新問(wèn)題的求解,在這個(gè)過(guò)程當(dāng)中,事物間的要素匹配是關(guān)鍵,因此在進(jìn)行思維能力培養(yǎng)時(shí),問(wèn)題選擇顯得非常重要,一方面,合適的問(wèn)題能降低學(xué)生對(duì)于新知識(shí)的畏難情緒,避免陷入概念的泥沼而削弱學(xué)習(xí)的動(dòng)機(jī)和信心;另一方面,問(wèn)題能促進(jìn)已有的經(jīng)驗(yàn)與新的內(nèi)容之間更好的形成聯(lián)結(jié),為實(shí)現(xiàn)知識(shí)的遷移奠定基礎(chǔ),計(jì)算思維與問(wèn)題求解之間的關(guān)系可以參見(jiàn)圖1。
有關(guān)使用二進(jìn)制來(lái)求解的問(wèn)題,如小白鼠試毒、背包問(wèn)題等,其中小白鼠試毒在教學(xué)中使用較多,其描述如下:1000個(gè)外觀一樣的瓶子,其中一瓶有毒,任何生物喝下毒液后會(huì)在一個(gè)星期后死亡?,F(xiàn)在給你10個(gè)小白鼠和一個(gè)星期時(shí)間,請(qǐng)問(wèn)如何檢驗(yàn)才能確定哪一瓶有毒?這個(gè)問(wèn)題有一些變體,但其中矛盾對(duì)立點(diǎn)卻是相同的,例如“生和死”“投喂和不投喂”等,但筆者在教學(xué)中選擇的是“狼羊菜”問(wèn)題。
“狼羊菜”的問(wèn)題描述如下:農(nóng)夫帶一狼、一羊、一菜過(guò)河,小船每次只能載一物,但農(nóng)夫離開(kāi)時(shí),狼會(huì)吃羊、羊會(huì)吃菜,那農(nóng)夫該怎么做,才能將所有貨物完好無(wú)損的載過(guò)河?之所以選擇“狼羊菜”作為教學(xué)的導(dǎo)人問(wèn)題,是因?yàn)檫@種不需要借助計(jì)算機(jī)知識(shí)就能求得答案的問(wèn)題,能更好地激發(fā)學(xué)生的學(xué)習(xí)動(dòng)機(jī),促使其將已有的知識(shí)經(jīng)驗(yàn)與新內(nèi)容聯(lián)結(jié)起來(lái),符合建構(gòu)主義的學(xué)習(xí)情境設(shè)置,同時(shí)這種在問(wèn)題探究中所形成的學(xué)習(xí)期望,也能有效地促進(jìn)智慧型知識(shí)技能的習(xí)得,相比而言,雖然小白鼠試毒的問(wèn)題雖然更具有創(chuàng)造性,但學(xué)生往往無(wú)從下手,反而會(huì)對(duì)教學(xué)內(nèi)容的展開(kāi)造成了阻礙;此外,“狼羊菜”問(wèn)題還能與其他計(jì)算機(jī)知識(shí)關(guān)聯(lián)起來(lái),如數(shù)據(jù)結(jié)構(gòu)、程序設(shè)計(jì)等,從而為學(xué)生后續(xù)課程的學(xué)習(xí)奠定基礎(chǔ)。
3二進(jìn)制的問(wèn)題求解
計(jì)算思維的本質(zhì)之一是抽象,即找出事物的一般規(guī)律,然后借助計(jì)算機(jī)概念來(lái)進(jìn)行描述并獲得問(wèn)題求解,有關(guān)二進(jìn)制的問(wèn)題求解過(guò)程見(jiàn)圖2。在引入題前先要對(duì)相關(guān)計(jì)算機(jī)知識(shí)進(jìn)行鋪墊,如二進(jìn)制概念及數(shù)的表示;思考非計(jì)算機(jī)方式的解是必要且重要的,為的是觸動(dòng)學(xué)生現(xiàn)有的知識(shí)結(jié)構(gòu),無(wú)論是否能得到答案,都會(huì)對(duì)后面理解計(jì)算機(jī)的解帶來(lái)幫助;在挖掘矛盾對(duì)立點(diǎn)時(shí),要注意問(wèn)題中隱含的約束條件,起點(diǎn)(假定為左岸)和終點(diǎn)(假定為右岸)是顯而易見(jiàn)的對(duì)立點(diǎn),那么對(duì)于狼吃羊、羊吃羊,它們的對(duì)立點(diǎn)是“狼不吃羊、羊不吃菜”嗎?這顯然不合邏輯,也是思考時(shí)容易犯的錯(cuò)誤,結(jié)合約束條件就能發(fā)現(xiàn),狼只有和農(nóng)夫在一起時(shí)才不吃羊,所以在本題中“狼吃羊”的矛盾對(duì)立點(diǎn)應(yīng)該是“和農(nóng)夫在一起”,這時(shí)候狼就吃不了羊,類似的還有“羊吃菜”。
接下來(lái)的矛盾及其關(guān)聯(lián)的二進(jìn)制描述是求解的關(guān)鍵步驟,在本題中假定起點(diǎn)用0表示,終點(diǎn)用1表示,然后將農(nóng)夫、狼、羊、菜按此順序用二進(jìn)制序列表示,如0000表示全部在左岸,1101表示農(nóng)夫、狼、菜在右岸,羊在左岸等,那么原來(lái)的問(wèn)題就轉(zhuǎn)換為一個(gè)從0000出發(fā),在約束條件的限定下,最終到達(dá)1111(全部去了右岸)的路徑選擇問(wèn)題,然后將這個(gè)二進(jìn)制的演變過(guò)程轉(zhuǎn)換為相應(yīng)的現(xiàn)實(shí)描述,就能得到該問(wèn)題的解,如表1就是該問(wèn)題其中的一個(gè)解,在授課中可以讓學(xué)生參照著求出問(wèn)題的其他解。
實(shí)際的教學(xué)中由于使用了PPT的動(dòng)畫演示,使得這個(gè)過(guò)程更加形象生動(dòng),同時(shí)還能按照教師的意圖來(lái)逐步展開(kāi),引導(dǎo)學(xué)生在思考中逼近答案,促進(jìn)教學(xué)目標(biāo)的達(dá)成,圖3左就是授課課件中的一張截圖。當(dāng)問(wèn)題求解完成之后及時(shí)進(jìn)行總結(jié),重點(diǎn)包括兩個(gè)方面:第一,通過(guò)回顧來(lái)強(qiáng)化新方法求解問(wèn)題的思路、步驟和要點(diǎn);第二,讓學(xué)生將自身原有經(jīng)驗(yàn)與新的知識(shí)進(jìn)行對(duì)比,找出異同優(yōu)劣,促進(jìn)知識(shí)重構(gòu)的形成。
4深入與反思
如果僅僅作為一種新方法的講授,課程到這里已經(jīng)達(dá)到目的,但計(jì)算思維是包括系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)在內(nèi)的一系列使用計(jì)算機(jī)進(jìn)行自動(dòng)求解的全過(guò)程,因此課程在小結(jié)之后應(yīng)當(dāng)繼續(xù)深入。以“狼羊菜”問(wèn)題為例,問(wèn)題求解的表格形式更貼近人們的日常習(xí)慣,但卻不是計(jì)算機(jī)描述與求解問(wèn)題的方式,于是就此引入了“樹(shù)”的概念,將表格轉(zhuǎn)換為樹(shù)形狀態(tài)圖(圖3右),問(wèn)題于是進(jìn)一步的演化為計(jì)算機(jī)中的“二叉樹(shù)及其遍歷”,對(duì)于部分層次較高的學(xué)生,不僅可以展示相關(guān)代碼及其運(yùn)行結(jié)果,還可以在算法選擇上進(jìn)行介紹,尤其對(duì)于理工科而言,通常還有后續(xù)的程序設(shè)計(jì)類課程,而這部分先修內(nèi)容對(duì)他們未來(lái)的學(xué)習(xí)將起到一定鋪墊的作用。至此才是一個(gè)較為完整的計(jì)算思維教學(xué)過(guò)程,即:完成對(duì)于問(wèn)題的抽象及其符號(hào)描述,并使用計(jì)算機(jī)技術(shù)來(lái)進(jìn)行自動(dòng)化的求解。
為了達(dá)到教學(xué)評(píng)價(jià)和知識(shí)鞏固的目的,可以通過(guò)布置課外的習(xí)題,如小白鼠試毒等,并簡(jiǎn)要講解其中的要點(diǎn)。由于每種方式都有它的局限性,因此最后還要引導(dǎo)學(xué)生反思不足,如二進(jìn)制思維因?yàn)榱⒆阌诿艿膶?duì)立統(tǒng)一,因而在分析時(shí)更多是定性而非定量的,同時(shí)也無(wú)法很好地描述處于離散狀態(tài)的對(duì)象等,而這種深入與反思的過(guò)程對(duì)于著眼于問(wèn)題求解的思維能力培養(yǎng)是非常重要的。
5結(jié)論
與技能培養(yǎng)不同,思維能力培養(yǎng)更關(guān)注原因和意義,不僅要知道“怎么做”,更要知道“為什么這樣做”,因此思維能力培養(yǎng)的重點(diǎn)在于判斷和選擇,即對(duì)問(wèn)題進(jìn)行識(shí)別并選擇恰當(dāng)?shù)姆椒ǎ鞣N技能(包括思維技能)的學(xué)習(xí)則為此提供了實(shí)現(xiàn)的工具。以程序設(shè)計(jì)為例,掌握了計(jì)算機(jī)語(yǔ)言的語(yǔ)法規(guī)則,并不必然的帶給學(xué)習(xí)者使用它來(lái)解決問(wèn)題的能力,因?yàn)閷?duì)于計(jì)算思維而言,問(wèn)題求解包括了分解、模式識(shí)別、抽象和算法開(kāi)發(fā)等多個(gè)步驟,計(jì)算機(jī)語(yǔ)言只不過(guò)是其中一些步驟的實(shí)現(xiàn)工具而已。
隨著計(jì)算科學(xué)和信息技術(shù)的發(fā)展,計(jì)算思維不僅在傳統(tǒng)工程領(lǐng)域,在其他領(lǐng)域,如社會(huì)網(wǎng)絡(luò)分析、行為決策等方面也發(fā)揮了越來(lái)越重要的作用,因而已成了各類信息教育中不可或缺的重要組成部分,而教學(xué)的模式與設(shè)計(jì)則是當(dāng)前計(jì)算思維培養(yǎng)所面臨的主要問(wèn)題之一,本文以二進(jìn)制為例,詳細(xì)探討有關(guān)計(jì)算思維培養(yǎng)中的教學(xué)實(shí)施過(guò)程,其價(jià)值不僅在于提供了一個(gè)教學(xué)的案例,同時(shí)也可以作為其他教師在進(jìn)行相關(guān)教學(xué)設(shè)計(jì)時(shí)的參考。