孫丹 朱城聰 許作棟 徐光濤



[摘 ? 要] 生成式人工智能可以為教育提供高效且個性化的智能化服務和技術支持。作為典型的生成式人工智能語言模型,ChatGPT在編程中的應用已然獲得業界的廣泛關注。然而,鮮有學者從實證研究的層面探究學習者如何利用ChatGPT來進行編程學習。研究通過細粒度地采集學習者的編程行為和知識探究問題,對36位學習者的編程過程進行分析。研究結果表明:(1)學習者將ChatGPT視為有用的編程學習資源,依賴其指導學習過程,并傾向于將代碼或調試錯誤信息拷貝至ChatGPT,進而復制其反饋信息;(2)高績效組主要在前期使用ChatGPT輔助編程,低績效組在整個編程過程中更頻繁地使用ChatGPT進行編程;(3)學習者在使用ChatGPT時主要關注淺層和中層知識的探究,其中,高績效組通過自主提問獲得ChatGPT的反饋,中低績效組則依賴對ChatGPT反饋內容的追問獲得問題解決方案。研究針對如何利用ChatGPT輔助大學生開展編程學習提出了相關的建議,以期為提高編程學習效率提供參考。
[關鍵詞] ChatGPT; 編程學習; 學習行為; 學習分析; 大學生
[中圖分類號] G434 ? ? ? ? ? ?[文獻標志碼] A
[作者簡介] 孫丹(1992—),女,浙江溫州人。講師,博士,主要從事智能教育、編程教育、學習分析、計算思維研究。E-mail:dansun@hznu.cn。徐光濤為通訊作者,E-mail:xuguangtao@hznu.edu.cn。
一、研究背景
近年來,隨著科技的飛速發展,生成式人工智能技術在各個領域中得到了廣泛的應用。在教育領域,生成式人工智能工具 ChatGPT(Chat Generative Pre-trained Transformer)的推出引起了熱議。作為一種基于大語言模型的智能對話系統,ChatGPT 可以通過自然語言文本的輸入、交互和生成來輔助學習和教學,為學生和教師提供更為便捷、高效的學習工具[1-3]。其中,ChatGPT 所具有的高效代碼生成能力使得它可以輔助程序員完成編程過程中的各項任務,如代碼完善、從文本生成代碼等,并且ChatGPT可以集成在編程環境中,以此提高開發人員的工作效率[4]。盡管大家對編程教育的興趣與日俱增,但對于大學階段的學習者來說,學習編程仍然是一個具有挑戰性的復雜過程。在程序編寫的過程中,學習者難以調試所編寫程序中的錯誤,他們往往需要一定的支持和指導[5]。生成式人工智能工具(如ChatGPT)可以通過快速給出基本正確的答案,為學習者在編程中遇到的問題提供解決方案,并為他們提供支持和指導[6]。此外,深入分析學習者編程過程,可以幫助教師和學習者采取更為有效的教學策略和學習方式[7]。因此,本研究以ChatGPT為例,通過行為分析的視角,對學習者在使用ChatGPT進行編程過程中的學習行為和知識探究問題進行分析。采用多種學習分析方法,探索不同績效學習者的行為模式和知識探究質量,并研究ChatGPT在大學編程教育中的應用效果,以期為提高程序設計課程教學效果提供新的思路。
二、研究現狀
(一)ChatGPT 融入編程教育
不同于傳統的編程工具,作為一種人工智能語言模型,ChatGPT 可以使用自然語言與用戶進行交流,即使是沒有編程經驗的學習者也可以使用它。OpenAI公司指出,ChatGPT 通過程序理解用戶需求并作出響應[8]。傳統編程工具,通常由軟件開發環境、編程語言、庫和其他相關組件組成,需要學習者具備特定的編程知識。例如,Python IDE只針對 Python語言設計,需要學習者掌握該語言的基本概念和操作。然而,雖然跨平臺的集成開發環境如 Flutter 或 Microsoft Visual Studio 支持多種語言,但它們仍然需要學習者掌握特定的語法和概念才能進行操作。
關于 ChatGPT 在編程教育中的有效性仍存在著不同的觀點。一方面,研究人員強調了 ChatGPT 與其他編程工具相比所具有的各種優勢,例如,提供便捷訪問、提供快速響應、促進個性化學習、支持多種語言、提供清晰的解釋和編程示例、允許查詢和搜索以及提供高級主題資源,增強學生的計算思維、編程自我效能感和學習動力等。研究人員發現,在ChatGPT等工具的支持下(主要是通過提供代碼解釋和調試),編程培訓可以有效提高學生的編程技能。另一方面,ChatGPT 在編程教育方面的應用也有局限性。研究強調了相關的局限性,例如,非結構化學習、由于缺乏應用程序而依賴于輔助工具和環境、對數據結構和算法的支持有限等[4],以及缺乏常識、潛在偏見、難以進行復雜推理以及無法處理視覺信息等[9]問題。研究人員還強調,與ChatGPT相關的倫理問題(如偏見、歧視、隱私、安全、技術濫用、透明度和社會影響)錯綜復雜,需要認真對待。
(二)編程學習過程分析
盡管編程成績通常是編程教育中的主要關注點,但使用多種學習分析方法對編程過程進行評估也愈加受到關注。學習過程的評價可以突顯出通過實踐促進學習者編程質量的本質[10]。研究強調,過程性評價和終結性評價相輔相成,可以全面地洞察學習者的編程過程和表現。在綜合評價的支持下,研究者可以更好地理解編程現象和影響編程過程的潛在因素[11]。因此,在對編程教育的評價中,除了關注最終成果,還要注重學生在編程學習過程中的表現,并使用多種分析方法來評價學生的編程能力。
以往的實證研究采用了多種分析方法來展示編程學習過程的各個方面。吳林靜等將編程過程分析的研究分為三個大類,分別是編程過程認知模型的研究,編程環境和支持資源的研究以及編程教育促進學習者能力發揮的研究[7]。Turkle等人研究指出,在編程學習過程中,修補型學習者通常通過小增量式的反復調試和修改代碼而逐步構建解決方案,而計劃型學習者則傾向于在計劃出較完整的解決方案后再進行編碼,并且每次編輯較大段的代碼[12]。Sun等使用點擊流分析、滯后序列分析和定量內容分析分析了三個小組的結對編程行為、話語和認知水平。研究表明,高中低水平小組在社交互動、認知參與和最終編程表現方面具有不同的特點[13]。上述研究表明,可以使用多種學習分析方法對學生的編程學習過程進行分析,這有利于展示編程學習效果的不同維度。
鑒于當前學習者在利用ChatGPT開展編程學習過程中的特征尚未得到充分探究,本研究目的在于運用學習分析技術,對學習者在學習過程中的編程行為和知識探究問題進行細粒度的采集、分析和挖掘,并通過探究其原因來提出利用ChatGPT輔助編程學習的指導意見,研究問題如下:
(1)在使用ChatGPT輔助編程學習時,學習者存在怎么樣的行為模式?
(2)在使用ChatGPT輔助編程學習時,不同績效學習者的編程行為具有哪些特點?
(3)在使用ChatGPT輔助編程學習時,學習者的探究問題質量如何?
三、研究設計
(一)研究對象
本研究以某師范大學2023年春季的“面向對象程序設計”課程中的36名教育技術學專業大二學生為研究對象。研究采集了他們在利用ChatGPT進行編程學習過程中的行為數據作為樣本。課程共涉及五個課時,學生在前四節課中學習了Python編程的基本概念,并體驗了ChatGPT的應用。在最后一節課中,要求學生利用ChatGPT進行編程項目制作。根據學生最終項目的完成質量(評價標準包括代碼正確性、功能完整性和美觀性),得出的成績數據近似于正態分布。基于均值和標準差,我們將成績在80.25至99.43之間的學生分為高績效組(11人),將成績在59.33至79.45之間的學生分為中績效組(14人),將成績在35.21至58.33之間的學生分為低績效組(11人)。
(二)數據編碼
在本研究中,主要采用PyCharm作為Python的集成開發環境。在ChatGPT的使用方面,本研究采用了自行部署開源項目ChatGPT Next Web,該項目基于OpenAI提供的開放應用接口(API)開發,并以一個功能獨立完整的網站形式呈現;所有學生均使用了gpt-3.5-turbo模型。研究主要收集了學習者在編程過程中的行為數據以及與ChatGPT交流的探究問題,以此為基礎進行分析。
第一,研究通過運行電腦屏幕錄制程序(無聲音)記錄了學生的編程行為,選擇最后一堂課(雷達圖任務)作為本次研究的視頻數據(60分鐘/學習者;共計2160分鐘)。選擇最后一堂課收集行為數據的原因有二:一是,這堂課是綜合性編程項目制作,可以捕捉到學生如何將 ChatGPT 融入編程問題解決的全過程,更好地展示他們的編程能力;二是,隨著前期課程的體驗,學生對 ChatGPT 的使用更加熟悉,因此他們在這節課上更加投入。我們使用點擊流分析法來分析這些數據,以確定學生的編程行為。視頻分析采用迭代編碼流程,該流程基于之前驗證過的編碼框架[7,11]。兩名編碼員首先分別觀看電腦屏幕運行視頻,確定編程行為的初始編碼,其次,進行討論,就最終編碼框架達成一致意見(見表1)。最后,兩名編碼員根據編碼框架,按照時間順序再次對數據進行獨立編碼,每10秒鐘標記一次學習者行為,并相互核對編碼結果。兩名編碼員之間的評分可靠性為0.80,說明該編碼表分類清晰,具有較好的一致性。因此,研究人員以該編碼表為標準,標注了采集到的編程學習過程樣本,作為后續分析的數據源。
第二,研究通過ChatGPT平臺的日志記錄了學習者在ChatGPT中的知識探究問題。針對此類數據,研究對Ouyang和Dai對知識探究開放編碼形成的框架進行了改編,從淺中深三個層面對學習者的初始提問(知識探究)和對ChatGPT反饋內容繼續提問(反饋內容探究)的質量進行分析[14]。首先,將所有的數據按照學習者、績效水平、提問內容的順序整理到Excel中;其次,識別學習者所提出的問題并依據提問的順序劃分單元,共形成446個編碼單元。然后兩位研究人員依據編碼表進行人工編碼,確定最終編碼類別(見表2),并進行一致性比較(評分可靠性為0.83);最后,將所有的數據轉化為認知網絡分析[15]所要求的格式,采用在線認知網絡分析工具(webENA)進行數據分析。
四、研究發現
(一)編程學習行為分布分析
1. 編程學習行為描述性分析
36名學生共計產生4125個行為轉換序列,各行為頻次及分布情況見表3。根據統計結果顯示,學習者的行為分布具有以下特征:(1)編寫代碼類行為(包括編輯代碼和ChatGPT輔助編程類行為)在整個行為分布中占據了最多的頻次,其次是其他行為,出現頻次最少的是資源類行為,這與課程內容的屬性較為符合。(2)在編輯代碼類行為中,頻次最高的行為是“編輯代碼”(CP),其次是“理解代碼”(UPC)和“閱讀ChatGPT的反饋”(RF)。這說明學習者在程序編寫過程中不斷地理解和編寫代碼,并且通過與ChatGPT的交互來獲取幫助。(3)在ChatGPT輔助編程類行為中,除了“閱讀ChatGPT的反饋”(RF)之外,出現頻次較多的行為是“提出新的問題”(ANQ)和“粘貼錯誤信息”(PCM)。這表明學習者將ChatGPT視為解決編程問題的工具,尤其是用于幫助他們理解程序的報錯信息。
2. 編程學習行為的序列轉換分析
為了分析學習者在利用ChatGPT進行編程學習過程中的行為,本研究采用了滯后序列分析法(LsA)對編碼結果進行分析,呈現編程學習行為之間的過渡頻率和可視化網絡表征(如圖1所示)。本研究使用的分析軟件為Rstudio,利用LagSeq包對行為編程進行分析。本研究使用Yule's Q來表示過渡關聯的強度,該參數具有一定的描述性(范圍從-1到+1,其中0表示無關聯)。此外,本研究還利用網絡可視化方法將LsA結果可視化為網絡,其中節點表示編碼行為(節點上標注其出現的頻率),邊表示過渡關系的Yule's Q值,并從箭頭指向另一個節點的節點讀取編碼行為過渡的方向。
從圖 1中可以發現,學習者的行為轉換序列(除去節點內部的轉換序列)存在以下典型特征:(1)“復制和粘貼ChatGPT 中的代碼→調試代碼→閱讀控制臺中的錯誤信息” (CPC→DP:Yule's Q=0.96;DP→RCM:Yule's Q=0.94),即學習者經常復制和粘貼 ChatGPT 中的代碼,調試以測試其正確性,然后閱讀輸出控制臺窗口中的調試信息。這表明這些學習者一定程度上依靠ChatGPT來指導他們的編程學習過程,并將其視為編程學習的有用資源。他們花費大量時間來從ChatGPT中獲取信息和指導意見,以加深對編程問題的理解,同時還會積極參與調試代碼以發現錯誤并解決問題。這種學習方式需要不斷地與ChatGPT進行交互,學習者可能會認為這是一種有效的學習方法。
(2) “復制和粘貼Python代碼到ChatGPT→復制控制臺中的錯誤信息到ChatGPT”(PPC→PCM:Yule's Q=0.85),即學習者喜歡復制Python代碼和控制臺中的錯誤信息到 ChatGPT,這意味著學習者傾向于將Python代碼復制并粘貼到 ChatGPT 以快速獲取幫助,特別是當他們無法理解或修改代碼時,或者遇到一些他們不理解的錯誤信息時。然而,需要注意的是,這種學習方式容易導致學習者過度依賴ChatGPT 來解決問題,而不思考解決具體問題的方法或理解代碼的含義。
(3)“閱讀ChatGPT中的反饋信息→拷貝ChatGPT 中的代碼”(RF→CPC:Yule's Q=0.85),即學習者花費大量時間閱讀ChatGPT給出的反饋信息,包括代碼示例等,并將其復制到 PyCharm 軟件中進行測試。盡管這種方法反映出學習者對 ChatGPT 給出的反饋和代碼示例具有一定的信任,愿意嘗試驗證其準確性,但這種復制粘貼的方式也可能存在一些問題。由于缺乏對代碼細節的深入理解,學習者可能無法解決與復制的代碼有關的錯誤或問題,只是簡單地模擬代碼。在嘗試修改或調整代碼時,學習者很容易遇到更多的錯誤,甚至導致問題更加復雜。
(4)“粘貼錯誤信息到 ChatGPT→遇到技術問題”(PCM→FC, Yule's Q=0.79),即學習者在使用 ChatGPT 解決程序調試錯誤信息時,可能遇到一些技術問題,而這可能表明這類ChatGPT平臺的使用穩定性仍存在一定的提升空間。
(二)不同績效組的編程學習行為分析
通過對課程不同階段中高中低績效學習者的行為進行編碼分析,得到了編程行為分布表。通過表4可以發現,不同績效學習者在課程不同階段表現出的各類編程行為分布占比有所不同。整體而言,低績效組在編程的前中后期擁有最多的編程行為,而高績效組則擁有最少的編程行為。其中,在編程前期,低績效組擁有最多的“編輯代碼類”行為和“ChatGPT輔助編程類”行為,中績效組擁有最多的“資源類”行為和“其他類行為”;在編程中期,低績效組擁有最多的“編輯代碼類”行為、“資源類”行為以及“其他類行為”,而中績效組擁有最多的“ChatGPT輔助編程類”行為;在編程后期,低績效組在四類編程行為上的頻次依舊占據首位。
由桑基圖可視化結果(如圖2所示)可知,隨著編程過程的不斷開展,高績效組能夠在前中后期相對均衡地編輯代碼,并且在前期主要使用ChatGPT來輔助編程;而中績效組則隨著編程過程的推進,不斷提高編輯代碼的次數,在前期和中期頻繁使用ChatGPT輔助編程,并且伴隨一些無關行為。而低績效組則在前中后期都會頻繁地使用ChatGPT輔助編程,同時常常會出現一些無關行為,并在編程中期時更頻繁地參考教師提供的學習資源。
(三)學習者在ChatGPT中的知識探究問題分析
如圖3(a)所示,學習者主要集中于淺層和中層知識探究(SKI/MKI)之間建立連接,以及在淺層知識探究和淺層反饋內容探究(SKI/SIC)上建立連接,而在深層知識探究(DKI)或反饋內容探究(DIC)上的連接較為薄弱。
此外,研究還呈現了高中低績效組的平均認知網絡〔如圖3(b)、(c)、(d)所示〕,并通過獨立樣本t檢驗,發現高績效組和低績效組在第二維度上有顯著性差異(m高績效組=0.19,m低績效組=-0.35;p<0.05,t=1.18)。從整體上看,中績效組和低績效組建立的認知連接要多于高績效組,高績效組在不同元素之間建立的連接(尤其是自主知識探究維度)最多;中績效組和低績效組則主要在反饋內容探究維度(SIC/DIC)建立較多的連接。由此我們可以推測,高績效組主要通過自主提問來獲取ChatGPT的反饋,而中低績效組主要通過對ChatGPT反饋內容的深入提問來獲取問題的解決方案,其中,低績效組有更多的淺層知識探究和反饋內容探究(SIC/SKI)。
五、研究結論與啟示
(一)ChatGPT能夠輔助學生進行編程學習
從編程行為分析結果中可以發現,學習者傾向于復制和粘貼 ChatGPT 中的代碼,并通過調試和閱讀錯誤信息來驗證代碼的正確性。這一發現呼應了Chen等人的結論,表明學習者將 ChatGPT 視為有用的編程學習資源,并依賴它來指導他們的學習過程[16]。學習者喜歡直接復制并粘貼 Python 代碼和控制臺窗口中的錯誤信息到 ChatGPT,以獲取幫助和答案。這顯示學習者對 ChatGPT 的快速響應和準確性有一定的信任。此外,學習者花費大量時間閱讀 ChatGPT 中的反饋信息,并將其復制到開發環境中進行測試。盡管這種方法可能存在一些問題,例如反饋內容的正確性[4],但學習者對 ChatGPT 給出的反饋和代碼示例具有一定的信任。因此,對于學習者而言,在利用ChatGPT進行編程學習時,應當注意以下幾個方面:首先,在編程的初期階段,可以充分利用ChatGPT的輔助功能,以加深對編程問題的理解并進行解決。其次,隨著學習的進展,應逐漸增加自主編輯代碼的頻率,以提升編程能力和熟練度。最后,需謹防過度依賴ChatGPT,以免產生無關行為,務必確立明確的學習目標和任務,正確運用ChatGPT來輔助學習和解決編程問題。
(二)ChatGPT輔助編程學習中存在潛在問題
在使用ChatGPT進行編程學習時,學習者常常會復制粘貼代碼或錯誤信息,但這種做法可能阻礙學習者解決問題并減弱對代碼的理解和掌握能力。ChatGPT強大的算力也可能帶來"代替學生思考"和"過度技術依賴"的限制[17]。當學習者只是機械地復制和粘貼代碼時,他們可能無法理解代碼的邏輯和功能,從而無法進行必要的修改或調試[6]。因此,為了更有效地利用ChatGPT進行編程學習,學習者要學會(1)理解代碼邏輯,不僅僅復制粘貼代碼,而是仔細閱讀和理解代碼的邏輯和功能;(2)主動思考和解決問題,不僅依賴ChatGPT的答案,而是嘗試自己獨立思考和解決問題;(3)修改和調試代碼,主動進行代碼的修改和調試,通過觀察結果的變化來深入理解代碼的功能;(4)提出具體問題,向ChatGPT提問時提供具體問題和上下文信息,以獲取更準確地解決方案。此外,學習者在使用 ChatGPT 輔助編程學習時可能會遇到技術問題。有時候ChatGPT可能無法提供準確或完整的答案(甚至是錯誤的答案),這表明 ChatGPT 平臺的使用穩定性仍有提升空間[4]。ChatGPT存在自然語言生成技術所普遍存在的“幻覺”問題,會導致它可能無法提供準確或完整的答案,這需要大型語言模型的開發者對模型進行不斷地迭代來逐步改善[18]。
(三)不同績效組在利用ChatGPT時存在行為模式上的差異
根據編程行為分布表和桑基圖結果,我們觀察到不同績效組在編程學習中有不同的行為特點。低績效組在編程的整個過程中使用ChatGPT的頻率最高,而高績效組則使用頻率最低。此外,低績效組在中期階段更頻繁地使用ChatGPT進行輔助編程。中績效組在前期和中期使用ChatGPT輔助編程的頻率較高,后期逐漸減少。高績效組在前期主要使用ChatGPT輔助編程,后期使用頻率較低。這表明ChatGPT可以作為學習者在編程學習中的有用工具,但學習者應根據自身績效水平和學習階段合理使用,逐漸培養獨立思考和解決問題的能力,以提高編程技能和學習效果。針對不同績效水平的學習者,在使用ChatGPT進行編程學習時可以采取以下策略:(1)高績效學習者可以將ChatGPT作為輔助工具,用于提供解決復雜問題的思路;(2)中績效學習者可以在前期和中期較頻繁地使用ChatGPT進行輔助編程,但也要嘗試利用自身知識來思考問題,并自己編寫代碼解決問題。此外,可以利用多種學習資源來彌補知識的不足,如書籍、教程等,來解決問題[19];(3)低績效學習者可以充分利用ChatGPT的輔助功能,在前期使用ChatGPT獲取編程思路和指導,在后期積極實踐并通過調試和改進代碼提升技能。同時,積極與同伴或教師交流以獲得及時的幫助和輔導[13]。
(四)探究問題質量會影響利用ChatGPT開展編程學習的效果
從知識探究問題上可以看出,學習者在使用ChatGPT時主要集中在淺層和中層知識的探究上,而在深層知識探究和反饋內容探究上的比例相對較少。根據認知網絡分析結果發現,高績效學習者主要通過自主提問來獲取ChatGPT的反饋,中績效學習者通過對ChatGPT反饋內容進行提問來獲取問題的解決方案,低績效學習者則更多地從淺層知識探究和反饋內容探究中進行學習。因此,在利用ChatGPT輔助編程學習的過程中,學習者應注重問題的質量和深度,通過提出具有挑戰性和開放性的問題,激發ChatGPT提供更深入的知識[9]。還可以通過嘗試提出與深層知識相關的問題,并追問ChatGPT以獲取更深入的解釋和指導。此外,學習者可以通過使用提示詞(Prompt)來明確他們的問題、需求或者期望的回答形式,來提高ChatGPT的回答質量和準確性。例如吳恩達在《ChatGPT Prompt Engineering for Developers》課程中指出,通過“提示清晰和給AI更多思考時間”兩條準則來設計提示詞[20],可以提升探究問題的質量。此外,學習者還可以設計或借助開放性的提示詞資源(例如ChatGPT等平臺預設的面具或身份),促使ChatGPT提供更深入和創造性的回答。
六、結 ? 語
本研究以某師范大學36名大二學生為研究對象,通過錄屏和平臺日志的方式采集其編程任務中的學習過程數據,并采用不同的學習分析方法,對學習者的編程學習過程和知識探究問題進行了分析和比較。通過分析學習者的編程過程,制定了編程行為和探究問題編碼表,用于分析學習者的編程行為分布、不同績效學習者的行為模式差異以及探究問題質量的差異。針對這些差異,本研究提出了關于如何更好地利用ChatGPT進行編程學習的建議,以提升編程學習效果和促進高階思維能力的發展。本研究也存在一些不足,如樣本量較小、學習者的年齡和專業分布單一等,這些不足將在后續研究中進行探究和完善。未來的研究將進一步探索和完善這些限制,以更好地利用生成式人工智能這一強大的工具支持學生的編程學習。
[參考文獻]
[1] 楊宗凱,王俊,吳砥,等.ChatGPT/生成式人工智能對教育的影響探析及應對策略[J].華東師范大學學報(教育科學版),2023,41(7):26-35.
[2] 張絨.生成式人工智能技術對教育領域的影響——關于ChatGPT的專訪[J].電化教育研究,2023,44(2):5-14.
[3] 董艷,夏亮亮,李心怡,等. ChatGPT賦能學生學習的路徑探析[J].電化教育研究,2023,44(12):14-20,34.
[4] YILMAZ R, KARAOGLAN Y F G. Augmented intelligence in programming learning: examining student views on the use of ChatGPT for programming learning[J]. Computers in human behavior: artificial humans, 2023,1(2):100005.
[5] 孫立會,胡琳琳.編程真的能促進兒童的個體發展嗎?——基于28項實驗和準實驗研究的元分析[J].華東師范大學學報(教育科學版),2021,39(11):45-58.
[6] 盧宇,余京蕾,陳鵬鶴,等.生成式人工智能的教育應用與展望——以ChatGPT系統為例[J].中國遠程教育,2023,43(4):24-31.
[7] 吳林靜,劉清堂,邊佳琪,等.學習分析視域下學習者編程過程分析研究[J].現代遠距離教育,2020(2):68-75.
[8] OPENAI. Introducing ChatGPT[EB/OL]. [2023-08-10]. https://openai.com/blog/chatgpt.
[9] RAHMAN M M, WATANOBE Y. ChatGPT for education and research: opportunities, threats, and strategie[J]. Applied sciences, 2023,13(9):5783.
[10] PEREIRA F D, OLIVEIRA E H, OLIVEIRA D B, et al. Using learning analytics in the Amazonas: understanding students' behaviour in introductory programming[J]. British journal of educational technology, 2020,51(4):955-972.
[11] SUN D, OUYANG F, LI Y, ZHU C. Comparing learners' knowledge, behaviors, and attitudes between two instructional modes of computer programming in secondary education[J]. International journal of STEM education, 2021,8(1):54.
[12] TURKLE S, PAPERT S. Epistemological pluralism and the revaluation of the concrete[J]. Journal of mathematical behavior, 1992, 11(1):3-33.
[13] SUN D, OUYANG F, LI Y, CHEN H. Three contrasting pairs' collaborative programming processes in China's secondary education[J]. Journal of educational computing research, 2021,1(8):54.
[14] OUYANG F, DAI X. Using a three-layered social-cognitive network analysis framework for understanding online collaborative discussions[J]. Australasian journal of educational technology, 2022,38(1):164-181.
[15] SHAFFER D W, COLLIER W, RUIS A R. A tutorial on epistemic network analysis: analyzing the structure of connections in cognitive, social, and interaction data[J]. Journal of learning analytics, 2016,3(3):9-45.
[16] CHEN E, HUANG R,CHEN H S, TSENG Y H, LI L Y. GPTutor: a ChatGPT powered programming tool for code explanation [EB/OL]. [2023-08-10]. https:/arxiv.org/abs/2305.01863.
[17] 鄭永和,周丹華,張永和,等.計算教育學視域下的ChatGPT:內涵、主題、反思與挑戰[J].華東師范大學學報(教育科學版),2023,41(7):91-102.
[18] GODDARD J. Hallucinations in ChatGPT: a cautionary tale for biomedical researchers[J]. The American journal of medicine,2023, 136(11):1059-1060.
[19] 朱光輝,王喜文.ChatGPT的運行模式、關鍵技術及未來圖景[J].新疆師范大學學報(哲學社會科學版),2023,44(4):113-122.
[20] DEEPLEARNING. AI [EB/OL]. [2023-08-10]. https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers/.
A Study on Analysis of College Students' Programming Learning Behavior
Based on Generative Artificial Intelligence
SUN Dan1, ?ZHU Chengcong2, ?XU Zuodong1, ?XU Guangtao1
(1.Chinese Education Modernization Research Institute, Hangzhou Normal University, Hangzhou Zhejiang 311121; 2.Zhejiang Xiaoshan High School, Hangzhou Zhejiang 311201)
[Abstract] Generative artificial intelligence can provide efficient and personalized intelligent services and technical support for education. As a typical generative artificial intelligence language model, the application of ChatGPT in programming has been widely concerned by the industry. However, few scholars have explored how learners use ChatGPT to learn programming from the level of empirical research. Through fine-grained analysis of learners' programming behaviors and knowledge inquiry coding methods, this study has analyzed the programming process of 36 learners. The results show that:(1) learners view ChatGPT as a useful programming learning resource, rely on it to guide the learning process, and tend to copy code or debug errors to ChatGPT, and then copy its feedback; (2) the high-performance group mainly use ChatGPT to assist programming in the early stages, while the low-performance group use ChatGPT more frequently throughout the programming process; (3) learners mainly focus on exploring shallow and middle-level knowledge when using ChatGPT. The high-performance group obtain feedback from ChatGPT by asking questions independently, while the medium- and low- performance group obtain problem solutions by asking questions about feedback from ChatGPT. The study puts forward some suggestions on how to use ChatGPT to assist college students in programming learning, with a view to providing references for improving the efficiency of programming learning.
[Keywords] ?ChatGPT; Programming Learning; Learning Behavior; Learning Analytics; College Students