?

基于計算思維的初中信息技術項目式活動設計與實施

2023-04-18 06:46羅訓爐
中國信息技術教育 2023年8期
關鍵詞:計算思維初中學生程序設計

羅訓爐

摘要:本文以“設計算法實現用數學公式計算”項目為例,探究如何借助項目式學習在初中信息技術課堂中培養學生的計算思維能力,以期學生能夠利用計算思維解決學習和生活中存在的問題。

關鍵詞:信息技術;計算思維;初中學生;程序設計

中圖分類號:G434? 文獻標識碼:A? 論文編號:1674-2117(2023)08-0044-03

《義務教育信息科技課程標準(2022年版)》(以下簡稱“新課標”)將利用計算思維分析解決學習、生活中的問題作為課程的一個主要目標,提出讓學生學會應用計算思維的方法分析問題,對具體問題進行抽象和建模,提出解決問題的方案,并在數字化學習與生活的情境中開展真實性學習。項目式學習則是以研究學科概念、原理為中心,以解決真實的問題為目的,在真實情境中借助多種資源解決問題的一種學習模式。在這種新型的學習方式中,學生更容易接受學習,獲得更加有效的學習效果。

現階段初中開設程序設計課存在的問題

在新課標發布前,初中信息技術課程沒有統一的課程標準,沒有統一的教材,各地市主要依據《中小學綜合實踐活動課程指導綱要》中“設計制作活動(信息技術)”推薦的學習主題組織教學,教學目標旨在鼓勵學生動手操作,將自己的創意、方案付諸現實,轉化為物品或作品。指導綱要注重提高學生的技術意識、工程思維、動手操作能力等。各地市在實際操作中一般是根據本地區的實際情況組織教師編寫地方教材,課程內容以各類應用軟件的操作為主,部分地區開設了Visual Basic、C語言、Python等編程課程。在開設程序設計的地區,課程一般以程序語言的介紹和訓練為主,教學模式相對陳舊,教材編排、課程設計和教學模式大量借鑒高中甚至大學階段的程序設計專業課,過于注重概念、語法、結構的介紹,學生把大量時間花在語句功能和用法等知識的學習上,造成學生學習浮于表面,不符合計算思維核心素養的培養路徑。

下面,筆者基于上述問題,以項目式活動“設計算法實現用數學公式計算”對圓周率π的計算為例,談談如何利用程序設計培養初中學生的計算思維能力。

基于計算思維的項目式活動設計與實施

1.活動目標的規劃與設定

Python語言是近年來較為流行的編程語言之一,許多地區將Python語言作為初中階段程序設計的首選入門語言。在前序課程中,學生對Python語言的基礎知識和基本編程方法有了初步了解,已經能動手編寫一些簡單應用程序。

本項目活動的教學目標是通過探究不同算法對圓周率計算的影響,了解應用循環結構解決具體問題的方法,提升學生計算思維的深度和廣度?!霸O計算法實現用數學公式計算”項目旨在根據學科核心素養,提升學生的計算思維能力。同時,筆者根據學生的實際情況,對現有教材內容進行了設計與重組。

2.知識的儲備與學習

活動一:計算1~10的奇數和。

在實際教學中,學生根據已有知識,利用等差數列求和公式輕松完成任務。于是,教師進一步提出問題:能否用同樣的方法計算1+1/2+1/3+1/4+… +1/999的和?學生會發現,這個問題沒有現成的公式,用print(1+1/2+1/3+1/4+…+1/999)來計算又特別煩瑣。如何解決這個問題呢?這時教師可以引導學生回憶傳統紙筆計算此類問題的方法,并提出累加和的概念,引入本次活動的學習內容(如圖1)。

在上例中,學生遇到了還沒學到的for語句和range函數,教師可以讓學生先通過單詞的字面意思猜測程序的功能和執行過程,初步感受for循環的作用與功能。學生運行圖1所示的程序代碼,可快速得到答案,進而體驗探究成功的樂趣。

活動二:探究for循環語句的格式與功能。

對初學者來說,程序設計有兩道坎:一個是循環,另一個是遞歸。因不少學生一開始沒能很好地理解循環結構的精髓,所以后續的課程變得相對困難。因此,要讓學生深刻理解什么是循環、什么是循環控制變量,了解循環變量初值、終值和步長值的設定方法,學會構造循環體,讓看似無規律的數據變換成有規律的數據,使循環能不斷重復執行下去。

for循環包括for、in關鍵字和rang函數等,在上例中,學生根據教師提供的教學資源包,可以很快弄清for循環結構的功能是重復執行循環體中的程序塊多次,直到rang范圍中的每個值枚舉完畢,退出循環。另外,在上例for循環中,i是循環變量,初值為1,變化范圍為1≤i<1000,循環的步長值為1。for語句的后面要緊跟一個冒號“:”,表示后面是一個程序段,是循環體部分。循環體中的程序段要采用縮進格式,且要有相同的縮進量。對于循環變量i的終值為什么是999而不是1000,此時教師應發揮主導作用進行分析和解釋。

