摘要:編程教育已經逐步受到社會、學校以及家長的重視,如何提高編程教育的質量已經成為一個熱點話題。通過對目前中學Python編程課程教學中存在的一些問題進行了總結梳理,并且以認知負荷理論為基礎,從減輕內在認知負荷、降低外在認知負荷以及增加相關認知負荷三個大方向出發,提出了幾點中學Python編程課程的教學策略,從而提升其教學質量。
關鍵詞:認知負荷;Python編程;初中編程教學;教學策略
中圖分類號:G642" " " " 文獻標識碼:A
文章編號:1009-3044(2022)33-0155-03
1 引言
隨著新一代技術的發展,編程教育已日漸成為智能時代進行創新性人才培養的實施重點。在教育部公布的《2019年教育信息化和網絡安全工作要點》中明確指出,“推動在中小學階段設置人工智能相關課程,逐步推廣編程教育”。不僅如此,現在市面上的編程培訓機構也變得越來越多、越來越規范,許多家長也意識到編程教育的重要性,通過編程教學來教會學生用計算機領域的方法來解決問題,培養學生的計算思維,提升學生的信息素養,培養新時代所需要的人才。由此可見,編程教育的迅猛發展是大勢所趨。
然而,就目前Python編程課程教學現狀來看,Python編程課程教學的教學效果仍然不如人意,這一結果的產生原因是多方面的。首先,自媒體以及網絡信息技術不斷發展,使得信息的呈現變得碎片化、隨機化以及分散化,對學生學習過程中的專注度產生了極大的沖擊。其次,編程教學的內容相對于其他學科來說,知識結構較為復雜抽象,導致學生難以理解其本質含義。另外,目前對于編程教學的研究比較少,許多教師沒有足夠的教學經驗,導致教師對于其每節課呈現給學生的信息量以及呈現速度沒有明確把握,導致教師傳遞信息的量和速度與學生接受信息的量和速度不匹配。這一系列原因都使得學習者在編程課程時認知負荷不斷增大。由此可見,編程是一項難度較高的認知活動,這項活動需要學習者掌握多方面的知識,在學習過程中學習者會產生較高的認知負荷。
綜上所述,教師應該通過哪些方法和策略對學習者學習過程中產生的認知負荷進行調控是值得我們關注的問題。據此,本文根據目前Python編程課程教學中存在的一系列問題提出了幾點教學策略,以期能夠對Python編程課程教學的研究起到一定的推動作用。
2 認知負荷理論
2.1 認知負荷的內涵
認知負荷理論早在1988年時就已經被提出來了,是由澳大利亞的新南威爾士大學的著名認知心理學家約翰·斯威勒(John Sweller)提出的,是以人類信息加工容量有限理論和圖式理論為基礎的。從提出開始到現在,獲得了國內外學者的廣泛關注,但是大家都還沒有對認知負荷這一概念形成一個統一的認識。Pass和Van Merrienboer認為認知負荷由多個維度組成的,是執行一項具體作業時施加在個體認知上的負荷[1];在國內,對于認知負荷理論的概念是由學者辛自強和林崇德率先提出的,他們認為可以把認知負荷看作為對指定數量信息進行加工時所需要的“心理能量”的水平,因為所需要進行加工的信息數量不斷增加,認知負荷也會隨之增加[2]。
根據所總結的以上學者對認知負荷這一概念的界定,并且結合Python編程課程學習的相關特點,在本文中,我們可以將認知負荷定義為:學習者在對Python編程課程中的相關知識進行學習時,由于對學習內容難度的感知而投入到當前學習中的心理活動的總量。
2.2 認知負荷的分類
隨著對認知負荷理論研究的不斷深入,研究者們認為根據學習過程中學習者認知負荷的產生來源不同,可以將其分為三大類,分別是內在認知負荷、外在認知負荷以及相關認知負荷。
外在認知負荷,常常被人們稱為無效認知負荷,主要是由于學習者在學習過程中發生了一些無關于學習的認知活動而帶來的負荷,主要和學習材料的呈現方式以及一些學習者自身活動有關。
內在認知負荷是由學習任務難度和學習材料的交互度所決定的。學習任務的難度越高,對應的元素就越多,當學習者的工作記憶中有許多需要進行加工整合的元素,且元素之間的交互度較高,那么就會產生較大的內在認知負荷。如果學習者在進入學習之前有一定的先前知識經驗,就會促進圖式的自動化,從而內在認知負荷就會減小。
相關認知負荷又被稱作有效認知負荷,是指在學習的過程中學習者將工作記憶能量投入進一步的知識結構建構以及存儲時所產生的認知負荷[3],為了使學習者的學習是有意義的,就應該不斷提升相關認知負荷的大小。
認知負荷的總量是由三種認知負荷相互疊加所得到的,當認知負荷過高或者是過低的時候都會對學習者的學習效果產生負面影響,只有當認知負荷的大小適中時才會對學習者的學習起到促進的作用[4]。
3 Python編程教學中存在的問題
Python語言相對于其他計算機編程語言來說,Python語言的語法更加簡潔、相關庫十分豐富以及具有開源與擴展性好等特點,因此受到大眾的熱愛和一致認可,成為中學編程教學中一門很重要的語言。目前來說,在Python編程課程教學中仍然存在很多問題,本文通過對文獻的梳理,分析總結出以下幾點問題:
3.1 學生對Python編程課程的學習興趣低
造成這一問題的原因是多種多樣的,首先,因為Python編程課程與學生實際生活和先前知識經驗相差較遠,此前沒有或很少接觸過編程課程;其次,Python編程課程有關于語法、變量等理論知識學習強度很大,在實際操作中以編寫代碼為止,相對于制作幻燈片、動畫等內容和其他學科,趣味性較低,使學生產生枯燥無趣的消極心態,對編程學習的積極性不高;最后,再加上為了跟進學習進度的安排,許多老師在教學時只能采用講授法、演示法來講授課程內容,沒有足夠的時間余地采用其他方式來激發學習者的學習興趣和積極性。
3.2 教師對教學目標的把握不夠明確
教學目標是指教學活動中所期待得到的學生的學習結果。在整個教學過程中,教學目標都是尤為重要的,一切的教學活動都是圍繞著教學目標開展的。教師對于教學目標的把握程度對教學效果的優劣起著決定性作用。但因為編程教育才剛剛興起,教學研究者對于其研究還比較少,教師教學缺乏教學參考,所以很多教師對于編程教學的理解還不夠深入,對其教學目標的把握不夠明確。因此,在教學中許多教師只注重于學習任務是否完成、作業結果是否達標,而忽略了在這個過程中學生編程思路和計算思維的培養;同時也是因為教師對教學目標的把握不夠明確,導致學生也不能夠把握每節課的具體任務和目標,進而導致學生的認知負荷有所增大。
3.3 教師教學方式過于單一
在Python編程課程教學中,大多數教師仍然采用講授法、演示法,一些有助于發揮學習者主動性的教學方法被忽略,如任務驅動法、小組合作學習等。首先,在單向傳授的教學模式下,沒有體現出新課改要求的“以學生為主體”的教學觀念;其次,Python編程課程的實踐操作性很強,教師的教學重點是培養學生的編程思路和計算思維,如果令學生處于被動地位的傳統教學方式不利于學生編程思路和計算思維的培養與發展。
3.4 Python編程課程學習任務難度大,學生學習吃力
首先,Python編程課程所相關的知識相對于中學階段其他知識來說本身就晦澀難懂,存在很多基本的語法、概念等,學生之前從未接觸,短時間內也難以理解。其次,在編程過程中出現一點小問題就會導致程序無法運行或者是運行結果有誤,學生難以找出問題出在哪里,對著紅色的報錯框不知所措,這樣的情況隨著教學難度的提升變得越來越多,在教學的后期階段已有部分學生出現“習得性”無助現象,開始放棄學習[5]。
4 認知負荷理論視角下中學Python編程課程教學策略
本文主要從減輕內在認知負荷、降低外在認知負荷以及增加相關認知負荷三個大方向出發,分別提出以下具體幾點教學策略:
4.1 降低任務難度,減輕內在認知負荷
4.1.1 清楚明確地向學生闡述學習任務
在Python編程課程的教學中,學生其實很難深刻明確地理解到這一堂課的學習任務是什么,甚至一堂課已經結束了學生都不知道學到了什么,這一現象很常見。因此,在教學活動開始之初,教師就需要清除明確地向學生闡述本節課的學習任務,但學生對于學習任務有一個清晰的認知時,學習的方向才會更加明確。其次,學習者明確任務要求后,還能快遞將其和相關的先前知識經驗結合起來,將新舊知識進行整合,進一步減輕了新任務帶來的認知負荷。
4.1.2 將學習任務進行分層
處于同一階段每個學生對知識概念理解和代碼編寫的水平也是存在很大的差異的,如果給每個學生布置同樣的任務,那么任務難度較大時,水平略低的學生會跟不上教學進度,心理負擔增大,任務難度較低時,水平略高的學生會覺得過于簡單,失去學習興趣。因此,在教學當中教師可以對學習任務進行分層,難度逐漸遞增,針對不同水平的學生提出不同的任務要求。
4.1.3 在教學中提供相關樣例
“樣例效應”是指從那些具有具體解決方案或解決步驟的問題中歸納出隱含的抽象知識來解決問題[6],應用于教學中的具體操作是指在教師講授新知識時向學習者展示樣例,學習者再仿照樣例進行練習。在學習進行一段時間后,學習者已經獲得了一些有關學習內容的知識,釋放了一部分工作記憶的容量,在這個時候再給學習者提供有關樣例,就能夠進一步促進圖式的生成,同時還可以幫助學習者在學習的過程中進行自我解釋,進而增大了學習者的相關認知負荷[7]。提供樣例的變式給學習者也是使學習者的相關認知負荷增加的途徑之一,有利于問題圖式的構建和學習的遷移,促進學生的有意義學習。
4.2 合理呈現材料,減少外在認知負荷
4.2.1 根據學習內容采取合理的教學組織形式
教師每次在進行教學活動時,應該根據每堂課或每個教學階段所對應的不同的教學內容選擇采取合適的教學組織形式。如在講解Python編程相關基礎知識和概念性知識時,可以采用講授法,但應該主要采用一些導入方法,由此來激發學生的學習興趣;在講解具體編程操作等實踐操作性比較高的知識時,教師就應該采用任務驅動法、小組合作學習等方法,能夠起到調動學生學習積極性的作用。編程學習和其他知識的學習存在一定的差異,編程學習更加注重學生的實際操作能力。因此,在教師講授知識時不能一味地采取講授法、演示法等使學生被動學習的教學方法,而應該讓學生成為學習的主體,主動去學習。
4.2.2 通過思維導圖來總結所學知識
思維導圖,通常又被大家稱作心智圖,這是一種可以表達發射性思維的有效的圖形思維工具,可以幫助學習者將所學的知識串接起來,理清每一個知識點之間的關系,在頭腦中留下一張清晰的關系圖。在課程學習結束之后,學習者并不能完全理解所學內容,在頭腦中留下的知識是雜亂無章的,這些信息分散的、沒有結構地存儲在長時記憶中,但需要對其進行提取使用時存在很大的困難。因此,一堂課或一個階段的學習結束前,教師可以通過用思維導圖的方式來對所學的知識進行梳理,將每一個知識點進行串接,幫助學生進行理解。
4.3 引發學生注意力,增加相關認知負荷
4.3.1 將學習內容盡可能與學生生活實際相聯系
Python編程課程本身的知識內容就存在枯燥乏味的特點,在課堂中教師如果完全按照書本知識來講授,那么學生必然就會產生認知疲勞,對相關編程概念和思路的理解也不到位,一段時間過去了就會學過的知識產生遺忘。因此,在教學過程中教師可以把教學內容與生活實際關聯起來,增大兩者之間的聯系,以身邊的日常生活發生的事情作為教學的案例,這樣當學生在進行學習時就會與生活中的例子產生聯想,更加容易幫助學生對所學的知識進行理解、記憶,同時還能激發學習的學習興趣,使學生投入更多的認知努力。
4.3.2 建立合理的獎勵機制
在實際的教學中可以發現,當學生受到了老師的表揚時,不論是學習積極性還是學習質量都會有所提高,這一點對于平時學習成績不是特別優秀的學生來說體現的效果會更加明顯。在教學中,如果教師能夠在每一階段教學中給予學生合理的反饋和獎勵,學生的學習積極性會逐步增加并長期保持。因此,在教學中應該建立合理的獎勵的機制,同時要注意獎勵的頻率不應該過高,獎勵時機也要把握好,在學生做出積極行為的時候應該及時進行獎勵。通過適當地對學生進行獎勵,可以使學生對Python編程課程學習的積極性和主動性大大增加并且有效保持穩定,從而從Python編程課程學習投入更多的認知資源,促進相關圖式的構建。
5 結束語
Python編程課程才正式進入中學課堂不久,在后期還會有很大的發展空間,將逐步進入全國各地的中小學課堂,也會逐步獲得社會、學校和家長的重視。同時,Python編程課程的教學研究目前仍處于萌芽階段,應該與時俱進、逐步發展,需要融入更多的理論,在真實的教學情境中進行教學實踐。
認知負荷理論的影響已經在教育領域變得越來越深遠,逐步變成了一種重要的指導教學的理論。基于認知負荷理論對Python編程課程教學提出的一系列教學策略是科學有效的,能夠有效地對學習者學習過程中的認知負荷進行調控,進一步促進學生的有效學習。
參考文獻:
[1] Paas F G W C,van Merri?nboer J J G.The efficiency of instructional conditions:an approach to combine mental effort and performance measures[J].Human Factors:the Journal of the Human Factors and Ergonomics Society,1993,35(4):737-743.
[2] 辛自強,林崇德.認知負荷與認知技能和圖式獲得的關系及其教學意義[J].華東師范大學學報(教育科學版),2002,20(4):55-60,77.
[3] 王朋嬌,田華,孫革.遠程學習者認知負荷水平的調控策略研究[J].現代遠距離教育,2009(1):8-11.
[4] Paas F,Renkl A,Sweller J.Cognitive load theory:instructional implications of the interaction between information structures and cognitive architecture[J].Instructional Science,2004,32(1/2):1-8.
[5] 邱振華.基于循證實踐的初中Python語言教學研究[J].電腦知識與技術,2020,16(13):194-198.
[6] 許永勤,朱新明.關于樣例學習中樣例設計的若干研究[J].心理學動態,2000,8(2):45-49.
[7] 張建波.認知負荷理論:教學設計研究的新視角[J].上海教育科研,2006(11):51-53.
【通聯編輯:王力】