賴軍
2006年3月,美國卡內(nèi)基·梅隆大學(xué)計算機科學(xué)系主任周以真教授在美國計算機權(quán)威期刊《Communications of the ACM》雜志上定義了什么是計算思維,她認(rèn)為:計算思維是運用計算機科學(xué)的基礎(chǔ)概念進行問題求解、系統(tǒng)設(shè)計、以及人類行為理解等涵蓋計算機科學(xué)之廣度的一系列思維活動。這是高度抽象的概念定義,對于普通中學(xué)生而言,這個定義就有點不太“接地氣”。
那么什么才是中學(xué)生的計算思維呢?根據(jù)中學(xué)生思維發(fā)展處于形式化運算階段,并具有抽象性和邏輯性的發(fā)展特點進行分析,筆者認(rèn)為:中學(xué)生的計算思維是指中學(xué)生在現(xiàn)有知識水平和社會認(rèn)知的基礎(chǔ)上,利用計算機科學(xué)知識或程序設(shè)計思想,來分析現(xiàn)實生活中的問題,并運用計算機或程序設(shè)計來解決問題的合理方案的思維能力。本文著重探討的是依托App Inventor,啟蒙中學(xué)生運用程序設(shè)計思想來分析問題、解決問題的計算思維能力。
啟蒙中學(xué)生的計算思維并不是要把學(xué)生培養(yǎng)成計算機專家或?qū)I(yè)程序員,而是要培養(yǎng)生活在數(shù)字時代的青少年從小具備運用計算思維分析問題、解決問題的思維方式和思維能力。
1.信息技術(shù)教學(xué)需要重視計算思維的引導(dǎo)與培養(yǎng)。很多教師在開展信息技術(shù)教學(xué)過程中往往注重計算機知識與技能的培養(yǎng),而忽視了學(xué)生思維方式和思維遷移的培養(yǎng),沒有引導(dǎo)學(xué)生養(yǎng)成按計算機的方式認(rèn)識問題、分析問題和解決問題。在這樣的教學(xué)理念下,學(xué)生對所學(xué)計算機知識只能了解而不能理解,對操作技能只會模仿而沒有探究,運用信息技術(shù)的思維方式只是刻板還不能遷移。因此,教師必須樹立培養(yǎng)學(xué)生思維方式的教學(xué)理念,轉(zhuǎn)變知識傳授為思維啟發(fā),培養(yǎng)學(xué)生一定的計算思維能力。
2.計算思維是信息社會最基本的思維方式,是數(shù)字時代每個人都要具備的基本思維能力。我們所處的時代直至未來,計算思維都將是我們分析問題和解決問題最好的思維方式之一,是我們從小就要具備的基本技能,這樣才能更好地認(rèn)識和適應(yīng)這個時代,更好地在這個社會立足。浙江大學(xué)博士生導(dǎo)師何欽銘教授一直在呼吁:計算思維能力的培養(yǎng)是計算機基礎(chǔ)教育的重中之重,任重道遠,我們要為之堅持不懈、努力探索。
3.計算思維是中學(xué)生將所學(xué)計算機知識技能與實際應(yīng)用相結(jié)合的重要基礎(chǔ)。具備了一定計算思維的學(xué)生,在面對實際問題的時候,很自然就會想到使用計算機來解決。計算思維可以培養(yǎng)學(xué)生從復(fù)雜的實際問題中抽象出事物的主要特征,再聯(lián)系所學(xué)計算機知識,運用計算機解決問題的方式快速形成合理高效的解決方案。使學(xué)生學(xué)以致用,以用促學(xué),讓學(xué)生體會到學(xué)習(xí)和應(yīng)用信息技術(shù)的成就感,激發(fā)學(xué)習(xí)興趣和學(xué)習(xí)動力。
4.計算思維是培養(yǎng)學(xué)生抽象思維和嚴(yán)謹(jǐn)?shù)倪壿嬎季S能力的重要載體。計算思維通過分析事物,識別和明確定義計算問題,運用抽象并形成解決問題的方案,驗證并反饋方案的有效性和可操作性,完善并改進解決方案。整個過程都體現(xiàn)了嚴(yán)謹(jǐn)?shù)某橄笏季S和邏輯思維能力,因此,根據(jù)中學(xué)生思維發(fā)展的特點,培養(yǎng)計算思維就是培養(yǎng)嚴(yán)謹(jǐn)?shù)某橄笏季S和邏輯思維能力,對學(xué)生形成良好的思維方式具有重要作用。
本文之所以選擇依托App Inventor來培養(yǎng)中學(xué)生的計算思維,是因為App Inventor是專門為青少年學(xué)生設(shè)計的移動應(yīng)用編程入門開發(fā)環(huán)境。它不再采用傳統(tǒng)的“文本代碼”編程模式而改為“積木搭建”模式,既有趣又能減少代碼錯誤;開發(fā)環(huán)境中提供了豐富的功能組件和內(nèi)置編程模塊,讓開發(fā)者不用為記憶枯燥的代碼而苦惱;開發(fā)過程中可以在安卓終端和模擬器上實時運行,運行結(jié)果可以實時把控,讓調(diào)試更簡便、更高效。
如何依托App Inventor來啟蒙學(xué)生的計算思維?筆者在實踐中不斷探索,認(rèn)為需要從以下幾個方面,借助實踐,循序漸進,舉一反三,讓學(xué)生逐步形成連貫性、習(xí)慣性的計算思維能力。
1.將實際問題轉(zhuǎn)化為類程序化語言描述,培養(yǎng)學(xué)生的抽象思維能力。類程序化語言,是指按計算機程序執(zhí)行的方式來描述問題解決思路的類似于日常用語的語言,描述的格式一般為“當(dāng)……則……”,“如果……那么……否則……”,“滿足……(條件)則重復(fù)……直到……(條件)”。啟蒙學(xué)生計算思維的第一步,就是要訓(xùn)練學(xué)生使用類程序化語言來描述實際問題。舉個密碼驗證的例子,可以用類程序語言描述為:當(dāng)輸入的用戶名和密碼等于保存的用戶名和密碼時,提示驗證通過,否則提示用戶名或密碼錯誤。
用類程序語言描述實際問題不用要求學(xué)生說出問題的詳細(xì)解決方案,只要求能說出大概的解決思路。教師可以提供一些實際生活中的例子讓學(xué)生用類程序語言來描述,比如:電飯煲、電冰箱、空調(diào)等家電的工作方式,同學(xué)們對學(xué)校鈴聲的響應(yīng)等。引導(dǎo)學(xué)生形成習(xí)慣性的類程序語言描述方法,培養(yǎng)學(xué)生的抽象思維能力,墊定計算思維的基礎(chǔ)。
2.將類程序化語言描述轉(zhuǎn)化為程序流程圖,培養(yǎng)學(xué)生的邏輯思維能力。當(dāng)學(xué)生能夠用簡單的類程序化語言來描述實際問題時,就要培養(yǎng)學(xué)生找準(zhǔn)問題的關(guān)鍵點,并將這種描述轉(zhuǎn)化為簡單的程序流程圖,使邏輯更清晰。在密碼驗證的例子中,會出現(xiàn)很多種情況:沒有輸入用戶名和密碼、沒有輸入用戶名、沒有輸入密碼、用戶名錯誤、密碼錯誤、用戶名和密碼都錯誤、用戶名和密碼都正確。但在程序設(shè)計時只需要考慮兩種情況:一是用戶名和密碼都正確,二是其他的所有情況。所以簡單的流程圖如下圖所示:
對于初中學(xué)生,繪制流程圖無需太嚴(yán)謹(jǐn)、太完整,只要求能通過簡單流程圖清晰地表達問題關(guān)鍵點的處理過程。繪制流程圖的目的是培養(yǎng)學(xué)生將抽象化的事物用邏輯上的圖形來表達的基本能力,使學(xué)生培養(yǎng)成用流程圖來描述問題關(guān)鍵點的習(xí)慣性思維方式。
3.將程序流程圖轉(zhuǎn)化為程序模型,培養(yǎng)學(xué)生的計算思維能力。這一步是培養(yǎng)學(xué)生計算思維的最關(guān)鍵最重要的環(huán)節(jié),也是最難的環(huán)節(jié)。這個環(huán)節(jié)是培養(yǎng)學(xué)生將現(xiàn)實問題轉(zhuǎn)化為易于計算機處理的數(shù)學(xué)問題,建立數(shù)學(xué)模型,再將數(shù)學(xué)模型轉(zhuǎn)化為程序模型。通過繪制驗證密碼流程圖后發(fā)現(xiàn),驗證密碼的數(shù)學(xué)模型非常簡單,就是“輸入的賬號=已設(shè)賬號”并且“輸入的密碼=已設(shè)密碼”則驗證通過,否則驗證不通過。再轉(zhuǎn)化為分支結(jié)構(gòu)的程序模型:
如果 賬號輸入框內(nèi)容=已設(shè)賬號 且 密碼輸入框內(nèi)容=已設(shè)密碼 那么
密碼驗證通過
否則
密碼驗證失敗
結(jié)束分支
金從軍老師提供了一個關(guān)于農(nóng)夫運送狼羊菜過河的例子:一位農(nóng)夫帶著一只狼、一只羊和一個卷心菜過河,因為船小,農(nóng)夫一次只能運送一樣?xùn)|西過河。但狼會吃羊,羊會吃菜,不能在農(nóng)夫不在的情況下把狼和羊或者羊和菜留在同一處。農(nóng)夫應(yīng)該如何運送呢?
金老師用自然數(shù)來表示三樣?xùn)|西:狼=1,羊=2,菜=3。為了不讓狼吃羊、羊吃菜,就可將問題轉(zhuǎn)化為求差值的減法問題,當(dāng)它們之間差值的絕對值等于1時,會發(fā)生“危險”,必須加以避免。
現(xiàn)實生活中的所有問題都可以轉(zhuǎn)化為數(shù)學(xué)模型,對于初中學(xué)生,可以選取一些既簡單又有趣的例子,讓學(xué)生思考并找出能用數(shù)學(xué)模型來解決的方案,在同學(xué)中討論、分享,再確定最優(yōu)方案,最后編寫程序代碼,調(diào)試程序,解決實際問題。
4.編寫調(diào)試程序,培養(yǎng)學(xué)生的編程和操作思維能力。建立了程序模型后,就可以在App Inventor環(huán)境下編寫代碼,用程序來實現(xiàn)模型,解決問題。密碼驗證的關(guān)鍵代碼如下:
農(nóng)夫運送狼羊菜過河的關(guān)鍵代碼如下:
依托App Inventor培養(yǎng)學(xué)生的計算思維能力,前提是學(xué)生必須掌握App Inventor開發(fā)環(huán)境及其應(yīng)用,本文不作詳述。學(xué)生通過在App Invent-or中動手編程,讓學(xué)生在操作中思考,在思考中提升計算思維能力。
計算思維是以計算機應(yīng)用與操作為基礎(chǔ)的方法論概念,啟蒙學(xué)生的計算思維不能脫離了計算機應(yīng)用與操作,應(yīng)該把計算思維能力的培養(yǎng)整合到課堂教學(xué)中,由抽象到邏輯,再到操作,最后形成計算思維。筆者在App Inventor興趣小組教學(xué)實踐中,通過以上步驟的反復(fù)練習(xí),學(xué)生的計算思維能力提升明顯,逐步養(yǎng)成了用計算思維方式分析事物的習(xí)慣,同時也提高了App Inventor編程操作能力和技巧。初中學(xué)生的這種知識和技能基礎(chǔ),讓他們能突破常規(guī)思維方式,將事物數(shù)字化、信息化。計算思維必將影響他們今后的學(xué)習(xí)和生活,使他們的思維方式在數(shù)字化時代能夠與時俱進、永不落伍。
具備一定計算思維能力的人,會更有勇氣、毅力和自信去面對生活的挑戰(zhàn),無論你面對的是什么,計算思維都能讓你更迅速、更容易地達成,人生又怎么會不精彩呢?
參考文獻:
[1]馬秀麟,鄔彤,劉立超.思維能力培養(yǎng)與信息技術(shù)基礎(chǔ)課教學(xué)的融合[J].中國教育信息化,2015(2):22-25.
[2]宋云生.計算機基礎(chǔ)教學(xué)中計算思維能力培養(yǎng)的探討[J].教學(xué)與教育信息化,2015(14):187-188.
[3]劉焱青.App Inventor2在中學(xué)生計算思維培養(yǎng)中的應(yīng)用研究[D].中國湖南長沙:湖南師范大學(xué),2016:9-20.
[4]金從軍.農(nóng)夫過河——狼羊菜問題[J].(2018-2-25)
[5]文雅善良.What?計算思維居然是未來兒童最重要的能力模型?。跩].(2014-03)
[6]Derek Walter,Mark Sherman.MIT App Inventor完全上手[M],靳曉輝.中國北京:清華大學(xué)出版社,2015.69-71.
[7]蔡艷桃.Android App Inventor項目開發(fā)教程[M].北京:人民郵電出版社.2014.1-4.