摘要:計算思維是信息技術(shù)學科的核心素養(yǎng)之一,學生計算思維的習得是需要教師根據(jù)學生認知特點和教學內(nèi)容去設計和深度挖掘的。本文針對編程模塊的Python程序結(jié)構(gòu)教學內(nèi)容,利用Turtle庫的繪圖功能,讓學生在設計圖形自動化繪制程序過程中,體驗問題分解,引導學生尋找規(guī)律,識別重復的模式,表示算法,編寫程序。在識別結(jié)構(gòu)、構(gòu)建結(jié)構(gòu)和駕馭結(jié)構(gòu)的過程中體驗和習得計算思維。
關鍵詞:Python;模式識別;編程;計算思維
中圖分類號:G434? 文獻標識碼:A? 論文編號:1674-2117(2022)12-0070-03
數(shù)字技術(shù)、數(shù)字經(jīng)濟是世界科技革命和產(chǎn)業(yè)變革的先機,是新一輪國際競爭的重點領域,因此,提升計算思維,發(fā)展信息素養(yǎng),成為信息技術(shù)教育的重中之中。
什么是計算思維?計算思維是利用計算機科學的基本概念解決問題、設計系統(tǒng)和理解人類行為的思維活動。它包括問題分解、物理世界的抽象(根據(jù)需要把物理世界的信息抽象成計算機能夠理解的數(shù)字信息)、尋找規(guī)律、識別模式、設計算法。計算思維的培養(yǎng)方式與途徑有很多,編程是學生習得計算思維的重要途徑之一,計算思維和編寫代碼是計算機程序解決問題的兩個重要環(huán)節(jié),計算思維在前,編寫代碼在后。目前,義務教育階段的信息技術(shù)課中已經(jīng)有了編程模塊,不管是圖形化編程還是代碼編程,教師都要引導學生體驗問題分解、現(xiàn)實抽象、模式識別、算法設計、程序排錯等過程,培養(yǎng)學生計算思維。
浙江省義務教育教科書《信息技術(shù)》八上的學習內(nèi)容是Python程序設計,因此,筆者結(jié)合第二單元“Python程序基本結(jié)構(gòu)”的教學內(nèi)容,嘗試利用Turtle模塊設計程序自動繪制圖形,在識別、構(gòu)建和駕馭結(jié)構(gòu)的過程中幫助學生習得計算思維。
● 過程可視,識別結(jié)構(gòu)
學習編程,首先要理解程序執(zhí)行過程。為了讓學生快速入門,教師可通過編寫畫圖程序,使程序執(zhí)行過程可視化,在可視化的條件下幫助學生更好地理解程序的結(jié)構(gòu)。
任務1:編程畫一個等邊三角形。
通過任務分析,總結(jié)出畫等邊三角形的步驟如下:先把畫三角形的問題分解為畫邊和轉(zhuǎn)角兩個子問題,然后表示成算法,最后編寫程序(如圖1)。程序運行就能看到三角形繪制的全過程,從而理解順序結(jié)構(gòu),明白程序是由上到下依次執(zhí)行的。
如果用同樣的方法編程畫一個正方形、正六邊形、正六十邊形,代碼行數(shù)就會不斷增加,創(chuàng)設認知沖突引入循環(huán)結(jié)構(gòu)。
通過觀察可以發(fā)現(xiàn),畫邊、轉(zhuǎn)角、延時的代碼一樣,不同的是轉(zhuǎn)角的參數(shù)與代碼行數(shù)不同。
教師引導學生找出程序中重復執(zhí)行的代碼,作為循環(huán)體根據(jù)循環(huán)流程用For循環(huán)編程,編寫出程序(如圖2),體會循環(huán)結(jié)構(gòu)對減少代碼冗余的作用,并引導學生對比程序執(zhí)行的過程,理解循環(huán)結(jié)構(gòu)與順序結(jié)構(gòu)中的程序執(zhí)行過程其實是一樣的,只是循環(huán)結(jié)構(gòu)控制了循環(huán)體的執(zhí)行次數(shù)。
同樣,要求學生修改圖中程序的參數(shù)畫一個正方形、正六邊形、正六十邊形。在For循環(huán)程序中,只需修改循環(huán)次數(shù)和轉(zhuǎn)角度數(shù),就能完成相應的圖形繪制,調(diào)試程序修改參數(shù)非常方便。
● 尋找規(guī)律,構(gòu)建結(jié)構(gòu)
任務1中代碼的重復是一個非常簡單的重復模式,通過前面修改循環(huán)次數(shù)和旋轉(zhuǎn)角度可以畫出多種不同的正多邊形,引導學生觀察,找出繪制不同多邊形程序中的相同點和不同點,分析轉(zhuǎn)角的度數(shù)與邊數(shù)的關系,思考如何使程序變成一個能繪制任意正多邊形的程序。
運用變量來概括性描述規(guī)律,尋找重復模式,是構(gòu)建循環(huán)的利器。這里的變量就像數(shù)學中用字母表示數(shù)一樣,有助于揭示概念或規(guī)律的本質(zhì)特征,實現(xiàn)對一類問題的抽象。
教師可引導學生通過觀察與分析,明確畫正多邊形的每次轉(zhuǎn)角的度數(shù),即外角的度數(shù)。外角的大小可以從內(nèi)角和定理180-(n-2)*180/n推導出。也可以這樣推導:正多邊形的外角和為360度,旋轉(zhuǎn)一周回到起始位置,n條邊,旋轉(zhuǎn)n次,每次旋轉(zhuǎn)的角度就是360/n。這樣,程序就能根據(jù)n的取值畫出相應的正多邊形,變量n就泛指大于3的任何整數(shù)。
任務2:編程畫出圖3中的某一個圖形。
在拆解復雜問題時,需要遵循置頂向下的原則,從宏觀到中觀,從中觀再到微觀,尋找規(guī)律,識別重復模式。圖3(a)可以理解為一個正三角形重復旋轉(zhuǎn)4次而形成的,因此把宏觀的圖形的問題分解為畫正三角形和旋轉(zhuǎn)角度兩個中觀問題,由此構(gòu)建外循環(huán),再考慮中觀的正三角形的實現(xiàn),構(gòu)建內(nèi)循環(huán)。
由圖3(a)遷移可知,圖3(b)可以看成由正五邊形等角旋轉(zhuǎn)5次而成;圖3(c)可理解為正六邊形等角旋轉(zhuǎn)6次而成,由于有幾條邊重合,有點難以辨別。
通過分析發(fā)現(xiàn)3個圖形的繪制方法相同,可以理解為一個正多邊形經(jīng)過多次重復等角旋轉(zhuǎn)而成,從而形成一個統(tǒng)一的重復模式,流程圖與程序如下頁圖4所示。
● 封裝提取,駕馭結(jié)構(gòu)
應用計算思維解決問題是培養(yǎng)計算思維的重要途徑和最佳方式,臨近期末,創(chuàng)客社團需要通過激光雕刻制作一批社團考核展示牌,在激光雕刻之前需要設計圖形(如下頁圖5)。
任務3:編寫自動化繪制社團展示牌的程序。
一批展示牌,具體數(shù)量暫時不定,要求程序能根據(jù)具體要求快速繪制出所需要圖形。通過觀察分析發(fā)現(xiàn),展示牌都是由LOGO、星級、社團名和矩形框元素組成,其中LOGO圖、星級數(shù)量和社團名各不相同。由此決定把四個元素的程序分別封裝到自定義函數(shù)print_rectangle()、print_logo()、print_star()和print_name()中,對可變的元素分別通過傳送參數(shù)的方式進行改變。
有了元素的自定義函數(shù),只要確定好每個元素的繪制位置就能把展示牌圖案繪制出來。
根據(jù)展示牌案樣式中各元素的相對位置,以外框的左下角位置(x,y)為參照點,內(nèi)框的左下角位置為(x+10,y+10),LOGO繪制位置為(x+60,y+75),組名繪制的起始點位置為(x+120,y+55),星星從(x+260,y+40)繪制位置開始畫,每畫完一個向左移動30。
把組名、星級、LOGO類型分別按順序添加到列表中,在循環(huán)中引用列表中的值作為參數(shù)傳給自定義函數(shù),輸入想繪制的展示牌的行數(shù)與列數(shù),就能繪制出想要的所有展示圖案(如圖6)。
計算思維能幫助我們理解計算機世界和AI背后的運行機理,掌握解決大規(guī)模復雜問題的思考方法。“計算思維的內(nèi)涵其實就是一種轉(zhuǎn)換,是人類理解向著機器執(zhí)行之間的轉(zhuǎn)換,是復雜問題解決向著機器基本操作的轉(zhuǎn)換”,需要運用分層、抽象、封裝和迭代去構(gòu)建結(jié)構(gòu),設計算法,在平時的教學中,還需要教師去挖掘程序算法與數(shù)據(jù)中的結(jié)構(gòu)之美。
參考文獻:
[1]諸葛越.未來算法:下一個十年贏在計算思維[M].北京:中信出版社,2021,6.
[2]費海明.回歸本源:再論信息技術(shù)核心素養(yǎng)的養(yǎng)成[R].寧波:江北教育局教研室,2021,11.
作者簡介:劉宏中(1970—),男,高級教師,浙江省初中信息技術(shù)教材編委。