鄭珂 李新暉
摘? 要 概述計算思維的內(nèi)涵,構(gòu)建高中階段學生計算思維邏輯框架與培養(yǎng)路徑,總結(jié)出數(shù)學思維等五種主要思維方式,結(jié)合這五種思維方式選取“老鼠走迷宮”案例進行分析,提出每種思維方式培養(yǎng)的具體過程。
關(guān)鍵詞 高中信息技術(shù);計算思維;Python;數(shù)學思維
中圖分類號:G633.67? ? 文獻標識碼:B
文章編號:1671-489X(2021)13-0066-04
0? 引言
近年來,隨著云計算、物聯(lián)網(wǎng)、大數(shù)據(jù)等新技術(shù)的出現(xiàn),現(xiàn)代社會從“互聯(lián)網(wǎng)+”時代向“人工智能+”時代邁進,人工智能的飛速發(fā)展深刻改變著人們的生產(chǎn)生活。將信息技術(shù)與人工智能技術(shù)進行深度融合,強調(diào)學習不應僅注重知識的學習,更應注重思維能力的培養(yǎng)。本文主要研究高中生計算思維能力的提升,選擇高中信息技術(shù)課程案例,借助可視化編程工具Python,將該案例的具體實施步驟與五種主要的思維模式相融合,詳細分析各個思維所涉及的準則,以便更好地理解計算思維在教學中的重要性,提升學生學好Python課程的信心。
1? 計算思維
2006年3月,周以真教授在《計算思維》一文中首次提出計算思維?!镀胀ǜ咧行畔⒓夹g(shù)課程標準(2017年版)》中提出:“計算思維是指在計算機科學領(lǐng)域的思想方法的指導下,個體在對一個問題形成解決方案的過程中所產(chǎn)生的一系列思維活動。”[1]2011年,美國國際教育技術(shù)協(xié)會(ISTE)和計算機科學教師協(xié)會(CSTA)給出計算思維的操作性定義,指出“計算思維是一種解決問題的過程,該過程包括明確問題、分析數(shù)據(jù)、抽象、設計算法、評估最優(yōu)方案、遷移解決方法六大要素”[2]。對于21世紀的人們來說,計算思維是一項非常重要的學習能力,不僅體現(xiàn)在學習中,更有利于自身邏輯思維的鍛煉。
2? 高中階段的計算思維邏輯框架與培養(yǎng)路徑
2.1? 計算思維邏輯框架
計算思維中主要的思維方式有五種,如表1所示。
2.2? 高中階段計算思維的培養(yǎng)路徑
在中小學實施課程教學是培養(yǎng)計算思維的重要路徑。在高中新課標中,課程結(jié)構(gòu)含必修、選擇性必修和選修三類課程共10個模塊,其中必修課程有信息系統(tǒng)與社會、數(shù)據(jù)與計算兩個模塊;選擇性必修課程有數(shù)據(jù)與數(shù)據(jù)結(jié)構(gòu)、三維設計與創(chuàng)意、網(wǎng)絡基礎(chǔ)、數(shù)據(jù)管理與分析、開源硬件項目設計、人工智能初步六個模塊;選修課程有算法初步和移動應用設計兩個模塊[3]。由此可以得出:新課標修訂后,高中信息技術(shù)教學無論是從課程內(nèi)容的深度,還是從課程內(nèi)容的廣度,都得到加強,教學任務也大幅增加,但教學總的課時沒有增加。因此,學?;蛳嚓P(guān)研究人員設計開發(fā)培養(yǎng)計算思維的信息技術(shù)校本課程這一重要路徑,可以解決有限的課時與限定時間內(nèi)落實培養(yǎng)計算思維的目標之間的矛盾,使得高中階段計算思維的培養(yǎng)通過體系化、序列化的課程群系統(tǒng)地展開[3]。
3? 基于計算思維的Python程序案例研究
以計算思維為培養(yǎng)目標的課程在知識傳授過程中不再以傳統(tǒng)的概念記憶與知識點的講授為主[4],而是更加側(cè)重于訓練學生上述五種思維。
1952年,“信息時代之父”香農(nóng)用一只木老鼠“忒修斯”奠定了人工智能的基礎(chǔ)。經(jīng)過一系列的隨機試驗,“忒修斯”穿過迷宮般的金屬墻,成功到達出口處,獲得金屬奶酪。香農(nóng)的發(fā)現(xiàn)代表了人類智慧的結(jié)晶和數(shù)字化世界的可能性。因此,選取“老鼠走迷宮”作為培養(yǎng)學生計算思維的案例,一方面是通過編程實踐,讓學生切身體驗科學家的邏輯思維過程;另一方面,對應上述五種思維方式,將“老鼠走迷宮”案例的教學環(huán)節(jié)分為五個步驟,強化學生的計算思維框架。具體步驟如下:
1)引入問題,創(chuàng)設合適情境,引導學生主動發(fā)現(xiàn)問題;
2)數(shù)學建模,用數(shù)學模型重新定義問題;
3)問題分解,將原問題分解成小問題;
4)設計算法,根據(jù)分解步驟,列出流程圖,寫出算法;
5)編寫程序并調(diào)試運行。
五個步驟與五種思維方式之間的關(guān)系如圖1所示。
基于Python,以“老鼠走迷宮”為例,結(jié)合計算思維的五種思維方式對教學活動進行具體闡述。
3.1? 引入問題
在信息技術(shù)課堂教學中,以問題解決為導向的方法有助于培育學生的計算思維。在每次課程開始之前,教師應該向?qū)W生拋出一個他們能夠理解并能解決的問題,同時要說明該問題發(fā)生的背景和條件,以便于學生思考問題。比如:“同學們在生活中應該玩過迷宮游戲,那么老鼠走迷宮會怎么走呢?在出口處有什么等著老鼠?”
【問題描述】如圖2所示,一個n×n迷宮,老鼠如果想吃到迷宮出口處放著的奶酪,如何從入口到達出口?能否找到一條合適的路徑?如果有,找出該路徑。
3.2? 數(shù)學建模:培養(yǎng)數(shù)學思維
學生理解問題之后就要對問題進行約簡、構(gòu)思、分析、建模。要解決問題就要從問題下手,首先要做的就是仔細研究問題,找到問題已知條件、未知條件以及兩者之間的聯(lián)系,弄懂問題的目的。其中,已知條件是n×n的迷宮、迷宮的入口、迷宮的出口,未知是正確路徑的步驟,最后的結(jié)果有兩種:如果不能找到路徑,那么老鼠就吃不到奶
酪;反之,則是找到這條路徑,吃到奶酪。
先來假設這是一個10×10的迷宮,其中灰色格子是墻,白色格子代表路,10×10表示迷宮的長和寬分別是10,如圖3所示。“灰色格子代表墻,白色格子代表路”是用語言形式描述的,需要轉(zhuǎn)換成數(shù)學的形式。用1和0分別定義灰色格子和白色格子,可以得到圖4所示的迷宮。
將上面10×10的迷宮定義為二維數(shù)組:
m[10][10]=[1,1,1,0,1,1,1,1,1,1,
1,0,0,0,0,0,0,0,1,1,
1,0,1,1,1,1,1,0,0,1,
1,0,1,0,0,0,0,1,0,1,
1,0,1,0,1,1,0,0,0,1,
1,0,0,1,1,0,1,0,1,1,
1,1,1,1,0,0,0,0,1,1,
1,0,0,0,0,1,1,1,0,0,
1,0,1,1,0,0,0,0,0,1,
1,1,1,1,1,1,1,1,1,1]
有了對迷宮的數(shù)學定義,就可以很簡單地定義迷宮的入口和出口。迷宮的入口是m[0][3],出口是m[7][9]。老鼠走迷宮問題就簡化為找到一條順利通往出口的路徑,如果存在,就返回這條路徑;如果不存在,就返回不存在這種路徑。本例中就是要在二維數(shù)組m中找一條從m[0][3]到m[7][9]全部為0的路徑。
通過對該問題的梳理,用數(shù)學思維可以把該問題轉(zhuǎn)變?yōu)槔鲜笤谝粋€10×10的迷宮中行走,每走一步有兩種結(jié)果:碰到墻返回,或找到正確的路。在這個過程中,學生將該問題用數(shù)學的方式表述出來,再進一步化抽象為具體,間接地訓練學生的數(shù)學思維。
3.3? 問題分解:培養(yǎng)分解思維、工程思維
有了數(shù)學模型之后,就要考慮怎么去解決問題,也就是將老鼠走迷宮分解成小問題。在10×10的迷宮中,老鼠在0代表的小格子里可以選擇向上、下、左、右四個相鄰的格子走,因此可以將10×10迷宮再分解成3×3的迷宮進行簡化分析,進而得出整個迷宮的情況,如圖5所示。
老鼠在每一個格子上的行走情況可以用數(shù)組的形式表示:假設老鼠在m[i][j](0<i<9,0<j<9),與m[i][j]上、下、左、右相鄰的元素分別是m[i-1][j]、m[i+1][j]、m[i][j-1]、m[i][j+1]。只有這些相鄰元素為0時,老鼠才能走過去。
在該過程中,一方面,學生學會將n階迷宮分解成一個個簡單的3階迷宮,從而將復雜問題簡單化,有助于在生活和學習中舉一反三,快速有效地解決問題;另一方面,在分析迷宮的過程中,學生可以畫出迷宮的簡單圖示,想象老鼠走迷宮過程中碰到的墻和路,利用工程結(jié)構(gòu)合理設計迷宮的形狀,進而培養(yǎng)工程思維。
3.4? 設計算法:培養(yǎng)算法思維
要想計算機理解人的想法,就要將問題的解決步驟、方法用計算機能夠理解的方式告訴它,從而讓它按照人的指令執(zhí)行任務。通過前面對問題的數(shù)學建模、問題分解,基本上完成各個模塊的構(gòu)建,接下來最重要的就是如何將各模塊整合到一起完成上述功能,即如何運用Python搭建程序、設計算法。接下來就上面的建模和問題分解進行算法設計。用文字描述該問題的算法如下。
1)輸入i*j個元素到數(shù)組m[]。
2)用1代表墻,0代表路。
3)如果當前位置是0,則表示行走成功,并標記為2,表示此路可行,后面的老鼠只要看到2,就可以大膽前行;如果當前位置為1,則行走失敗,標記為3,表示此路不通,后面的老鼠看見3,就不要往這個方向走。
4)輸出路徑。
設有一個m[10][10]的數(shù)組,將迷宮轉(zhuǎn)化為10×10的小方格矩陣,其中單元格中數(shù)值為1的表示墻,為0的表示路。凡是行走成功的單元格,標記為2;凡是行走失敗的單元格,標記為3。清晰合理的算法構(gòu)建有助于后面程序的編寫,算法流程圖如圖6所示。該程序采用遞歸的方法判斷下一步的行走是否可行,通過重復執(zhí)行指定的算法,將老鼠尋找路徑的問題分解為一個個簡單的子問題來解決。
3.5? 編寫程序:培養(yǎng)編程思維
最后,以Python代碼的形式將算法過程可視化,從而檢驗結(jié)果的正確性。如果結(jié)果錯誤,再返回第二步的數(shù)學建模修改,找到問題所在,進行修改,直至找到正確的解決步驟。用Python語言代碼實現(xiàn),如圖7所示。
從上述這節(jié)迷宮問題的教學實例來看,基于培養(yǎng)學生計算思維的思想來設計整堂課的教學活動,學生能更好地掌握解決問題的一般方法,為以后舉一反三打下基礎(chǔ)。例
如:通過數(shù)學建模的方法將問題數(shù)學化、一般化;通過問題分解的方法對問題進行剖析,將復雜問題分步解決;通過設計算法的方法用算法思維構(gòu)建各模塊;通過編寫程序的方法檢驗結(jié)果的正確性。本案例將計算思維的幾個重要的思維方式融入程序設計,不僅能使學生理解和掌握信息技術(shù)相關(guān)知識與技能,還能培養(yǎng)學生的計算思維。
4? 結(jié)論
“人工智能+教育”已成為教育技術(shù)界的熱點,計算思維作為人工智能的基礎(chǔ)思維,越來越被人們重視。研究和實踐證明:高中信息技術(shù)Python教學有利于學生形成正確的計算思維意識,通過編程案例的理解和書寫掌握計算思維方法,逐步提高計算思維能力。本文選取的“老鼠走迷宮”案例旨在培養(yǎng)學生的高階思維,迷宮圖的分析是把抽象問題轉(zhuǎn)化為數(shù)學問題,老鼠在迷宮內(nèi)尋找出口是搜索算法問題,最后在程序運行過程中用秒表計時的方法得出老鼠在10×10的迷宮中從入口到出口共花費1分15秒的時間,從而驗證程序的準確性。希望該研究能為實際教學提供幫助,進一步提升學生的計算思維,推動信息技術(shù)教育教學改革。
參考文獻
[1]劉向永.普通高中信息技術(shù)課程標準(2017年版)概覽[J].中國信息技術(shù)教育,2018(5):5-6.
[2]王珂,陳剛.算思維評價 概念取向、要素框架與測量方法:以Scratch編程課為例[J].軟件導刊,2020(7):257-261.
[3]曹曉明,安娜.培養(yǎng)計算思維的高中信息技術(shù)校本課程研究[J].現(xiàn)代教育技術(shù),2018(7):106-112.
[4]余燕芳,李藝.基于計算思維的項目式教學課程構(gòu)建與應用研究:以高中信息技術(shù)課程《人工智能初步》為例[J].遠程教育雜志,2020(1):95-103.