?

“身邊的算法”教學實施策略探究

2024-04-09 11:39佘友軍
中小學信息技術教育 2024年3期
關鍵詞:計算思維跨學科

佘友軍

【摘 要】《義務教育信息科技課程標準(2022年版)》提倡以身邊的算法問題為載體開展算法教學,培養學生用算法解決問題的能力。本研究嘗試將編寫可執行的流程圖融入算法教學,在掌握算法的同時確保了學生的實踐操作,在觀察流程圖動態走向的過程中提升計算思維,為新課標理念下信息科技算法教學提供新的實踐樣態。

【關鍵詞】算法教學;跨學科;計算思維;思維可視

【中圖分類號】G434? ?【文獻標識碼】A

【論文編號】1671-7384(2024)02、03-082-03

目前,在中小學開展算法教學,培養計算思維,存在著兩個極端現象:一個是反對削弱編程地位,他們認為編程是落實課程標準中計算思維和數字化學習與創新的有效載體,編程是數字時代的基石,學生理解編程,能更好地掌握現有的數字技術;另一個是重視算法教學,將教學的重心由編寫程序轉變為設計算法,課堂教學中重點關注算法的描述,由此帶來的問題是編寫程序或者體驗程序的時間不夠,學生缺少足夠的時間驗證算法是否正確,大大降低了學生學習算法的熱情。第一種現象的編程學習脫離了算法,是一種低效的學習。新的更加簡潔、更加高效、執行性能更好的語言在不斷出現,讓學生掌握特定語言的語法不應當成為教育的核心目標。算法是解決問題的核心,關注算法將注意力集中在解決問題本身[1]。掌握了解決問題的思維,對學習任何一門語言都有幫助。但同時學生的實踐操作要得到保障,驗證算法是否正確,并進行算法的優化與迭代,是思維活動中重要的一環。

“身邊的算法”教學策略探討

基于上面的分析,筆者引入Flowgorithm進行可運行的流程圖教學,確保了計算思維的提升,并保障了學生的操作時間,取得較好的實踐效果。在教學這個模塊時,教師從學生已有的生活經驗中,尋找運用算法的例子,進行抽象和概括,讓學生掌握基于流程圖或者自然語言描述算法的方法。在應用環節,教師創設學生感興趣的情境,讓學生使用手繪流程圖將解決問題的思維進行可視化;利用數字工具編寫流程圖的形式,對思維的過程進行可視化的驗證[2]。教學過程中,注重從真實生活中提取算法問題,讓學生經歷問題抽象、分解、構建解決問題的模型,通過手工繪制解決問題的流程圖,將解決問題的思維活動顯性化[3];在學生熟悉算法描述方式的基礎上,開展跨學科的項目學習,利用數字化工具編寫流程圖并加以執行驗證,無須編程即可實現數學問題的自動化求解[4]。教學實踐重在思維過程的可視,將教學的重點從程序編寫轉移到流程圖的設計,降低了學生的認知負荷,有助于學生了解算法在解決問題過程中的作用,領會算法的價值;有助于學生總結解決問題的方法,并將其遷移到其他問題求解中,有效促進學生計算思維的發展[5]。

1.結合生活案例,了解算法的基本控制結構

“身邊的算法”模塊,“算法”確定了學習的內容和學習的最終目標,“身邊”明確了案例的選擇范圍,讓學生借助學習與生活中的實例,體驗常見的算法結構,初步理解算法是可執行的解決問題的步驟。五年級的學生正處于抽象思維發展的起步階段,教師選擇學生熟悉的內容,學習算法的描述方式、常見的結構,能讓學生盡快形成認知關聯,有效激發學生學習的主動性,避免了枯燥的概念講解教學。這部分內容的學習,使學生對算法的認識從感性上升到理性,有效建構算法的概念。

如洗衣機洗衣服的步驟一般有:浸泡、洗滌、漂洗、脫水四個步驟,這四個步驟就組成一個順序結構;再比如,通過猜數字游戲理解分支結構,通過紅綠燈的信號控制理解循環結構。這些源自生活的鮮活的案例,讓學生初步了解流程圖圖示,掌握流程圖的常見結構。

2.手繪流程圖解決生活問題,促進思維可視化

