孫俊梅 賀琳 馬紅亮 趙明
摘要:如今,編程作為計算思維培養(yǎng)的重要途徑已得到廣泛應用。其中相較于圖形化編程,文本編程需要更高的抽象思維和邏輯思維能力,教師有必要提供教學支架幫助學生設計算法、完成編程任務。雖然目前已有研究發(fā)現(xiàn)應用教學支架可以有效發(fā)展學生的計算思維,但鮮有研究探討為學生提供不同類型教學支架對其計算思維發(fā)展的影響。為此,文章面向初中生Python編程課程,以136名初一學生為對象,分別應用算法、程序以及有限型支架,開展了一個學期的準實驗研究,以探究三種不同類型教學支架在發(fā)展初中生計算思維方面的差異。綜合量化和質性數(shù)據(jù)發(fā)現(xiàn):在計算思維技能方面,程序支架的提升效果最為顯著,明顯優(yōu)于算法和有限型支架;在計算思維自我效能感方面,算法和程序支架均有顯著性提升效果,且學生原有計算思維自我效能感水平越高,提升效果越顯著。文章通過研究,旨在為信息科技教師開展計算思維教學實踐提供基于證據(jù)的學理支持。
關鍵詞:計算思維;Python課程;算法設計;程序開發(fā);教學支架
【中圖分類號】G40-057 【文獻標識碼】A 【論文編號】1009—8097(2024)06—0100—12?【DOI】10.3969/j.issn.1009-8097.2024.06.011
引言
作為21世紀學生的必備核心素養(yǎng),計算思維(Computational Thinking)現(xiàn)已被廣泛納入發(fā)達國家K-12階段計算機科學課程的培養(yǎng)目標和內容體系中。關于計算思維的概念,目前國際學術界存在兩種主流認識:其一認為計算思維與計算機科學和編程緊密相關,其二則強調計算思維是一種普遍存在于問題解決過程中的認知技能[1]。在計算機科學教育領域,多位研究者認為編程是培養(yǎng)計算思維的首選方法[2],因為程序設計過程完整地演示了從提出問題到計算機解決問題的全部步驟,包括抽象、分解、算法、模式識別、迭代和歸納等認知要素[3],這些認知要素常被稱為計算思維技能(Computational Thinking?Skill),通過編程知識測試題、Bebras測試題和編程作品分析等方式進行評估。然而,一些研究者認為計算思維不僅包含以上認知要素,還涵蓋非認知要素[4][5][6]。例如,計算機科學教師協(xié)會(Computer Science Teachers Association,CSTA)和國際教育技術協(xié)會(International Society for Technology in Education,ISTE)強調計算思維技能離不開傾向或態(tài)度等非認知要素的支持[7],其中包括對問題解決、創(chuàng)造力、批判性思維、算法思維和合作溝通等的自信心[8]。此外,也有一些研究者將自我評估形式的計算思維測評視為計算思維自我效能感(Computational Thinking Self-efficacy)[9],并發(fā)現(xiàn)編程自我效能感較高的學生更相信自己在完成編程任務時會取得成功[10],同時編程技能的實際表現(xiàn)也會更好。顯然,通過培養(yǎng)計算思維技能這一認知要素,有助于學生掌握分析問題的關鍵要素、抽象復雜情境、靈活設計算法以及有效解決現(xiàn)實問題;而提升計算思維自我效能感這一非認知要素,有益于學生增強編程學習中問題解決、算法思維以及創(chuàng)造力等方面的自信心。
初中階段是計算思維發(fā)展的關鍵時間節(jié)點,此階段的學生處于圖形化編程到文本編程的過渡期,而文本編程相較于圖形化編程需要更高的抽象思維和邏輯思維能力。此外,算法設計對于初中生而言更是難點,如何將數(shù)據(jù)間的關系轉化為算法往往制約其編程活動的推進,需要教師提供教學支架幫助學生整理思維、設計算法[11]。教學支架作為學生學習過程中的即時性支持工具,對學生的問題解決和意義建構起到輔助作用,能有效幫助學生基于自身學習水平從實際發(fā)展區(qū)進階到潛在發(fā)展區(qū),以實現(xiàn)學生認知層面的跨越,協(xié)助學生發(fā)展高階思維能力,最終解決學習中遇到的困難和問題[12]。在編程教育領域,已有研究發(fā)現(xiàn)應用教學支架可以有效發(fā)展學生的計算思維[13][14][15][16]。然而,這些研究大多聚焦于比較提供教學支架和不提供教學支架這兩種教學方式在培養(yǎng)計算思維方面的差異,鮮有研究探討為學生提供不同類型教學支架對其計算思維發(fā)展的影響。在此背景下,本研究聚焦計算思維的認知要素和非認知要素,通過準實驗方法深入探討不同類型教學支架在發(fā)展初中生計算思維技能和自我效能感上的差異及有效性,從而促進初中生計算思維的發(fā)展,并為教師開展計算思維教學實踐提供基于證據(jù)的學理支持。
一 文獻綜述
1 中小學計算機課程中計算思維的培養(yǎng)研究
中小學計算機課程中計算思維的培養(yǎng)是一個循序漸進、螺旋上升的過程,初中階段的培養(yǎng)脈絡應與小學階段進行有效銜接。在計算機課程中,為了培養(yǎng)中小學生的計算思維,美國麻省理工學院(Massachusetts Institute of Technology,MIT)媒體實驗室于2012年提出了以圖形化編程為核心的計算思維框架[17],倡導從認知和非認知兩個層面培養(yǎng)學生的計算思維。該框架包含計算概念、計算實踐和計算觀念三個維度,其中計算概念指編程活動中的順序、條件、循環(huán)、并行、事件、運算符、數(shù)據(jù)等基本概念,這些是編程活動的基礎;計算實踐指處理計算概念、進行編程活動的過程,如編寫程序、測試和調試、迭代和應用等;計算觀念指在計算實踐中形成的對自身、與他人的關系以及周圍科技世界的理解和態(tài)度。基于MIT的計算思維框架,國際學術界開展了許多相關研究,然而一項關于計算思維的系統(tǒng)性文獻綜述表明,以往研究更多關注計算概念和計算實踐,對計算觀念的研究尚存在局限性[18]。
在培養(yǎng)中小學生計算思維的課程建設與實施方面,國內外研究者開發(fā)了多樣化的課程,包括編程課程、機器人課程、人工智能課程和跨學科課程等。中小學編程課程包含圖形化編程和文本編程兩大類課程工具載體。在圖形化編程工具方面,當前大多數(shù)中小學生計算思維的培養(yǎng)研究主要依托圖形化編程工具實施,包括Scratch、App Inventor、Alice、Code.org等。例如,Ma等[19]基于Scratch探究了整合計算思維過程的問題解決教學方法對小學生計算思維技能和自我效能感的影響;寧可為等[20]的研究發(fā)現(xiàn),結合App Inventor開展信息技術教學可以明顯提升初中生的計算思維能力和學習興趣。在文本編程工具方面,現(xiàn)階段則以Python為主。例如,Monsalvez[21]回顧分析了Python編程環(huán)境中的教育工具及開放資源,認為可以將Python配置為K-12階段的一種理想編程語言;Bai等[22]、張學軍等[23]、Zitouniatis等[24]分別研究了在Python教學中問題導向學習、數(shù)字化游戲方式和基于場景的學習工具對學生計算思維發(fā)展的有效性??梢?,以往通過計算機課程培養(yǎng)中小學生計算思維的實證研究,更多選擇圖形化編程工具作為研究載體,較少基于Python工具;且相關研究多聚焦計算思維的認知要素,忽視了計算思維的非認知要素。
2教學支架及其在編程教育中的應用研究
教學支架是教師為學生提供的即時支持,這種支持能夠促進學生有意義地參與問題解決并發(fā)展技能。教師可以在學生問題解決的不同階段提供教學支架,如提出問題、思考問題、選擇策略、實踐操作等階段。在教學支架的設計和應用中,思路型(Idea)和任務型(Task)教學支架是教師使用的兩類主要支架[25],其中思路型教學支架通常將學生自主提出問題解決的思路視為知識建構的核心,強調學生圍繞問題解決的思路開展更具靈活性的自主協(xié)作與互動,從而發(fā)展群體在高階思維過程中的認知能力[26];任務型教學支架通常強調教師對學習任務進行分解和細化,然后在學生完成具體任務的過程中提供及時指導,強調學生在高結構化的小組活動中完成具體任務[27]。此外,一些研究者還提出了有限型教學支架(Minimal Scaffolding),也稱為開放式教學支架,指在教學過程中教師進行最低限度的指導,僅為學生提供基礎的引導和幫助以保障學生能夠完成項目[28]。
在編程教育領域,大多數(shù)研究集中在思路型教學支架的應用方面,且思路型教學支架的設計常常采用流程圖、思維導圖等思維可視化工具,聚焦于學生的思維加工過程。例如,郁曉華等[29]、Zhang等[30]將流程圖引入編程教學作為思路型教學支架,分別探索其對中學生和大學生計算思維的提升效果;Zhao等[31]將自構式思維導圖和填充式思維導圖作為思路型教學支架引入小學圖形化編程教學,研究結果顯示填充式思維導圖能更好地提高小學生的計算思維技能。楊剛等[32]的研究表明,在編程學習活動中,相較于開放式建模方式,支架式建模方式對于提升學生的計算思維成績效果更加顯著。目前,在編程教育中針對任務型教學支架的實證研究較少,僅王靖等[33]在其研究中設計了問題驅動的編程任務,教師提供關于任務評價與任務障礙的反饋支架,基于此開展了三輪圖形化編程活動的設計、實施與評價??梢?,已有研究雖然探討了教學支架在發(fā)展學生計算思維方面的有效性,但主要集中于比較教學支架的提供與否,鮮有研究探討不同類型教學支架對學生計算思維發(fā)展的影響,尤其缺乏實證研究來比較任務型和思路型兩種教學支架在提升初中生計算思維方面的差異。
基于此,本研究立足于初中生Python編程課程,結合思路型和任務型教學支架分類依據(jù),設計以思路啟發(fā)為主的算法支架和以編程實踐為主的程序支架,同時設置對照組(有限型支架)開展準實驗研究,以探究不同類型教學支架在發(fā)展初中生計算思維方面的差異情況。具體的研究問題為:①在提升初中生計算思維技能方面,算法支架和程序支架是否存在顯著性差異,這兩類支架是否顯著優(yōu)于有限型支架?②在提升初中生計算思維自我效能感方面,算法支架和程序支架是否存在顯著性差異,這兩類支架是否顯著優(yōu)于有限型支架?
二 研究設計
1 研究對象
本研究以成都市某中學七年級三個平行班的學生為研究對象,共計136名。隨機設置兩個實驗班和一個對照班。其中,算法支架班共46名同學(男生17人,女生29人),程序支架班共48名學生(男生22人,女生26人),有限型支架班(對照班)共42名同學(男生24人,女生18人)。絕大多數(shù)學生在小學階段已經學習了圖形化編程課程,具備一定的編程基礎,且計算思維(技能和自我效能感)前測水平無顯著性差異。三個班級均由同一位具有三年Python教學經驗的教師進行授課。
2 研究方法
本研究采取前后測非對等控制組準實驗設計,具體實驗設計如圖1所示。其中,在熱身階段,學生認識Python軟件界面及其基本操作,熟悉學習活動流程;在實驗前測階段,本研究借助計算思維技能知識測試和計算思維自我效能感量表對學生的計算思維進行評估;在實驗階段,兩個實驗班開展融合不同類型教學支架的教學活動,對照班則不提供教學支架;在實驗后測階段,本研究利用計算思維技能知識測試、計算思維自我效能感量表和半結構化訪談提綱對學生的計算思維進行評估。整個干預共16個課時,為期16周。
3 課程內容設計
基于MIT計算思維框架[34],本研究團隊從成都市中小學Python教材的內容體系出發(fā),結合該校學生的編程基礎和課程教師的教學經驗,對Python課程的教學內容進行了設計(如表1所示)。課程主題活動由簡單到復雜,由單一知識點的學習到多知識點的綜合運用。課程教學的實驗階段包含三大課程主題,依次為“基礎篇”“進階篇”“提升篇”,三個主題相互聯(lián)系,實現(xiàn)學生計算思維技能和計算思維自我效能感的發(fā)展。
4 課程活動設計
本研究基于計算思維培養(yǎng)的五環(huán)節(jié)和支架式教學模式設計兩個實驗班的學習活動[35][36],具體學習活動流程包含情境創(chuàng)設、任務分析、活動探究、作品評價和總結反思五個階段,并在活動探究階段提供不同類型的教學支架(如圖2所示):①情境創(chuàng)設。教師根據(jù)教學內容創(chuàng)設編程情境,拋出引導性問題。②任務分析。學生明確編程任務和待解決的編程問題后,分解編程任務并組建4人學習小組。③活動探究。該階段包含算法設計和程序編譯兩個環(huán)節(jié),其中在算法支架班教師重點針對算法分析提供支架,引導學生厘清算法設計思路,如圖3(a)所示;在程序支架班教師重點針對程序編寫提供支架,提示學生程序編寫的步驟,引導學生完成程序開發(fā),如圖3(b)所示。④作品評價。學生分享問題解決方案,包括算法分析或程序編寫的思路、流程和運行結果,并進行生生互評。⑤總結反思。在教師的組織和引導下,學生對編程學習活動進行總結,并反思自己的程序設計思路及編寫流程。有限型支架班(對照班)的學習活動流程也包含上述五個環(huán)節(jié),不同的是在活動探究階段教師既不提供算法支架,也不提供程序支架,主要依靠學生以小組為單位的自主探究,教師會根據(jù)學生的困難和提問進行有針對性的答疑,但所提供的教學支架非常有限。
5 研究工具
(1)計算思維技能知識測試
本研究采用編程知識測試題評估初中生的計算思維技能,該知識測試是在青少年人工智能編程水平測試(YCL)Python7~8級的基礎上,結合一線教師的教學實踐經驗和專家決策修訂完成的。知識測試滿分為100分,涵蓋Python基本語法規(guī)則、基本數(shù)據(jù)類型、常用函數(shù)、控制邏輯以及編程應用等基本知識,前測和后測均來自同一等級的不同模擬試卷,分別由24道題組成,包括15道單選題、5道多選題和4道編程測驗題。其中,單選題選擇正確計3分,多選題全部選擇正確計3分(少選計2分,多選錯選不計分),編程測驗題每道計10分。在知識測試量表信度方面,Cronbachs Alpha系數(shù)為0.892>0.7,說明知識測試具有一定的穩(wěn)定性和一致性。
(2)計算思維自我效能感量表
目前,Korkmaz等[37]開發(fā)的計算思維量表被廣泛應用于中小學生計算思維的測評中,該量表從創(chuàng)造力、算法思維、批判性思維、問題解決和合作學習五個非認知要素評估學生的計算思維自我效能感。本研究對此量表進行本地化修訂,形成的量表共包含25道題項,采用李克特5點量表計分,1~5分別代表“非常不贊同”到“非常贊同”。實驗前針對未參與實驗的初中生進行量表的信效度檢驗,Cronbachs Alpha系數(shù)為0.920>0.7,顯示該量表在初中生中具有良好的信度;各題項的標準化載荷系數(shù)為0.536~0.872,數(shù)值均大于0.5;五個維度的平均方差萃取AVE值為0.521~0.694,數(shù)值均大于0.5;五個維度的組成信度CR值為0.736~0.919,數(shù)值均大于0.6,這些指標說明此量表的結構效度良好。
(3)半結構化訪談提綱
Kalelioglu等[38]開發(fā)的訪談提綱全面覆蓋了編程培養(yǎng)計算思維的關鍵領域,本研究以此訪談提綱為基礎,經研究團隊和任課教師商議后最終確定了7項開放式問題作為半結構化訪談的提綱,具體問題包括印象最為深刻的編程項目、編程學習中解決困難的方法、項目完成過程中的小組分工、對支架式教學的看法、編程課程的學習收獲和意見建議。在訪談對象的選擇方面,本研究根據(jù)學生計算思維技能和計算思維自我效能感兩個維度的后測數(shù)據(jù)構建散點圖,分割形成S1(高CT自我效能感+低CT技能)、S2(高CT自我效能感+高CT技能)、S3(低CT自我效能感+低CT技能)和S4(低CT自我效能感+高CT技能)四個象限,并結合學生所在班級,從每個班級選擇4位學生,三個班級共計12位學生參與本次半結構化訪談。
6 數(shù)據(jù)分析
在量化數(shù)據(jù)分析方面,為探明算法支架和程序支架對初中生計算思維技能的影響(研究問題①),本研究采用2(時間:前測vs后測)×3(支架類型:算法vs程序vs有限型)的被試內設計,對計算思維技能進行重復測量方差分析。為探明算法支架和程序支架對初中生計算思維自我效能感的影響(研究問題②),考慮到三個班級學生計算思維自我效能感(F=8.211,p=0.000<0.05)(含對照班)的前測(協(xié)變量)與不同類型教學支架(自變量)均存在交互作用,不滿足回歸同質性的協(xié)方差分析條件,因此采用Johnson-Neyman方法進行后續(xù)數(shù)據(jù)的統(tǒng)計分析。
在質性數(shù)據(jù)分析方面,本研究分別依據(jù)MIT計算思維框架和計算思維自我效能感量表對訪談文本進行基于預設框架的編碼。最初,兩名研究人員(第一作者和第二作者)對訪談文本數(shù)據(jù)中的一些樣本單獨編碼。然后,這兩位研究人員一起討論編碼結果,并就編碼差異和子主題達成了共識。最后,兩人再次對所有訪談文本數(shù)據(jù)進行單獨編碼。
三 研究結果
1 不同類型教學支架對初中生計算思維技能的影響
計算思維技能的重復測量方差分析結果顯示,時間主效應顯著(F=227.733,p=0.000,ηp2=0.631),三個班學生的計算思維技能后測值顯著高于前測值;支架類型主效應顯著(F=3.971,p=0.021,ηp2=0.056),在不同類型支架的影響下,三個班學生的計算思維技能存在顯著性差異;時間和支架類型的交互作用顯著(F=6.096,p=0.003,ηp2=0.084)。三個班學生計算思維技能前后測簡單效應分析結果如圖4所示(其中),在計算思維技能后測值方面,程序支架班顯著高于算法支架班(MD=10.18)和有限型支架班(MD=13.17),而算法支架班和有限型支架班沒有顯著差異。
根據(jù)訪談文本分析,本研究發(fā)現(xiàn)三個班學生對計算思維的三個類屬(概念、實踐和觀念)均有提及,且大部分學生認為在學習中掌握了編程知識與概念,通過編程實踐提升了編程能力,并希望能夠繼續(xù)學習以掌握更多的編程語言和編程技能。在計算思維概念方面,學生在訪談中提及較多的是循環(huán)、數(shù)據(jù)和變量等概念。例如,Sp3(程序支架班)談到:“要求在棋盤上放麥粒,需要計算每格棋盤的麥粒數(shù)和總麥粒數(shù),每個棋盤的麥粒數(shù)是前一個棋盤的2倍,而且每次都是翻倍增加,這需要一個計數(shù)的變量,最后得到64個格子,就用了while循環(huán)?!痹谟嬎闼季S實踐方面,學生談論較多的是問題解決過程,即能夠通過逐步地嘗試修正語句、反復實踐、與同伴討論交流、尋求老師的幫助,最終實現(xiàn)編程效果。例如,Sa2(算法支架班)說:“(我)一般會嘗試用不同的方法去解決,或是對程序一一進行檢查?!盨p4(程序支架班)說:“在程序出現(xiàn)問題時,我會逐行檢查代碼的語法錯誤,或重新厘清思路,最終將程序修改正確?!痹谟嬎闼季S觀念方面,學生普遍認為自己有信心編寫程序,并在出錯狀態(tài)下進行不斷的探索,同時也很樂意和別人分享自己的作品、思路及程序編寫經驗。例如,Sp3(程序支架班)覺得:“我會向同桌以及小組成員分享自己創(chuàng)作的作品,把我的想法告訴他們會有一種特別的成就感,就是迫不及待地想讓自己的同伴看看自己的成果。”
2 不同類型教學支架對初中生計算思維自我效能感的影響
本研究對三個班的計算思維自我效能感進行配對樣本T檢驗,結果顯示算法支架(t=4.882**,p=0.000<0.05)和程序支架(t=2.617*,p=0.012<0.05)均能顯著提升學生的計算思維自我效能感,但有限型支架未能顯著提升學生的計算思維自我效能感(t=0.319,p=0.752>0.05)。計算思維自我效能感前測數(shù)據(jù)的單因素方差分析結果顯示,三個不同教學支架班級學生的計算思維自我效能感前測不存在顯著差異(F=0.190,p=0.827>0.05)。Johnson-Neyman的分析結果顯示,在提升學生計算思維自我效能感方面,算法支架班與有限型支架班(F=16.50,p=0.001<0.05)、程序支架班與有限型支架班(F=13.86,p=0.004<0.05)之間存在顯著差異,算法支架班與程序支架班(F=1.377,p=0.244>0.05)之間不存在顯著差異。如圖5(a)所示,算法支架班與有限型支架班在自我效能感評分中的顯著點分別為76.27和91.44,即當學生的前測值<76.27(占9.09%)時,有限型支架對其計算思維自我效能感的提升效果顯著優(yōu)于算法支架;當前測值>91.44(占50.00%)時,算法支架顯著高于有限型支架的作用效果;當前測值介于兩者之間(占40.91%)時,兩個班級之間不存在顯著差異。這說明,計算思維自我效能感前測水平越高,算法支架對學生計算思維自我效能感的提升越顯著。如圖5(b)所示,程序支架班和有限型支架班在計算思維自我效能感評分中的顯著點分別為75.76和94.51,即當學生的前測值<75.76(占8.89%)時,有限型支架對其計算思維自我效能感的提升效果顯著優(yōu)于程序支架;當學生的前測值>94.51(占42.22%)時,程序支架的作用效果最為顯著;當前測值處于兩者之間(占48.89%)時,兩類教學支架的作用效果不存在顯著差異。這說明,計算思維自我效能感前測水平越高,程序支架對學生計算思維自我效能感的提升越顯著。
根據(jù)訪談文本分析,在計算思維自我效能感的創(chuàng)造力維度,算法支架班級表現(xiàn)較為積極,學生會根據(jù)老師提供的支架進行思維擴散,嘗試新的解題思路和方法。例如,學生Sa2(算法支架班)提到:“我可以把想象的畫面通過編程構造出來,在通過Python編程繪制圖形的時候,我畫了一個紅彤彤的太陽,占了一大半畫布,和其他同學畫得都不一樣,我覺得這樣比較溫馨?!痹谒惴ㄋ季S維度,兩個實驗班的大部分學生認為能夠通過算法思路的引導和程序編寫的過程性指導,獲得較高的成就感與滿意度,從而提升學習文本編程語言的樂趣。例如,Sp2(程序支架班)提到“寫程序的過程和列方程特別像,首先要讀懂題干的意思,看需要完成哪些任務,最后一步一步地完成它。要是遇到問題,就倒推著一點點解決。”在批判性思維維度,多數(shù)學生提及“最優(yōu)解”“最簡潔的方式”等關鍵詞。例如,Sp1(程序支架班)提到:“我覺得完成任務的方式有很多種,有時候會考慮用其他的結構會不會更簡單,如調整一下順序、改變一下結構,可能寫出來的程序會比較簡潔?!痹趩栴}解決維度,兩個實驗班的學生普遍認為自己能解決問題并有明確的解題思路,即會根據(jù)問題進行分解,然后逐步實施規(guī)劃,最終完成任務。例如,Sa1(算法支架班)認為:“要解決一個問題,首先應對其進行分析,把問題分解之后,再去想如何去做。”在合作學習維度,兩個實驗班的大部分學生認為自己喜歡與同伴合作,同時也能夠很好地開展合作。例如,Sp4(程序支架班)提到:“我喜歡和同伴一起完成任務,我們會針對任務發(fā)表自己的意見,如果意見不同,那么分析誰的意見達到的效果會更好,就按誰的想法做?!?/p>
四 討論與分析
本研究在Python課程中應用了算法、程序以及有限型三類教學支架培養(yǎng)初中生的計算思維,經過一個學期的教學實驗,綜合量化和質性數(shù)據(jù)發(fā)現(xiàn):①在提升初中生計算思維技能方面,程序支架的提升效果最為顯著,顯著優(yōu)于算法支架和有限型支架。②在提升初中生計算思維自我效能感方面,算法支架和程序支架均能顯著提升初中生的計算思維自我效能感,但有限型支架未能顯著提升初中生的計算思維自我效能感;初中生原有的計算思維自我效能感水平越高,算法和程序支架對初中生計算思維自我效能感的提升越顯著。
1 在提升初中生計算思維技能方面,程序支架顯著優(yōu)于算法支架和有限型支架
程序支架以編程任務為導向,按照程序語句的構建步驟為初中生提供支持。開發(fā)程序時,學生根據(jù)教師提供的支架分析程序語句、補充完善自己的程序結構和程序語句;調試程序時,學生可以進一步分析教師提供的殘缺程序和程序注釋,進而修正自己的錯誤,教師也可以直接提供及時的指導。本研究中,程序支架對初中生計算思維技能的提升遠優(yōu)于其他兩類支架,學生計算思維知識測試成績的進步最為顯著,這進一步支持了程序支架對學生的計算思維概念、編程實踐具有顯著效果的研究結論。其原因可能在于,面對復雜的編程問題,如果將其作為一個整體來尋找解決方案,學生可能會產生畏懼心理,但如果按照功能要素將其分解為易于操作的問題,將使編程問題解決的流程更簡單[39]。相較于其他兩類支架,程序支架在提供殘缺程序的同時提供了程序注釋,將一個復雜的編程任務拆分成了幾個易于理解的小任務,這為學生提供了明確的編程任務和編程語句支持,學生可以根據(jù)教師提供的編程任務提示深度加工編程知識和概念,借助這些提示對編程過程中出現(xiàn)的問題進行校對,并在反復操作和試錯的過程中積累程序編寫的經驗[40],以此不斷強化對編程語言的理解,加深對計算概念和計算實踐的掌握。
算法支架以流程圖構建為核心,可以在學習過程中為學生提供編程思維脈絡,引導學生發(fā)散思維,構建自己的算法分析過程。本研究中,學生可以根據(jù)教師提供的殘缺流程圖設計算法,圍繞所設計的算法編寫相應的程序。結果表明,算法支架提升了初中生的計算思維技能,這支持了已有關于流程圖教學支架能夠促進學生計算思維發(fā)展的研究[41][42]。本研究還發(fā)現(xiàn),算法支架對初中生計算思維技能的提升并未與有限型教學支架表現(xiàn)出顯著性差異,出現(xiàn)這種結果的原因可能在于本研究中的算法支架未能根據(jù)任務的復雜度以及學生認知水平的發(fā)展進行階梯式、遞進式的設計,這給部分學生造成了認知負荷[43],從而影響了其計算思維技能的發(fā)展。
2 在提升初中生計算思維自我效能感方面,算法支架和程序支架效果一致
在編程教育中,自我效能感是個人對自己完成某項編程任務時所具有的信念,是影響編程學習成功的重要因素。當學生有更強的自我效能感時,他們對自己完成編程任務的能力就會有更大的信心,更有可能著手并堅持工作直至其完成[44]。本研究發(fā)現(xiàn),算法支架和程序支架均能顯著提升初中生的計算思維自我效能感,但有限型支架對初中生計算思維自我效能感的提升不顯著。其原因可能在于,編程學習是一項復雜度較高的非良構問題。在算法支架班,學生通過流程圖填空能清晰地勾勒出編程問題的關鍵點,以更好地按照流程圖表達算法過程,從而利用算法解決編程問題,這對提高學生完成編程任務的信念有極大幫助。在程序支架班,學生可以對比教師提供的殘缺程序反思自己的解決方法,找出自己程序中的問題,在糾錯的過程中取得的成功會極大地增強學生的自信心。本研究還發(fā)現(xiàn),初中生的計算思維自我效能感原有水平越高,算法支架和程序支架對學生計算思維自我效能感的提升越顯著。究其原因可能在于,計算思維自我效能感原有水平越高的學生,其編程學習意愿越強烈[45],在編程和調試過程中的表現(xiàn)越積極,編程技能就會掌握得越好,反過來其自我效能感提高得也就越顯著,但這一解釋尚需進一步驗證。
本研究的啟示在于,信息科技教師在開展面向計算思維培養(yǎng)的初中生Python課堂教學實踐中,可依據(jù)任務的復雜程度和學生的認知水平,靈活應用算法支架或程序支架,甚至將兩者有效結合,發(fā)揮各自優(yōu)勢,使學生先通過流程圖明晰算法過程,再通過程序注釋分解編程任務并在殘缺程序的提示下進行程序編譯,最終提高學生的計算概念、計算實踐和計算觀念,促進其計算思維的發(fā)展。然而,本研究還存在一定的局限性,如并未探索三類教學支架所帶來的延遲學習效果,以及初中生將三類支架遷移應用到新情境解決新問題的能力。因此,未來研究可以增加延遲后測,在驗證自變量帶來長期效果的同時,使實驗結論更具應用價值。
參考文獻
[1]Tang?X, Yin?Y, Lin?Q, et al. Assessing computational thinking: A systematic review of empirical studies[J]. Computers & Education, 2020,148:103798.
[2]Hsu T C, Chang S C, Hung Y?T. How to learn and how to teach computational thinking: Suggestions based on a review of the literature[J]. Computers & Education, 2018,126:296-310.
[3]Shute V J, Sun C, Asbell-clarke J. Demystifying computational thinking[J]. Educational Research Review, 2017,22:142-158.
[4][7]CSTA,?ISTE. Operational definition of computational thinking for K-12 education[OL].
[5][8][37]Korkmaz ?, ?akir R, ?zden M Y. A validity and reliability study of the computational thinking scales (CTS)[J]. Computers in Human Behavior, 2017,72:558-569.
[9]Atman Uslu N. How do computational thinking self-efficacy and performance differ according to secondary school students?profiles? The role of computational identity, academic resilience, and gender[J]. Education and Information Technologies, 2023,(5):6115-6139.
[10]Kong S C, Chiu M M, Lai M. A study of primary school students?interest, collaboration attitude, and programming empowerment in computational thinking education[J].Computers & Education, 2018,127:178-189.
[11]宿慶,張文蘭,王海,等.面向高中生計算思維培養(yǎng)的信息技術課程項目式學習研究[J].電化教育研究,2022,(8):109-115、122.
[12]何克抗.教學支架的含義、類型、設計及其在教學中的應用——美國《教育傳播與技術研究手冊(第四版)》讓我們深受啟發(fā)的亮點之一[J].中國電化教育,2017,(4):1-9.
[13][29][41]郁曉華,王美玲.流程圖支持下的計算思維培養(yǎng)實踐研究[J].中國遠程教育,2019,(9):83-91.
[14][30][42]Zhang J H, Meng B, Zou L C, et al. Progressive flowchart development scaffolding to improve university students computational thinking and programming self-efficacy[J].?Interactive Learning Environments,?2023,(6):3792-3809.
[15][31]Zhao L, Liu X, Wang C, et al. Effect of different mind mapping approaches on primary school students?computational thinking skills during visual programming learning[J]. Computers & Education, 2022,181:104445.
[16][32]楊剛,張銀榮,徐佳艷,等.圖形化編程環(huán)境下建模方式對學生計算思維與編程行為的影響研究[J].電化教育研究,2022,(4):107-115.
[17][34]Brennan K, Resnick M. New frameworks for studying and assessing the development of computational thinking[OL].
[18]Tikva C, Tambouris E. Mapping computational thinking through programming in k-12 education: A conceptual model based on a systematic literature review[J]. Computers & Education, 2021,162:104083.
[19]Ma H, Zhao M, Wang H, et al. Promoting pupils computational thinking skills and self-efficacy: A?problem-solving instructional approach[J].?Educational Technology Research and Development,?2021,(3):1599-1616.
[20]寧可為,楊曉霞.基于App Inventor的初中計算思維培養(yǎng)實證研究[J].課程·教材·教法,2018,(2):110-115.
[21]Garcia Monsalvez J C.?Python as first textual programming language in secondary education[J]. Education in the Knowledge Society,?2017,(2):147-162.
[22]Bai H, Wang X, Zhao L. Effects of the problem-oriented learning model on middle school students computational thinking skills in a python course[J].?Frontiers in?Psychology, 2021,12:771221.
[23]張學軍,岳彥龍,梁嶼藩.Python課程中數(shù)字化游戲教學培養(yǎng)高中生計算思維的實證研究[J].電化教育研究,2021,(7):91-98.
[24]Zitouniatis A, Lazarinis F, Kanellopoulos D. Teaching computational thinking using scenario-based learning tools[J]. Education and Information Technologies, 2023,(4):4017-4040.
[25]Hong?H?Y, Lin P Y. Elementary students enhancing their understanding of energy saving through idea centered collaborative knowledge building scaffolds and activities[J]. Educational Technology Research and Development, 2019,67:63-83.
[26][27]Ouyang?F, Chen?Z, Cheng?M, et al. Exploring the effect of three scaffoldings on the collaborative problem-solving processes in Chinas higher education[J].?International Journal of Educational Technology in Higher Education, 2021,18:1-22.
[28]Kirschner P A, Sweller J, Clark R E. Why minimal guidance during instruction does not work: An analysis of the failure of constructivist, discovery, problem-based, experiential, and inquiry-based teaching[J]. Educational Psychologist, 2006,(2):75-86.
[33]王靖,馬志強,劉亞琴,等.面向計算思維的可視化編程活動設計與應用[J].現(xiàn)代教育技術,2022,(9):55-63.
[35]Selby C, Woollard J. Computational thinking: the developing definition[OL].
[36]何克抗,林君芬,張文蘭.教學系統(tǒng)設計[M].北京:高等教育出版社,2006:91-92.
[38]Kalelioglu F, Gülbahar Y. The effects of teaching programming via scratch on problem solving skills: A discussion from learners perspective[J]. Informatics in Education, 2014,(1):33-50.
[39]多召軍,劉巖松,任永功.編程教育促進兒童計算思維發(fā)展的內在機理與教學實踐研究[J].電化教育研究,2022,(8):101-108.
[40]Molenaar I, Van-boxtel C A M, Sleegers P J C. The effects of scaffolding metacognitive activities in small groups [J]. Computers in Human Behavior,?2020,(6):1727-1738.
[43]Stewart T M, Macintyre W R, Galea V J, et al. Enhancing problem-based learning designs with a single e-learning scaffolding tool: Two case studies using challenge FRAP[J]. Interactive Learning Environments, 2007,(1):77-91.
[44]Kong S C, Chiu M?M, Lai M. A study of primary school students interest, collaboration attitude, and programming empowerment in computational thinking education[J]. Computers & Education, 2018,127:178-189.
[45]梁云真,高思圓,劉瑞星,等.小學生編程學習意愿影響因素的鏈式中介作用機制研究[J].現(xiàn)代遠距離教育,2021,(6):29-37.
What Kind of Teaching Scaffoldings is more Effective in Promoting Secondary Students?Computational Thinking
——Based on the Comparison of Algorithm Scaffolding, Program Scaffolding, Minimal Scaffolding
SUNJun-Mei1????HE Lin2????MAHong-Liang1[Corresponding Author]????ZHAO Ming3
(1. School of Educational,Shaanxi Normal?University, Xian,?Shaanxi,?China 710062; 2. Shenzhen Cuiyuan Experimental School, Shenzhen, Guangdong, China 518000; 3. Chengdu NO.49 Middle School, Chengdu, Sichuan, China 610057)
Abstract:At present, programming, as an important way to cultivate computational thinking (CT)?has been widely used. Compared with graphic?programming, text programming requires higher abstract thinking and logical thinking ability, so it is necessary for teachers to provide teaching scaffolding to help students design algorithms and complete programming tasks. Although existing studies have found that the application of teaching scaffolding can effectively develop students?CT, few studies have explored the effects of providing different types of teaching scaffoldings for students on their CT development. Therefore, based on the Python programming course?for junior high school students, this paper?took 136 junior high school students as objects and carried out a?quasi-experimental study for one semester by applying algorithm, program and minimal scaffolds, respectively, to explore the differences of three different types of teaching scaffoldings in the development of junior high school students?CT. The quantitative and qualitative data?showed?that in term of CT skill, the promotion effect of?program scaffolding?was most significant, which was?significantly better than the algorithm and?minimal scaffolding. As?to the aspect of?CT?self-efficacy, both algorithm and program scaffoldings had significant improvement effects, and the higher the level of students?original CT self-efficacy, the more significant the improvement effect. Through the research, this paper was expected to provide evidence-based theoretical support for information technology teachers to carry out CT teaching practice.
Keywords:computational thinking; Python course; algorithm design; program development; teaching scaffolding
作者簡介:孫俊梅,在讀博士,研究方向為信息科技教育、人工智能教育,郵箱為154382880@qq.com。
編輯:小時