郭堂瑞
摘要:隨著國家對(duì)信息化的日益重視,大學(xué)生的計(jì)算機(jī)素養(yǎng)也越來越突出基礎(chǔ)理論的加強(qiáng)和培養(yǎng)計(jì)算思維能力,但程序設(shè)計(jì)啟蒙在全國各地的發(fā)展并不均衡,這就造成大學(xué)生學(xué)習(xí)《程序設(shè)計(jì)基礎(chǔ)》時(shí)出現(xiàn)了一些問題,為了解決這些問題,結(jié)合了STEAM教育中常用的積木式編程法,作為主修語言的引導(dǎo)輔助,設(shè)計(jì)了相關(guān)案例,從而加強(qiáng)程序設(shè)計(jì)方法、算法、邏輯結(jié)構(gòu)等基礎(chǔ)理論的理解,同時(shí)培養(yǎng)學(xué)習(xí)興趣和計(jì)算思維能力。
關(guān)鍵詞:積木式編程;Scratch;《程序設(shè)計(jì)基礎(chǔ)》教學(xué)
中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)35-0122-02
1 問題的提出
我校非計(jì)算機(jī)文科專業(yè)的通識(shí)教育必修課《程序設(shè)計(jì)基礎(chǔ)》選用ACCESS,主要功能是作為數(shù)據(jù)庫管理系統(tǒng),其中一個(gè)重要部分,是學(xué)習(xí)VBA語言。VBA語言是VB的子集,也是Microsoft Office的內(nèi)嵌語言。它的實(shí)踐性很強(qiáng),學(xué)生要掌握程序設(shè)計(jì)的基本方法、編程技能與上機(jī)調(diào)試能力,并嘗試通過編程解決簡(jiǎn)單的應(yīng)用問題。學(xué)生在學(xué)習(xí)VBA語言的過程中,出現(xiàn)了一些問題:
(1)學(xué)習(xí)動(dòng)力不足。未認(rèn)識(shí)到計(jì)算機(jī)作為一項(xiàng)工具的重要性,在學(xué)習(xí)動(dòng)力上顯得不足,多數(shù)為了考試而學(xué)習(xí),對(duì)程序設(shè)計(jì)的方法沒有深入的理解。
(2)內(nèi)容量大,消化不了。VBA語言只作為《程序設(shè)計(jì)基礎(chǔ)》的一個(gè)章節(jié),計(jì)劃10學(xué)時(shí),在這10學(xué)時(shí)里,需要講授數(shù)據(jù)類型、運(yùn)算符、表達(dá)式、語句、函數(shù)、數(shù)組,還有程序控制結(jié)構(gòu)、變量的作用域、過程調(diào)用參數(shù)傳遞、面向?qū)ο缶幊毯蛿?shù)據(jù)庫編程,雖然典型的用例可以幫助學(xué)生提高學(xué)習(xí)的效率,但卻達(dá)不到理想效果。雖然VBA語言10個(gè)學(xué)時(shí)比較極端,但我?!冻绦蛟O(shè)計(jì)基礎(chǔ)》其他教學(xué)語言學(xué)時(shí)也并不多,同樣需要面對(duì)這個(gè)問題。
(3)計(jì)算思維能力較差。對(duì)日語專業(yè)某班統(tǒng)計(jì)大學(xué)入校前學(xué)習(xí)過《信息技術(shù)》的人數(shù),結(jié)果顯示不到10%,反映出我校文科生生源地區(qū)計(jì)算機(jī)啟蒙教育發(fā)展不足,普遍未養(yǎng)成抽象話語模式,對(duì)問題的求解、系統(tǒng)設(shè)計(jì)找不到準(zhǔn)確的切入點(diǎn)。
鑒于以上問題,需要在教學(xué)中開辟新的途徑來彌補(bǔ)不足。
2 積木式編程的意義
積木式編程是把流程、過程庫等都變成“積木”,使用者可以使用“搭積木”的方法,通過拖放“積木塊”來構(gòu)建程序。這種方法完全可視化,生動(dòng)有趣,即使完全不懂編程語言,也能快速完成作品,具有零基礎(chǔ)、無門檻的特點(diǎn),中小學(xué)STEAM教育常用這種方式,同樣非常適合無編程基礎(chǔ)的大學(xué)本科生。
比較出名的積木式編程軟件有App inventor、Scratch、各種可編程機(jī)器人的圖形化編程環(huán)境如樂高的LMEE等。本文案例采用Scratch軟件,這種軟件簡(jiǎn)單、開源,可以把作品分享給所有人,它的項(xiàng)目負(fù)責(zé)人曾說:“我們的目的不是要?jiǎng)?chuàng)辦電腦程序編寫大軍,而是幫助電腦使用者表達(dá)自己?!彼亩ㄎ患确咸岣叱绦蛩仞B(yǎng)的目的,又符合文科生感性、想象力豐富、做事靈活的特性。
3 實(shí)施案例
積木式編程引導(dǎo)法用在教學(xué)中的做法是:根據(jù)不同知識(shí)點(diǎn)設(shè)計(jì)針對(duì)性案例,定位在引導(dǎo)入門上,每個(gè)案例的設(shè)計(jì)腳本都短小精悍,“積木塊”的堆砌時(shí)間不超過10分鐘,教學(xué)順序和特點(diǎn)用以下兩個(gè)案例來說明。
(1)循環(huán)結(jié)構(gòu)實(shí)現(xiàn)小貓?zhí)?/p>
本案例的課堂教學(xué)順序如下:
第一步:提出問題,確定算法。在舞臺(tái)中央選擇小貓角色,帶領(lǐng)學(xué)生想象小貓?zhí)璧膱?chǎng)景,然后引導(dǎo)設(shè)計(jì)跳舞時(shí)的動(dòng)作,用相應(yīng)的積木塊來構(gòu)建腳本。
第二步:學(xué)生自由改變腳本。可以改變x,y坐標(biāo)軸的初值、重復(fù)執(zhí)行的次數(shù)、特效的選項(xiàng),動(dòng)手能力強(qiáng)的學(xué)生還可以選用其他“積木塊”來改變跳舞的動(dòng)作和效果。
第三步:學(xué)生互相展示自己的作品,交流“積木塊”的功能。
第四步:思考如果用VBA的語法,應(yīng)該怎么寫。
第五步:總結(jié)賦值語句、循環(huán)語句的語法規(guī)則,并復(fù)習(xí)For...Next,Do While…Loop的特點(diǎn)。
教學(xué)過程中,學(xué)生可以參與提出解決方案,腳本搭建起來不超過5分鐘,把可預(yù)測(cè)次數(shù)的循環(huán)、沒有條件的循環(huán),以及嵌套循環(huán)的執(zhí)行順序在輕松搭建積木時(shí)加以說明,再用對(duì)照法來引入VBA語言循環(huán)結(jié)構(gòu)的語法規(guī)則,從易到難,水到渠成。
(2)繪制“花團(tuán)錦簇”圖來理解過程調(diào)用
該案例的教學(xué)順序跟前述案例類似,所以此處只介紹程序繪制“花團(tuán)錦簇”圖的具體方法:
第一步:使用Scratch的“繪制新造型”功能繪制出一片矢量花瓣,如圖2所示,確定十字準(zhǔn)線的位置。
該案例的教學(xué)過程中,可以引導(dǎo)學(xué)生學(xué)習(xí)領(lǐng)會(huì)自頂向下、逐步求精的程序設(shè)計(jì)方法,再通過過程調(diào)用來優(yōu)化代碼,比普通的案例更能產(chǎn)生視覺沖擊力。VBA語言主要是為應(yīng)用程序擴(kuò)展功能,在圖形庫方面并不突出,這個(gè)案例也能夠讓學(xué)生開闊一下思路。如果是用在C ++、python等有強(qiáng)大圖形庫的語言教學(xué)中,也能夠起到迅速提高興趣的作用。
從以上兩個(gè)案例的設(shè)計(jì)可以看出,用積木式編程來引導(dǎo),對(duì)于初次接觸程序設(shè)計(jì)的學(xué)生來說,不必在一開始就面對(duì)語法規(guī)則、語句書寫的問題,能夠把注意力放在理論基礎(chǔ)里,再把理論指導(dǎo)應(yīng)用在具體的編程語言中。而且Scratch編程可以把藝術(shù)、研究和工程技術(shù)相結(jié)合,對(duì)學(xué)生全面發(fā)展有一定好處。
4 總結(jié)
《程序設(shè)計(jì)基礎(chǔ)》如果選用其他教學(xué)語言,也可以用適合的積木式編程軟件來設(shè)計(jì)引導(dǎo)案例,比如App inventor能夠快速開發(fā)安卓應(yīng)用,可以用以輔助學(xué)習(xí)java語言。
積木式編程軟件雖然簡(jiǎn)單易學(xué),但功能不夠全面,在《程序設(shè)計(jì)基礎(chǔ)》教學(xué)中,作為主修語言的引導(dǎo)輔助,重點(diǎn)在程序設(shè)計(jì)方法、算法和邏輯思想的教學(xué)上,再用對(duì)照法引入主修語言的相關(guān)語法規(guī)則。在《程序設(shè)計(jì)基礎(chǔ)》課程結(jié)束后,學(xué)生也可以使用積木式編程軟件設(shè)計(jì)程序,達(dá)到以“積木”促理解,理解后自發(fā)“玩積木”的良性循環(huán),從而認(rèn)識(shí)到計(jì)算機(jī)作為工具的重要意義。
參考文獻(xiàn):
[1] [美]Majed Marji.動(dòng)手玩轉(zhuǎn)Scratch2.0編程——STEAM創(chuàng)新教育指南[M].于欣龍,李澤,譯.中國工信出版集團(tuán),2015.
[2] 石楊.“為創(chuàng)作而教”的Scratch主題教學(xué)研究[J]. 考試周刊, 2016(17):174-174.
[3] 肖如,顧倩頤.面向Steam教育的App Inventor課堂教學(xué)研究[J].中國信息技術(shù)教育,2016(17):61-64.