學生的思維活動、思維過程往往是不可見的。在學生掌握了算法描述的基本結構后,教師可以讓學生嘗試繪制算法,解決一些簡單的生活問題,以流程圖的形式將思維可視化呈現。思維可視化是將原本不可見的思維路徑、思維過程,以思維導圖、流程圖等形式呈現出來。國內研究學者充分探討了思維可視化對教師教學和學生認知的影響,華東師范大學劉濯源研究員較早開展了思維可視化技術與學科整合的理論和實踐研究, 提出了“把教學關注點從‘知識轉移到‘思維, 從而持續提升學生的思維能力, 實現教學效能的倍增”的理論。井岡山大學外國語學院許燕討論了思維可視化工具支持學習的優勢和應用策略, 提出思維可視化工具對學習者提高理解能力和記憶能力, 發展邏輯思維和創造性思維有著較大幫助。

思維可視化的過程,是學生知識再加工的過程。將思維可視化運用到學科教學中,有利于學生主動地建構知識系統,實現零散知識系統化、隱性思維顯性化、解題規律模型化,學生的思維能力能得到有效的訓練[6]。

3.編寫算法實現數學問題自動求解,使用流程圖驗證思維過程

計算思維代表了一系列解決問題的技能,它能讓學生真正參與學習,參與有價值的學習,并超越信息科技課程,擴展到更廣泛的內容領域??鐚W科學習要求學生跨課程靈活地運用概念,研究表明,學生在多種環境和跨學科中學習的知識比在單一環境中更有可能實現知識的遷移。

數學學習是學生生活中的重要部分,因此將數學問題的自動求解作為提升學生計算思維的重要學習項目。這個環節采用數字化的流程圖編寫軟件Flowgorithm開展學習活動,將學生的思維活動顯現化。Flowgorithm是一種可以繪制流程圖并可以執行驗證的軟件,相比于圖形化編程軟件,Flowgorithm更符合新課標的要求,更適合在教學中使用。

Flowgorithm由flow(流程)和algorithm(算法)兩個詞組成。與圖形化編程軟件、代碼編程軟件側重編程不同,Flowgorithm側重算法設計。Flowgorithm簡單易用,不需要拖拽組件,通過在“開始”和“結束”之間增加輸入、輸出、分支、循環等結構完成算法設計。學習者通過設計流程圖,將思維過程可視化。作為一款流程圖軟件,Flowgorithm提供了多種常見的流程圖例,降低了設計流程圖的難度。與普通流程圖繪制軟件不同,Flowgorithm中繪制的流程圖是可以執行的,學生可以運行流程圖,觀看流程圖執行的動態走向,驗證算法是否正確。當算法執行出錯,學生可以了解自己出錯的位置和原因,并從中吸取教訓,從而提升解決問題的能力。這個過程對學生理解算法非常重要。通過反復調試和觀看算法執行的走向,學生的思路逐步清晰,邏輯思維能力得以提升。除此之外,Flowgorithm還能將流程圖轉變為超過25種主流的編程語言,如Python , C++, C#, Java, JavaScript, PHP,Pascal,Swift, Lua, Perl, Ruby, Visual Basic .NET以及VBA等。

“猜物游戲中的算法”教學案例

“猜物游戲”是研究分支結構的案例。學生從喜聞樂見的游戲中,提煉出算法的結構,在此基礎上,嘗試運用分支結構實現“判斷平年和閏年”數學問題的自動求解。

1.嘗試描述算法:從身邊的具體活動抽象出解決問題的過程

設計程序的關鍵是設計算法,直接讓學生描述算法難度較大。教師引導學生從真實的猜物游戲中提煉抽象出算法:從羽毛球和網球中選擇一個物體讓學生猜。學生猜測物體的特征,老師進行判斷,學生再根據老師的判斷分析選中的是何種物體。如學生猜測這個物體有羽毛,老師如果判斷“真”,那么選中的物體就是羽毛球,否則就是網球;還可以通過增加物體的數量,掌握多分支結構。教師通過活動引導學生理解現實世界解決問題過程中所蘊含的算法、原理,改變以往一味傳授概念知識的方法,實現知識和思維的雙重建構。通過這樣的活動,學生逐步抽象出解決問題的步驟。

2.繪制流程圖

在掌握了分支結構的繪制方法后,學生嘗試開展跨學科學習,實現判斷平年閏年數學問題的自動求解。這個過程就是對判斷方法進行數學建模。教師挑選一些典型的流程圖,帶領學生一起分析,尋找問題,最終為判斷方法建立模型。

3.編寫可執行的數字流程圖

通過交流互動,學生基本明確解決問題的過程。在此基礎上,學生可以利用Flowgorithm進行流程圖的設計。學生在設計完畢后,并不需要等待老師的評價,Flowgorithm的優勢在于可以直接執行流程圖,學生可以根據執行的結果,進一步了解算法的執行流程,對遇到的問題進行調整。

