劉雅君 李愛(ài)民 劉晟 張愛(ài)玲 袁婷
摘要:傳統(tǒng)編程入門(mén)語(yǔ)言并不直觀也不易學(xué)。因此,將JavaScript作為編程入門(mén)語(yǔ)言并進(jìn)行趣味化教學(xué)改革實(shí)踐,可以促進(jìn)學(xué)生學(xué)習(xí)積極性。首先,通過(guò)小游戲引例和適當(dāng)?shù)闹R(shí)點(diǎn)呼應(yīng),使整個(gè)學(xué)習(xí)過(guò)程具有吸引力,讓學(xué)生的學(xué)習(xí)變得輕松有趣。其次,通過(guò)不同難度的練習(xí),切實(shí)提升學(xué)生編程實(shí)操能力。最后,在綜合“頂石”練習(xí)中,深化學(xué)習(xí)效果,使學(xué)生夯實(shí)課程基礎(chǔ)。實(shí)踐證明,該課程改革實(shí)踐,不僅激發(fā)了學(xué)生的學(xué)習(xí)興趣,而且大大提高課程質(zhì)量。
關(guān)鍵詞:編程入門(mén)語(yǔ)言;JavaScript;教學(xué)改革;趣味化教學(xué);游戲編程
中圖分類號(hào):G642.41 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)16-0102-02
計(jì)算機(jī)入門(mén)語(yǔ)言的學(xué)習(xí)過(guò)程是計(jì)算思維和編程實(shí)操能力培養(yǎng)的重要階段。在我國(guó)的大多數(shù)大專院校教學(xué)計(jì)劃中,C語(yǔ)言是指定的編程入門(mén)語(yǔ)言。C語(yǔ)言固然用途廣泛且功能強(qiáng)大,然而并不直觀和易學(xué),學(xué)生的學(xué)習(xí)趣味性和成就感普遍較弱。因此,一些先驅(qū)院校引入國(guó)外教學(xué)經(jīng)驗(yàn)嘗試教學(xué)改革,引入多門(mén)腳本語(yǔ)言作為編程入門(mén)語(yǔ)言,例如Python語(yǔ)言、JavaScript語(yǔ)言(簡(jiǎn)稱JS)等等[1]。
1 教學(xué)現(xiàn)狀
在實(shí)際教學(xué)過(guò)程中,現(xiàn)階段編程入門(mén)語(yǔ)言往往被設(shè)定為C語(yǔ)言,然而教學(xué)效果并不理想。以筆者所在學(xué)校而言,C語(yǔ)言課程的掛科率普遍在10%以上,個(gè)別班級(jí)高達(dá)30%。究其原因,主要有以下兩個(gè)方面:
首先,從學(xué)生層面而言,對(duì)于編程學(xué)習(xí)普遍存在畏難心理,缺乏學(xué)習(xí)興趣和成就感。筆者所在學(xué)院為高職院校,學(xué)生生源質(zhì)量逐年下降,學(xué)生的邏輯思維和英語(yǔ)基礎(chǔ)參差不齊,學(xué)習(xí)主動(dòng)性較弱。伴隨學(xué)習(xí)難度和強(qiáng)度的增加,學(xué)生極易失去學(xué)習(xí)興趣,應(yīng)付學(xué)習(xí),把學(xué)習(xí)當(dāng)成負(fù)擔(dān)。這對(duì)后續(xù)的編程學(xué)習(xí)無(wú)疑產(chǎn)生重大負(fù)面影響。
其次,從教師層面而言,教師的教學(xué)理念和教學(xué)內(nèi)容亟待更新。C語(yǔ)言的傳統(tǒng)教學(xué)模式缺乏生動(dòng)性和趣味性。學(xué)習(xí)過(guò)程中過(guò)于強(qiáng)調(diào)講述環(huán)節(jié),訓(xùn)練題目局限性較大,通常屬于文本輸出類型,相對(duì)枯燥。
總之,傳統(tǒng)C語(yǔ)言編程入門(mén)語(yǔ)言的理論教學(xué)和上機(jī)實(shí)踐環(huán)節(jié)都不易增強(qiáng)學(xué)生學(xué)習(xí)熱情和興趣。因此,改革現(xiàn)有傳統(tǒng)的編程入門(mén)語(yǔ)言教學(xué)模式迫在眉睫。
2 教學(xué)改革方法的研究與實(shí)踐
JS是一種功能強(qiáng)大的客戶端腳本語(yǔ)言。作為一種松散類型的語(yǔ)言,JS學(xué)習(xí)門(mén)檻確實(shí)比C語(yǔ)言低。此外,JS具有大量?jī)?nèi)置對(duì)象,易于培養(yǎng)學(xué)生面向?qū)ο蟮木幊趟枷搿?guó)內(nèi)外多所知名高校已將JS語(yǔ)言設(shè)立為編程入門(mén)語(yǔ)言進(jìn)行學(xué)習(xí)。筆者已從事三年JS語(yǔ)言教學(xué),嘗試將其作為編程入門(mén)語(yǔ)言進(jìn)行趣味化教學(xué),使學(xué)生更愿意學(xué)、更主動(dòng)地編程,以增強(qiáng)編程教學(xué)的效率與質(zhì)量。具體教改實(shí)踐措施詳述如下。
2.1 設(shè)置趣味化游戲引例,激發(fā)學(xué)生學(xué)習(xí)興趣
學(xué)生初次接觸編程,如何激發(fā)學(xué)習(xí)求知欲和興趣,消除畏難心理,是教師可以深入思考的問(wèn)題。利用趣味化的游戲引例,給學(xué)生樹(shù)立“編程很有趣”的理念,是一種有效的解決途徑。
根據(jù)章節(jié)知識(shí)點(diǎn),教師可以制定1至2個(gè)游戲編程示例,吸引學(xué)生的注意力。這些示例程序篇幅不宜過(guò)長(zhǎng)、結(jié)構(gòu)盡量清晰合理、邏輯力求活潑有趣,最大限度匹配并服務(wù)于后續(xù)相關(guān)知識(shí)點(diǎn)的講解。通過(guò)這些示例的展示,學(xué)生往往興趣盎然地關(guān)注程序,絲毫不覺(jué)得負(fù)擔(dān)或者畏難。
筆者主要設(shè)計(jì)的示例如下:
1)語(yǔ)法基礎(chǔ)講解部分,設(shè)定猜數(shù)字、擲骰子和自動(dòng)發(fā)牌游戲;
2)內(nèi)置對(duì)象講解部分,設(shè)定游戲倒計(jì)時(shí)器和21點(diǎn)撲克牌示例;
3)文檔對(duì)象模型(DOM)講解部分,設(shè)定動(dòng)態(tài)日歷和棋盤(pán)繪制示例;
4)事件處理講解部分,設(shè)定抽獎(jiǎng)游戲和簡(jiǎn)易連連看游戲示例;
5)瀏覽器對(duì)象模型(BOM)講解部分,設(shè)定帶頁(yè)面特效的三子棋游戲示例;
6)第三方類庫(kù)講解部分,設(shè)定拼圖和貪吃蛇游戲。
總之,興趣是最好的學(xué)習(xí)驅(qū)動(dòng)力。通過(guò)引例有效激發(fā)學(xué)生學(xué)習(xí)興趣,讓學(xué)生學(xué)習(xí)更將主動(dòng),這將大幅度提供學(xué)生后續(xù)知識(shí)點(diǎn)的學(xué)習(xí)效率。
2.2將引例合理切分,深入淺出地剖析相關(guān)知識(shí)點(diǎn)
如果趣味化的引例是學(xué)習(xí)的開(kāi)胃菜,那么知識(shí)點(diǎn)才是編程學(xué)習(xí)的主菜。對(duì)于知識(shí)點(diǎn)的優(yōu)化整理,是此過(guò)程的關(guān)鍵。知識(shí)點(diǎn)的粒度適宜,與游戲示例的實(shí)現(xiàn)呼應(yīng),總數(shù)量不宜過(guò)多。
例如筆者在講解JS事件處理部分時(shí),設(shè)置了抽獎(jiǎng)和簡(jiǎn)易連連看兩個(gè)游戲示例。其中抽獎(jiǎng)示例呼應(yīng)的知識(shí)點(diǎn)包含如下:
1)JavaScript事件類型的相關(guān)概念和基本分類;2)事件發(fā)生時(shí)事件處理的三種方式;3)常用的鼠標(biāo)事件;4)常用的鍵盤(pán)事件。簡(jiǎn)易連連看游戲示例呼應(yīng)的知識(shí)點(diǎn)主要呼應(yīng)事件冒泡、捕獲和委托機(jī)制。
總之,恰當(dāng)?shù)闹R(shí)點(diǎn)整理和講解,將幫助學(xué)生更高效地理解基本概念、構(gòu)建編程技能。
2.3 增添不同難度的練習(xí),提升編程實(shí)操能力
在講解結(jié)束后,建議設(shè)置鞏固練習(xí)環(huán)節(jié)??紤]到學(xué)生的差異性,設(shè)置三個(gè)層次的練習(xí),供學(xué)生選擇完成。首先,初級(jí)練習(xí)主要要求學(xué)生模仿制作趣味引例。這些引例可以在ppt或者講義中展示部分核心代碼,學(xué)生需要獨(dú)立完成完整引例,訓(xùn)練學(xué)生的邏輯思維能力。其次,中級(jí)練習(xí)主要設(shè)置知識(shí)點(diǎn)鞏固類型題目。學(xué)生根據(jù)所學(xué)知識(shí)點(diǎn)即可完成,增強(qiáng)學(xué)生的成就感。最后,高級(jí)練習(xí)將提供1至2道編程挑戰(zhàn)題目。通過(guò)挑戰(zhàn)題目,拓展學(xué)生的思維,充分發(fā)揮其主動(dòng)性,制作專屬的超酷游戲。
在練習(xí)過(guò)程中,可以引入競(jìng)爭(zhēng)機(jī)制。根據(jù)每一題完成速度和質(zhì)量,教師可以評(píng)定和展示前10名動(dòng)態(tài)排名。這樣帶動(dòng)上機(jī)練習(xí)氛圍,可以極大地促進(jìn)學(xué)生學(xué)習(xí)積極性。
2.4 綜合“頂石”練習(xí),鞏固學(xué)習(xí)成果
綜合大作業(yè)練習(xí)引導(dǎo)學(xué)生綜合應(yīng)用本學(xué)期JS課程的相關(guān)知識(shí),根據(jù)個(gè)人興趣開(kāi)發(fā)一個(gè)完整的軟件作品,從而深化學(xué)習(xí)效果,提高學(xué)習(xí)質(zhì)量。作品主題不限,僅設(shè)置代碼下限要求和必要技術(shù)點(diǎn)。這個(gè)綜合大作業(yè)練習(xí)引入“頂石”課程理念,用以鍛煉學(xué)生的編程能力和創(chuàng)新素質(zhì)。“頂石”是建筑學(xué)的術(shù)語(yǔ),指在建造拱橋、拱廊等過(guò)程中,為增強(qiáng)整體結(jié)構(gòu)力而在建筑物頂端架設(shè)的石頭,完成了這塊石頭的搭建,建筑工程才算順利完工[2]。該詞引申到本課程,主要指最后階段的強(qiáng)化課程所學(xué)知識(shí)的“整體結(jié)構(gòu)力”[2]。
選題初期,根據(jù)學(xué)生個(gè)體能力和興趣的差異性,教師可以適時(shí)地指導(dǎo)學(xué)生選題方向,力求保留一定娛樂(lè)性和趣味性。在學(xué)生自主開(kāi)發(fā)過(guò)程中,教師需要側(cè)重關(guān)注對(duì)其良好的編程風(fēng)格、代碼組織能力和時(shí)間管理能力的培養(yǎng)。最后也是最重要的一點(diǎn)是,教師需要指導(dǎo)學(xué)生在開(kāi)發(fā)過(guò)程做出正確的關(guān)鍵決策,以避免學(xué)生出現(xiàn)臨近展示作品卻開(kāi)發(fā)失敗的情況。
2.5個(gè)人大作業(yè)宣講,引入學(xué)生投票
大作業(yè)完成后,要求每位同學(xué)在班級(jí)范圍內(nèi)依次宣講自己的作品,分享自己的開(kāi)發(fā)思路和經(jīng)驗(yàn)教訓(xùn)。這不僅鍛煉學(xué)生的表達(dá)能力,而且?guī)椭鷮W(xué)生梳理和總結(jié)學(xué)習(xí)成果。教師需要注意,在每位同學(xué)展示前引導(dǎo)學(xué)生們鼓掌鼓勵(lì)演講人。另外,不宜打斷演講過(guò)程,可以在演講最后給予補(bǔ)充或點(diǎn)評(píng)。
在考核環(huán)節(jié),可以引入學(xué)生投票機(jī)制,讓每個(gè)學(xué)生都做一次評(píng)委。實(shí)踐證明,該環(huán)節(jié)不僅可以提高學(xué)生演講的質(zhì)量,而且增強(qiáng)學(xué)生參與的積極性。筆者一般在演講前,給每位學(xué)生提供一張選票,要求學(xué)生選取自己認(rèn)為最好的5件作品。學(xué)生們一般會(huì)認(rèn)真傾聽(tīng)演講,并仔細(xì)比對(duì)選擇。演講者也會(huì)使出渾身解數(shù),盡力拉票。演講結(jié)束后,選擇三位班委進(jìn)行現(xiàn)場(chǎng)計(jì)票,對(duì)票選的前5名給予一定獎(jiǎng)勵(lì)。
當(dāng)然,最后的課程成績(jī)總評(píng),仍需要綜合考慮平時(shí)作業(yè)、平時(shí)表現(xiàn)和最后大作業(yè)共三個(gè)方面的成績(jī),以示公平公正。
3 結(jié)語(yǔ)
在筆者實(shí)踐過(guò)程中,很多學(xué)生平均成績(jī)逐年提高,授課班級(jí)已經(jīng)達(dá)到零不及格率。其中部分學(xué)生具有獨(dú)到的創(chuàng)新思路,實(shí)現(xiàn)了很多亮眼的作品。部分作品展示如下:
經(jīng)過(guò)三年的課程改革實(shí)踐,通過(guò)將JS作為編程入門(mén)語(yǔ)言并進(jìn)行趣味化教學(xué),取得較好的教學(xué)效果。通過(guò)小游戲引例和適當(dāng)?shù)闹R(shí)點(diǎn)呼應(yīng),使整個(gè)學(xué)習(xí)過(guò)程具有吸引力,讓學(xué)生的學(xué)習(xí)變得輕松有趣。通過(guò)增添不同難度的練習(xí),切實(shí)提升學(xué)生編程實(shí)操能力。在綜合“頂石”練習(xí)中,深化學(xué)習(xí)效果,使學(xué)生夯實(shí)課程基礎(chǔ)??傊?,將JS語(yǔ)言作為一門(mén)編程入門(mén)語(yǔ)言,并進(jìn)行趣味化教學(xué)實(shí)踐,將切實(shí)提高學(xué)生的編程學(xué)習(xí)質(zhì)量。
參考文獻(xiàn):
[1]曾海. JAVASCRIPT程序設(shè)計(jì)基礎(chǔ)教程[M]. 人民郵電出版社, 2009.
[2] 張學(xué)良,王潤(rùn)孝, 楊永. 美國(guó)高校頂石課程評(píng)介及啟示[J]. 中國(guó)大學(xué)教學(xué), 2017(5).