江蘇省蘇州實驗中學 賈 云
人工智能作為國際競爭的新焦點,是引領未來的戰(zhàn)略性技術(shù)。“阿爾法圍棋”的橫空出世激發(fā)了全社會的研究熱情,而ChatGPT 的爆火,則把人們對人工智能的研究推向熱潮。 Python 作為進入人工智能領域的敲門磚,在推動人工智能發(fā)展中具有不可估量的作用[1]。
項目式學習(Project-Based Learning),由上世紀的“設計教學法”演變發(fā)展而來。 北師大學者楊明全副教授將其定義為:項目式學習是一種建構(gòu)性的教與學方式,教師將學生的學習任務項目化, 指導學生基于真實情境提出問題,并利用相關知識與信息資料開展研究、設計和實踐操作,最終解決問題并展示和分析項目成果[2]。 簡言之,項目式學習能夠引導學生在展示過程、分析結(jié)果中對知識進行深度的認識與加工,聯(lián)系已有知識,建構(gòu)新的知識,最終達成核心素養(yǎng)的培養(yǎng)目標。
項目式學習與Python 創(chuàng)意編程的契合點主要表現(xiàn)在三方面:一是培養(yǎng)目標的一致性。 項目式學習要求學生不僅要基于整個項目提出問題、分析問題、做出假設、解決問題,還要展示與評價;高中信息技術(shù)Python 課程立足于對學生核心能力(包括創(chuàng)新性、創(chuàng)造力等)的培養(yǎng),兩者都指向?qū)W生批判性、創(chuàng)造性思維等高階思維能力的提升。因此,從培養(yǎng)目標的角度,項目式學習和Python 創(chuàng)意編程具有一致性。二是學習方式的相關性。項目式學習引導學生發(fā)現(xiàn)、構(gòu)想、抉擇、歸納與評價;高中Python 編程課程是學生信息意識和計算思維能力培養(yǎng)的重要途徑, 采用項目式學習,能讓學生通過充分的探究、分享、評價等提升信息意識和計算思維能力。 因此, 在學習方式上項目式學習與高中Python 創(chuàng)意編程課程是相關的。 三是教學過程的契合性。項目式學習在教學過程中強調(diào)學習的迭代性以及項目的展示與分享;高中Python 編程課程鼓勵學生在項目完成的過程中掌握相關的程序,對作品進行多次的迭代設計并進行作品展示與分享。因此項目式學習與高中Python 創(chuàng)意編程在教學過程上是契合的。
“周而復始的循環(huán)”一課屬于教科版高中信息技術(shù)必修一《數(shù)據(jù)與計算》第二章第3 節(jié)的內(nèi)容,是算法學習中的重要部分,包括計數(shù)循環(huán)(for 語句)和條件循環(huán)(while 語句)。教材中圍繞“理財”項目進行展開。在教學實踐中能發(fā)現(xiàn),學生對“理財”主題的項目興趣不高,并且對for 語句的理解不夠,容易用數(shù)學的方法直接算出答案。 基于此,教師可以使用Python 中的趣味turtle 繪圖,從順序畫圖到循環(huán)畫圖,有效調(diào)動學生的學習積極性,讓知識逐步過渡。
根據(jù)項目式學習的思想,并結(jié)合實際教學過程,高中Python 創(chuàng)意編程課程可進行如下設計(見圖1)。

圖1 基于項目式學習的高中Python 創(chuàng)意編程課程案例設計流程圖
初步掌握用Python 畫一些常見的規(guī)則圖形, 并能在畫圖中融入自己的創(chuàng)意; 在畫圖的過程中深刻理解其中的循環(huán)結(jié)構(gòu),掌握實現(xiàn)計數(shù)循環(huán)的方法。
學校即將舉辦藝術(shù)節(jié)活動, 計劃在藝術(shù)展廳展示學校建筑元素(多邊形圖形及螺旋圖形),請你根據(jù)相關課程,選擇你喜歡的圖形,繪制出建筑元素,并在此基礎上融入你的創(chuàng)意,向外界展示學校的校園文化。
1.基礎知識準備
學生在之前的課程學習中,已經(jīng)初步掌握了順序結(jié)構(gòu)以及Python 模塊的導入方法, 對turtle常用函數(shù)有了初步理解,但對涉及重復執(zhí)行的語句,即循環(huán)結(jié)構(gòu)還不太了解。 因此,教師要讓學生從已有知識出發(fā), 在探究的過程中解決問題,建構(gòu)新知。
①模塊的導入方法:import turtle as t 或者from turtle import *
②turtle 常用函數(shù)(見表1):

