錢曉峰 江蘇省蘇州市吳江區震澤實驗小學
2006年,周以真教授在上發文定義了計算思維(Computational Thinking),指出計算思維是幫助人們在理解事物、解決問題時,能夠以計算機科學概念、邏輯以及算法來理解、判斷的一種思維方式。培養學生的計算思維應該和培養其閱讀、寫作、數學技能一樣,滲透到生活的細節中,這樣既能幫助學生突破課程學習中的各種難題,同時還能有效解決生活中的實際問題。筆者發現,在目前的信息技術課堂教學中,教師往往只注重在編程類課程中培養學生的計算思維,對非編程類課程是否也能成為促進學生計算思維發展的載體沒有作更多的嘗試。筆者根據實踐經驗認為,在信息技術課堂教學中,可以換一種比較隱性的形式來培養學生的計算思維,具體教學實踐如下。
在信息技術課堂教學中,教師可以通過研讀教材與精心設計,讓傳統的課堂板書重新煥發生機,進而更為有效地發展學生的計算思維。例如,在講授《插入表格》一課時,筆者將課堂板書內容劃分成若干模塊(本文中稱為“活動板書”),通過情境導入,引導學生將具體的文本內容抽象概括為表格形式。這個過程實踐了計算思維中的抽象、概括兩個基本要素。部分教學情境如下。
教學情境一:導入部分,筆者提供給學生“千燈導游介紹”和“景點地圖”文本材料,要求學生閱讀后能以導游的身份規劃旅游行程。考慮到學生的年齡特點,只要求學生用口述的方式說一說旅游行程。教師按學生說的順序將提前制作好的活動板書貼在黑板上(如圖1)。

圖1
教學情境二:請學生根據活動板書的內容進行歸納,目的是引導學生歸納出表頭(如圖2第一排)。

圖2
教學情境三:在學生口述完成后,筆者將活動板書進行排列與整理,形成一張表格,學生恍然大悟。(如下頁圖3)

圖3
教學情境四:筆者順勢引導,本課的重點“行”“列”“單元格”也已經突破,單元格的概念尤為清晰,每一塊活動板書都是一個單元格(如圖4)。

圖4
通過以上教學情境的層層推進,學生把具體的文字內容轉換成了表格,這個過程就是計算思維中對數據進行概括、歸納、抽象的過程。筆者在非編程課中設計了活動板書,在傳授學生計算思維的過程中層層推進,由淺入深,使學生能較容易地理解相關概念。
教學情境五:在上一環節的表格成形后,教師讓學生設計“入園時間”,大部分學生填寫的“入園時間”如表1所示。筆者請學生觀察表格并思考,學生發現設置的入園時間不合理,忽略了景點與景點之間的行程時間,隨后學生對表格進行了修改(如表2)并闡述設置入園時間的理由。這個過程,教師是通過替換空白“活動板書”進行的,并讓學生在活動板書上書寫,替換黑板活動板書。

表1

表2
本環節已經提到了計算機編程中最為重要的算法,入園時間的設置就是一個算法問題,學習計算機編程中的算法是需要一定的數學知識與計算機編程基礎的。對于四年級的學生來說,更多的是讓他們體驗與理解算法的意義,這個教學環節就是將計算思維中的算法概念與學生的生活實際相聯系,讓學生經歷一個簡單的數學問題,感受和體驗建立并運用計算思維的重要性。
教學情境六:當學生掌握了表格的制作與修改后,筆者布置了制作個性化的行程安排表的任務,并提出:根據“導游地圖”,將始末景點的選擇、往返景點之間的出行方式等諸多因素納入統籌規劃,進行一次私人定制。學生經過討論,展示的表格各有特色,有的把始發地到達第一個景點的時間與出行方式也納入表格,這就使得表格中只要有一個單元格的內容發生變化,那么與之對應的單元格都將發生變化……學生設計的表格更具個性化與合理性。
本環節是本課的拓展環節,也是升華部分,筆者實施了分層教學,要求學生根據自己的認知條件與能力對表格進行規劃與設計。考量綜合因素來改進表格的過程就是迭代的過程,而在這個過程中學生潛移默化地接受了數據庫編程中“字段”的概念(在數據庫中大多數表的“列”稱為“字段”)。一張數據表分為行和列,一行就是一條記錄,不同的字段,代表了不同的屬性。正因為有了具體事件的驅動,學生才體驗到如何將有用信息轉換為有實際指導意義的行程表,并在不知不覺中提升了計算思維能力。
教學情境七:在單元主題活動教學時,筆者提出了這樣一個任務——設計一份個性化課程表。筆者交待了一周課程的總課時量、課程名、每個課程的周課時數等,并請學生說一說在每天的課程安排中怎樣才能做到課程匹配較合理。同時,筆者把事先準備好的活動板書展示給學生(如圖5)。

圖5
在學生制作課程表期間,筆者發現有學生制作出如圖6所示的課程表,于是筆者讓這位學生向大家講解課程表的繪制思路,該學生回答道:“根據每周的總課時量及每天固定的課時數再加上行表頭和列表頭,這個課程表需要42個單元格,通過合并單元格可以獲得該表格。”其他同學聽完講解后,繼續對表格進行完善(如圖7),筆者又陸續請了幾位學生來展示并闡述自己的操作方法與思路。學生在講解中都提到了要遵守課程安排標準,在安排課程時,都能夠考慮到把語文和數學課程優先安排在每天上午的第一、二節,由此得出,大家的課程表安排變化不大。

圖6

圖7
通過這個環節的學習,學生發展了兩層解決問題的思路:第一層是課程到底設計多少個單元格,表格設計的依據是什么。第一個學生的回答為大家理清思路提供了引導。第二層是課程內容的具體安排,學生根據課程安排標準來進行排列填充。在這節課中,筆者最希望學生得到的思路就是計算中優先級問題的處理。這個環節學習的意義已經不僅是課程表的制作了,而是學生已經意識到在處理具體問題時,可以通過歸納重點將要素概括、整理,根據任務緊迫性和事情重要性這兩個維度的優先級進行劃分并實施,從而更直觀地分析問題,為解決問題提供依據。
筆者在非編程類課程中將培養提升學生計算思維貫穿于整個教學過程,成效不錯。這說明,非編程類的課堂教學中蘊含著大量的計算思維元素,雖然其表現形式與程序設計有所不同,但只要教師鉆研教材、重組內容、精心設計,就能將對學生的計算思維培養顯性化。