楊婷婷
一、計(jì)算思維概述
1.計(jì)算思維理念
2006年,美國(guó)卡內(nèi)基·梅隆大學(xué)的周以真(Jeannette M.Wing)教授,第一次明確提出計(jì)算思維這種思維活動(dòng)。她指出,計(jì)算思維是運(yùn)用計(jì)算機(jī)科學(xué)的基本概念去求解問題、設(shè)計(jì)系統(tǒng)和理解人類行為。她倡導(dǎo),將計(jì)算思維引入基礎(chǔ)教育環(huán)節(jié),因?yàn)橛?jì)算思維目測(cè)將成為讀、寫、算一樣的每個(gè)人必備的認(rèn)知技能。
自計(jì)算思維概念提出之日就受到國(guó)內(nèi)外各領(lǐng)域?qū)<覍W(xué)者的廣泛關(guān)注。近年來計(jì)算思維越來越受到重視,培養(yǎng)學(xué)生計(jì)算思維能力已成為教育研究者和工作者們的共識(shí)。
普通高中信息技術(shù)新課標(biāo)指出,高中信息技術(shù)學(xué)科核心素養(yǎng)由四個(gè)核心要素組成:信息意識(shí)、計(jì)算思維、數(shù)字化學(xué)習(xí)和創(chuàng)新信息社會(huì)責(zé)任。新課標(biāo)明確提出,要通過高中信息技術(shù)課程幫助學(xué)生加強(qiáng)計(jì)算思維培養(yǎng):“鼓勵(lì)學(xué)生在不同的問題情境中,運(yùn)用計(jì)算思維形成解決問題的方案,體驗(yàn)信息技術(shù)行業(yè)實(shí)踐者真實(shí)的工作模式和思考方式。”
2.計(jì)算思維步驟
新課標(biāo)指出,計(jì)算思維是指?jìng)€(gè)體運(yùn)用計(jì)算機(jī)科學(xué)領(lǐng)域的思想方法,在形成問題解決方案的過程中產(chǎn)生的一系列思維活動(dòng)。實(shí)現(xiàn)計(jì)算思維的四個(gè)步驟:第一,問題拆解:面對(duì)一個(gè)問題,需要將數(shù)據(jù)、流程或問題拆解成許多的小問題。第二,模式識(shí)別:尋找問題間的相似處、關(guān)聯(lián)性、趨勢(shì)或規(guī)律。第三,建立抽象化:將問題簡(jiǎn)化,忽略細(xì)節(jié),只關(guān)注重要信息。第四,演算法:建立解決問題的流程或規(guī)則,提供一個(gè)完整的解決方案,同時(shí)能遷移到其他類似問題的解決中。
這樣的思考方式除了能提升工作效率,還能減少錯(cuò)誤的發(fā)生;也可以用在日常生活及所有復(fù)雜的問題上,這也是西方國(guó)家傾全力推廣編程教育的原因。
二、編程教學(xué)定位
“人工智能時(shí)代的必備技能”“編程人未來大有可為”……目前,中小學(xué)線上線下教育中編程教育很火,這不僅有時(shí)代發(fā)展趨勢(shì)的推動(dòng),還有國(guó)家政策的關(guān)注和側(cè)重。我國(guó)包括編程教育在內(nèi)的信息技術(shù)內(nèi)容已納入中小學(xué)相關(guān)課程。
1.新教材對(duì)編程教育的有力推動(dòng)
編程教育屬于成體系的語言教學(xué),知識(shí)體系、語法、算法等具有一定的連續(xù)性,與應(yīng)用軟件的學(xué)習(xí)相比而言較為枯燥。如果沒有成體系的學(xué)習(xí)會(huì)導(dǎo)致高錯(cuò)誤率,從而打擊學(xué)生的積極性。在以往的高中信息技術(shù)課上,教師都是以VB編程語言開展教學(xué),但學(xué)生要想學(xué)得深入和貫通,就很難了。一是因?yàn)槌绦蛟O(shè)計(jì)和算法的內(nèi)容不屬于高考科目的范圍,學(xué)生很難認(rèn)真地去學(xué)。二是因?yàn)槌绦蛟O(shè)計(jì)教學(xué)內(nèi)容和VB編程語言學(xué)習(xí)難度較大,在沒有任何基礎(chǔ)的情況下甚至比數(shù)學(xué)學(xué)科還難,在各高考科目的擠壓下,要求高中生花很多的精力去學(xué)編程不現(xiàn)實(shí),因此學(xué)生只能選擇放棄。
目前,高中信息技術(shù)新教材中Python編程語言的出現(xiàn),正好為師生學(xué)編程找到一條出路。Python編程語法簡(jiǎn)單,對(duì)于初學(xué)者來說很容易入門,且重視算法設(shè)計(jì),弱化了程序語法規(guī)則,使學(xué)習(xí)者能夠?qū)W⒂诮鉀Q問題而不是迷惑于語法結(jié)構(gòu)。Python編程語言常被稱為“可執(zhí)行的偽代碼”,有利于學(xué)生計(jì)算思維的培養(yǎng)。
2.當(dāng)下編程教育推進(jìn)的阻力
目前來講,基于屏幕的編程學(xué)習(xí)是訓(xùn)練計(jì)算思維最簡(jiǎn)單、直接的一個(gè)方法。但是,當(dāng)下師資的匱乏和小初階段編程教學(xué)的空白成為了編程教育推進(jìn)的兩大阻力。
第一,師資匱乏問題。一是普通高中信息技術(shù)教材十幾年沒有大的改變,信息技術(shù)教師長(zhǎng)期與應(yīng)用軟件為主體的教學(xué)打交道。隨著新課標(biāo)的頒布和新教材的實(shí)施,編程教學(xué)被提到了空前重要的位置,大家暫時(shí)還難以適應(yīng)。很多教師自身對(duì)Python編程語言的掌握還不到位,專業(yè)水平亟待提升。所以能否解決編程教育的師資問題,成為順利普及編程教育的一大關(guān)鍵因素。第二,小初階段編程教學(xué)空白問題。這個(gè)問題,在廣大鄉(xiāng)鎮(zhèn)的小學(xué)和初中學(xué)校尤為突出。小初階段雖然開設(shè)了信息技術(shù)課,但是家長(zhǎng)、學(xué)生都不重視,課時(shí)也達(dá)不到要求,編程教學(xué)自然難以為繼。小初階段編程教學(xué)的空白,導(dǎo)致學(xué)生的信息技術(shù)基礎(chǔ)知識(shí)與技能十分匱乏。一旦進(jìn)入高中,猛然間接觸到編程概念時(shí),學(xué)生的思維世界往往受到了極大的困擾和沖擊,在學(xué)習(xí)中難以跳出固定思維模式,學(xué)習(xí)效果不佳。例如:在粵教版高一信息技術(shù)(必修1)《數(shù)據(jù)與計(jì)算》第一章“數(shù)據(jù)與信息”的學(xué)習(xí)中,不少學(xué)生對(duì)進(jìn)制及轉(zhuǎn)換的概念不理解,望而生畏,嚴(yán)重影響了他們后續(xù)學(xué)習(xí)的信心。因此,教師切忌照本宣科,否則很容易讓學(xué)生產(chǎn)生厭學(xué)心理。
三、“智”+“趣”培養(yǎng)計(jì)算思維的編程教學(xué)策略
1.趣味編程問題情境的設(shè)計(jì)
第一,問題情境要有現(xiàn)實(shí)性。在教學(xué)中構(gòu)建的問題情境,應(yīng)符合高中生的生活經(jīng)驗(yàn)。把學(xué)生經(jīng)歷過的生活引入問題情境,再把編程知識(shí)和技能用于日常的學(xué)習(xí)生活。利用學(xué)生熟悉或向往的素材創(chuàng)設(shè)情境,學(xué)起來必然親切、實(shí)在。在Python編程語言的畫圖模塊學(xué)習(xí)中,Turtle的命令和函數(shù),由于數(shù)量較多,學(xué)生難以熟悉和掌握。如果教師創(chuàng)設(shè)問題情境:現(xiàn)實(shí)中如何繪制圖畫?把一系列的函數(shù)分類成“用什么畫”“從哪里開始動(dòng)筆”“怎么畫”“抬起畫筆”“放下畫筆”“繼續(xù)繪制”這種日常繪畫問題,把現(xiàn)實(shí)問題與編程解決相聯(lián)系,遷移、貫通知識(shí),學(xué)生就好理解和應(yīng)用了。恰當(dāng)?shù)木幊探虒W(xué)情境能讓學(xué)生學(xué)習(xí)更加自信。
第二,問題情境要有趣味性。創(chuàng)設(shè)生動(dòng)有趣的情境,從而使學(xué)習(xí)者在愉悅的狀態(tài)下,獲得知識(shí),陶冶情操,提高技能。其可以引導(dǎo)學(xué)生積極、開朗的心態(tài),激發(fā)開放、合作、協(xié)商的行動(dòng)意識(shí),提高學(xué)生的交流、配合、獲取信息的能力。
例如:在粵教版信息技術(shù)教材(必修1)《數(shù)據(jù)與計(jì)算》第四章“程序設(shè)計(jì)基礎(chǔ)”“4.4循環(huán)的應(yīng)用”這一小節(jié)的學(xué)習(xí)中,教師可以設(shè)置一個(gè)特別情境,幫助學(xué)生學(xué)習(xí)代碼和算法。高中生對(duì)網(wǎng)絡(luò)世界充滿了好奇,現(xiàn)實(shí)生活中也會(huì)遇到實(shí)體或網(wǎng)絡(luò)抽獎(jiǎng)游戲。如果模仿抽獎(jiǎng)游戲,讓學(xué)生親自創(chuàng)作設(shè)計(jì)一個(gè)抽獎(jiǎng)小程序,比單純的講代碼和算法更能有效激發(fā)興趣,促使學(xué)生進(jìn)入自主學(xué)習(xí)的編程情境中。
第三,問題情境要合法。在信息技術(shù)課教學(xué)過程中,教師也要注意引導(dǎo)學(xué)生形成正確的世界觀、人生觀和價(jià)值觀。加強(qiáng)學(xué)生在法治意識(shí)、國(guó)家安全、民族團(tuán)結(jié)、生態(tài)文明和海洋權(quán)益等方面的教育,培養(yǎng)良好政治素質(zhì)、道德品質(zhì)和健全人格。例如:在“網(wǎng)絡(luò)抽獎(jiǎng)”案例學(xué)習(xí)中,當(dāng)程序運(yùn)行成功后,可以提問學(xué)生:能否提高中獎(jiǎng)率?引導(dǎo)學(xué)生發(fā)現(xiàn),通過縮小隨機(jī)函數(shù)指定范圍,或通過在編程中“print”隨機(jī)函數(shù)生成結(jié)果,可以輕而易舉地“抽到大獎(jiǎng)”。相反,如果刻意增大隨機(jī)函數(shù)指定范圍,抽獎(jiǎng)幾率無異于是大海撈針。讓學(xué)生切身體會(huì)到通過編程控制網(wǎng)絡(luò)抽獎(jiǎng)結(jié)果易如反掌,從而在生活中對(duì)線上抽獎(jiǎng)要保持謹(jǐn)慎態(tài)度,培養(yǎng)網(wǎng)絡(luò)安全意識(shí)。
2.趣味編程教學(xué)問題的設(shè)計(jì)
在課堂活動(dòng)中,學(xué)生有疑問是正常的,有利于開拓學(xué)習(xí)深度。為了促使學(xué)生將已有知識(shí)與編程設(shè)計(jì)有機(jī)結(jié)合,教師應(yīng)有意識(shí)營(yíng)造問題氛圍,讓學(xué)生產(chǎn)生疑問、發(fā)出疑問?!熬W(wǎng)絡(luò)抽獎(jiǎng)”情境案例在發(fā)布題目要求后,教師要引導(dǎo)學(xué)生重現(xiàn)抽獎(jiǎng)的過程,從而引導(dǎo)學(xué)生找到呈現(xiàn)問題的特點(diǎn),以及解決問題的思路。
問題1:每次猜數(shù)字的過程中,計(jì)算機(jī)程序是否重復(fù)執(zhí)行了特定的步驟?這個(gè)重復(fù)執(zhí)行的特定步驟是什么?問題2:每次猜到正確數(shù)字的次數(shù)是否相同?用for循環(huán)結(jié)構(gòu)是否能夠?qū)崿F(xiàn)猜數(shù)字的游戲?
通過問題1讓學(xué)生明白猜數(shù)字游戲的過程本質(zhì)上是循環(huán),通過問題2明確該猜數(shù)字游戲與上節(jié)課用for循環(huán)的循環(huán)算法問題不同,它的循環(huán)次數(shù)是不確定的,從而引出本節(jié)課的內(nèi)容while循環(huán)。
3.趣味編程教學(xué)情境的實(shí)現(xiàn)
提出學(xué)習(xí)活動(dòng)任務(wù)之后,教師應(yīng)引導(dǎo)學(xué)生通過教材、網(wǎng)絡(luò)、微課等資源開展學(xué)習(xí),讓學(xué)生熟悉數(shù)據(jù)類型、函數(shù)、條件判斷、while循環(huán)等概念,用自然語言描述算法,通過流程圖設(shè)計(jì)算法。在本案例中,學(xué)生在之前課程中已學(xué)習(xí)了Python編程語言的基礎(chǔ)知識(shí)(數(shù)據(jù)類型、輸入輸出),掌握了順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)(for循環(huán))的語法和簡(jiǎn)單用法,稍加提示,能夠結(jié)合本課新知識(shí)(隨機(jī)函數(shù)和while循環(huán))編寫出簡(jiǎn)單的程序框架,實(shí)現(xiàn)特定功能。
本案例中的技術(shù)重點(diǎn)是循環(huán)設(shè)定,給定五次機(jī)會(huì)比較鍵盤輸入值和隨機(jī)函數(shù)生成整數(shù)的大小,編寫程序代碼。先理解循環(huán)如何控制流轉(zhuǎn),再關(guān)注理解while語句本身的細(xì)節(jié)和for語句不一樣的地方。引導(dǎo)學(xué)生及時(shí)運(yùn)行程序進(jìn)行功能測(cè)試,考察程序能否解決情境問題;編制程序運(yùn)行成功后,思考程序能否改進(jìn)和創(chuàng)新。
4.趣味編程教學(xué)情境的評(píng)價(jià)總結(jié)
對(duì)學(xué)生的行為進(jìn)行總結(jié)評(píng)價(jià),對(duì)游戲過程中遇到的問題進(jìn)行分析,最終還是要回歸到本節(jié)課的學(xué)習(xí)任務(wù)中,引導(dǎo)學(xué)生通過學(xué)習(xí)活動(dòng)評(píng)價(jià)單(如表1),結(jié)合教學(xué)目標(biāo)進(jìn)行自評(píng)和互評(píng),合理的培養(yǎng)學(xué)生的計(jì)算意識(shí),激發(fā)學(xué)生的計(jì)算思維。這一部分也很重要,因?yàn)楹芏鄬W(xué)生可能還沉浸在游戲情境中,也有學(xué)生還不知道玩過游戲之后學(xué)到了什么,所以需要教師給予點(diǎn)撥和總結(jié)評(píng)價(jià)。
5.趣味編程教學(xué)情境的拓展運(yùn)用
通過學(xué)習(xí),學(xué)生能否理解編程的作用和意義,是否能夠主動(dòng)地應(yīng)用編程技術(shù)去解決實(shí)際問題?
比如,當(dāng)家里需要添置一臺(tái)筆記本時(shí),學(xué)生一般都能夠想到去線上商城進(jìn)行搜索,逐個(gè)查價(jià)格、查評(píng)論,收集信息。教師可以鼓勵(lì)學(xué)生思考,可否通過編程完成重復(fù)的數(shù)據(jù)統(tǒng)計(jì)工作,解放處理冗余數(shù)據(jù)的雙手;能否更直觀地了解某一款電腦的售后評(píng)價(jià)。教師可以引導(dǎo)學(xué)生用Python編程語言爬取售后評(píng)價(jià),在此基礎(chǔ)上進(jìn)行詞頻分析、畫詞云圖的方式得出結(jié)論,這種數(shù)據(jù)處理和分析是符合解題邏輯的。通過Python編程語言中的字符串、列表以及對(duì)列表的數(shù)據(jù)統(tǒng)計(jì)等編程實(shí)現(xiàn),體現(xiàn)了問題拆解、抽象化、模式識(shí)別等計(jì)算思維的特征。
隨著計(jì)算思維教育的不斷發(fā)展及信息技術(shù)基礎(chǔ)教育的不斷普及和被重視,可以看出,計(jì)算思維能力培養(yǎng)的教育前景是廣闊的。