表1 turtle 常用函數(shù)一覽表
2.提供教學資源
設計學生學習導學案,幫助學生厘清學習任務,明確學習目標及學習評價標準; 提供for 循環(huán)的語法及其格式注解、列表及其使用方法。
3.項目完成與交流
【活動1】用已學知識繪制一個邊長為100 像素的正方形。
繪制正方形對學生來說不難,教師可要求學生用之前的順序結(jié)構(gòu)進行繪制(見圖2)。

圖2 邊長為100 像素的正方形
探索發(fā)現(xiàn):繪制時有兩行重復的代碼:“t.fd(100)t.left(90)”,即前行100 像素和逆時針旋轉(zhuǎn)90 度共重復4 次。
教師引導:在程序中常常有重復執(zhí)行的動作,如果用順序語句一條一條重復來寫工作量大, 代碼不夠清晰,而for 循環(huán)語句可實現(xiàn)重復一定次數(shù)的循環(huán)。
語法格式:for 循環(huán)變量in range():
知識支架:range()函數(shù)
師生探究: 用for 循環(huán)語句繪制一個邊長為100 像素的正方形(見圖3)。【活動2】分組繪制多邊形并涂色,可以在此基礎上融入你的創(chuàng)意。

圖3 用for 循環(huán)語句繪制一個邊長為100 像素的正方形
有了活動1 的基礎,學生初步掌握繪制多邊圖形只需要確定重復執(zhí)行的次數(shù)和動作。 在涂色時,學生的創(chuàng)意更多了,有的是一種顏色,有的是不同邊不同顏色,有的是對稱邊是同一顏色(見圖4)。

圖4 學生繪制的多邊形
import turtle as t
color=_________ #顏色列表
for i in range(_____):#多邊形的邊數(shù)
t.pencolor(color[____])#畫筆顏色變化
t.fd(_____)#前進長度
t.left(_____)#旋轉(zhuǎn)度數(shù)
【活動3】繪制彩色螺旋圖形。
在拓展深入階段,讓學生繪制彩色螺旋圖形,探索在顏色變化、前進、旋轉(zhuǎn)的基礎上,還可以把基礎畫作對象作為一個整體旋轉(zhuǎn)變化,變成更多樣的圖形,并在此基礎上融入你的創(chuàng)意(見圖5)。

圖5 學生繪制的彩色螺旋圖形
import turtle as t
color=_________ #顏色列表
for i in range(_______)#基礎多邊形重復的次數(shù)for i in range(_____):#基礎多邊形的邊數(shù)
t.pencolor(color[____])#畫筆顏色變化
t.fd(_____)#前進長度
t.left(_____)#旋轉(zhuǎn)度數(shù)
t.left(______)#基礎多邊形每次旋轉(zhuǎn)的角度
學生對turtle 繪圖的3 個活動進行匯報, 主要匯報其中遇到的困難及克服困難的方法,以及學生自評、生生評價、師生評價等,通過師生間的思維碰撞,一方面深刻理解Python 中的計數(shù)循環(huán)方法, 另一方面對Python 中turtle 趣味繪圖也有一定的掌握。 課后,教師可以布置難度升級的任務,如繪雪花等,進一步提高學生的操作能力。
通過turtle 趣味繪圖的方法, 學生能在趣味中體會其中的循環(huán)思想,初步掌握for 循環(huán)語句,繪制出規(guī)則的多邊形及螺旋圖形。 從課堂觀察來看,學生對繪圖有較強的興趣,在探索的過程中,能討論分析每個圖形的重復次數(shù)及重復動作,總結(jié)繪圖規(guī)律。 也能夠通過自主探究和教師提供的教學資源逐步解決問題,并融入自己的創(chuàng)意。 該項目完成后,教師可以進一步提出較高難度的項目,進一步進行知識鞏固,提高學生學習能力,使學生通過項目式學習,將Python 知識創(chuàng)意化、趣味化,不斷增強學生的合作意識,深化學生對知識的理解和計算思維的培養(yǎng)。