摘要:本文針對(duì)高中Python編程教學(xué)中“循環(huán)結(jié)構(gòu)”這一內(nèi)容,探索了基于大語言模型的教學(xué)實(shí)踐策略,通過情境創(chuàng)設(shè)、問題分析、方案設(shè)計(jì)、編程實(shí)現(xiàn)及反思優(yōu)化五個(gè)教學(xué)階段,構(gòu)建了以問題探究為核心的教學(xué)流程。在教學(xué)過程中,大語言模型作為技術(shù)腳手架,為學(xué)生提供了個(gè)性化指導(dǎo)與即時(shí)反饋,幫助他們理解抽象的編程概念、解決編程問題。實(shí)踐結(jié)果表明,大語言模型在彌補(bǔ)傳統(tǒng)教學(xué)局限、提升學(xué)生編程能力和學(xué)習(xí)興趣方面具有顯著效果。同時(shí),在實(shí)踐中也發(fā)現(xiàn),大語言模型的教學(xué)應(yīng)用存在一定局限性,如學(xué)生對(duì)其過度依賴和內(nèi)容準(zhǔn)確性的問題。
關(guān)鍵詞:大語言模型;Python編程教學(xué);循環(huán)結(jié)構(gòu);個(gè)性化指導(dǎo)
中圖分類號(hào):G434" 文獻(xiàn)標(biāo)識(shí)碼:A" 論文編號(hào):1674-2117(2025)06-0058-03
在Python編程教學(xué)中,循環(huán)結(jié)構(gòu)是一個(gè)關(guān)鍵內(nèi)容,它不僅是編程的基礎(chǔ)概念,更是解決復(fù)雜問題的重要工具。然而,在實(shí)際教學(xué)過程中,教師往往面臨以下挑戰(zhàn):首先,學(xué)生通常對(duì)抽象的程序控制結(jié)構(gòu)理解困難;其次,班級(jí)授課模式下難以照顧到學(xué)生的個(gè)體差異,基礎(chǔ)好的學(xué)生缺乏深度學(xué)習(xí)的機(jī)會(huì),而基礎(chǔ)薄弱的學(xué)生則可能跟不上教學(xué)進(jìn)度;再次,有限的課堂時(shí)間難以為學(xué)生提供足夠的實(shí)踐機(jī)會(huì)和及時(shí)的個(gè)性化反饋。近年來,以ChatGPT為代表的大語言模型(Large Language Models,LLMs)展現(xiàn)出獨(dú)特的教育應(yīng)用價(jià)值。[1]在教學(xué)中,大語言模型可以扮演智能導(dǎo)師的角色,為學(xué)生提供個(gè)性化的指導(dǎo),協(xié)助學(xué)生進(jìn)行學(xué)習(xí)探究與問題解決。因此,在編程教學(xué)中,大語言模型為教師進(jìn)行教學(xué)創(chuàng)新提供了可能性。[2]
本文以教科版高中信息技術(shù)必修1中的Python的循環(huán)結(jié)構(gòu)教學(xué)為例,探索將大語言模型融入教學(xué)實(shí)踐的有效策略,旨在為提升程序設(shè)計(jì)教學(xué)效果提供新的思路和方法。循環(huán)結(jié)構(gòu)的主要內(nèi)容在教科版高中信息技術(shù)《必修1 數(shù)據(jù)與計(jì)算》的“2.3 周而復(fù)始的循環(huán)”這一節(jié),在后續(xù)的教學(xué)內(nèi)容中,循環(huán)結(jié)構(gòu)也貫穿于各個(gè)章節(jié)中。學(xué)生如果不能夠理解循環(huán)結(jié)構(gòu),會(huì)對(duì)后續(xù)相關(guān)內(nèi)容的教學(xué)產(chǎn)生較大影響。因此,筆者以“循環(huán)結(jié)構(gòu)”為主題,以問題驅(qū)動(dòng)為手段,以大語言模型為技術(shù)腳手架,進(jìn)行了教學(xué)實(shí)踐探索,并將教學(xué)流程總結(jié)為五個(gè)階段:情境創(chuàng)設(shè)、問題分析、方案設(shè)計(jì)、編程實(shí)現(xiàn)、反思優(yōu)化(如下圖)。
情境創(chuàng)設(shè)
傳統(tǒng)的編程教學(xué)常常注重程序設(shè)計(jì)語言的語法教學(xué),而忽略問題情境的重要性,這讓本就抽象的編程概念更難讓學(xué)生理解。因此,以真實(shí)問題驅(qū)動(dòng),創(chuàng)設(shè)能夠吸引學(xué)生的教學(xué)情境是開展探究教學(xué)的第一步。在本課中,筆者根據(jù)“4.2 數(shù)值計(jì)算”中的拓展知識(shí)“計(jì)算π的值”,結(jié)合“2.3 周而復(fù)始的循環(huán)”中的循環(huán)結(jié)構(gòu)的相關(guān)內(nèi)容,設(shè)計(jì)了驅(qū)動(dòng)問題:如何計(jì)算圓周率?圓周率是高中生已經(jīng)掌握的數(shù)學(xué)概念,但是學(xué)生對(duì)圓周率的計(jì)算方法了解不多。同時(shí),圓周率的計(jì)算問題非常適合用循環(huán)結(jié)構(gòu)來解決,常見的圓周率計(jì)算方法都涉及了無窮級(jí)數(shù)的累加運(yùn)算。
好的情境離不開優(yōu)質(zhì)的驅(qū)動(dòng)問題,筆者的經(jīng)驗(yàn)有兩點(diǎn)。首先,驅(qū)動(dòng)問題要有跨學(xué)科性。《普通高中信息技術(shù)課程標(biāo)準(zhǔn)(2017年版2020年修訂)》(以下簡稱“(新課標(biāo)”)鼓勵(lì)學(xué)生進(jìn)行跨學(xué)科問題解決,而數(shù)學(xué)、物理、化學(xué)、生物等學(xué)科本身就有大量問題適合編程解決,從這些學(xué)科中找到適合探究的問題能夠大大增加對(duì)學(xué)生的吸引力。[3]其次,驅(qū)動(dòng)問題與教學(xué)內(nèi)容要天然吻合。也就是說,編程的介入能夠大大簡化驅(qū)動(dòng)問題的解決。以計(jì)算圓周率為例,手工計(jì)算難度極大,但是利用循環(huán)結(jié)構(gòu)來計(jì)算圓周率能極大提升計(jì)算效率。
問題分析
在情境創(chuàng)設(shè)完成、引出驅(qū)動(dòng)問題后,就需要學(xué)生分析問題,這時(shí)大語言模型作為技術(shù)腳手架就可以介入教學(xué)。按照傳統(tǒng)的方式,教師需要提前準(zhǔn)備好與圓周率計(jì)算相關(guān)的閱讀材料,供學(xué)生閱讀并分析問題,了解圓周率的計(jì)算方法。而在大語言模型的支持下,教師只需拋出探究問題,并給出一些提示詞案例,學(xué)生就可以自行進(jìn)行小組探究。在本課中,筆者選用的大語言模型是“豆包”,并給學(xué)生提供了兩個(gè)提示詞案例:“是否可以向我介紹一下圓周率計(jì)算的歷史?”“圓周率是怎么算出來的?”學(xué)生以兩人為一組,根據(jù)提示詞案例自行修改優(yōu)化進(jìn)行問題探究。
在選擇大語言模型的時(shí)候,要選擇無需登錄就可以使用的模型,本課中的“豆包”就可以直接使用。同時(shí),教師需要給學(xué)生展示使用方法并提供簡單的提示詞案例。有的學(xué)生已經(jīng)有了一定的大模型使用經(jīng)驗(yàn),但是仍然有不少學(xué)生并沒有接觸過生成式人工智能技術(shù),所以演示使用方法是很有必要的。此外,需要給學(xué)生確定好探究的目標(biāo),如告知學(xué)生“在探究完成后,需要選擇一種你認(rèn)為適合編程實(shí)現(xiàn)的方法,并給出理由”。這樣,學(xué)生既可以深入了解圓周率計(jì)算的方法與演變歷史,又可以有比較明確的探究方向,并與后續(xù)的編程活動(dòng)相結(jié)合。
方案設(shè)計(jì)
在完成問題分析后,學(xué)生需要設(shè)計(jì)問題解決方案。本課的重點(diǎn)是學(xué)生綜合運(yùn)用循環(huán)結(jié)構(gòu)來解決問題,在此之前學(xué)生已經(jīng)學(xué)習(xí)了教材上計(jì)數(shù)循環(huán)(for循環(huán))和條件循環(huán)(while循環(huán))兩個(gè)基本結(jié)構(gòu)。因此,在方案設(shè)計(jì)這一環(huán)節(jié),教師可以提示學(xué)生回顧教材內(nèi)容,自行選擇合適的循環(huán)結(jié)構(gòu)來設(shè)計(jì)方案。同時(shí)給出建議:編程技能薄弱的小組可以選擇“萊布尼茨級(jí)數(shù)”并使用for循環(huán)來設(shè)計(jì)解決方案。在與大語言模型對(duì)話的過程中,用萊布尼茨級(jí)數(shù)來計(jì)算圓周率是大多數(shù)情況都會(huì)給出的計(jì)算方法,同時(shí)其公式簡單,很適合用for循環(huán)來實(shí)現(xiàn)。
在這一階段,大語言模型的作用在于為學(xué)生的設(shè)計(jì)過程提供啟發(fā),而不是直接給出解決方案。學(xué)生可以利用大語言模型的交互功能,就選定的計(jì)算方法咨詢關(guān)鍵問題,如:“萊布尼茨級(jí)數(shù)和蒙特卡洛方法計(jì)算圓周率,哪個(gè)更容易編程實(shí)現(xiàn)?”通過這樣的互動(dòng),學(xué)生能夠從大模型的反饋中獲得啟示,但仍需自主設(shè)計(jì)完整的解決方案。此外,教師應(yīng)強(qiáng)調(diào)在設(shè)計(jì)方案過程中避免直接請(qǐng)求大模型生成代碼,而是讓學(xué)生結(jié)合循環(huán)的三要素(初始值、循環(huán)條件、循環(huán)體)獨(dú)立完成代碼框架的構(gòu)建。這一階段的核心目標(biāo)是培養(yǎng)學(xué)生的計(jì)算思維能力,讓學(xué)生通過獨(dú)立思考來理解問題的解決思路。通過這種方式,既保持了學(xué)生思維的獨(dú)立性,又充分利用了大語言模型的輔助功能。
編程實(shí)現(xiàn)
在完成設(shè)計(jì)方案后,學(xué)生需要將方案轉(zhuǎn)化為具體的Python代碼。這一階段可以充分發(fā)揮大語言模型的優(yōu)勢(shì),實(shí)現(xiàn)針對(duì)具體問題的個(gè)性化指導(dǎo)。由于學(xué)生的編程基礎(chǔ)參差不齊,在編寫完整代碼過程中他們遇到的問題會(huì)很多。在教學(xué)中,教師應(yīng)要求學(xué)生先獨(dú)立完成初步的代碼編寫,當(dāng)遇到困難時(shí)再向大模型求助。在這一過程中,大語言模型可以充當(dāng)“助手”,為學(xué)生提供個(gè)性化支持。例如,學(xué)生可以將問題代碼片段提交給大語言模型,詢問問題所在和改進(jìn)建議。這種即時(shí)反饋機(jī)制能夠幫助學(xué)生快速解決問題,同時(shí)提高其對(duì)編程的信心。
為了確保學(xué)生在這一環(huán)節(jié)中主動(dòng)參與問題解決,教師需要引導(dǎo)學(xué)生正確使用大語言模型。例如,當(dāng)學(xué)生代碼報(bào)錯(cuò)時(shí),教師應(yīng)該建議學(xué)生使用更具體的提示詞,如“我的程序錯(cuò)在哪里?你有什么改進(jìn)建議?請(qǐng)不要直接告訴我正確的程序”。這種引導(dǎo)能夠幫助學(xué)生明確問題的來源,進(jìn)而更好地理解解決方案的原理。
此外,教師還可以為學(xué)生提供進(jìn)階任務(wù),如優(yōu)化代碼性能、調(diào)整循環(huán)實(shí)現(xiàn)方式等,以適應(yīng)不同水平學(xué)生的需求。對(duì)于能力較強(qiáng)的學(xué)生,教師可以鼓勵(lì)他們嘗試實(shí)現(xiàn)更復(fù)雜的計(jì)算方法,如蒙特卡洛方法。這一方法涉及隨機(jī)坐標(biāo)的生成和條件判斷,在實(shí)現(xiàn)過程中對(duì)循環(huán)結(jié)構(gòu)的靈活運(yùn)用提出了更高要求,同時(shí)還能幫助學(xué)生拓展知識(shí)面。[4]通過多樣化的任務(wù)設(shè)計(jì),學(xué)生能夠在編程實(shí)踐中不斷挑戰(zhàn)自我,深化對(duì)循環(huán)結(jié)構(gòu)的理解,并掌握更全面的編程技能。
反思優(yōu)化
反思優(yōu)化是整個(gè)教學(xué)流程中的重要階段,旨在引導(dǎo)學(xué)生回顧并改進(jìn)已完成的程序。這個(gè)階段的活動(dòng)可以從三個(gè)層面展開:代碼層面的優(yōu)化、算法層面的反思和學(xué)習(xí)過程的總結(jié)。
在代碼層面,學(xué)生可以與大語言模型進(jìn)一步互動(dòng),討論如何提升代碼的運(yùn)行效率、可讀性等。例如,通過調(diào)整算法流程減少冗余計(jì)算,或者通過優(yōu)化變量命名提升程序的可讀性。在這一過程中,大語言模型能夠提供具體且富有啟發(fā)性的建議,從而幫助學(xué)生優(yōu)化自己的程序,并了解程序優(yōu)化的方法。
在算法反思層面,學(xué)生需要比較不同計(jì)算方法的優(yōu)劣,并思考如何提高計(jì)算精度與效率。例如,通過對(duì)比萊布尼茨級(jí)數(shù)與蒙特卡洛方法的實(shí)現(xiàn),分析兩者在不同場景下的適用性與效率差異。此外,學(xué)生還可以探討算法的改進(jìn)方向,如增加迭代次數(shù)或采用更高效的公式。教師可以結(jié)合學(xué)生完成的代碼實(shí)例,組織全班討論,讓學(xué)生相互學(xué)習(xí)與借鑒,進(jìn)一步加深對(duì)問題解決過程的理解。
最后,學(xué)習(xí)過程的總結(jié)是反思優(yōu)化階段的核心部分。教師可以引導(dǎo)學(xué)生回顧用編程解決問題過程中的收獲與挑戰(zhàn),如哪些環(huán)節(jié)最具啟發(fā)性、在哪些方面仍需改進(jìn)等。通過這樣的總結(jié),學(xué)生能夠更全面地審視自己的學(xué)習(xí)過程,并為后續(xù)的編程學(xué)習(xí)積累經(jīng)驗(yàn)。同時(shí),教師還可以組織代碼展示與互評(píng)活動(dòng),讓學(xué)生從同伴的作品中獲取靈感,這不僅能夠提升學(xué)生的批判性思維能力,還能進(jìn)一步培養(yǎng)其團(tuán)隊(duì)合作意識(shí)和創(chuàng)新能力。
參考文獻(xiàn):
[1]鐘柏昌,劉曉凡.生成式人工智能何以、以何生成教育[J].電化教育研究,2024,45(10):12-18+27.
[2]葉紅霞.基于生成式人工智能的高中Python教學(xué)實(shí)踐研究[J].中國信息技術(shù)教育,2024(24):62-64+112.
[3]李鋒,席少劍,熊璋.面向數(shù)字素養(yǎng)與技能的信息科技課程標(biāo)準(zhǔn)及其教學(xué)實(shí)施[J].中國遠(yuǎn)程教育,2024,44(11):52-59+96.
[4]錢逸舟,方璐.項(xiàng)目驅(qū)動(dòng)的Python編程教學(xué)設(shè)計(jì)——以“蒙特卡洛法求圓周率”為例[J].中國信息技術(shù)教育,2021(18):39-40+92.