施曉軍
【摘 要】中小學(xué)階段開展編程教育,其目的不是培養(yǎng)程序員,也不是僅僅學(xué)會(huì)編程,而是通過(guò)教學(xué)活動(dòng),向?qū)W生滲透程序設(shè)計(jì)思想,促進(jìn)學(xué)生高級(jí)思維的發(fā)展,為培養(yǎng)創(chuàng)新人才打好基礎(chǔ)。在開展程序設(shè)計(jì)教學(xué)時(shí),將編程思想的建立和代碼的編寫技巧兩個(gè)難點(diǎn)分散到兩門課中,分階段進(jìn)行教學(xué),以降低課程的學(xué)習(xí)難度,提升學(xué)生的學(xué)習(xí)樂趣和信心。Scratch圖形化編程語(yǔ)言具備易入手、交互性強(qiáng)等特點(diǎn),比較適宜作為現(xiàn)階段中小學(xué)編程教育的入門軟件。
【關(guān)鍵字】信息技術(shù);編程教育;程序設(shè)計(jì);Scratch
【中圖分類號(hào)】G718 【文獻(xiàn)標(biāo)識(shí)碼】B
【論文編號(hào)】1671-7384(2014)07/08-0158-03
史蒂夫·喬布斯曾說(shuō)過(guò)這么一句話“每個(gè)人都應(yīng)該學(xué)習(xí)編程,因?yàn)樗虝?huì)你如何思考,會(huì)編程的人總想改變點(diǎn)什么。”喬布斯創(chuàng)立了蘋果,iPhone、iPad、iPod每一樣產(chǎn)品都在改變著我們的日常生活。在我們生活的這個(gè)時(shí)代,你會(huì)發(fā)現(xiàn)有類似喬布斯的這樣一群人,他們對(duì)世界的影響越來(lái)越大。比爾·蓋茨創(chuàng)立了微軟;謝爾蓋·布林和拉里·佩奇創(chuàng)立了 Google;馬克·扎克伯格創(chuàng)立了Facebook……他們?yōu)槭裁磿?huì)創(chuàng)造奇跡?奇怪的是他們都具有一個(gè)共同的特點(diǎn):在他們年少的時(shí)候都酷愛計(jì)算機(jī)編程。計(jì)算機(jī)編程究竟具有怎樣的非凡魔力?計(jì)算機(jī)編程是否給他們帶來(lái)了與常人不同的思維或思考方式?是不是計(jì)算機(jī)編程為他們開啟了不一樣的人生道路?
同樣,最近一則新聞也讓我們有所啟迪:美國(guó)肯塔基州最近通過(guò)一項(xiàng)法案,規(guī)定該州的高中生可以用編程語(yǔ)言替代外語(yǔ)修滿足夠的學(xué)分。在該州,高中生要想進(jìn)入大學(xué),需修滿22個(gè)學(xué)分,其中2個(gè)學(xué)分為外語(yǔ),而計(jì)算機(jī)語(yǔ)言并不屬于必修課。根據(jù)最新的法案,計(jì)算機(jī)語(yǔ)言將被視為一種外語(yǔ)供學(xué)生選修。幾天之后,新墨西哥州的一名議員也提出了類似的法案。兩個(gè)州相繼推動(dòng)相關(guān)法案,旨在普及編程教育,讓編程跟閱讀、算術(shù)一樣成為一項(xiàng)所有人都必須掌握的技能。
回顧我國(guó)信息技術(shù)課程的發(fā)展歷程,在20世紀(jì)80年代末,改革開放的總設(shè)計(jì)師鄧小平同志提出了“計(jì)算機(jī)要從娃娃抓起”, 吹響了我國(guó)中小學(xué)信息技術(shù)(計(jì)算機(jī))教育的號(hào)角。曾幾何時(shí),全國(guó)中小學(xué)生都在學(xué)BASIC,甚至計(jì)算機(jī)課程只教BASIC程序設(shè)計(jì),但是,隨著信息技術(shù)工具的發(fā)展變化,人們更加關(guān)注信息技術(shù)的現(xiàn)實(shí)應(yīng)用。在若干年后的今天,中國(guó)幾乎所有的中小學(xué)信息技術(shù)課程又全都不教程序設(shè)計(jì)了。程序設(shè)計(jì)作為教學(xué)內(nèi)容越來(lái)越被當(dāng)前中小學(xué)信息技術(shù)教材邊緣化,甚至完全被應(yīng)用技術(shù)教育所代替。程序設(shè)計(jì)在中小學(xué)生中,就只有參加信息學(xué)奧賽的極少數(shù)學(xué)生能掌握,而超過(guò)99%的學(xué)生都完全不學(xué),甚至不知道程序設(shè)計(jì)。
為何要讓編程教育重新主導(dǎo)信息技術(shù)課程
1.在操作弱化的背景下,信息技術(shù)課程更加凸顯了信息科學(xué)原理內(nèi)容的必要性
信息技術(shù)日新月異,計(jì)算機(jī)、移動(dòng)設(shè)備等數(shù)碼產(chǎn)品在日常生活、學(xué)習(xí)和工作的方方面面的普及與應(yīng)用,以應(yīng)用技術(shù)教育為主的信息技術(shù)課程正面臨著操作弱化的問題。一方面隨著信息技術(shù)的發(fā)展,信息技術(shù)操作越來(lái)越簡(jiǎn)單易學(xué),信息技術(shù)軟件的使用越來(lái)越人性化、“傻瓜化”,有的工具軟件的使用頻率在減少,甚至被淘汰;另一方面信息技術(shù)設(shè)備的普及和大眾化使得學(xué)生比以前更容易在學(xué)校課堂教學(xué)之外接觸到信息技術(shù),學(xué)生在課堂之外就已掌握了基本的信息技術(shù)操作技能。所以,在操作弱化的背景下,信息技術(shù)課程的重點(diǎn)不應(yīng)再是系統(tǒng)地學(xué)習(xí)這些技術(shù),在信息技術(shù)課程內(nèi)容建構(gòu)的過(guò)程中更加凸顯了信息科學(xué)原理內(nèi)容的必要性。我們不能僅僅教學(xué)生知道如何消費(fèi)技術(shù),更應(yīng)該教學(xué)生去探究計(jì)算機(jī)“屏幕背后”的技術(shù),進(jìn)一步成為技術(shù)的創(chuàng)造者?!俺绦蛟O(shè)計(jì)”作為信息技術(shù)(計(jì)算機(jī))學(xué)科的一個(gè)最古老的課程,其核心地位毋庸置疑。它不僅是計(jì)算機(jī)解決一切問題的根本,更是計(jì)算機(jī)的機(jī)理、原理之所在。了解和掌握程序設(shè)計(jì)的思想、過(guò)程、方法和技術(shù),不應(yīng)只是軟件開發(fā)人員的事,每一位使用計(jì)算機(jī)的人,最好也能了解一些程序設(shè)計(jì)的相關(guān)知識(shí)。所謂“知其然還要知其所以然”。只有這樣,我們才能揭開計(jì)算機(jī)的神秘面紗,從容、自信、熟練地掌握和駕馭它。
2.學(xué)習(xí)編程有利于學(xué)生理解這個(gè)時(shí)代,以一種全新的方式看世界
當(dāng)下這個(gè)時(shí)代,程序員幾乎主宰了整個(gè)世界,控制著人類生活的方方面面。我們使用的各種電子數(shù)碼產(chǎn)品,以及我們?nèi)TM機(jī)取錢、坐電梯、開汽車、坐飛機(jī)、坐火車——你坐火車時(shí)有沒有想過(guò),一條鐵軌上同時(shí)運(yùn)行的那么多列火車是如何調(diào)度才沒有導(dǎo)致它們相撞呢?這個(gè)時(shí)代很難想象還有什么不是通過(guò)計(jì)算機(jī)程序控制的。如果想理解這個(gè)時(shí)代,就必須得理解計(jì)算機(jī)編程,編程會(huì)讓我們更深地了解身邊的技術(shù),以一種全新的方式看世界。
3.學(xué)習(xí)編程不僅僅是學(xué)會(huì)編程,更是在學(xué)習(xí)一種思維方式
學(xué)習(xí)編程意味著要學(xué)習(xí)跟人的正常思維不同的思維方式,計(jì)算機(jī)要求我們的思維比平時(shí)更加邏輯化、順序化和更加精確,所以在學(xué)習(xí)編程的過(guò)程中還可以提高我們的邏輯推理能力、批判性思維和動(dòng)手解決問題的能力。實(shí)踐證明,學(xué)習(xí)了計(jì)算機(jī)編程的中小學(xué)生,思考問題的方式會(huì)變得非常邏輯化,學(xué)會(huì)了嚴(yán)密的邏輯推理方法,編程的思路及技能即便不直接用于編程,也無(wú)形中把它應(yīng)用到其他學(xué)科的學(xué)習(xí)中。學(xué)習(xí)計(jì)算機(jī)編程本質(zhì)上是在學(xué)習(xí)一種思維方式——編程思維,它是一種思維體操。
中小學(xué)信息技術(shù)課程中實(shí)施編程教育的定位和措施
筆者認(rèn)為,中小學(xué)階段開展編程教育。其目的不是培養(yǎng)程序員,也不是僅僅學(xué)會(huì)編程,而是通過(guò)教學(xué)活動(dòng),向?qū)W生滲透程序設(shè)計(jì)思想,促進(jìn)學(xué)生高級(jí)思維的發(fā)展,為培養(yǎng)創(chuàng)新人才打好基礎(chǔ)。考慮中小學(xué)生的年齡、心智、知識(shí)、理解能力,在開展編程教育教學(xué)時(shí),將編程思想的建立和代碼的編寫技巧兩個(gè)難點(diǎn)分散到兩門課中,分階段進(jìn)行教學(xué),以降低課程的學(xué)習(xí)難度,提升學(xué)生學(xué)習(xí)的樂趣和信心。作為中小學(xué)生的第一門編程課,最重要的是培養(yǎng)學(xué)生興趣,學(xué)習(xí)程序設(shè)計(jì)的思想、思路和方法,采用直觀且容易理解圖形化的編程方式,摒棄繁雜易錯(cuò)的代碼,以接近自然語(yǔ)言的方式表達(dá)程序邏輯,并以一種比較直觀的形式進(jìn)行驗(yàn)證。在掌握基本的編程概念和編程思想后,可以在第二門編程課里順利地過(guò)渡到專業(yè)的程序設(shè)計(jì)語(yǔ)言,著重學(xué)習(xí)語(yǔ)法、語(yǔ)義和代碼編寫技巧。借20世紀(jì)80年代初編程教育的前車之鑒,具體教學(xué)時(shí)還應(yīng)注意以下兩點(diǎn)。
首先,我們不能再簡(jiǎn)單地將大學(xué)的計(jì)算機(jī)專業(yè)編程教育下放到中小學(xué)來(lái)學(xué)習(xí)?;煜绦蛟O(shè)計(jì)和程序設(shè)計(jì)語(yǔ)言的概念,一味地講解語(yǔ)義、語(yǔ)法,不自覺地把程序設(shè)計(jì)的課上成了“程序語(yǔ)言”課。導(dǎo)致學(xué)生在學(xué)習(xí)過(guò)程中被語(yǔ)法錯(cuò)誤所困擾,寸步難行,根本體會(huì)不到學(xué)習(xí)的樂趣。從而讓學(xué)生身心俱疲,備感恐懼,最終失去學(xué)習(xí)的興趣而放棄編程學(xué)習(xí)。
其次,當(dāng)時(shí)的編程教育最終失敗的一個(gè)重要原因,是因?yàn)楫?dāng)時(shí)軟硬件資源匱乏,選擇學(xué)習(xí)編程的軟件余地很小,而且大多數(shù)編程軟件是針對(duì)大學(xué)生專業(yè)學(xué)習(xí)而設(shè)計(jì)的,當(dāng)時(shí)中小學(xué)編程教育教學(xué)中普遍使用的Basic和Logo編程語(yǔ)言易用性不高、交互性不強(qiáng),導(dǎo)致學(xué)生學(xué)習(xí)興趣也不大。所以選擇一款適宜中小學(xué)學(xué)生編程教學(xué)使用的編程軟件至關(guān)重要,筆者認(rèn)為作為中小學(xué)編程教育的入門軟件應(yīng)滿足以下三個(gè)要求。
(1)使初學(xué)者盡可能容易地學(xué)習(xí)。
(2)使學(xué)習(xí)者在學(xué)習(xí)中感到樂趣。
(3)編程概念跟現(xiàn)今的專業(yè)編程語(yǔ)言盡可能地相似,能夠順利地過(guò)渡到專業(yè)的程序設(shè)計(jì)語(yǔ)言。
幸運(yùn)的是,現(xiàn)在各種編程軟件不斷推陳出新,給我們更多的選擇,筆者經(jīng)過(guò)多年編程教學(xué)實(shí)踐探索,推薦Scratch圖形化編程語(yǔ)言作為中小學(xué)編程教育的入門軟件。
Scratch圖形化程式語(yǔ)言簡(jiǎn)介
Scratch是一種可免費(fèi)使用的圖形化編程語(yǔ)言,由美國(guó)麻省理工學(xué)院媒體實(shí)驗(yàn)室及加州大學(xué)教育與資訊研究院的KIDS小組共同研發(fā),特別為8歲或以上的青少年而設(shè)計(jì)。其幾乎完全顛覆了傳統(tǒng)編程軟件的設(shè)計(jì)理念,并具備傳統(tǒng)編程軟件所沒有的幾個(gè)特點(diǎn)。
1.Scratch圖形化程式語(yǔ)言學(xué)習(xí)門檻低、效益高
它不需要像傳統(tǒng)編程軟件那樣一行一行地“敲”代碼,而采用類似于樂高積木的方式“堆疊”程序形成邏輯,只要使用簡(jiǎn)易的鼠標(biāo)拖曳方式,將已定義好的指令從程式指令區(qū)移進(jìn)程序腳本區(qū)即可,取代文字輸入,排除打字或語(yǔ)法出錯(cuò)的機(jī)會(huì)。為了不讓初學(xué)者遇到比較困難的語(yǔ)法問題,Scratch的語(yǔ)句塊形狀經(jīng)特別設(shè)計(jì),只允許合乎程序邏輯時(shí)才能結(jié)合到一起,而且每一類功能的形狀和顏色也易于區(qū)別,防止錯(cuò)誤配置。因此,用它編程不用擔(dān)心語(yǔ)法錯(cuò)誤,可以讓學(xué)生在不知不覺中,學(xué)習(xí)程式語(yǔ)言的概念,通過(guò)實(shí)驗(yàn)的方式理解編程思想,進(jìn)而增加推理能力、掌握邏輯概念。
2.Scratch圖形化編程語(yǔ)言多媒體功能強(qiáng)大,交互性強(qiáng)
Scratch具有方便強(qiáng)大的多媒體功能,不但集成了圖片、聲效、動(dòng)作、外觀等編程部件,還集成了鍵盤、鼠標(biāo)等事件部件。利用動(dòng)作部件,可以讓角色移動(dòng)、旋轉(zhuǎn)等;利用外觀部件可以設(shè)置角色的造型、給造型添加特效等;利用聲音部件,可設(shè)置各種聲音特效;利用事件部件,可控制角色并構(gòu)建出良好的人機(jī)交互界面。所以,利用Scratch可以很方便地制作具互動(dòng)性的故事、游戲、動(dòng)畫等多媒體程序。教學(xué)中采用寓教于樂的方式,學(xué)生能很自然地掌握編程思想和編程技巧。
3.Scratch圖形化編程語(yǔ)言體現(xiàn)的編程概念跟專業(yè)語(yǔ)言是類似的,可以順利過(guò)渡到專業(yè)編程語(yǔ)言的學(xué)習(xí)
Scratch編程部件不但包含了常見的編程概念,如順序、循環(huán)、條件語(yǔ)句、變量和鏈表(數(shù)組)等,而且作為一種現(xiàn)代的編程工具,Scratch還引入了事件、線程、協(xié)調(diào)和同步的概念,完全可以順利過(guò)渡到其他專業(yè)編程語(yǔ)言的學(xué)習(xí)。
筆者認(rèn)為,把Scratch圖形化程式語(yǔ)言作為中小學(xué)編程教育的教學(xué)平臺(tái),既能了解掌握編程的基本思想、算法和技巧,又能培養(yǎng)學(xué)生學(xué)習(xí)編程的興趣,又有利于進(jìn)一步學(xué)習(xí)其他專業(yè)編程語(yǔ)言。
讓編程教育再次主導(dǎo)信息技術(shù)課程,需要信息技術(shù)教師自己開拓創(chuàng)新,不斷總結(jié),摸著石頭過(guò)河,更需要有關(guān)教育部門政策上的支持。由于在目前國(guó)內(nèi)應(yīng)試教育的體系下,信息技術(shù)并未被納入中考、高考范疇,很難真正受到家長(zhǎng)和學(xué)生的關(guān)注??紤]到經(jīng)濟(jì)發(fā)展的不均衡性和數(shù)字鴻溝,將編程作為統(tǒng)一考試的必考科目有失公平。如今正值高考方案大調(diào)整階段,我國(guó)教育部門若可以效仿美國(guó)將編程作為高考可選的考試科目,這無(wú)疑將有助于中小學(xué)編程教育的推廣。
參考文獻(xiàn)
[1]紀(jì)磊.啊哈C!思考快你一步[M].北京:電子工業(yè)出版社,2013.
[2]林厚從.中小學(xué)程序設(shè)計(jì)教學(xué)的思考[EB/OL]. http://www.docin.com/p-606965928.html.2013-03-30.
[3]劉向永,周惠穎.操作弱化背景下的義務(wù)教育信息技術(shù)課程內(nèi)容建構(gòu)[J].中小學(xué)信息技術(shù)教育2011(4).
[4]朱旭剛.程序設(shè)計(jì)基礎(chǔ)[EB/OL]. http://wenku.baidu.com/link?url=qkjjw2C2kIGNxuPuxVoNp0YxBuM0pJLmF8PTwlEiAVkuJLhrkeyW7xA_E2UFiQ7ZfJVclT2WWUrIE70Nt9yrK7_6xIB5cGKkiWUo0VzqaaO.2012-09-06.
(作者單位:浙江寧波市鄞州區(qū)董玉娣中學(xué))