徐偉東
摘要:程序設計教學是當前中小學信息技術教育的主軸內容。程序設計教學不是為了培養“碼農”,而應著眼于培養學生的計算思維、創新能力等數字時代新素養和新品質。作者提出,從“代碼中心”走向“學習者中心”,程序設計教學必然要有與以往不同的教學策略,如①循序漸進:降低程序設計學習難度;②針對個性:提供多樣化學習支架;③項目學習:驅動學生全身心投入;④基于探究:發揮學生的主體積極性等。但教學有法,教無定法,真正好的程序設計教學一定會有一個基于學科特點并切合學情的教學設計。
關鍵詞:程序設計;學習者中心;教學策略
中圖分類號:G434? 文獻標識碼:A? 論文編號:1674-2117(2022)05-0033-03
隨著時代的不斷發展,中小學信息技術課程的理念、內容與方法也在不斷地發生著迭代與發展。信息技術課程對學生的培養目標也從以往使其成為信息社會的合格公民發展到使其成為數字社會的計算思維者。程序設計教學作為計算思維培養和發展的最有效載體,已成為中小學信息技術課程內容的主軸,而“人人會編程”又成為時代發展的潮流和趨勢。但程序設計教學不是要以培養“碼農”為目標,而是要在程序設計教學中真正地發展學生的計算思維,讓他們能夠適應數字化社會創新趨勢。因此,以計算思維為導向的程序設計教學不能再使用傳統的講練結合方式,而應以學習者為中心進行教學設計。下面,筆者結合具體教學實踐案例談一談如何以學習者為中心進行程序設計教學。
● 循序漸進:降低程序設計學習難度
由于程序設計比較抽象,程序設計教學并不是特別受學生喜歡,不是所有的學生都夠輕松地掌握和“入門”。因此,程序設計教學需要解決學生“入門難”的問題,首先要降低學生的畏難情緒,喚起學生對程序設計學習的興趣,其次要降低學生學習程序設計的初識難度。那么,教師可改變直接讓學生編寫代碼的傳統教學方式,先從閱讀代碼和修改代碼入手,讓學生通過對典型代碼的閱讀和解釋增強編寫代碼的能力。程序設計教學要基于學生認知規律而不是基于學科內容,要讓學生在不斷的體驗、嘗試和反思中循序漸進地得到成長和發展。
例如,在高中信息技術《計算機解決問題的過程》一課的教學中,由于學生存在水平及個性差異,會有部分學生對算法感到疑惑和不解,知識內化有著一定的障礙,這時,教師就可以通過循序漸進的方式展開指導。在編寫代碼環節,大多數學生能夠聽懂教師講授的內容,但是一到實踐操作時就感覺無從下手。這時教師可引導學生學會閱讀信息技術教材上的簡單程序,先從字面上感受代碼;接著,在程序的運行中,讓學生結合流程圖研讀程序要解決什么問題,邊讀邊做好備注,可以反復閱讀,讀出精髓;然后保存代碼,多次閱讀,隨時修改,交互編程。再如,在《Python編程基礎》一課的知識點講解之后,教師提供了以下兩個練習任務:一是長方形面積計算,通過鍵盤輸入長方形的長和寬,經過運算輸出長方形的面積;二是溫度換算程序,輸入攝氏溫度可以計算出對應的華氏溫度。給出這兩個任務不是要學生從零開始自己編寫代碼,而是讓學生對不完善的代碼進行編輯和改寫,這是考慮到學生處在程序學習初期,幫助其降低代碼學習難度。
● 針對個性:提供多樣化學習支架
在程序設計教學中,不同的學生基礎不同,自然也會出現不同的學習困難和錯誤。以學習者為中心就要承認學習者的個性差異,而且要尊重個性差異,通過提供多樣化學習支架有針對性地支持和幫助。學生學習程序都是從簡單輸出開始的,但即使是最簡單的程序,學生在編寫代碼時仍然會出現很多不同類型的書寫錯誤,如符號錯誤、括號錯誤、拼寫錯誤等,學生會非常依賴教師幫忙揪出錯誤,但教師無法兼顧全體學生,總會有學生因為沒有得到教師的指導而感到沮喪、煩躁,教師也會因為過于忙亂而失去對課堂的把控。因此,教師在進行程序設計教學時,必須先研究學生的實際情況,然后根據學情有針對性地提供多樣化支架。學習支架不僅要善于搭建和利用,還要適時拆除。在學生對某種學習方法已經基本掌握以后,教師就要放手讓學生“單飛”。學習支架可以由任務、資源或知識更豐富的個人提供。
例如,在程序設計學習中,“克隆”概念是比較容易混淆和難以理解的,在教學中,筆者發現大部分學生在自主進行程序設計操作時,總會出現各種各樣的錯誤理解。當對學生所出現的程序設計錯誤進行深度剖析和探討時,會發現歸根到底還是學生不能很好地認識“克隆”積木的意義及使用。為了更好地解決“克隆”這一迷思概念,教師就要針對不同學生的個性差異,提供不同的學習支架,如可以使用微課錄制“克隆”概念的講解和調用案例。通過微課,學生就可以在課前、課中和課后隨時進行自主學習。用好學習支架,程序設計教學中的問題和難點就能迎刃而解。
● 項目學習:驅動學生全身心投入
以往的程序設計教學備受質疑,原因就是枯燥的代碼學習及脫離真實世界導致的學習興趣不足。圖形化編程等新一代程序設計語言采用模塊化形式,降低了學習代碼的難度,但這只是解決了原有程序設計教學中的部分問題。要想讓學生真正全身心地投入學習,必須讓學生沉浸在一個理解、設計和建造新系統的創造性過程之中。因此,項目學習就成了程序設計教學不可或缺的學習形態。項目學習就是圍繞項目進行組織和開展的新型學習方式,學生在項目開展和實施過程中能全程參與,并進行體驗、感悟、論證、探究、實踐、展示、交流。項目學習的過程就是學生主動建構的過程,項目主題貫穿整個項目學習過程,好的項目主題對于承載學習的價值,與學生是否有效達成素養目標關系密切。項目學習之所以受到歡迎,重要的一點就是將自主選擇權植入了課堂。因此,教師在確定程序設計學習項目主題時一定要充分發揮學生的主動性并提高參與度,讓學生選擇自己感興趣的問題和任務,從而更加專注地鉆研下去。項目說到底是學生的項目,教師只是引導者和輔助者,教師不能替代學生去學習、去經歷、去感悟、去實踐。項目主題選擇要充分考慮不同年齡階段學生的興趣點、學生所面臨的實際問題,以及學生的認知基礎。
例如,在“循環結構——while循環”這一項目中,教師設置了難度較高的任務,從頭開始編寫程序“密碼輸入登錄系統”,若密碼輸入正確顯示“成功登錄”,若密碼輸入錯誤即提示“密碼錯誤”且需再一次輸入密碼。學生通過自主嘗試、相互協作方式進行程序項目的搭建。在自主探索和試誤過程中,因為屬于開放式的編寫,每位學生解決問題的思路并不一致。在項目完成過程中,學生會主動探究,全身心投入到項目完成的過程之中,學會自己尋求解決問題的辦法,在此過程中也實現了自身知識與能力的進階。
● 基于探究:促成程序設計深度理解
任何知識都不是單單依靠教師講授就可以達到深度理解的。要想真正實現學生對程序設計概念的深度理解、能力遷移外延,教師就必須讓學生完整地經歷程序設計探究全過程。程序設計教學要在探究上下功夫,要在創設探究支持環境上下功夫,讓學習者真正成為程序設計學習的核心。基于探究的程序設計教學要讓學習者在過程中擁有主動性、自主權,能夠自己確定學習目標,自己監控學習進程,自己進行評價,這樣,基于探究的程序設計教學策略自然會使深度理解成為現實,學習者也就能夠將計算思維和創新能力內化為自身素養,并能夠在解決實際問題時得以外顯。
例如,教師在設計“圖書館信息系統的安全風險防范”項目內容時,根據對單元課時、學情、知識內容、素養目標等因素的考慮,把課程模塊內容設計為“尋找信息安全風險”“用好技術保障安全”“合理使用信息系統”這三個微項目內容,以此開展項目學習,以便較好地達成目標。根據項目開展的實際需要,學生還可以組成小組,學生或小組按照計劃指導,在項目開展過程中進行活動探究;教師在每個階段、環節及時參與,進行協助、輔導,指導各個部分的有序進行,及時反饋和糾偏,發揮主導作用。
● 反思展望
信息技術課程正在不斷地呈現嶄新形態,程序設計教學也不能再走從前的老路了,而是要塑造“以學習者為中心”的新樣態。當然,以上列出的以學習者為中心的程序設計教學策略并不是簡單的線性形式,并不意味著一定要遵循某種特定的順序,筆者也不建議一定要采用任何特定的策略,期待教師們能夠發揮自身主動性創造出程序設計教學新天地,從而讓程序設計教學獲得新發展。
參考文獻:
[1]劉桂輝.論以學習者為中心的教學策略轉換研究[J].教育與職業,2013(24):103-105.
[2]王晶心.以學習者為中心的混合式學習環境:理論基礎與教學策略[J].中國教育信息化,2019(21):1-6.
[3]王廣秋.以學習者為中心的網絡教學策略探究[J].中國信息技術教育,2015(18):139-140.
3537500589250