孫婷婷
(江蘇南京市青云巷小學,江蘇 南京)
【案例背景】
根據(jù)《義務(wù)教育信息科技課程標準(2022年版》的第三學段(5~6年級)中“身邊的算法”要求,義務(wù)教育信息科技教學由傳統(tǒng)的注重技能實操轉(zhuǎn)向更加強調(diào)學生計算思維等核心素養(yǎng)的培養(yǎng)。計算思維是指學生運用計算機科學領(lǐng)域的思想方法,在問題解決過程中涉及的抽象、分解、建模、算法設(shè)計等一系列思維活動。
小學生的計算思維可塑性強,且計算思維是學生必備的基本能力素養(yǎng)之一。Scratch 圖形化編程語言具有操作簡單、畫面生動、積木搭建、模塊豐富等特點,通常用來制作小游戲、動畫、數(shù)學模型等。這不僅大大提高了學生的邏輯思維,還實現(xiàn)了算法應(yīng)用和思維的表達。通過案例研究分析和編程教學實踐,教師可以培養(yǎng)學生的計算思維。
【案例分析】
一、教材分析
本課是蘇科版小學信息科技五年級圖形化編程單元第10 課“小貓出題”。通過小貓隨機出兩個數(shù)順序相加,舉一反三,再提出減、乘和除計算,并拓展出多位數(shù)累加,引出高效的高斯算法。本課旨在讓學生借助真實案例,體驗問題解決,理解算法是解決某個特定任務(wù)的方法,是一系列解決問題的清晰指令。在體驗過程中,學生能用自然語言、流程圖等方式描述程序,能在分析程序的過程中進一步理解算法規(guī)則。通過完善和調(diào)試程序,驗證解決同一問題時不同算法所執(zhí)行步驟的次數(shù)及時間效率的高低,從而學會選擇并優(yōu)化算法。
二、學情分析
本課的教學對象是五年級的學生,他們具有較好的信息操作基礎(chǔ),已經(jīng)學習了Scratch 教學單元的大部分模塊,經(jīng)歷了一些項目的實踐,掌握了基本的編程方法。他們具有初步的算法意識,但還未形成算法思維,他們的認知發(fā)展正處于從具象思維到抽象思維的過渡時期。在生活或數(shù)學學科的學習過程中,他們已經(jīng)了解并掌握了一些算法描述的方法和技巧,但是還沒有真正系統(tǒng)全面地認識和運用算法,同時缺少對算法的具體認識以及綜合分析能力,用計算機領(lǐng)域的思維去解決實際問題的能力并不強。所以在教學時,教師要把握這一階段學生的年齡特征和心智模式,注重具象內(nèi)容和抽象內(nèi)容的關(guān)系和平衡。
三、教法分析
從創(chuàng)設(shè)情境、新知學習、歸納梳理、拓展提升、遷移應(yīng)用五個方面分析學生計算思維培養(yǎng)的設(shè)計策略。根據(jù)特定問題,可以使用不同解決方法,并根據(jù)實際問題需求,優(yōu)化解決方法,選擇合適算法。
【案例描述】
一、創(chuàng)設(shè)情境,引出問題
新課標倡導(dǎo)基于真實問題情境開展項目式教學,借助問題驅(qū)動,結(jié)合流程圖,逆向推導(dǎo),開展教與學活動。
活動1:小貓出題
問題描述:要求在舞臺上出示1~10 之間的兩個自然數(shù)相加,這兩個加數(shù)是隨機產(chǎn)生的,輸入答案后,程序會自動判斷答案是否正確,怎么實現(xiàn)?
問題分析:首先,要實現(xiàn)隨機兩個加數(shù),需要用到變量存儲和隨機顯示這些控件;其次,變量這個概念是學生之前沒有接觸過的,如何解釋變量概念并讓學生能夠理解;最后,自動判斷如何實現(xiàn)。
小結(jié):借助流程圖,學生用自然語言描述小貓出題的過程:新建三個變量分別是和、加數(shù)1 和加數(shù)2;設(shè)置和=加數(shù)1+加數(shù)2;開始判斷輸入的值,如果輸入的值即和=回答,那么外觀顯示答對了,否則顯示錯了。這種解決問題的方法,我們稱之為順序執(zhí)行,也叫順序法。
提問:請列舉小貓解決其他計算問題的事例。
設(shè)計意圖:本課內(nèi)容以游戲的形式展開,課堂氣氛活躍,學生能夠快速集中注意力。在問題解決中,流程圖是設(shè)計作品的基礎(chǔ)和依據(jù),自然引出本課題——小貓出題。通過追問和列舉流程圖過程,學生明白了順序執(zhí)行算法在學習中的應(yīng)用,從而引入后續(xù)的教學。
二、新知學習,拆解腳本
通過“小貓出題”活動,學生對變量概念有了初步的認識,引出“數(shù)據(jù)”模塊。通過腳本搭建,將理論分析轉(zhuǎn)化為實踐操作,最后通過驗證,不斷調(diào)試腳本,優(yōu)化思維過程。通過Scratch 語言實現(xiàn)順序算法,體現(xiàn)計算思維。
活動2:新建變量、設(shè)置參數(shù)和回答
問題描述:新建變量在“數(shù)據(jù)”模塊中,設(shè)置參數(shù)在“數(shù)字和邏輯運算”模塊,回答在“偵測”模塊,需要注意些什么?
要求:參閱書本,小組討論完成。
新建三個變量,并嘗試命名。
問題分析:順序算法分析,根據(jù)問題描述如下。
①變量要關(guān)注命名過程。
②“數(shù)字和邏輯運算模塊”中的四個模塊可以對變量和數(shù)值進行計算。
③判斷腳本設(shè)置,借助邏輯運算。
設(shè)計意圖:將“小貓出題”腳本作為范例講解,闡述流程簡單且學生容易理解。繼而拋出一個與之類似的“兩個數(shù)的乘法運算”,通過知識遷移,讓學生嘗試模仿,搭建腳本,體驗順序結(jié)構(gòu),結(jié)合判斷語句解決問題過程,這樣便能迅速調(diào)動學生探索的欲望,強化其對邏輯算法的理解,讓學生在模仿中建構(gòu)Scratch 編程。
三、知識梳理,理解算法
通過上述兩個活動,筆者總結(jié)出Scratch 語言能夠高效解決數(shù)學計算問題。以此類推,其他的簡單算式也可以通過加減乘除來表達,并可以通過后續(xù)的循環(huán)結(jié)構(gòu),設(shè)計出多道算式的解法。
小結(jié):隨機出題解決問題的考慮因素:(1)三點關(guān)鍵:對象、范圍和判斷條件。(2)算法特征:結(jié)果=回答,驗證正確。(3)程序結(jié)構(gòu):循環(huán)判斷結(jié)構(gòu)。通過循環(huán)多次出題,如可以設(shè)計小貓出五道題。
順序結(jié)構(gòu),外加循環(huán)并結(jié)合判斷控件可以解決很多有趣的數(shù)學問題。
設(shè)計意圖:梳理學生已經(jīng)建構(gòu)好的框架流程,關(guān)注算法的對象、范圍,確定合適的算法,并為后面的多個算法提供基礎(chǔ),幫助學生形成編程解決問題的思想和方法。
四、拓展提升,應(yīng)用算法
活動3:計算1+2+3+…+100=?
問題描述:這是一道數(shù)學思維題,從1 累加到100求和,用Scratch 編程方法設(shè)計程序腳本。這種相較之前的出題,稍有區(qū)別。如果用硬算的方法,對于學生比較復(fù)雜,但是對于計算機卻是非常容易的。
問題分析:(1)涉及的數(shù)字范圍?(2)一共累加多少次?如何實現(xiàn)重復(fù)?(循環(huán))(3)公式表達?
參考計算過程:
第1 步:0+1=1;
第2 步:1+2=3;
第3 步:3+3=6;
......
第100 步:4950+100=5050。
從上述的計算過程,我們可以看出,其實每一步計算的數(shù)字變化和計算方式都是有規(guī)律的,這就非常適合使用循環(huán)結(jié)構(gòu)來表達。
如果用Sn表示從1 累加到100 的自然數(shù)的和,用i表示1 到100 變化的加數(shù),那么上述計算過程的規(guī)律就是:每一步都是用上一步累加的和Sn加上每一步變化的加數(shù)i。這個計算規(guī)律可用公式Sn=Sn+i 來表示。(這里“=”是賦值的意思)
驗證過程:(1)新建變量Sn和i;(2)將Sn和i 的初始值分別設(shè)定為0 和1;(3)將Sn設(shè)定為上一次累加的和Sn加上本次變化的加數(shù)i,每重復(fù)執(zhí)行一次,就將循環(huán)變量i 增加1,共重復(fù)執(zhí)行100 次;(4)添加“說….2秒”和“停止”這兩個控件。(5)單擊綠旗執(zhí)行所有腳本。
設(shè)計意圖:通過前面案例的學習,學生已經(jīng)熟練掌握了兩個隨機加數(shù)的腳本制作。這里將設(shè)計多個確定加數(shù)運算作為對象,不僅可以拓展鞏固前面的教學內(nèi)容,還可為下一個簡便高斯算法活動做鋪墊。通過重復(fù)執(zhí)行100 次循環(huán)的引入,學生掌握了多對象加法的算法編程結(jié)構(gòu)。
五、舉一反三,遷移應(yīng)用
活動4:計算1+2+3+…+99+100=?高斯算法
問題描述:在一次數(shù)學課上,教師同樣提出了這個數(shù)學問題:1+2+3+…+99+100=?小高斯并沒有運用依次累加的方法,而是另辟蹊徑,他是全班唯一一個又快又準地答對問題的同學。
問題分析:(1)涉及的數(shù)字范圍?(2)如何組合?(3)公式表達?
從上述的計算過程,我們可以看出,每組圓球上下相加都是101 個,這就非常適合用公式來表達。
同樣用Sn表示從1 累加到100 的自然數(shù)的和,用首項表示1 到100 變化的第一個自然數(shù),末項表示最后一位自然數(shù),項數(shù)代表從首項到末項一共有多少個自然數(shù)。上述計算過程的規(guī)律就是:用首項加末項的和乘以項數(shù),最后再除以2。這個計算規(guī)律可用公式Sn=(首項+末項)×項數(shù)/2 來表示。
驗證過程:(1)新建變量Sn、首項、末項和項數(shù);(2)將Sn、首項、末項和項數(shù)的初始值均設(shè)定為0;(3)將Sn設(shè)定為上一次累加的和Sn加上本次變化的加數(shù)i,每重復(fù)執(zhí)行一次;(4)通過偵測模塊里面的“詢問……并等待”控件,將首項、末項和項數(shù)三個變量均設(shè)定為回答。(5)借助數(shù)字和邏輯運算模塊將Sn公式進行表達。(6)外觀模塊顯示輸出結(jié)果。
思考:上述腳本中,程序腳本需要執(zhí)行幾次?相較于之前的逐個累加算法,高斯算法的優(yōu)點是什么?
高斯算法只需要執(zhí)行1 次,從時間復(fù)雜度和空間復(fù)雜度綜合考慮算法的效率,有效減少了計算機的執(zhí)行次數(shù),縮小了累加范圍,實現(xiàn)了算法方案的最優(yōu)化。
小結(jié):通過對比,我們發(fā)現(xiàn),同一個問題可以從不同的角度思考解決問題的過程。高斯算法提升了算法執(zhí)行效率,因此在解決實際問題時應(yīng)用更為廣泛。
設(shè)計意圖:通過經(jīng)典數(shù)學題“高斯算法”案例,進一步鞏固本課教學目標,學生基本掌握了運用Scratch 編程解決生活中的數(shù)學問題,并能獨立編寫完整腳本。同時,通過比較兩種算法方案,引出算法優(yōu)化的思想,提高計算機的執(zhí)行效率,讓學生體會算法優(yōu)化的必要性,培養(yǎng)學生從多角度分析問題、驗證問題的能力,形成高階思維。
拓展提問:你聽過《九章算術(shù)》典籍嗎?里面有很多有趣的算法,你可以嘗試結(jié)合今天所學,運用Scratch 編程設(shè)計。
設(shè)計意圖:通過從中華典籍中拋出問題,拓展遷移算法的更多應(yīng)用,總結(jié)算法的思想,將算法作為學習的要點,讓學生養(yǎng)成算法思維,形成解決問題的思路。
【案例反思】
一、明晰課標要求,精準設(shè)計案例
算法是學生計算思維的核心要素之一,新課標要求以學生身邊的算法為載體,從生活實際出發(fā),運用多種方法解決問題?!靶∝埑鲱}”考查的是隨機列出兩位數(shù)的加法,相對比較簡單,學生基本能夠通過流程圖講解,搭建過程腳本,拓展到經(jīng)典高斯算法,在由淺入深的一個個活動和問題鏈中感受算法的概念與特征。教師要運用合適的描述方法和控制結(jié)構(gòu)幫助學生理解,體驗使用圖形化編程實現(xiàn)算法程序設(shè)計的方法,感受算法效率的重要性,在不斷的調(diào)試驗證中感受成功的喜悅。所以,教師前期的精準教學設(shè)計和提前預(yù)設(shè)對學生的計算思維培養(yǎng)和邏輯性養(yǎng)成有重要意義。教學設(shè)計不僅要在內(nèi)容上凸顯新課標的要求,更要在理念上彰顯新課標的精神。如在順序算法的理解基礎(chǔ)上,進行累加算法和衍生出的高斯算法,體現(xiàn)了新課標強調(diào)的“科”與“技”并重的理念,以及技術(shù)定位即驗證、模擬,體現(xiàn)高階思維和深度學習。
二、分析教學內(nèi)容,有效開展活動
新課標中強調(diào):“學生能進一步判斷解決同一問題的不同算法在時間效率上的高低。”朱彩蘭博士曾公開講座表示:新課標的編程活動,一方面要引導(dǎo)學生將初步獲得的理論應(yīng)用于實踐,檢驗、驗證算法的執(zhí)行可行性和執(zhí)行時間效率;另一方面要借助實踐活動加深學生印象,促進學生理解,實現(xiàn)認識與實踐的雙重循環(huán)。本節(jié)課筆者設(shè)計的四個活動均圍繞教學目標展開,層層遞進、系列關(guān)聯(lián)、邏輯性強、逐步優(yōu)化,引導(dǎo)學生經(jīng)歷算法解決問題的過程,推動了學生算法知識的學習,思維品質(zhì)得到提升。教學活動還要體現(xiàn)探究性、開放性、實踐性和可行性,使學生能夠閱讀理解,修改運行程序等,并保證學生至少掌握和正確運用一種算法。學生在體驗中具備了獨立思考的機會,課堂中適當安排小組協(xié)作,引導(dǎo)學生進行探究和交流。在全班互動的基礎(chǔ)上,靈活進行學生自評、互評和師評,提高班級整體參與度,進而提高課堂效率。
三、搭建學習支架,革新思維過程
在圖形化教學編程中,筆者結(jié)合學生反饋與課堂表現(xiàn),提供個性化的助學支架。借助流程圖、微視頻和程序腳本等可視化媒體資源,幫助學生深層次體驗算法解決問題的全過程。通過對比不同的算法方案,學生能充分體會算法優(yōu)化的意義,從而全面提升學生的計算思維能力。
新課標強調(diào),在信息科技教學中,教學內(nèi)容要滲透計算思維,而算法作為核心要素之一,對學生的重要性不言而喻。聚焦小學生計算思維素養(yǎng)培養(yǎng),將知識建構(gòu)、技能培養(yǎng)與思維發(fā)展融入教與學全過程,還需要我們更加積極探索有效的策略方法。而后筆者也將繼續(xù)遵循學生的身心發(fā)展規(guī)律,甄選主題內(nèi)容和基礎(chǔ)知識,細化育人目標,優(yōu)化課程組織形式,全面提高學生的信息素養(yǎng)。