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