【摘要】編程軟件學(xué)習(xí)要熟悉不同語言了解軟件,根據(jù)學(xué)生基礎(chǔ)選擇有效教學(xué),并做到循序漸進(jìn),才能做到應(yīng)用scratch軟件開發(fā)編程資源,達(dá)到編程資源的選擇與運(yùn)用的效果。
【關(guān)鍵詞】編程? scratch? 邏輯思維? 應(yīng)用
【基金項(xiàng)目】本文系福建省中青年教師教育科研項(xiàng)目(基礎(chǔ)教育研究專項(xiàng))“編程教學(xué)資源開發(fā)與應(yīng)用研究”,項(xiàng)目編號(hào):JSZJ20137(福建教育學(xué)院資助)。
【中圖分類號(hào)】G623.58 ? ? ? ? 【文獻(xiàn)標(biāo)識(shí)碼】A 【文章編號(hào)】2095-3089(2021)22-0191-02
2017年,國務(wù)院在印發(fā)的《新一代人工智能發(fā)展規(guī)劃》中明確指出“實(shí)施全民智能教育項(xiàng)目,在中小學(xué)階段設(shè)置人工智能相關(guān)課程、逐步推廣編程教育”、“支持開展人工智能競(jìng)賽,鼓勵(lì)進(jìn)行形式多樣的人工智能科普創(chuàng)作”。隨著該《規(guī)劃》的實(shí)施,編程教育已經(jīng)成為當(dāng)下我國中小學(xué)信息技術(shù)課程教學(xué)的重要組成部分之一,也成為了我國中小學(xué)生素質(zhì)教育的培養(yǎng)方向之一。
要辦好編程教育,重點(diǎn)要開展好編程教學(xué);要開展好編程教學(xué),重點(diǎn)在選擇合適的編程資源并做到合理運(yùn)用。如何選擇合適的編程資源呢?首先我們要知道什么是編程。按照百度百科中的解釋:“編程是編定程序的中文簡稱,就是讓計(jì)算機(jī)代碼解決某個(gè)問題,對(duì)某個(gè)計(jì)算體系規(guī)定一定的運(yùn)算方式,使計(jì)算體系按照該計(jì)算方式運(yùn)行,并最終得到相應(yīng)結(jié)果的過程。”[1]簡單地說就是人們通過特定的方法或手段把自己的思路通過計(jì)算機(jī)能理解的方式告訴計(jì)算機(jī),讓計(jì)算機(jī)在編程人員設(shè)定的指令集中根據(jù)給出的條件選擇合適指令去實(shí)現(xiàn)編程人員的想法,這種人機(jī)交互的過程就是編程。編程實(shí)際上就是讓計(jì)算機(jī)實(shí)現(xiàn)“某種想法的手段”,這些手段通過編程軟件得到實(shí)現(xiàn),學(xué)習(xí)編程首先要學(xué)的就是各類編程軟件的使用,掌握編程軟件最直接的方法就是案例教學(xué),各種各樣的優(yōu)秀案例構(gòu)成了我們的編程資源。如何選擇這些編程資源就是我們的研究目標(biāo),我們?cè)诮虒W(xué)過程中要做到立足于編程軟件本身的特點(diǎn),又要結(jié)合學(xué)習(xí)對(duì)象的特性,做到合理運(yùn)用。[2]
一、熟悉不同語言,了解編程軟件
編程語言分為機(jī)器語言、匯編語言、高級(jí)語言。現(xiàn)在使用二進(jìn)制代碼的機(jī)器語言,增加了簡單指令的匯編語言已較少使用,具有可移植性的高級(jí)語言成為了我們學(xué)習(xí)編程的主流。如流行的java,python,scratch等。不同的編程軟件各有不同的特點(diǎn),運(yùn)用的領(lǐng)域也各有不同,例如作為靜態(tài)面向?qū)ο缶幊陶Z言代表的Java,具有簡單而強(qiáng)大的功能,可編寫桌面運(yùn)用、web運(yùn)用等;具有高級(jí)數(shù)據(jù)結(jié)構(gòu)且易擴(kuò)展的編程語言python,作為解釋型語言被廣泛用于大型項(xiàng)目的開發(fā)。[3]
根據(jù)運(yùn)用領(lǐng)域不同,選擇的編程軟件不同,其特點(diǎn)也各不相同。我們要根據(jù)編程軟件的特點(diǎn)挑選教學(xué)案例。例如作為圖形化編程工具代表的scratch,以模塊化、形象化的特點(diǎn)被廣泛運(yùn)用在青少年編程教學(xué)中,使用這個(gè)軟件編程就像是在搭積木,學(xué)生通過向軟件中添加各種指令模塊來實(shí)現(xiàn)程序編輯。相比純命令式的編程軟件,scratch軟件的整個(gè)編輯過程十分的形象、有趣,沒有任何編程基礎(chǔ)的學(xué)生也能迅速上手。整個(gè)程序被分解成一個(gè)個(gè)模塊,方便學(xué)生理解,也便于調(diào)試,其最大的特點(diǎn)是避免了大量的編程命令,對(duì)于青少年而言極易吸引他們的眼球,激發(fā)他們的學(xué)習(xí)欲望,幾乎所有的小朋友一接觸就會(huì)愛上這款編程軟件。
二、了解學(xué)生情況,選擇有效教學(xué)
我們構(gòu)建編程資源的實(shí)質(zhì)是為了更好地服務(wù)于學(xué)習(xí)者,哪種編程資源更好最終還是要看學(xué)生的學(xué)習(xí)效果。因此在選擇上要因材施教,根據(jù)學(xué)習(xí)對(duì)象的階段性特點(diǎn),挑選合適的編程案例,通過科學(xué)的組合形成可用于實(shí)踐的編程資源。
通過對(duì)中小學(xué)生分析可知,這類對(duì)象主要有以下三個(gè)特點(diǎn):一是沒有編程基礎(chǔ)。剛剛接觸編程學(xué)習(xí)的青少年,他們沒有任何的編程基礎(chǔ),單是記憶那些命令代碼及其使用格式都能繞暈他們,更不用說做到靈活運(yùn)用。二是沒有縝密的邏輯思維。縝密的邏輯思維能力是獨(dú)立編程的基礎(chǔ),從程序設(shè)計(jì)到程序編輯,再到程序調(diào)試都需要邏輯思維支持。特別是編程過程中經(jīng)常會(huì)遇見的循環(huán)語句,如何跳出、何時(shí)跳出、怎樣避免死循環(huán),這都需要我們有清晰的思路。特別是在程序出現(xiàn)問題時(shí),如何發(fā)現(xiàn)問題并解決問題都需要我們能夠縝密的思考。三是沒有良好的編程學(xué)習(xí)習(xí)慣。這個(gè)年齡段的孩子遇困難容易退縮,且學(xué)習(xí)只有三分鐘熱度,有興趣時(shí)就學(xué),沒興趣時(shí)就放棄。我們可以根據(jù)這些特點(diǎn)選擇有效的教學(xué)方法,例如可以選擇scratch軟件開始學(xué)習(xí)編程,它把大部分的程序集成模塊化,這樣學(xué)生需要使用到的命令就少了很多,很方便沒有基礎(chǔ)的學(xué)生學(xué)習(xí);同時(shí)模塊化的程序設(shè)計(jì),有利于學(xué)生通過逐個(gè)排查的方式發(fā)現(xiàn)問題。邏輯思維能力不是與生俱來的,它是在大量實(shí)踐的基礎(chǔ)上總結(jié)出來的,只有通過積累經(jīng)驗(yàn)才能培養(yǎng)學(xué)生的邏輯思維;同時(shí)模塊化編程軟件scratch的界面形象生動(dòng),編輯過程就像搭積木,可以給學(xué)生更好的編輯體驗(yàn),不枯燥。
三、完善實(shí)例選擇,做到循序漸進(jìn)
無論學(xué)習(xí)哪種編程軟件,在教學(xué)實(shí)例的選擇上首先要做好以下三點(diǎn):
(一)“基礎(chǔ)性案例”選擇上要全面
要學(xué)編程,先學(xué)命令,命令是所有編程軟件的基礎(chǔ),程序的實(shí)質(zhì)是一系列通過某種規(guī)律組合在一起的命令。軟件不同,命令的名稱和使用方式也有所不同。我們統(tǒng)稱這類涉及編程命令教學(xué)的案例為“基礎(chǔ)性案例”。在選擇“基礎(chǔ)性案例”時(shí)要全面,要把經(jīng)常使用的命令講全、講清楚。例如scratch中的“移動(dòng)命令”,應(yīng)該如何選擇移動(dòng)對(duì)象,如何實(shí)現(xiàn)對(duì)象移動(dòng),如何設(shè)置移動(dòng)距離,這些命令涉及到的基本內(nèi)容都要講清楚。要做到一個(gè)命令即一個(gè)案例,講解的要全面,對(duì)命令的含義、命令的格式、命令的效果要講解充分。
(二)“組合性案例”選擇上要由少到多
程序?qū)嵸|(zhì)是一系列命令的有機(jī)組合,通過對(duì)多個(gè)命令的有機(jī)組合,我們可以實(shí)現(xiàn)簡單的程序設(shè)計(jì)。我們統(tǒng)稱這類涉及到多個(gè)命令的簡單程序案例為“組合性案例”。比如編輯一段簡單程序?qū)崿F(xiàn)“對(duì)象向左移動(dòng)2步后停止”,這里就涉及到“移動(dòng)”和“停止”兩個(gè)命令。要實(shí)現(xiàn)該程序,首先需掌握“移動(dòng)”和“停止”兩個(gè)命令的使用方法,然后要判斷誰先執(zhí)行、誰后執(zhí)行,按照設(shè)計(jì)目標(biāo)應(yīng)該先執(zhí)行“移動(dòng)”,待其完成向左移動(dòng)2步后再執(zhí)行“停止”命令。在這種案例的選擇上要注意由少到多,由兩個(gè)命令組合到多個(gè)命令組合,逐步增加命令數(shù)量。例如福建省小學(xué)信息技術(shù)教材中的“猴子接桃”案例,即猴子在樹下接掉落的桃子。這里涉及到移動(dòng)、隨機(jī)數(shù)、對(duì)象消失等多個(gè)命令,編程中哪條命令在前,哪條命令在后,為什么這樣排序,顛倒了會(huì)有什么效果,這些都是“組合性案例”要講清楚的。只有通過大量“組合性案例”的學(xué)習(xí),才能積累我們的編程經(jīng)驗(yàn)。
(三)“開發(fā)性案例”選擇上要由淺到深
學(xué)編程最終目的是能夠自主開發(fā)程序,我們統(tǒng)稱這類以學(xué)習(xí)開發(fā)程序?yàn)槟康牡陌咐秊椤伴_發(fā)性案例”。這類案例的教學(xué)要由淺到深,先從簡單的案例入手讓學(xué)習(xí)者理解編輯者的設(shè)計(jì)思路,通過模仿案例,在做到舉一反三的基礎(chǔ)上逐步深入學(xué)習(xí)。例如我們學(xué)會(huì)了“打地鼠”游戲,通過模仿我們也能獨(dú)立編輯出類似的“釣魚”游戲。我們還可以讓學(xué)習(xí)者嘗試對(duì)所學(xué)案例進(jìn)行優(yōu)化,通過優(yōu)化案例可以與原設(shè)計(jì)者進(jìn)行思想上的碰撞,從而通過吸收其他編程者的經(jīng)驗(yàn)充實(shí)自己。這就是所謂的萬丈高樓平地起,編程能力的培養(yǎng)需要日積月累,是大量編程實(shí)踐與經(jīng)驗(yàn)堆積出來的。
四、應(yīng)用scratch軟件,深度開發(fā)編程資源
針對(duì)scratch軟件,除了以上三點(diǎn)基本要求外還應(yīng)做到以下兩點(diǎn):
(一)案例要能體現(xiàn)學(xué)習(xí)的趣味性
由于學(xué)習(xí)者還是青少年,他們的心理發(fā)育并不成熟,學(xué)習(xí)上具有“三分熱度”的特點(diǎn),針對(duì)該特點(diǎn)我們應(yīng)采取趣味教學(xué)。例如在學(xué)習(xí)“移動(dòng)”命令時(shí),只是簡單地學(xué)上、下、左、右移動(dòng)的話,這樣的案例太過單調(diào),缺乏趣味性,無法調(diào)動(dòng)學(xué)生的學(xué)習(xí)熱情。換一種思路想想,我們可以把案例設(shè)計(jì)成一個(gè)有趣的“貓抓老鼠”游戲,即貓?jiān)诿詫m中抓老鼠。通過鍵盤操控貓?jiān)诿詫m中上、下、左、右移動(dòng),在迷宮中尋找老鼠,最終抓住老鼠并取得獎(jiǎng)勵(lì)。這樣,教學(xué)就顯得十分有趣,極易引發(fā)學(xué)生的學(xué)習(xí)興趣,有了興趣學(xué)生自然就有了學(xué)習(xí)的動(dòng)力。
(二)案例要能結(jié)合現(xiàn)實(shí)生活,方便學(xué)生理解
由于學(xué)習(xí)者還是青少年,他們的邏輯思維還不完善,想象能力不夠,有現(xiàn)實(shí)參照物比較,更方便他們理解。例如學(xué)習(xí)“交通燈控制”案例,我們可以先讓學(xué)生想一想現(xiàn)實(shí)中單個(gè)交通燈有幾種狀態(tài),并把這些具體內(nèi)容列出來。即單個(gè)交通燈可分為紅燈、綠燈和黃燈,且紅燈停、綠燈行,然后讓學(xué)生結(jié)合程序代碼學(xué)習(xí)實(shí)現(xiàn)“紅燈停”和“綠燈行”的編程方法,理解相關(guān)命令的應(yīng)用原理,這就使得抽象的問題現(xiàn)實(shí)化、具體化、形象化。這種有實(shí)際參照物的教學(xué)案例,學(xué)生理解起來會(huì)變得容易很多。
編程是一件有趣的事,學(xué)好編程重在對(duì)編程資源的選擇與運(yùn)用。好的編程資源就是學(xué)生學(xué)習(xí)的基石,我們要經(jīng)常對(duì)編程資源進(jìn)行優(yōu)化,對(duì)編程案例進(jìn)行創(chuàng)新,讓學(xué)生在快樂中學(xué)習(xí)編程,在歡樂中發(fā)現(xiàn)編程的樂趣。
參考文獻(xiàn):
[1]百度百科.https://baike.baidu.com/item/%E7%BC%96%E7%A8%8B
[2]凌秋虹.人工智能在小學(xué)信息技術(shù)課堂教學(xué)中實(shí)施的思考[J].中國信息技術(shù)教育,2019(6):37-39
[3]金微.匯編語言與C語言混合編程的接口技術(shù)[J].無線互聯(lián)科技,2013(9):109-111
作者簡介:
羅灶平(1986年-),女,福建沙縣人,一級(jí)教師,本科學(xué)歷,研究方向?yàn)樾W(xué)信息技術(shù)課堂有效性的探究、小學(xué)信息技術(shù)編程教學(xué)。