□馮 皓 劉奇超
自2014年舉行首屆全國職業(yè)院校技能大賽中職組“物聯(lián)網(wǎng)技術(shù)應(yīng)用與維護(hù)”賽項(xiàng)以來,越來越多的中職學(xué)校開始重視此賽項(xiàng),不僅積極備賽參賽,而且開展了很多賽項(xiàng)資源轉(zhuǎn)化、以賽促教的研究工作;在2019年,“物聯(lián)網(wǎng)技術(shù)應(yīng)用專業(yè)”正式獲批成為中職增補(bǔ)專業(yè)之一,很多中職學(xué)校都在第一時(shí)間申報(bào)設(shè)立此專業(yè)。中職學(xué)校之所以熱衷于參與物聯(lián)網(wǎng)競(jìng)賽,是因?yàn)橘愴?xiàng)中“萬物相聯(lián)”的新技術(shù)和新裝備,可以擴(kuò)展學(xué)生的職業(yè)技能,也可以提升傳統(tǒng)課程體系的內(nèi)涵;學(xué)生在參與物聯(lián)網(wǎng)工程項(xiàng)目實(shí)訓(xùn)的過程中,同步掌握物聯(lián)網(wǎng)程序設(shè)計(jì)技能,可以更加深入地理解物聯(lián)網(wǎng)軟硬件的運(yùn)行原理,也可以更廣泛地適應(yīng)其它工作要求。本文嘗試引入PBL教學(xué)法,利用在中職物聯(lián)網(wǎng)技能競(jìng)賽項(xiàng)目的培訓(xùn)經(jīng)驗(yàn),在“C#動(dòng)態(tài)網(wǎng)頁制作”課程中,對(duì)程序設(shè)計(jì)課程的教學(xué)過程和教學(xué)內(nèi)容進(jìn)行改進(jìn),讓學(xué)生在分析問題和解決問題的過程中更好地掌握程序設(shè)計(jì)技能。
程序設(shè)計(jì)課程是計(jì)算機(jī)相關(guān)專業(yè)的核心課程,講授程序設(shè)計(jì)的語法、算法和項(xiàng)目開發(fā)等專業(yè)技術(shù),但是在中職實(shí)際的教學(xué)效果很不理想,主要存在以下三個(gè)方面的問題:一是程序設(shè)計(jì)使用的語言脫離實(shí)際應(yīng)用,很多學(xué)校仍在使用C、VB語言開展面向過程的編程,開發(fā)效率低,難度大,程序與學(xué)生的生活體驗(yàn)、相關(guān)課程體系以及企業(yè)的人才需求嚴(yán)重脫節(jié);二是教師的程序設(shè)計(jì)技能不高,項(xiàng)目開發(fā)經(jīng)驗(yàn)不足,只能照本宣科,死記硬背,導(dǎo)致教學(xué)內(nèi)容枯燥,無法引起學(xué)生的學(xué)習(xí)興趣,也不能因材施教,無法滿足學(xué)生多樣化的學(xué)習(xí)要求;三是使用的教材學(xué)術(shù)水平過高,知識(shí)體系龐雜,算法過于抽象,很多教材甚至直接照搬大專、本科的教材,超出了中職學(xué)生的理解能力和操作水平,不能有效地培養(yǎng)中職學(xué)生的編程思維。這些因素導(dǎo)致了程序設(shè)計(jì)課程總體質(zhì)量不高,教師不愿教,學(xué)生不愿學(xué),教學(xué)流于形式。
中職“物聯(lián)網(wǎng)技術(shù)應(yīng)用與維護(hù)”賽項(xiàng)中程序設(shè)計(jì)題目考察的范圍包括C#、JAVA和單片機(jī)編程三個(gè)方面,這些是當(dāng)前很多企業(yè)開發(fā)項(xiàng)目必備的技術(shù),功能強(qiáng)大,應(yīng)用領(lǐng)域廣,很多最新、最流行也最復(fù)雜的程序都是使用它們編寫完成的,是中職計(jì)算機(jī)相關(guān)專業(yè)學(xué)生應(yīng)當(dāng)掌握的關(guān)鍵技術(shù)。
當(dāng)然比賽題目充分照顧了中職學(xué)生的知識(shí)基礎(chǔ)和技能水平,主要以“填空”的形式考查學(xué)生應(yīng)知應(yīng)會(huì)的初級(jí)知識(shí),而不會(huì)考察復(fù)雜項(xiàng)目和算法的編寫。其主要特點(diǎn)是:學(xué)生要理解程序的功能要求和處理流程,合理設(shè)計(jì)美觀的程序界面,補(bǔ)充必要的基礎(chǔ)邏輯語句,正確調(diào)用類資源,完成具有實(shí)用價(jià)值的應(yīng)用程序。所以在日常訓(xùn)練中,將比賽真題與教學(xué)內(nèi)容相結(jié)合,選定有限的知識(shí)點(diǎn),設(shè)計(jì)與工作和生活高度仿真的教學(xué)案例,可以幫助學(xué)生更好地掌握編程技能,適應(yīng)面向?qū)ο蟮木幊绦问?,養(yǎng)成良好的習(xí)慣,并在積累經(jīng)驗(yàn)和培養(yǎng)興趣的過程中適應(yīng)更高難度的編程任務(wù)。這是競(jìng)賽培訓(xùn)中編程訓(xùn)練成功的關(guān)鍵,也是改進(jìn)常規(guī)教學(xué)的重要依據(jù);在訓(xùn)練過程中積累了豐富的實(shí)訓(xùn)素材,很多都可以在合理優(yōu)化之后,用于課堂教學(xué)。
在中職程序設(shè)計(jì)課程中,PBL教學(xué)法(Problem-Based Learning,問題驅(qū)動(dòng)教學(xué)法)是教師根據(jù)教學(xué)目標(biāo),整合并簡(jiǎn)化常見的應(yīng)用案例,引導(dǎo)學(xué)生在解決問題的過程中理解語法、鍛煉編程思維、掌握編程技能的教學(xué)方法。學(xué)習(xí)活動(dòng)與問題相結(jié)合,有利于引導(dǎo)和維持學(xué)習(xí)興趣[1],規(guī)范學(xué)生的編程習(xí)慣,確保代碼規(guī)范,結(jié)構(gòu)清晰、易讀[2]。案例要經(jīng)過必要的簡(jiǎn)化,去掉學(xué)生難以理解或無法實(shí)現(xiàn)的功能,適應(yīng)學(xué)生的知識(shí)基礎(chǔ)。問題情境不僅取材于物聯(lián)網(wǎng)大賽的項(xiàng)目和設(shè)備,還借鑒了常見的軟件案例、經(jīng)典的數(shù)學(xué)公式、基本的生活經(jīng)驗(yàn)和典型的工作技巧等,方便學(xué)生建立自然語言和編程語言的聯(lián)系。這些問題情境的編程算法要能夠突出重難點(diǎn),只面向于最簡(jiǎn)單邏輯問題的解決,這也是模塊化編程理念的體現(xiàn)——一個(gè)模塊只用來處理一個(gè)最簡(jiǎn)單的問題。
問題驅(qū)動(dòng)教學(xué)法與傳統(tǒng)的任務(wù)驅(qū)動(dòng)教學(xué)法或項(xiàng)目驅(qū)動(dòng)教學(xué)法相比最大優(yōu)勢(shì)在于:?jiǎn)栴}情境的邏輯結(jié)構(gòu)簡(jiǎn)單,重難點(diǎn)突出,學(xué)生可以更快地編寫程序并進(jìn)行驗(yàn)證,教學(xué)反饋更加及時(shí),便于學(xué)生在不斷地試錯(cuò)過程中提高自己;程序的模塊化設(shè)計(jì)理念,可以將相關(guān)算法封裝成模塊,用于處理相應(yīng)的問題,模塊積累的越多,越有助于處理復(fù)雜的任務(wù)和項(xiàng)目。將程序設(shè)計(jì)的教材與物聯(lián)網(wǎng)競(jìng)賽項(xiàng)目的問題情景結(jié)合,利用PBL教學(xué)法,可以設(shè)計(jì)如下教學(xué)流程。
(一)教師創(chuàng)設(shè)簡(jiǎn)單的問題情景,引入知識(shí)點(diǎn)。問題情景應(yīng)與學(xué)生的知識(shí)基礎(chǔ)和實(shí)際體驗(yàn)相關(guān),如網(wǎng)絡(luò)購物情景中的金額計(jì)算、在線論壇的控件使用、通項(xiàng)公式的計(jì)算規(guī)律等;簡(jiǎn)單的問題情境應(yīng)當(dāng)減少無關(guān)因素的影響,突出重難點(diǎn)在解決實(shí)際問題中的用法;教師要注意引導(dǎo)學(xué)生逐步掌握自然語言與程序語言相互轉(zhuǎn)換的方法,例如通過奇偶數(shù)判斷問題學(xué)習(xí)模運(yùn)算。
(二)教師創(chuàng)設(shè)多個(gè)難度逐步提升、綜合性逐步加強(qiáng)的問題情景,引導(dǎo)學(xué)生不斷探究和試錯(cuò),分析邏輯關(guān)系,理解程序語法,發(fā)現(xiàn)編程規(guī)律,鍛煉編程思維,逐漸掌握規(guī)范、靈活、高效的編程方法。針對(duì)中職學(xué)生學(xué)習(xí)能力普遍較弱的問題,應(yīng)當(dāng)加強(qiáng)同一知識(shí)點(diǎn)在不同情境下靈活應(yīng)用的訓(xùn)練,讓學(xué)生自主發(fā)現(xiàn)規(guī)律,學(xué)會(huì)自主選擇各種測(cè)試數(shù)據(jù)測(cè)試程序的對(duì)錯(cuò),提高編程的準(zhǔn)確性;通過綜合利用已知知識(shí)點(diǎn)設(shè)立問題情景,讓學(xué)生發(fā)現(xiàn)差別,靈活應(yīng)對(duì)各類問題要求;要避免大量知識(shí)填鴨式的教學(xué),無規(guī)律或無實(shí)際應(yīng)用情景的教學(xué)只會(huì)打擊學(xué)生的積極性,造成厭學(xué)情緒;問題情景要注重變通性和綜合性,例如在問題“14歲以下和60歲以上的人可以免票”中,“和”字看起來像與運(yùn)算,但實(shí)際編程要使用或運(yùn)算,這是自然語言與機(jī)器語言在邏輯表述上存在差別的典型例子。
(三)教師提供充足的時(shí)間給學(xué)生練習(xí)。程序的編寫不能一蹴而就,更不能死記硬背,要充分調(diào)動(dòng)學(xué)生的積極性與自主性,讓學(xué)生在相互合作的過程中激發(fā)靈感、深入思考、舉一反三,在輕松的編程活動(dòng)中牢固掌握必備的編程算法,使不同學(xué)習(xí)能力的學(xué)生都能在此教學(xué)環(huán)節(jié)中得到提高,達(dá)到課堂所學(xué)知識(shí)在本節(jié)課就能消化掌握的目的[3]。期間教師要跟蹤學(xué)生的學(xué)習(xí)進(jìn)度和差異,因材施教:對(duì)學(xué)習(xí)較好的學(xué)生,可以引導(dǎo)他們自學(xué)相關(guān)知識(shí),擴(kuò)展視野,并完成教師布置的個(gè)性化題目,例如學(xué)會(huì)整型變量以后可以自學(xué)浮點(diǎn)型變量在嘗試計(jì)算打折問題;對(duì)學(xué)習(xí)比較困難的學(xué)生,則通過互助學(xué)習(xí)和個(gè)別輔導(dǎo),掌握最基本的知識(shí)技能,確保全班的教學(xué)質(zhì)量,教師還要鼓勵(lì)這樣的學(xué)生根據(jù)自身興趣在課下額外努力突破自我,掌握更多知識(shí)。教師可以簡(jiǎn)化一些復(fù)雜的經(jīng)典算法,讓學(xué)生在研究、困擾、頓悟之后,領(lǐng)略算法優(yōu)化的魅力,例如問題“找出3個(gè)數(shù)中的最大值”,學(xué)生要跳出if語句選擇嵌套使用的思維慣性,理解簡(jiǎn)化的“冒泡”算法。
(四)利用問題的關(guān)聯(lián)性和趣味性引導(dǎo)學(xué)生在自我挑戰(zhàn)中積極提升。學(xué)生要能夠根據(jù)知識(shí)或問題的邏輯關(guān)系自主探究掌握新知識(shí)或解決新問題,自我管理學(xué)習(xí)過程。如教師先指導(dǎo)學(xué)生編寫完成“柵欄加密法”,再鼓勵(lì)學(xué)生編寫其解密算法,學(xué)生須要綜合運(yùn)用已知的所有知識(shí),精準(zhǔn)提煉數(shù)組下標(biāo)的組合規(guī)律,充分調(diào)動(dòng)計(jì)算、推理、編程等多方面的技能,付出大量努力之后才能獲得成功的喜悅;同時(shí)教師要針對(duì)每個(gè)學(xué)生的算法,暴露其程序的bug,培養(yǎng)學(xué)生邏輯思維的嚴(yán)密性和條理性。
(五)教學(xué)的容量應(yīng)根據(jù)中職的授課計(jì)劃和中職學(xué)生的能力水平適當(dāng)壓縮。學(xué)生應(yīng)會(huì)的知識(shí)點(diǎn)包括:整型、布爾型、字符串型變量,加減乘除模運(yùn)算,與或非運(yùn)算,if語句,for語句,一維數(shù)組,函數(shù)和類。學(xué)生只有掌握了這些知識(shí)點(diǎn)及其算法,才算具備比較扎實(shí)的基礎(chǔ),能夠適應(yīng)其它更多的編程語言。
(六)引入物聯(lián)網(wǎng)項(xiàng)目中成熟的軟硬件技術(shù),改進(jìn)傳統(tǒng)編程課的內(nèi)容。物聯(lián)網(wǎng)實(shí)訓(xùn)平臺(tái)中大量的軟硬件資源可以非常方便的調(diào)用或使用,獲取環(huán)境信息,并控制設(shè)備運(yùn)行,更加可視化地呈現(xiàn)程序設(shè)計(jì)效果。如使用條碼槍掃描商品條碼查詢商品信息,程序功能與超市購物經(jīng)驗(yàn)相結(jié)合,學(xué)生不僅全面學(xué)習(xí)了控件的相關(guān)屬性和條碼槍的技術(shù)原理,還會(huì)更加深刻地理解物聯(lián)網(wǎng)技術(shù)的特點(diǎn),在參加競(jìng)賽培訓(xùn)的時(shí)候能夠做到駕輕就熟。
本項(xiàng)目選擇“C#動(dòng)態(tài)網(wǎng)頁制作”作為物聯(lián)網(wǎng)競(jìng)賽編程訓(xùn)練模式向常規(guī)課堂轉(zhuǎn)化的抓手,是基于本校計(jì)算機(jī)網(wǎng)絡(luò)專業(yè)課程體系的特點(diǎn)確定的,可以與靜態(tài)網(wǎng)頁、數(shù)據(jù)庫、服務(wù)器等課程構(gòu)建比較完整的課程體系,通過實(shí)際的教學(xué)驗(yàn)證,取得了較好的效果,豐富了實(shí)訓(xùn)資源,提高了學(xué)生和任課教師的綜合技能。教學(xué)效果的提升,又反向支持了競(jìng)賽選手選拔和培訓(xùn)工作,真正實(shí)現(xiàn)教學(xué)和競(jìng)賽的共同提高。