3.計算思維能力的訓練與培養

經過上述活動的學習和探究,學生對for循環的結構、功能和實現的過程有了初步的了解,接下來就可以通過對一些有規律問題的探究,進一步加深理解循環結構的使用方法,解決更多現實生活中存在的問題,訓練和培養學生的計算思維。

活動三:分別用for循環計算下列式子的值。

通過觀察可以得出,算式(1)中每一項的組成都是有規律的:分子從1變化到99,每次遞增2,分母的變化規律是從2變化到100,每次也是遞增2,且每一項分母的值都比分子多1??梢苑謩e用i和i+1表示分子和分母的值,循環中每次遞增的步長可在range函數中設定,這樣就可圓滿地解決上述問題(如圖2)。

算式(2)看起來好像有點復雜。其實,若仔細觀察,還是可以非常容易地發現其中的規律:在程序中,對于枚舉的每個變量i,可以用i和i+2表示分子中的兩個乘積項,用i+1和i+3表示分母中的兩個乘積項,這樣問題就可以得到解決,不需要設置4個控制變量(如下頁圖3)。在本活動中,教師還要提醒學生注意除式表達式的表示方法,否則將得到錯誤結果。

4.探究不同算法對圓周率計算精度的影響

早期的圓周率大都是通過實驗而得到的。第一個用科學方法尋求圓周率數值的人是阿基米德,他在《圓的度量》中用圓內接和外切正多邊形的周長確定圓周長的上下界,從正六邊形開始,逐次加倍計算到正96邊形,得到(3+(10/71)<π<(3+(1/7)),得出精確到小數點后兩位的π值。南北朝著名數學家祖沖之得出精確到小數點后7位的π值,即3.1415926<π<3.1415927,他的輝煌成就比歐洲早了1000多年。本次活動教師引導學生探究不同方法對圓周率計算的影響,提升學生的計算思維能力。

活動四:分別利用不同算式計算圓周率π,比較其精度。

算法(3)簡單明了(如圖4),非常容易實現,大部分學生都可以輕松完成。但這個算法運算速度太慢,計算精度太差,當n取值10時,只能得到1位小數精度的圓周率,當n取值10000時,也才能得到3位精度的圓周率。算法(4)看起來稍顯復雜(如圖5),學生初次接觸存在一定的畏難情緒,不知從何下手。此時,教師要引導學生仔細觀察算式中每項的組成。通過分析不難發現,算式中的每一項的內容組成都是在前一項的基礎,乘上一項新的乘積,且新乘上的值也是有規律的,可以通過增加一個新的臨時變量,用于存儲前一項的值,這樣就可圓滿解決該問題。

算法(4)的編程難度不大,但程序效率卻有了驚人的提升,當n的取值為10時,可以獲得3位的小數精度,當n的取值為50時,可以得到14位的小數精度。

上述兩種方法可較好地解決圓周率的計算問題,但它們有個共同的缺點,就是無法準確知道當前圓周率的精度。那么,如何解決這個問題呢?接下來教師引導學生展開頭腦風暴,進行小組討論,探討利用while循環結構控制圓周率精度的計算(如圖6),圓滿解決本次項目式學習的最終問題。

通過對圓周率不同算法的探究編程,學生親歷了計算思維的全過程,感受了不同算法對圓周率計算的影響,計算思維能力得到了進一步的加強和提升。計算圓周率還有許多方法,教師還可以引導學生課后進行進一步的探究與實踐,加深對循環結構的理解。

在本次活動的最后,教師還可以對學有所長的學生進一步提出要求:通過實驗可以發現,上述改進算法雖然能較好地控制圓周率的計算精度,但由于計算機采用浮點數的形式來存儲和處理實數,不能存儲和處理無限位數的小數。在Python中,一個單精度數最多只能存放15位小數,但現在計算機已經可以非常輕松地計算幾萬位的圓周率,這是如何做到的呢?于是,教師引導學生繼續了解和探究高精度算法的概念和處理方法,讓學生嘗試利用數組來存放超過15位的小數,實現高精度計算,讓不同層次、不同水平學生的計算思維能力都能得到提升。

猜你喜歡
計算思維初中學生程序設計
基于Visual Studio Code的C語言程序設計實踐教學探索
從細節入手,談PLC程序設計技巧
高職高專院校C語言程序設計教學改革探索
培養初中學生自信心與英語教學的相關性
程序設計課程中計算思維和應用能力培養問題研究
民族高校C語言程序設計課程教學改革的研究
算法的案例教學探析
淺談藝術專業學生計算思維能力的培養
培養初中學生英語自主學習能力的嘗試
PLC梯形圖程序設計技巧及應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合