溫李芳
[摘 ? ? ? ? ? 要] ?大部分中職學(xué)生的英語和數(shù)學(xué)基礎(chǔ)差,普遍感覺編程類課程難學(xué),但作為計(jì)算機(jī)網(wǎng)絡(luò)專業(yè)的學(xué)生還是不可避免地要學(xué)習(xí)一定的編程知識、掌握相應(yīng)的程序設(shè)計(jì)技能。目前,廣州市財(cái)經(jīng)職業(yè)學(xué)校計(jì)算機(jī)類專業(yè)僅有計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)專業(yè),開設(shè)的編程類課程包括App Inventor和Java程序設(shè)計(jì)等。因此,如何構(gòu)建中職編程類課程有效課堂的策略是中職計(jì)算機(jī)專業(yè)教師必須思考與面對的問題。結(jié)合教學(xué)實(shí)踐,談?wù)剬χ新毦幊填愓n程教學(xué)策略的探究。
[關(guān) ? ?鍵 ? 詞] ?中職;編程類課程;教學(xué)策略
[中圖分類號] ?TP313 ? ? ? ? ? ? ? ? [文獻(xiàn)標(biāo)志碼] ?A ? ? ? ? ? ? ? ? ? ?[文章編號] ?2096-0603(2019)25-0280-02
一、中職編程類教學(xué)應(yīng)該把抽象問題具體化、形象化
類與對象是面向?qū)ο蟪绦蛟O(shè)計(jì)中比較抽象的問題,在授課過程中,為講清楚類與對象的概念以及兩者之間的不同,我通過建立“學(xué)生類”把抽象問題具體化。
類表示類型,描述某一類事物的共性,Student表示學(xué)生類,所有的Student都有name,age和id屬性。而對象,則表示類的一個(gè)具體實(shí)例,如通過“Student s1”創(chuàng)建類的對象s1。
為幫助學(xué)生理解類與對象,我在對象下面寫了兩個(gè)語句,如圖1所示,并闡述語句Student.name="xiaowang";出錯(cuò)的原因在于我們不可以說所有的學(xué)生(即類)的名字叫"xiaowang",只能說某學(xué)生(對象)的名字叫"xiaowang"。
又如,在Java課程中學(xué)習(xí)for循環(huán)語句時(shí),要求使用for循環(huán)求出1至100的和,學(xué)生無法理解程序,我把這個(gè)累加的過程類比為往存錢罐存錢的過程。sum=0表示一開始存儲罐是空的,for(int i=1;i<=100;i++){sum=sum+i;}表示第1趟存1元、第2趟存入2元……第100趟存入100元,然后跳出循環(huán)語句。但還是有部分學(xué)生無法理解,然后我再通過在循環(huán)體內(nèi)添加System.out.println("i="+i+",sum="+sum);這樣的語句,促使學(xué)生理解for循環(huán)語句的執(zhí)行過程。最后再把循環(huán)終止條件i=100改為i=5,通過完成表1里的i值和sum值的計(jì)算,進(jìn)一步鞏固for循環(huán)。
這樣把抽象問題具體化、形象化的做法,能較好地幫助學(xué)生理解抽象概念,掌握知識。
二、中職編程類課程應(yīng)增強(qiáng)知識與技能學(xué)習(xí)的趣味性與應(yīng)用性
蘇霍姆林斯基說過:我的學(xué)生學(xué)習(xí)時(shí)絕不是死記硬背,而是在游戲、故事、美、音樂、幻想和創(chuàng)造的世界中進(jìn)行朝氣蓬勃的智力活動。因此,教學(xué)中創(chuàng)建情境通過趣味性的案例展示,激發(fā)學(xué)生的學(xué)習(xí)興趣與動力,從而再進(jìn)行朝氣蓬勃的探索,達(dá)到從老師要我學(xué)到我想學(xué)的轉(zhuǎn)換。
中職編程類課程的老師經(jīng)常會聽到學(xué)生這樣反饋:“老師,你的課我聽懂了,但我就是不會寫程序”。確實(shí),聽懂≠會做。“產(chǎn)生”遠(yuǎn)比“授受”難。在中職編程課堂上,聽懂是老師引領(lǐng)學(xué)生通過書寫每一句程序,邊寫邊講,學(xué)生動腦的地方不多。此時(shí),老師類似司機(jī),學(xué)生相當(dāng)于乘客。會做是學(xué)生根據(jù)題目要求進(jìn)行分析、畫程序流程圖并上機(jī)實(shí)踐的過程。學(xué)生會暴露出許多他自己都沒有想到的問題,如單詞拼錯(cuò)、該大寫的寫成了小寫等。還有一些學(xué)生,講明白了,但一看密密麻麻的英文單詞,就選擇說,我不會英文,肯定學(xué)不會。因此,編程課,不僅僅需要講明白原理,還需要幫助學(xué)習(xí)克服見英文如見老虎的恐懼心理,趣味性案例將增強(qiáng)學(xué)生克服困難的動力。
為此,在備課時(shí)注意準(zhǔn)備一些與當(dāng)前知識點(diǎn)有關(guān)的趣味案例,如給學(xué)生展示抖音上的表白小程序視頻,較好地激發(fā)了學(xué)生的興趣,也激發(fā)了學(xué)生克服困難的動力,在興趣引領(lǐng)下,學(xué)生對相應(yīng)知識點(diǎn)的理解也就更為透徹、掌握更為牢固。
華盛頓認(rèn)為“讀書若未加以應(yīng)用,所讀的書等于廢紙”,這也強(qiáng)調(diào)了學(xué)以致用的重要意義,在編程類課程上,我們必須體現(xiàn)應(yīng)用意識,強(qiáng)調(diào)學(xué)以致用,在教學(xué)實(shí)踐中,必須注意所學(xué)的知識與實(shí)際應(yīng)用之間的聯(lián)系。例如,在App Inventor課程里,完成基礎(chǔ)知識、簡單案例的學(xué)習(xí)后,我會綜合所學(xué)的知識點(diǎn),引導(dǎo)學(xué)生為家里的老人制作相片通訊錄、為小朋友制作詩歌學(xué)習(xí)APP、為自己制作GPS計(jì)步器和打地鼠等有實(shí)用價(jià)值的APP。
三、編程類課程應(yīng)注重培養(yǎng)學(xué)生的發(fā)散思維
發(fā)散思維是指大腦在思考時(shí)呈現(xiàn)的一種擴(kuò)散狀態(tài)的思維模式,發(fā)散思維促使人從不同的角度去思考問題、探索多種可能的答案。在編程課程中,我常常通過刨根追底、一題多解等方式來激發(fā)學(xué)生的發(fā)散思維。例如,在學(xué)習(xí)for循環(huán)后,我向?qū)W生講演了使用數(shù)組輸出26個(gè)大寫字母,主要編程思想如圖2所示。要求學(xué)生在理解程序的基礎(chǔ)上,嘗試自行編寫程序。
當(dāng)學(xué)生完成該程序后,我又要求他們嘗試使用其他方法實(shí)現(xiàn)。有些做得快的學(xué)生躍躍欲試,通過老師的思想引導(dǎo)或者網(wǎng)絡(luò)搜索,最后,他們還寫出了如圖3至圖5所示的三類程序。
通過這樣舉一反三的訓(xùn)練,學(xué)生較好地掌握了一維數(shù)組、for循環(huán)以及強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換。
又如在App Inventor課程中,講到功能與for循環(huán)一致的循環(huán)控制時(shí)(如圖6所示),我先要求學(xué)生求出1至10的和,在學(xué)生完全理解的基礎(chǔ)上,我提出了如何求1至10之間的奇數(shù)和與偶數(shù)和。為了更好地引導(dǎo)學(xué)生思考,在后續(xù)的課程中,我又引導(dǎo)學(xué)生探索如何求從1至N(N>1,由用戶輸入)的和?如何求1至N的積?最后還引導(dǎo)學(xué)生完成如圖7所示的加法乘法器。
通過這樣的層層追問,引導(dǎo)學(xué)生從多角度思考問題,培養(yǎng)其發(fā)散思維。
四、編程類課程應(yīng)設(shè)置差異化的、分層次的上機(jī)任務(wù)與評分辦法
計(jì)算機(jī)類實(shí)操課程的任課老師時(shí)常有這樣的困惑:同樣的任務(wù),有些學(xué)生僅用10分鐘就完成了,但有些學(xué)生用了40分鐘都難以理解。因此,一節(jié)課完成后有學(xué)生感嘆:“太簡單了,都學(xué)不到東西”,與此同時(shí),又有學(xué)生發(fā)愁“實(shí)在太難了,怎么努力都做不出來”。面對來自同一班級學(xué)生的不同呼聲,如何滿足不同層次學(xué)生的個(gè)性化要求呢?差異化的、分層次的上機(jī)任務(wù)是一種不錯(cuò)的選擇,能較好地滿足絕大多數(shù)學(xué)生的要求。
華國棟教授認(rèn)為:“差異教學(xué)是指在班集體教學(xué)中立足學(xué)生、滿足學(xué)生個(gè)別的需要,以促進(jìn)學(xué)生在原有基礎(chǔ)上得到充分發(fā)展的教學(xué)。”而維果茨基認(rèn)為目標(biāo)的設(shè)置必須符合“跳一跳,摘桃子”這樣貼近學(xué)生“最近發(fā)展區(qū)”的任務(wù)。學(xué)生的基礎(chǔ)與學(xué)習(xí)能力的不同決定了必須實(shí)施差異化教學(xué)。在編程基礎(chǔ)課程中,講到if語句時(shí),我設(shè)置了如表2所示的新手、能手和高手闖關(guān)任務(wù)這樣三個(gè)層次的任務(wù)。我要求學(xué)生根據(jù)自身的實(shí)際情況選擇新手闖關(guān)任務(wù)或能手闖關(guān)任務(wù)完成,輕松完成能手闖關(guān)任務(wù)的學(xué)生可繼續(xù)完成高手闖關(guān)任務(wù)。課堂成績的計(jì)算也根據(jù)學(xué)生完成的不同情況采用如表3所示的分層計(jì)分法。完成新手闖關(guān)任務(wù)保障了課程的合格,能手闖關(guān)任務(wù)滿足了基礎(chǔ)好、學(xué)習(xí)力較強(qiáng)的學(xué)生需求,而高手闖關(guān)任務(wù)則激發(fā)了學(xué)生的斗志。另外,有些學(xué)生由于課堂玩手機(jī)或開小差被扣了課堂紀(jì)律分,課余時(shí)間還可以通過完成能手闖關(guān)任務(wù),甚至高手闖關(guān)任務(wù)來得到較高的平時(shí)成績。
以上是根據(jù)難易程度設(shè)置類似的題目。
另外,還可以通過類似以下的方式設(shè)置同一程序設(shè)計(jì)題的A、B、C、D四個(gè)等級的分層任務(wù)。如表4所示,要求根據(jù)輸入成績輸出成績等級,同一程序題,設(shè)置四個(gè)不同難度分層任務(wù)。
除了以上所闡述的四點(diǎn),中職編程類課堂的教學(xué)還應(yīng)注重精益求精的工匠精神的培養(yǎng),同時(shí)還必須及時(shí)反饋,最好是通過微信等電子手段一對一指出學(xué)生在編程中的問題,針對性地指出錯(cuò)誤所在,如果實(shí)在沒有時(shí)間做到這一點(diǎn),也應(yīng)該在下一次課上展示作業(yè)成績以及問題所在,從而幫助學(xué)生更好地學(xué)好編程類課程。
參考文獻(xiàn):
[1]華國棟.差異教學(xué)論[M].北京:教育科學(xué)出版社,2001-04.
[2]董國榮.如何培養(yǎng)學(xué)生的發(fā)散思維[J].讀與寫(教育教學(xué)刊),2011(7).
[3]劉君亮.基于計(jì)算思維的混合式學(xué)習(xí)模型研究[D].北京:北京交通大學(xué),2014.
編輯 趙瑞峰