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