4.自評與互評:提升合作學習能力

交流活動能有效提升學生的批判性思維能力、合作學習的能力。教師根據學生的表現進行評價。學生也對項目的學習情況進行自評和互評,匯報自己小組在研究過程中遇到的問題,以及是怎么解決問題的;對自己的研究項目進行反思,提出優化改進的想法,對其余小組的項目提出建議。

在計算思維的培養過程中,比較重要的一環是自覺遷移算法用以解決實際問題。教學中,教師要鼓勵學生將解決問題的思維進行遷移和運用,用于解決相似的問題,將解決問題的過程內化為解決問題的能力,促進學生計算思維的發展。

結論與建議

1.Flowgorithm讓教學專注于解決問題的思維訓練

信息科技的教學不能只關注程序設計語言,在信息社會,程序設計語言本身在飛速地發展,新的高效的語言層出不窮,教育者的注意力應當回歸到解決的問題本身。新課標將教學重心前移,從關注程序轉變為關注算法。課程標準對信息科技的教學提出了新的要求,不應局限于學生對某種特定程序設計語言的掌握,而是讓學生掌握使用計算機解決問題的思維方式和實踐方法。Flowgorithm讓教學專注于解決問題的思維訓練,是學生提升計算思維的有效途徑。

2.將學生的學習活動置于現實情境的豐富任務之中

知識是由學習者基于經驗主動構建的,而不應該被動地從外部獲得。教育者在創建研究任務時,要通過設計豐富的任務,確保所有學生都有機會進行高層次的思考。當豐富的挑戰任務與現實生活背景及學生的個人興趣緊密地聯系在一起時,學生更有可能投入到任務的研究中,從而提升高階思維能力。通過個人或協作完成任務挑戰,讓學生感到有能力運用技術解決問題,并能改進以滿足自己的需求。豐富的任務發展了學生解決問題和推理的能力,形成適應未來環境的能力。這些學習經驗的獲得會幫助學生形成遷移到新問題的能力[7]。

3.通過分享與交流加深理解

知識和技能在生生、師生的互動中有效建構,分享算法還可以讓課堂上的每個學生成為積極的思考者。學生解釋自己解決問題的想法或評估其他同學的策略,能夠加深對思維的理解,從而產生深度學習,提升用語言表達對問題理解的能力。通過對比,學生會意識到其他可能更有效、更容易執行或更容易理解的策略。

總之,將Flowgorithm運用于中小學算法教學具有重要價值。通過對身邊的問題進行抽象建模,利用Flowgorithm設計流程圖,描述解決問題的算法并進行驗證,在互動反饋中形成設計簡單算法的能力,能切實有效提升學生的計算思維。Flowgorithm能將思維過程可視化,達到培養學生抽象、分解、建模和設計算法能力的目標,非常適合運用于中小學開展算法教學實踐。

參考文獻

任友群,隋豐蔚,李鋒. 數字土著何以可能?——也談計算思維進入中小學信息技術教育的必要性和可能性[J].中國電化教育,2016(1): 2-8.

王娟. 基于Scratch的創意計算思維可視化研究[D]. 上海: 上海師范大學,2015.

郁曉化,肖敏,王美玲. 計算思維培養進行時:在K-12階段的實踐方法與評論[J]. 遠程教育雜志,2018(2).

熊秋娥, 葛越. Scratch游戲化編程培養小學生計算思維的實證研究[J]. 基礎教育,2019(6): 24-35.

WING J M. Computational thinking[J]. Communications of the ACM, 2006, 49(3): 33-36.

張屹. 我國小學生計算思維量表研發與應用[J]. 中國電化教育, 2020(10): 49-57.

曲茜茜,解月光,王海. 高中信息技術學科教材“三重結構”及課堂實施建議[J]. 現代教育技術, 2018(4): 48-54.

作者單位:江蘇海安市實驗小學

編? ?輯:馮艷艷

猜你喜歡
計算思維跨學科
跨學科教學在高中生物課堂教學中的應用實踐
初中歷史跨學科主題學習活動的實踐與思考
應用型高校推進跨學科人才培養的路徑探索
我校成功承辦“生命科學與老齡化社會”跨學科論壇
跨學科前沿研究生課程的教學改革探索
商標跨類保護的跨學科解釋
基于計算思維的軟件類研究生高級算法課程教學研究
基于計算思維程序設計的軍事案例研究
程序設計課程中計算思維和應用能力培養問題研究
民族高校C語言程序設計課程教學改革的研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合