查德清
隨著核心素養(yǎng)的提出,計算思維作為核心素養(yǎng)之一,越來越受到廣大信息技術(shù)教學(xué)工作者的重視。在信息技術(shù)課例開發(fā)和設(shè)計時,充分利用Scratch編程這個載體,有效開展信息技術(shù)主題活動,幫助學(xué)生建構(gòu)真實的問題情境,形成抽象思維,并與數(shù)學(xué)學(xué)科整合,加深對算法的理解,通過計算模擬、可視化思維,實現(xiàn)學(xué)生計算思維能力的提升。下面以江蘇鳳凰科學(xué)技術(shù)出版社(2015版)五年級教材Scratch模塊的主題活動一課為例,緊扣計算思維的內(nèi)涵,分析如何在Scratch教學(xué)中培養(yǎng)學(xué)生的計算思維。
一、認識計算思維
2006年周以真教授首創(chuàng)了“計算思維”的概念。隨著計算思維概念的提出,國內(nèi)計算機科學(xué)領(lǐng)域?qū)τ嬎闼季S開始關(guān)注,有多位院士參與其中(李國杰、陳國良等),同時基礎(chǔ)教育界也在反思信息技術(shù)教育的核心價值,對計算思維持開放態(tài)度。高中新課程標準修訂版中,以核心素養(yǎng)為總綱,將計算思維列為核心內(nèi)容之一。在此背景下,小學(xué)信息技術(shù)也隨之把計算思維作為學(xué)生的信息素養(yǎng)之一,開始在課堂教學(xué)中滲透落實。
那到底什么是計算思維,周以真教授在2011年把計算思維定義為形式化表達問題和解決方案,使之成為能夠被信息處理代理有效執(zhí)行的思維過程。在信息技術(shù)學(xué)科中,計算思維就可以理解為學(xué)生運用計算機科學(xué)領(lǐng)域的思想方法,在形成問題解決方案的過程中產(chǎn)生的一系列思維活動。簡言之,計算思維其本質(zhì)就是解決問題的一種過程。
二、課例設(shè)計
在《中小學(xué)綜合實踐活動課程綱要》中明確指出,信息技術(shù)的學(xué)習(xí),旨在全面提升學(xué)生信息素養(yǎng),幫助學(xué)生掌握信息技術(shù)基本知識與技能,增強信息意識,發(fā)展計算思維、提高數(shù)字化學(xué)習(xí)與創(chuàng)新能力,樹立正確的信息社會價值觀和責(zé)任感。
Scratch程序設(shè)計,是一款由麻省理工學(xué)院(MIT) 設(shè)計開發(fā)的面向少年的簡易編程工具。Scratch構(gòu)成程序的命令和參數(shù)通過積木形狀的模塊來實現(xiàn),可視化的程序設(shè)計有助于鍛煉學(xué)生的邏輯思維能力,有利于培養(yǎng)學(xué)生的創(chuàng)意思維。Scratch程序設(shè)計是培養(yǎng)學(xué)生計算思維的重要載體。
(一)教材分析
《設(shè)計Scratch游戲——搶數(shù)大戰(zhàn)》是江蘇鳳凰科學(xué)技術(shù)出版社《小學(xué)信息技術(shù)·5年級》教材Scratch模塊的主題活動課。本課是在學(xué)生初步學(xué)完了本單元編程新知的基礎(chǔ)上,進一步的深入學(xué)習(xí)。本課緊貼學(xué)生的生活實際,趣味性較高,所涉及的數(shù)理算法學(xué)生比較熟悉。重在要求學(xué)生在理解“搶數(shù)大戰(zhàn)”游戲蘊含的算法基礎(chǔ)之上,完成“搶數(shù)大戰(zhàn)”的程序控件的堆疊與優(yōu)化。
從計算思維角度看,學(xué)生要通過分析游戲蘊含的數(shù)理知識,在逆推算法的幫助下,實現(xiàn)界定問題、抽象特征、建立結(jié)構(gòu)模型、合理組織代碼,將問題模型轉(zhuǎn)化為計算機能夠識別的計算模型,最后通過計算機程序自動化執(zhí)行來解決問題。從程序設(shè)計上看,學(xué)生需要學(xué)習(xí)次數(shù)循環(huán)語句對程序進行迭代和優(yōu)化;同時,本課要求學(xué)生從“搶數(shù)大戰(zhàn)”游戲出發(fā),總結(jié)出編寫程序的基本方法。
(二)課例分析
本課例,根據(jù)本課的教學(xué)內(nèi)容和教學(xué)重難點,結(jié)合學(xué)生的認知規(guī)律,重在培養(yǎng)學(xué)生的計算思維。通過問題導(dǎo)向?qū)W習(xí)方式,在程序設(shè)計的過程中,促進學(xué)生計算思維的養(yǎng)成。通過游戲體驗,增強學(xué)生分析程序代碼的能力,并理解算法在計算機程序設(shè)計中的作用。
1.激趣導(dǎo)入
激趣導(dǎo)入是達成課堂教學(xué)目標的良好開端。在本課教學(xué)一開始,設(shè)計了一個人機對話的游戲。讓學(xué)生挑戰(zhàn)機器人,比一比誰先可以報到10。
搶數(shù)游戲讓學(xué)生對本課的學(xué)習(xí)內(nèi)容有了濃厚的興趣,更是激發(fā)了學(xué)生強烈的求知欲,進而教師引領(lǐng)學(xué)生開始步入計算思維之路。
2.新知探究
①定義問題:
兩人輪流報數(shù),每人每次至少報1個數(shù),最多報2個數(shù),從1到10按順序連續(xù)報數(shù)。誰先搶到10誰就獲勝。思考如何可以取勝?
學(xué)生活動一:全班同學(xué)以同座位兩人為一組,進行游戲。通過游戲發(fā)現(xiàn)并識別問題,學(xué)生進行界定問題。
②建立計算模型:
根據(jù)同桌搶數(shù)游戲,分析Scratch模擬搶數(shù)游戲所需要的角色和變量,將數(shù)學(xué)推理問題進一步轉(zhuǎn)化成計算機能夠執(zhí)行和運算的問題。
學(xué)生活動二:學(xué)生閱讀范例,理解各程序段的功能。通過讀程序發(fā)現(xiàn)1、4、7、10四個關(guān)鍵數(shù)字,通過逆推,理解“搶10大戰(zhàn)”游戲的算法,從而建構(gòu)游戲程序中每輪間隔3的算法模型。接著利用已建構(gòu)的算法模式,推導(dǎo)搶11、搶12程序的算法。
③算法設(shè)計:
將計算模型進一步用數(shù)學(xué)方法歸納出來,并用程序語言進行表述。
學(xué)生活動三:學(xué)生在“搶10大戰(zhàn)”游戲基礎(chǔ)上修改程序,完成“搶數(shù)大戰(zhàn)”游戲。
計算思維:將問題的本質(zhì)抽取出來,從“搶10”游戲程序的算法,構(gòu)建搶其他數(shù)的算法模型,通過對算法的抽象,為后續(xù)自動化程序設(shè)計提供準備。通過Scratch相互驗證程序功能,實現(xiàn)計算機程序自動化執(zhí)行。
④算法實現(xiàn):
在設(shè)計算法的過程中反思問題解決方案,不斷改善和優(yōu)化程序。
學(xué)生活動四:在搶10游戲程序基礎(chǔ)上進行修改,完成搶其他數(shù)游戲的程序。
計算思維:算法是指解決問題的途徑,它是一系列明確指令的組合。學(xué)生將抽象出來的問題,通過類比的方法將程序語言轉(zhuǎn)化為計算機指令。
通過本活動,學(xué)生可以形成完整的Scratch趣味編程的思路及實現(xiàn)方法。學(xué)生的計算思維能力在整個編程過程中不斷得以提升。
學(xué)生活動五:引導(dǎo)學(xué)生關(guān)注程序模塊的相同性,用一個程序來解決類似的多個問題。利用循環(huán)語句來優(yōu)化程序。