計算思維素養(yǎng)下程序設(shè)計項目式教學(xué)探索與實踐_第1頁
計算思維素養(yǎng)下程序設(shè)計項目式教學(xué)探索與實踐_第2頁
計算思維素養(yǎng)下程序設(shè)計項目式教學(xué)探索與實踐_第3頁
計算思維素養(yǎng)下程序設(shè)計項目式教學(xué)探索與實踐_第4頁
計算思維素養(yǎng)下程序設(shè)計項目式教學(xué)探索與實踐_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

計算思維素養(yǎng)下程序設(shè)計項目式教學(xué)探索與實踐●計算思維與項目式教學(xué)1.計算思維周以真教授認(rèn)為,計算思維是一種以計算科學(xué)為核心,運用計算科學(xué)的基本概念進(jìn)行問題求解、系統(tǒng)設(shè)計和行為理解的,涵蓋計算機(jī)科學(xué)之廣度的一系列思維活動。2.項目式教學(xué)項目式教學(xué)是隨著《課標(biāo)》的頒布而逐漸成為熱點的教學(xué)模式,通常圍繞學(xué)生生活、學(xué)習(xí)實際選取合適的項目,采用“自頂而下,逐步細(xì)化”的方法,即將完整的大項目分解成若干個小項目,再將每個小項目逐步細(xì)化、分解成一系列具體的可以實現(xiàn)的小任務(wù)。教師負(fù)責(zé)創(chuàng)設(shè)這樣的真實的項目情境,在項目實施過程中以學(xué)生為主體,全程參與項目的分析、管理、求解、完善、評價等。3.基于計算思維的項目式教學(xué)基于計算思維的項目式教學(xué)可以理解為一種滲透式教學(xué),它將計算思維這一學(xué)科核心素養(yǎng)滲透、融入到項目實施的每個環(huán)節(jié),在計算思維的引導(dǎo)下推進(jìn)課堂項目進(jìn)度。它兼顧思維訓(xùn)練和課堂教學(xué),項目隨著思維的擴(kuò)散而推進(jìn),思維隨著項目的完善而進(jìn)階,最終使能力在思維的訓(xùn)練下得以提升,從而把信息技術(shù)課堂教學(xué)從重技術(shù)層面提升到重思維素養(yǎng)層面?!裼嬎闼季S素養(yǎng)下程序設(shè)計項目式教學(xué)探索與實踐基于計算思維能力提升的程序設(shè)計項目式教學(xué)是一個較為復(fù)雜的工程。本文圍繞“解決火柴棒擺數(shù)字問題”項目,開展課堂教學(xué)。該部分屬于《信息技術(shù)必修1數(shù)據(jù)與計算》中的2.4節(jié)“可以復(fù)用的代碼”,旨在通過函數(shù)和模塊的方法,實現(xiàn)代碼的復(fù)用。1.計算思維環(huán)境——創(chuàng)設(shè)計算思維不是靠教師課堂講解其概念、知識及方法就能形成的,它需要教師為之創(chuàng)設(shè)特定的內(nèi)、外部環(huán)境。本課創(chuàng)設(shè)了“解決火柴棒擺數(shù)字問題”的Python語言程序設(shè)計的項目環(huán)境,讓學(xué)生在其環(huán)境中迸發(fā)思維碰撞的火花。題目如下:已知0~9這十個數(shù),分別由若干根火柴棒擺放而成,如下頁圖1所示。問題為:若給你6根火柴棒,請列出所有能擺出的自然數(shù),要求6根火柴正好用完。根據(jù)項目式教學(xué)中“自頂而下,逐步細(xì)化”的方法,可以對題目進(jìn)行分解,把它分解成以下幾個子問題:①每一個數(shù)字分別需要多少根火柴棒?②列舉5個能用6根火柴棒擺出的數(shù)字?③用6根火柴棒能擺出的最大、最小數(shù)分別是多少?④一位數(shù)、兩位數(shù)、三位數(shù)所需要的火柴數(shù)量分別怎樣計算?依次解決這些子問題,將有助于學(xué)生找到解題思路和方法。2.計算思維構(gòu)建——求解編程的核心是算法設(shè)計,算法即解決問題的方法和步驟,找到算法之后,還需要準(zhǔn)確地將它通過自然語言或者流程圖的方式描述出來,然后進(jìn)行程序結(jié)構(gòu)分析、代碼編寫,最后進(jìn)行調(diào)試、迭代、完善,在問題求解過程中構(gòu)建學(xué)生的計算思維。如何計算一個數(shù)需要多少根火柴棒呢?即將這個數(shù)每個位上的數(shù)字所需的火柴棒數(shù)相加。那么,如何加呢?首先,讓學(xué)生拆解數(shù)字如4,5,6,得出需要的火柴數(shù)為15根;其次,反推,如果給你15根火柴,能擺出哪些數(shù)字?通過拆解和擺放這一正一反的逆過程,讓學(xué)生熟悉項目題意。然后根據(jù)分解的子問題,從已知條件入手,可以創(chuàng)建一個列表,即f=[6,2,5,5,4,5,6,3,7,6],表達(dá)每個數(shù)字分別需要的火柴數(shù);嘗試擺出幾個數(shù)字,如0,6,14,111等符合要求的數(shù)字;找到6根火柴棒能擺出的最小數(shù)0和最大數(shù)111。畫出流程圖,如圖2所示。最后我們發(fā)現(xiàn),6根火柴棒能擺出的數(shù)是[0,111]區(qū)間的部分一位數(shù)、兩位數(shù)和三位數(shù),那么將這三種類型分別找出來問題就迎刃而解了。顯然,根據(jù)列表索引及元素之間的對應(yīng)關(guān)系(如下頁表1),當(dāng)0≤n<10時,s=f[n],就解決了一位數(shù)問題。那么兩位數(shù)呢?兩位數(shù)是由十位(sw)和個位(gw)組成,思路就變成了分別取出兩位數(shù)中的十位和個位上的數(shù),通過應(yīng)用整除(//)和取模(%),可得出當(dāng)10≤n<100時,gw=n%10,sw=n//10,s=f[gw]+f[sw],s即為擺出兩位數(shù)中個位、十位上對應(yīng)的數(shù)分別需要的火柴棒數(shù)之和。同理可類推出三位數(shù),即當(dāng)100≤n<1000時,gw=n%10,sw=n//10%10,bw=n//100,s=f[gw]+f[sw]+f[bw],如下頁表2所示。三種情況合在一起,即通過if多分支語句判斷三種情況,完成一個自定義match_num(n)的函數(shù),然后通過主程序在range(112)中判斷match_num(n)==6,即可完成火柴棒擺放數(shù)字問題。3.計算思維進(jìn)階——轉(zhuǎn)變圍繞“解決火柴棒擺數(shù)字問題”的項目,筆者對項目進(jìn)行升階,把火柴數(shù)由6根改為10根,請列出所有能擺出的自然數(shù),要求10根火柴正好用完。此時會發(fā)現(xiàn),按照原來的解題思路,可以得出10根火柴能擺出的最大數(shù)是11111,此時就會涉及四位數(shù)和五位數(shù)的每位的取數(shù)問題,可以想象一個五位數(shù)將變成s=f[gw]+f[sw]+f[bw]f[qw]+f[ww],程序?qū)⒆兊梅浅H哂鄰?fù)雜。顯然,當(dāng)火柴棒數(shù)量發(fā)生變化時,原來的算法程序已經(jīng)不再適用,思維也應(yīng)隨之產(chǎn)生變化,那么,是否可以設(shè)計一個不管火柴棒怎么變,都可以適用的算法呢?計算一個數(shù)所需的火柴棒數(shù),即計算這個數(shù)的每個位上的數(shù)所需的火柴棒數(shù)之和,可以繼續(xù)應(yīng)用取模(%)和整除(//)的原理,將這個數(shù)除以10取模(n%10),求得個位數(shù);然后將這個個位數(shù)所需的火柴棒數(shù)累加;接著去掉個位數(shù),即將這個數(shù)對10取整(n//10);重復(fù)以上步驟直到這個數(shù)為0。以數(shù)字12345為例,如表3所示,通過while語句循環(huán)5次,便可完成這個五位數(shù)每位的取數(shù),然后判斷這些位上的數(shù)所需的火柴棒數(shù)之和是否等于10,便可完成問題的求解,而且似乎不再受火柴棒數(shù)量的牽制。這種方法可行嗎?可通過流程圖來驗證,如上頁圖3所示。4.計算思維回歸——嚴(yán)選算法的改變,是計算思維變化的結(jié)果,兩者互為因果關(guān)系。嚴(yán)謹(jǐn)?shù)乃季S和算法設(shè)計,是程序編寫的前提。再次圍繞“解決火柴棒擺數(shù)字問題”,把火柴數(shù)由剛才的10根改回6根,以驗證程序的嚴(yán)謹(jǐn)性。通過修改程序、調(diào)試運行,可以發(fā)現(xiàn)10根火柴棒擺數(shù)字完全正確的程序,火柴棒改回6根后,運行結(jié)果少了一個數(shù)0。此時,思維再次回歸到剛才的算法設(shè)計上,重新思考算法的嚴(yán)謹(jǐn)性,不難發(fā)現(xiàn)上述算法中while循環(huán)語句的前提是n>0,即忽略了考慮n=0的問題,而10根火柴不可能擺出0這個數(shù),故而在10根火柴棒擺數(shù)字沒有出現(xiàn)問題,在改回6根后卻出現(xiàn)了問題。改變思維,完善算法,堵住0這個漏洞,通過添加一個if判斷分支,即當(dāng)n=0時,s=f[0],否則s=0,便可達(dá)到程序的優(yōu)化。圍繞“解決火柴棒擺數(shù)字問題”的項目,解題的終點是擺出每個符合要求的數(shù)。選擇if分支結(jié)構(gòu)語句解題,思路清晰,便于理解,但對于數(shù)據(jù)量大、程序冗長時卻不相適應(yīng);而選擇while循環(huán)結(jié)構(gòu)語句解題,顯然更適合復(fù)雜的情況,但需要前瞻的大局觀和縝密的計算思維,這也是程序算法設(shè)計的精髓。5.計算思維升華——共享在互聯(lián)網(wǎng)時代,信息共享已經(jīng)成為一種常態(tài)。自己編寫的程序代碼也可以幫到其他人,如把自己編寫的“火柴棒擺數(shù)字問題”的代碼成果共享給其他人。那么如何把自己的代碼共享給別人呢?筆者展示了一個近似火柴棒擺數(shù)字問題的主程序的簡短程序,運行后卻能得到相同的結(jié)果,而且任意修改火柴棒數(shù)量,都能運行出正確的結(jié)果,如上頁圖4所示。這里的謎出現(xiàn)在程序開頭的第一句“importZYH”,ZYH是筆者姓名的首字母。有學(xué)生思維敏捷,也用自己的名字給程序加了一句,但卻沒有出現(xiàn)想要的結(jié)果,頓時陷入疑惑。解開ZYH這個謎團(tuán),便能化解學(xué)生的疑惑。ZYH是筆者自己命名的模塊名,“importZYH”就是導(dǎo)入ZYH這個模塊。其實它的本質(zhì)是把自己編寫的程序代碼封裝進(jìn)去,需要用的時候首先利用import導(dǎo)入模塊,然后調(diào)用模塊中的函數(shù),如要實現(xiàn)火柴棒擺數(shù)字問題,便可通過ZYH.match_num(),調(diào)用ZYH模塊中自定義函數(shù)的matchnum()。同時,也可以把其他自定義的函數(shù)一起封裝進(jìn)去,ZYH.*即可調(diào)用該模塊下任意函數(shù)。打開展示ZYH模塊的內(nèi)容,如上頁圖5所示。最后,把封裝好的模塊,構(gòu)建發(fā)布文件,以嶄新的維度,實現(xiàn)思維的升華,完成成果共享。伴隨著大數(shù)據(jù)、人工智能等技術(shù)的飛速發(fā)展,計算思維為學(xué)生打開了看世界的新視角,提供了解決問題的新思路,它也是今后適應(yīng)社會的關(guān)鍵能力。教育是慢的藝術(shù),學(xué)生計算思維的形成不是一蹴而就的,它需要在教學(xué)實踐中,不斷地滲透、培養(yǎng)。探索在項目式教學(xué)過程中滲透、培養(yǎng)學(xué)生的計算思維素養(yǎng),不僅使思維訓(xùn)練有了具體的依托,而且豐富了項目式教學(xué)的內(nèi)涵。尤其是在程序設(shè)計項目式教學(xué)中,從實際問題出發(fā),分析問題,從形成抽象到簡單數(shù)據(jù)模型,從算法設(shè)計到程序編寫,從代碼調(diào)試到優(yōu)化完善程序,整個過程都伴隨著思維的變化與挑戰(zhàn),有助于不斷訓(xùn)練和提升學(xué)生的計算思維,使其養(yǎng)成良好的思維習(xí)慣,也為項目式教學(xué)從思維方法的高度培養(yǎng)學(xué)生做了有益嘗試。[1]楊簡云.基于計算思維的項目教學(xué)法在高中信息技術(shù)教學(xué)中的實踐[J].課程改革與教學(xué)研究,2020(05):35-38+44.[2]薛磊,孫玉強(qiáng),顧曉清.基于計算思維的項

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論