高燕

摘要:本文是關于計算思維培養的一個教學研究案例,該教學案例凝聚了作者在教學中對學生計算思維培養的思考與實踐體會,希望能對在進行計算思維培養的教學研究實踐的廣大高中信息技術一線教師有所啟發與幫助。
關鍵詞:計算思維;Python語言;任務驅動;自主探究
中圖分類號:G434 文獻標識碼:A 論文編號:1674-2117(2019)02-0054-03
● 研究背景
1.計算思維與高中信息技術課程
隨著信息技術的高速發展,高中信息技術課程迎來新一輪的改革。“計算思維”的提出為尋覓改革思路的高中信息技術課程打開了一扇希望之門。計算思維是曾任美國卡內基·梅隆大學計算機科學系主任的周以真(Jeannette M. Wing)[1]于2006年3月提出的。周教授認為:計算思維是運用計算機科學的基礎概念進行問題求解、系統設計,以及人類行為理解等涵蓋計算機科學之廣度的一系列思維活動。
2011年,國際教育技術協會(ISTE)和計算機科學教師協會(CSTA)對計算思維這一概念進行了進一步的闡釋,并給出了一個操作性的定義,指出計算思維是一個用來解決問題的過程,包括(但不限于)以下步驟:(1)制訂問題,并能夠利用計算機和其他工具來幫助解決該問題;(2)邏輯化地組織和分析數據;(3)通過抽象(如模型、仿真等)再現數據;(4)能通過算法思想(一系列有序的步驟)來支持自動化解決方案;(5)識別、分析、實施可能的解決方案,同時結合上述步驟和資源,找到最有效的解決方案;(6)將該問題的解決過程推廣并遷移到更廣泛的問題中。[2]
2.Python語言與中小學信息技術課程
Python是一種面向對象的解釋型計算機程序設計語言,目前已經成為繼Java、C++之后的第三大語言。相比C++或Java,Python是一門非常具有人文情懷的編程語言,簡單易學,語法優雅,適合新手入門使用。Python語言課程化也將成為中小學生學習的一種趨勢。未來將是大數據和人工智能的時代,面對將會出現的大量數據處理,Python有著得天獨厚的優勢。未來是人工智能的時代,更是Python的時代,孩子要想在未來擁有基本的編程技能,Python是其必須掌握的語言。
在這樣的大趨勢下,高中信息技術教材也將變成以編程為主的全新教材。信息技術教師也開始著手學習Python語言。以下是筆者在南京市信息技術教研活動中開設的一堂Python程序設計研究課——奇妙的繪圖教學設計和教學反思。
● 基于計算思維培養的教學設計
“教學設計需要做的第一件事就是前期分析,第二件事是根據前期分析得出的學習需求寫出教學目標,第三件事是設計教學策略。”[5]筆者這堂課的教學設計從以下兩點進行定位與設計。
1.從學情中定位教學設計
對現在的高中學生來說Python是一門全新的程序設計語言。部分高中學生在小學階段學習過Logo語言,在初中階段學習過VB語言。Python是簡單易學的面向對象程序設計語言,第一節Python程序設計課,筆者認為以學生原有的程序基礎,只要稍加引導就可以入門。
在Python中從哪里著手帶學生入門呢?筆者前期一直在學習Python,在學習的過程中發現Python中turtle庫即繪圖模塊恰是學生學習Python的最佳“入”點,另外海龜作圖最早源自Logo語言,學生小學階段有過Logo語言的學習經歷,所以筆者認為從繪圖出發學習Python更易點燃學生對Python的學習興趣。基于以上的學情分析,筆者將第一節Python教學設計確定為“從奇妙的繪圖開始初識Python”。
在新課導入環節,筆者先讓學生觀看一個利用Python語言編寫的繪圖小程序(如圖1)。該繪圖程序可根據選項繪制出正多邊形、多個圓形、螺旋形狀等圖形,以此喚起學生在Logo語言中海龜作圖的學習經歷,然后向學生簡單介紹Python語言的由來及當下應用領域,激發學生對Python的學習欲望,引出本節課的學習內容——從海龜作圖初識Python語言。
2.任務驅動與自主探究并行的教學策略
在中小學的課堂教學中,任務驅動與自主探究一直是非常受一線教師歡迎的教學方法。對于這節課的知識內容,高中學生完全可以在教師的引導與啟發下自學完成。如何有效地推動學生在課上自主探究?筆者采用任務驅動與自主探究并行的教學方法,幫助學生學習新知識。
首先,“牛刀小試”環節,要求學生運用英語知識讀一讀如圖2所示的三行程序,并思考3個問題:①海龜是如何出現的?②海龜執行了什么動作?③程序的運行結果是什么?學生可以相互討論,大膽地說出自己的想法。然后教師向學生演示每行語句的執行結果,以驗證學生的想法,加深學生對Python中turtle模塊的引入初始化語句的理解。
接下來進入挑戰任務環節,在每一個挑戰任務環節中要求學生自主學習學案中提供的學習幫助手冊,自主探究嘗試完成每一個挑戰任務。
挑戰任務1:驗證想法。
自主探究:繪制正方形。
鼓勵學生:嘗試正五邊形、正六邊形的繪制。
挑戰任務2:簡化程序。
啟發學生:在順序結構的繪制正方形程序中,運用什么程序結構更簡便?
自主探究:運用for語句編寫一個圍繞畫布中心繪制12個圓的圖案。
挑戰任務3:修改程序。
啟發學生:觀察螺旋圖中海龜的運行軌跡,是什么值發生著改變?
自主探究:修改繪制正方形的程序實現螺旋效果,可自由創作。
這節程序設計課,筆者對挑戰任務的設計環環相扣,任務難度逐層遞進,學生在每一個挑戰任務的自主探究過程中只要稍加努力地“跳一跳”,就能獨立完成,部分能力強的學生,在挑戰任務完成的基礎上自學“學習幫助手冊”中的函數與方法,進一步創新。整節課學習氛圍濃郁,學生整體參與度高。在整個教學過程中教師并沒有向學生演示如何寫Python代碼,學生都是在教師的引導與自主探究中完成學習任務。
● 對培養學生計算思維的思考
1.在任務驅動中對學生計算思維的培養
Python只是培養學生計算思維的一個平臺。筆者設計的一系列環環相扣的挑戰任務都是立足于學生計算思維的培養。例如,從開始“牛刀小試”環節讓學生讀三行程序語句,到教師親自驗證每一條程序語句執行結果,其目的是先讓學生理解Python是如何實現繪圖的。學生完全理解了這三行重要語句的使用后,就能很快燃起繪圖的興趣,激發思維,嘗試使用繪圖中各種方法進行作圖。當教師讓學生繪制正方形時,學生能很快上手,甚至能很快繪制出各種各樣的正多邊形。學生在用程序繪制各種正多邊形的過程中,會很自然地發現不斷重復的語句,憑借原有的程序學習經驗,他們會很自然地聯想到用循環語句來簡化程序;而此時教師的作用就是把Python中適合解決這類問題的for循環語句教給學生,告訴學生for循環語句使用的方法及格式使用的注意事項。學生會很積極地嘗試使用for循環語句改寫程序,在改寫程序中掌握for循環語句的結構和語法格式,然后再去挑戰新的任務。
2.在自主探究中培養學生的計算思維
課堂教學過程中筆者沒有向學生演示如何寫Python代碼,整個教學過程中學生都是在筆者的啟發教學下自主探究完成環環相扣的挑戰任務。例如,在繪制螺旋圖的挑戰任務中,筆者讓學生觀察三幅螺旋圖,啟發學生觀察螺旋圖中海龜的運行軌跡,是什么值發生著改變,學生在自主探究中會發現是海龜直行的步長及轉角的度數影響了它的運行軌跡;這時筆者再將繪制正方形的for循環語句提出讓學生修改,學生在自主探究中會很快想到將循環變量x的值作為海龜直行的步長,即forward(x)。在這樣的啟發教學和學生自主探究學習中,教師一步一步引導,學生在自主探究中解決一個一個環環相扣的挑戰任務,逐漸提升解決問題的能力,這種提升解決問題的能力的過程就是計算思維培養的過程。在教學過程中筆者如果發現學生寫的程序有錯,會將程序錯誤的問題拋給全班學生,讓全班學生一起糾錯,在這樣的學習氛圍下,學生對知識的理解會更加深刻。
● 總結
培養學生計算思維已成為新課改下高中信息技術課程的核心素養。對學生計算思維的培養需要教師在教學實踐中不斷摸索、研究。未來是大數據和人工智能的時代,當下的教育工作者們要及時轉變思想,深刻地認識到我們培養的不是信息技術的應用者,而是具有計算思維的跨時代的新人。
參考文獻:
[1]Jeannette M. Wing.Computational Thinking[J].Communications of the ACM,2006,49(3):33-35.
[2]郭守超,周睿,鄧常梅,等.基于App Inventor和計算思維的信息技術課堂教學研究[J].中國電化教育,2014(3):91-96.
[3]朱亞宗.論計算思維——計算思維的科學定位、基本原理及創新路徑[J].計算機科學,2009(4):53-55+93.
[4]李藝,鐘柏昌.基礎教育信息技術課程標準:起點、內容與實施[J].中國電化教育,2012(10):23-27.
[5]李冬梅.信息技術教學的關鍵環節之一——教學設計[J].中小學信息技術教育,2009(3):19-21.
[6]李藝.信息技術課程的教學策略與案例[M].北京:高等教育出版社,2006.