項勤斌
計算機科學(xué)與電信委員會認(rèn)為,計算思維是21世紀(jì)學(xué)生的核心能力,與閱讀、寫作和算術(shù)等基本技能同等重要,是學(xué)生發(fā)展核心素養(yǎng)的重要組成部分,其教育重視程度決定了各國未來創(chuàng)新競爭力的水平。《普通高中信息技術(shù)課程標(biāo)準(zhǔn)(2017年版)》中,將計算思維概括為個體運用計算機科學(xué)領(lǐng)域的思想方法,在形成問題解決方案的過程中產(chǎn)生的一系列思維活動。
在小學(xué)階段,計算思維、問題解決的能力是我們在程序教學(xué)中需要重點培養(yǎng)的。在程序教學(xué)中,程序結(jié)構(gòu)的認(rèn)知是一大難點,所以感知程序結(jié)構(gòu),對我們培養(yǎng)學(xué)生解決問題的能力,以及判斷問題的思維能力,有一定的幫助。經(jīng)過對五、六年級學(xué)生的摸底調(diào)研以及拓展性課程的上課分析,我運用Scratch趣味游戲設(shè)計來教學(xué)程序結(jié)構(gòu),在經(jīng)過一段時間的實踐與探索后,我發(fā)現(xiàn)程序結(jié)構(gòu)的奧秘已經(jīng)被學(xué)生們慢慢了解并熟悉了。
“勇闖惡龍島”—— 解讀順序結(jié)構(gòu)
順序結(jié)構(gòu)是計算機程序語言中最基礎(chǔ)的程序結(jié)構(gòu)。它是一種按照自然順序,一步一步完成指令的結(jié)構(gòu)。
在Scratch教學(xué)中,我們也是從順序結(jié)構(gòu)開始,一步一個腳印學(xué)習(xí)程序腳本的編寫,并實現(xiàn)一個整體的游戲?!坝玛J惡龍島”游戲,是讓主角在舞臺中,通過玩家的程序腳本編輯,完善原始腳本,使目標(biāo)角色能夠順利過關(guān)。在課堂教學(xué)中,我首先與學(xué)生們一起創(chuàng)設(shè)簡單的游戲情境。
結(jié)合場景,我與學(xué)生們一起討論、梳理通關(guān)的技巧,如前進(jìn)多少步后轉(zhuǎn)彎、旋轉(zhuǎn)多少角度并前進(jìn),最終到達(dá)勝利的彼岸。在經(jīng)歷了思路梳理后,我會與學(xué)生一起繪制思維導(dǎo)圖,并最終將思維導(dǎo)圖轉(zhuǎn)換成程序設(shè)計中的流程圖。跟隨著流程圖,我們可以在場景中通過拼接腳本模塊來實現(xiàn)游戲中的操作,并最終取得勝利。
在經(jīng)歷了思維梳理、流程圖繪制、程序調(diào)試后,學(xué)生能夠了解到順序結(jié)構(gòu)是如何實現(xiàn)其功能,且能清晰地感受順序結(jié)構(gòu)可以運用在哪些實際案例中,從而實現(xiàn)了舉一反三、由點及面的教學(xué)效果。
“趣味飛行棋”—— 解讀選擇結(jié)構(gòu)
在經(jīng)歷了順序結(jié)構(gòu)的程序教學(xué)后,選擇(分支)結(jié)構(gòu)也是我們必需經(jīng)歷的程序結(jié)構(gòu)。如何正確且深入淺出地解讀選擇(分支)結(jié)構(gòu),是教師們需要花心思鉆研的內(nèi)容。
在經(jīng)歷了兩年的Scratch教學(xué)嘗試后,我發(fā)現(xiàn)趣味游戲解讀程序結(jié)構(gòu)是非常有效果的。在趣味游戲的輔助下,原本十分枯燥的概念課,變得非常有意思,學(xué)生也能更好地被吸引到課堂中來。飛行棋游戲是我們生活中經(jīng)常遇到的一款趣味游戲,游戲中四個玩家,需要通過擲骰子的方式,來決定飛機的起飛與飛行。那么如何將這個游戲與Scratch程序教學(xué)相結(jié)合呢?在一次課堂嘗試后我思考,如果把飛行棋中“擲骰子”的設(shè)計思路與選擇(分支)結(jié)構(gòu)相結(jié)合,拋出一個數(shù)字,完成對應(yīng)的操作,是否可以更好地解讀程序結(jié)構(gòu)中選擇(分支)結(jié)構(gòu)的奧秘呢?
于是,我開始嘗試。在課堂開始前,我先與學(xué)生一同討論飛行棋游戲,學(xué)生們產(chǎn)生了非常濃厚的興趣。隨后,我發(fā)出任務(wù),本節(jié)課我們要設(shè)計一個趣味飛行棋的游戲,請學(xué)生們思考探索設(shè)計思路。
經(jīng)過小組討論后,學(xué)生們在設(shè)計棋盤、導(dǎo)入角色等操作中,都沒有遇到困難,唯獨骰子的程序設(shè)計難倒了他們,于是我引導(dǎo)他們開始繪制思維導(dǎo)圖,如圖1。在思維導(dǎo)圖與流程圖的幫助下,學(xué)生們可以清晰地認(rèn)識到飛行棋游戲中擲骰子的程序設(shè)計思想,即出現(xiàn)骰子點數(shù),做出相應(yīng)的操作。
課堂結(jié)束后,有很多學(xué)生覺得分支結(jié)構(gòu)也可以叫判斷結(jié)構(gòu),因為它一直在做判斷,并根據(jù)判斷的結(jié)果做出相應(yīng)的操作。學(xué)生對選擇(分支)結(jié)構(gòu),已經(jīng)真正認(rèn)識與理解了。
“簡易猜數(shù)字”—— 解讀循環(huán)結(jié)構(gòu)
在經(jīng)歷了順序結(jié)構(gòu)與選擇(分支)結(jié)構(gòu)的學(xué)習(xí)與實踐后,學(xué)生們對于程序語言與程序結(jié)構(gòu)有了一定的認(rèn)識。在此基礎(chǔ)上,我引出循環(huán)結(jié)構(gòu)的學(xué)習(xí)。對于循環(huán)結(jié)構(gòu),教師們的理解與學(xué)生們的初步理解是不同的,學(xué)生們可能認(rèn)為循環(huán)結(jié)構(gòu),是無限循環(huán),永不停止的,而通過教師的講解以及Scratch趣味游戲的顯性嘗試后,學(xué)生們會理解到,在循環(huán)結(jié)構(gòu)中,是有條件、有結(jié)束,不會無限循環(huán)。
在課堂開始時,我引導(dǎo)學(xué)生思考,在平時的生活中,我們在哪些時候,是必須在某種情況下,才能做特定的事件。當(dāng)我提出這樣的思考后,學(xué)生們很疑惑,于是我讓他們進(jìn)行分組討論。
經(jīng)歷討論后,教師引導(dǎo)學(xué)生設(shè)計猜數(shù)字的游戲。這款游戲的規(guī)則是輸入一個目標(biāo)數(shù)字作為謎底,然后詢問“你猜我藏好的數(shù)字是多少”,在輸入回答后,如果你的回答與答案并不相符,程序會告訴你“大了”或“小了”這兩種提示;而當(dāng)你輸入的回答與答案數(shù)字相符,程序會告訴你“恭喜答對了”。以此游戲規(guī)則為抓手,我繼續(xù)引導(dǎo)學(xué)生進(jìn)行思維導(dǎo)圖與流程圖的繪制,經(jīng)過學(xué)生的小組討論與嘗試,會生成流程圖。
跟隨著流程圖,學(xué)生們在教師的帶領(lǐng)下,各抒己見,大膽嘗試,最終都能在團(tuán)隊協(xié)作的基礎(chǔ)上實現(xiàn)趣味猜數(shù)字游戲的設(shè)計,如圖2。
在經(jīng)歷了這個簡易游戲的創(chuàng)作之后,學(xué)生對循環(huán)結(jié)構(gòu)有了進(jìn)一步的認(rèn)識,也了解了一個完整的程序,是需要順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)相互合作,才能產(chǎn)生一個功能完善、程序精煉的程序語言。趣味游戲教學(xué)開拓學(xué)生的思路,讓他們知道不管在學(xué)習(xí)中還是生活中,解決問題都有很多的方式,運用不同的方式,我們可以收獲同樣的結(jié)果。但是不同的方式,可以擁有不同的過程,這也是發(fā)展學(xué)生核心素養(yǎng)中提到的問題解決能力培養(yǎng)的一個重點篇章。程序設(shè)計教學(xué)的過程中,我們也在潛移默化地培養(yǎng)學(xué)生解決問題的能力、問題探究的能力、小組合作的能力。所以,在拓展性課程中,基于趣味游戲的Scratch程序設(shè)計教學(xué)是可以一舉多得的。
在小學(xué)信息技術(shù)的教學(xué)中,我們無法深入地講解程序語言與程序結(jié)構(gòu),但是我們可以通過簡易的趣味Scratch游戲,讓學(xué)生在小學(xué)階段,就對程序語言、程序結(jié)構(gòu)、程序設(shè)計有一個啟蒙。學(xué)生在未來的成長與學(xué)習(xí)生活中,帶著計算思維能力、創(chuàng)客理念,在學(xué)習(xí)道路上,上下求索,學(xué)有所思,學(xué)有所得。