關(guān)鍵詞:OBE;微信小程序;以用促學;教學模式
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2024)28-0167-04
“無需下載、無需安裝、觸手可及、用完即走”的特性,使得微信小程序成為人們生活中一種重要的信息展示方式和服務(wù)獲取手段。據(jù)統(tǒng)計,2021年微信小程序日活用戶數(shù)超過4.5億[1],微信小程序的開發(fā)能力已經(jīng)成為軟件工程專業(yè)學生需要具備的重要能力之一。
如何更好地進行微信小程序教學逐漸得到廣大院校的重視。王勛[2]圍繞學生程序開發(fā)能力培養(yǎng)開展微信小程序課程構(gòu)建與教學實踐;羅珍珍[3]對獨立院校微信小程序開發(fā)與應(yīng)用課程的教改進行了深入研究,提出通過課程網(wǎng)絡(luò)資源與翻轉(zhuǎn)課堂相結(jié)合的教學模式引導(dǎo)學生學習;趙劍冬和許智超[4]提出基于一個實用、易于理解的移動電子商務(wù)微信小程序進行項目導(dǎo)向的課程設(shè)計與教學;何晶和龍坡[5]探索利用生產(chǎn)實際將教學內(nèi)容化,結(jié)合線上教職云與線下教學BOPPPS模式,以提高微信小程序課程課堂學習效率和教學目標的達成。
作為一所創(chuàng)新型應(yīng)用大學,金陵科技學院以“培養(yǎng)適應(yīng)江蘇省及南京市軟件與信息服務(wù)產(chǎn)業(yè)發(fā)展的高級應(yīng)用型軟件工程人才”為根本,以市場對微信小程序開發(fā)人才需求為驅(qū)動,結(jié)合OBE(Outcome-BasedEducation,成果導(dǎo)向教育)理念,開設(shè)微信小程序課程旨在培養(yǎng)學生的微信小程序開發(fā)能力。本課程主要完成以下課程目標:1) 掌握Web前端技術(shù)的發(fā)展歷程和方向,激發(fā)自主學習熱情;2) 使學生掌握微信小程序的開發(fā)規(guī)范、變量設(shè)定和頁面布局,具備接口設(shè)計與調(diào)用的設(shè)計與開發(fā)能力;3) 使學生具備微信小程序的基本設(shè)計、制作、發(fā)布和管理能力;4) 使學生具備撰寫符合軟件工程規(guī)范系列文檔的能力;5) 使學生具備復(fù)雜工程的設(shè)計方法和在未知領(lǐng)域自主探求的能力。
然而,微信小程序課程具有涉及知識領(lǐng)域跨度大、知識點繁雜等特點,導(dǎo)致傳統(tǒng)教學“以教促用”的方式[2-3]與基于具體項目、案例的教學方式[4-5]很難達到理想的教學效果。例如,2021至2022學年教學2020 級軟件工程1班與2班的課程目標達成度如圖1所示,兩班學生在課程目標4與課程目標5達成度方面明顯低于其他課程目標。為此,本文在認真分析目前授課過程中存在問題的基礎(chǔ)上,并結(jié)合微信小程序課程特點,提出“以用促學”的微信小程序教學模式,從教學措施、教學內(nèi)容和考核方式等方面采取具體改革措施。這種教學模式對于更好地培養(yǎng)學生的微信小程序開發(fā)能力,達到既定的課程目標具有重要的指導(dǎo)意義。
1 微信小程序授課現(xiàn)狀與存在的問題
微信小程序作為金陵科技學院軟件工程專業(yè)的一門專業(yè)限選課,總共32學時,其中理論16學時,主要講授微信小程序基本語法、各種組件與API 的使用;實驗16學時,分為8個相對獨立的實驗內(nèi)容?,F(xiàn)結(jié)合筆者在應(yīng)用型本科院校多年微信小程序教學實踐情況,將微信小程序課程教學現(xiàn)狀以及存在的問題總結(jié)如下:
問題1:以教材為主,忽略官方文檔[6],不利于學生對新技術(shù)追蹤。
隨著微信小程序開發(fā)的快速發(fā)展,相關(guān)教材層出不窮,質(zhì)量參差不齊。盡管本課題組在教材選擇上非常謹慎,但仍存在以下不足:首先,微信小程序相關(guān)技術(shù)日新月異,許多新功能不斷推出,也有一些舊功能被淘汰。教材相較于官方文檔往往更新滯后;其次,指定教材使得學生在遇到問題或探索陌生領(lǐng)域時,第一反應(yīng)往往是查找或購買相關(guān)教材,而忽視了官網(wǎng)文檔才是最好的學習資料。這不僅限制了學生獲取知識的范圍,而且不利于培養(yǎng)良好的自主學習習慣。最后,過于依賴教材給學生造成了必須學會所有知識才能寫出正確小程序的錯覺,導(dǎo)致他們遲遲不敢動手開發(fā)。
問題2:微信小程序課程涉及的知識多而繁雜,內(nèi)容零散且脫離場景,不利于學生開發(fā)能力的培養(yǎng)。
已有的教學方式以講授為主,要求學生記憶、掌握微信小程序開發(fā)過程、生命周期以及不同組件、API 的使用方法,然后將自己掌握的知識用于實踐。然而,微信小程序作為前端信息展示方式之一,其涉及的知識多而繁雜,主要包括以下幾個方面:1) 了解JSON語法。微信小程序使用.json文件對微信小程序進行全局和頁面配置,決定頁面文件的路徑、窗口表現(xiàn)、設(shè)置網(wǎng)絡(luò)超時時間等;2) 熟悉JavaScript語言。微信小程序使用.js文件指定頁面的初始數(shù)據(jù)、生命周期回調(diào)、事件處理函數(shù)等頁面邏輯;3) 掌握一套專用的標簽語言WXML(WeiXin Markup Language) ,用于頁面結(jié)構(gòu)的構(gòu)建;4) 掌握一套樣式語言WXSS(WeiXinStyle Sheets) ,用于描述WXML的組件樣式,控制微信小程序的展示效果;5) 了解不同組件,熟知不同組件使用的方法和適用場景;6) 微信小程序各種API,包括界面、文件、位置、數(shù)據(jù)、網(wǎng)絡(luò)等相關(guān)API的使用和作用;7) 其他內(nèi)容,如微信小程序目錄結(jié)構(gòu)和發(fā)布流程等。
這些學習內(nèi)容相對零散,跨度大,容易讓學生產(chǎn)生需要學習多門課程的錯覺,無法理解所學內(nèi)容在微信開發(fā)過程中的作用,極大地考驗學生的學習耐心,嚴重影響教學目標的達成。
問題3:實驗內(nèi)容側(cè)重不同知識點,沒有系統(tǒng)關(guān)聯(lián)性,學生缺乏成就感。
微信小程序課程的實驗設(shè)置為16學時,分為八組不同實驗,聚焦于不同知識點和組件、API的應(yīng)用。但在實驗過程中發(fā)現(xiàn):首先,學生專注于完成實驗任務(wù),缺乏對技術(shù)本身及其適用場景的深入思考,這與設(shè)定實驗的初衷相悖;其次,完成實驗后,學生得到的仍是分散在不同實驗中的代碼模塊,各模塊之間無法有機結(jié)合,形成完整的微信小程序,導(dǎo)致學生缺乏系統(tǒng)開發(fā)的參與感和完整應(yīng)用開發(fā)的成就感。
問題4:缺乏課程設(shè)計,沒有系統(tǒng)體驗微信小程序的設(shè)計、開發(fā)過程。
由于時間有限,微信小程序課程未安排相關(guān)課程設(shè)計,導(dǎo)致學生無法全面了解從需求分析到開發(fā)、再到測試和發(fā)布、推廣的全過程。同時,也無法將先修課程軟件工程導(dǎo)論、軟件需求分析等所學知識有機結(jié)合,了解軟件開發(fā)中需要解決的各類問題及可用表達工具的使用。課程設(shè)計的缺失,不僅不利于撰寫符合軟件工程規(guī)范的系列文檔能力的培養(yǎng),也使學生失去開發(fā)個人微信小程序的實踐機會,阻礙復(fù)雜工程的設(shè)計方法和未知領(lǐng)域自主探求能力的培養(yǎng)。這是導(dǎo)致課程目標達成度不高的主要原因之一。
問題5:重復(fù)造輪子,缺乏復(fù)雜工程設(shè)計方法和未知領(lǐng)域自主探求能力。
現(xiàn)有教學方式著重于讓學生能夠編寫微信小程序,卻缺乏對業(yè)界最新開發(fā)技術(shù)和框架的介紹,導(dǎo)致學生常常從零開始編寫程序代碼,形成嚴重的重復(fù)造輪子問題,這是導(dǎo)致課程目標5達成度不高的主要原因。以小程序頁面開發(fā)為例,由于缺乏對其他開發(fā)框架資源的了解,學生通常選擇從零開發(fā),而不是使用WeUI等成熟組件庫。這不僅占用了學生大量的學習時間和精力,而且由于缺乏美術(shù)基礎(chǔ),學生設(shè)計出來的頁面元素通常顯得不協(xié)調(diào),最終只能自娛自樂,無法滿足商用需求。
2 教學措施改革
2.1 弱化教材,突出官方文檔[6]的閱讀,提高學生自主獲取知識能力
在后續(xù)教學中,將以官方文檔為主,進一步弱化相關(guān)教材在課程學習中的作用。要求學生在閱讀官方文檔的同時,在理論教學過程中明確注明授課內(nèi)容在官方文檔上的出處。一方面,讓學生盡快熟悉官方文檔的組織結(jié)構(gòu),不僅能夠根據(jù)官網(wǎng)文檔描述的開放能力評估小程序設(shè)計方案的可行性,還能在后續(xù)開發(fā)過程中遇到問題時,快速查找和定位所需信息;另一方面,讓學生了解閱讀官方文檔的重要性及其方法,培養(yǎng)學生自主學習和探索未知領(lǐng)域的能力。
2.2 以用促學,重新對知識結(jié)構(gòu)進行組織,以需求促進知識學習
傳統(tǒng)的教學方法通常采用灌輸式教學,即“以學促用”模式,要求學生首先掌握所有相關(guān)知識,然后應(yīng)用所學知識解決問題。然而,在實際工程實踐中,更常見的是“以用促學”模式,學生需要根據(jù)項目特點和應(yīng)用場景,靈活選擇適當?shù)慕M件,確定應(yīng)用需求,然后查找相關(guān)文檔進行學習開發(fā)。相較于“以學促用”,“以用促學”不僅允許學生目的明確、有針對性地收集資料學習組件應(yīng)用,從而獲得更好的學習效果;同時有助于培養(yǎng)學生學習方法,使其具備快速上手陌生領(lǐng)域軟件開發(fā)和終身學習的能力。因此,鼓勵學生根據(jù)興趣自由選擇課題,引導(dǎo)他們分析課程設(shè)計過程中具體場景應(yīng)用的知識,制訂個性化的知識學習方案。
2.3 情景模擬,充分利用課程設(shè)計的系統(tǒng)性,培養(yǎng)學生分析與設(shè)計能力
微信小程序具有快速上線、快速實驗、低試錯成本的特點。數(shù)據(jù)顯示,一款完善的App開發(fā)平均周期為2個月,而微信小程序的開發(fā)周期約為2周。與其他編程語言的課程設(shè)計相比,微信小程序課程設(shè)計為學生提供了充足時間按照軟件工程開發(fā)規(guī)范開發(fā)一個能夠真正解決問題的微信小程序。
因此,增加課程設(shè)計,一方面,有利于學生將本課程學習與軟件工程、軟件需求分析等先修課程內(nèi)容相結(jié)合,切實體驗需求分析、概要設(shè)計、詳細設(shè)計、系統(tǒng)開發(fā)、系統(tǒng)測試等環(huán)節(jié),深入了解各個環(huán)節(jié)的目的、常用工具及文檔邏輯規(guī)范。例如,讓學生以微信小程序形式實現(xiàn)軟件需求分析課程實驗中輸出的軟件開發(fā)需求規(guī)格說明書內(nèi)容。通過實踐,學生有機會重新審視自己的需求文檔,深入理解UML模型,如類圖、用例圖、時序圖、ER圖的作用,并發(fā)現(xiàn)存在的問題,進一步培養(yǎng)學生書寫軟件工程規(guī)范文檔的能力。另一方面,通過角色扮演提高學生參與感,更加貼近實戰(zhàn)。在以往實踐中,學生通常扮演多重角色,既是開發(fā)者又是需求者。這種情況下,學生在做決策時經(jīng)常在需求和開發(fā)難度之間權(quán)衡,難以站在相應(yīng)角色的角度思考問題。以登錄功能為例,如果一個學生兼任開發(fā)者和需求者,往往會因為擔心實現(xiàn)難度而選擇更簡單的密碼賬號登錄方式;而若是僅作為需求者時,則更可能選擇更優(yōu)解決方案,比如動態(tài)密碼登錄。在系統(tǒng)需求分析階段,讓兩名學生配合,互相描述需求并展開需求分析輸出文檔。接收需求文檔后,評估對方需求提取的合理性和文檔規(guī)范性,以此為基礎(chǔ)繼續(xù)完善,學生之間互補完成后續(xù)的軟件開發(fā)環(huán)節(jié)。
2.4 自由選題,鼓勵學生遵循自己興趣,結(jié)合創(chuàng)業(yè)激發(fā)學生內(nèi)在學習能動力
已有的基于具體項目的課程建設(shè)方案極大地限制了學生的想象力。興趣是最好的老師,因此,本課程設(shè)計鼓勵學生自主選題,并充分利用學校對大學生創(chuàng)新創(chuàng)業(yè)的政策支持,鼓勵學生通過設(shè)計開發(fā)小程序來解決生活中的實際問題。例如,有些學生經(jīng)常通過朋友圈展示自己的繪畫作品,可以鼓勵他們開發(fā)一個個人畫展的小程序。課程結(jié)束后,學生還可以繼續(xù)優(yōu)化該程序,并探索其潛在的商用價值,進一步發(fā)展為大學生創(chuàng)新和創(chuàng)業(yè)實踐項目。
2.5 開闊思路,合理利用資源,能夠解決復(fù)雜軟件工程問題
合理有效地利用優(yōu)質(zhì)資源,避免重復(fù)造輪子,是高效解決復(fù)雜軟件工程問題的關(guān)鍵。以頁面設(shè)計開發(fā)為例,目前存在眾多優(yōu)秀的組件庫,例如,由微信官方設(shè)計團隊為微信小程序量身設(shè)計的基礎(chǔ)樣式庫WeUI。這不僅可以幫助學生避免從零開發(fā)所需組件,大大提高開發(fā)效率,還能讓學生集中精力于幾個關(guān)鍵的樣式控制屬性,從而開發(fā)出用戶體驗一致的專業(yè)頁面。
3 教學內(nèi)容安排
在教學內(nèi)容編制方面,將改變傳統(tǒng)大而全的課程組織方式,將微信小程序開發(fā)相關(guān)知識分為基礎(chǔ)知識和個性化知識。
基礎(chǔ)知識指的是學習微信小程序開發(fā)所必備的知識。通過掌握基礎(chǔ)知識,學生可以具備開發(fā)簡單微信小程序完整流程的能力。在基礎(chǔ)知識學習中,以學生選題為主線,按照實際開發(fā)過程中涉及的知識順序,幫助學生理清小程序目錄結(jié)構(gòu)、組件、WXML語法、JavaScript回調(diào)、事件綁定、WXSS語法,以及網(wǎng)絡(luò)API等關(guān)鍵知識之間的關(guān)聯(lián),明確各知識模塊在小程序開發(fā)中的重要性,有助于學生更好地理解和掌握這些知識。
個性化知識則是那些即使不掌握也不會影響小程序開發(fā)的知識。它們通常具有一拔而長三的學習效果,主要涉及位置、媒體、文件、設(shè)備、數(shù)據(jù)緩存等API的使用,以及云開發(fā)等擴展內(nèi)容。個性化知識允許同一教學班的學生根據(jù)自己的課程設(shè)計選題核心功能,確定個性化知識學習的重點。比如,考慮以失物招領(lǐng)為主題的學生將注重學習位置API的使用;而以音樂播放為主題的學生將著重學習媒體API的使用,甚至可能跳過或忽略位置API的學習內(nèi)容。由于媒體API和地圖API的語法和使用方法非常相似,學生掌握其中一個后,很容易推廣到另一個領(lǐng)域。
4 考核方式改革
在考核方式方面,首先,刪除了實驗考核方式,并對期末考試進行了改革。期末考試不再只測試學生的記憶力,而是更加側(cè)重展示他們的實際應(yīng)用能力。例如,在考查學生對輪播圖組件的使用時,給出可能用到的屬性集合(如“indicator-dots、vertical、interval、autoplay、play、circular”等),學生只須正確選擇并運用相關(guān)屬性,而無須死記硬背屬性的書寫方式,這樣更能體現(xiàn)學生的能力培養(yǎng)。其次,增加了課程設(shè)計考核方式,針對課程目標4,強調(diào)微信小程序開發(fā)過程文檔的完整性和規(guī)范性,要求學生形成包括需求文檔、概要設(shè)計、詳細設(shè)計、用戶手冊等軟件開發(fā)過程文檔;針對課程目標5,通過學生在課程設(shè)計過程中提出問題、進行代碼調(diào)試、使用第三方框架的情況,綜合評價他們的復(fù)雜工程設(shè)計方法和在未知領(lǐng)域自主探索的能力。要求學生開發(fā)的小程序功能劃分合理、技術(shù)選型準確、代碼格式規(guī)范、注釋準確清晰。通過課程答辯,讓學生深入展示微信小程序的實現(xiàn)效果、設(shè)計思路以及潛在的商用價值。
最終形成了符合工程教育認證理念的多維度評價考核體系,課程成績由平時成績(10%) 、作業(yè)成績(10%) 、期末考試成績(30%) 、課程設(shè)計成績(40%) 和課程答辯成績(10%) 五部分組成。
5 教學效果
通過2022至2023學年的教學實踐,筆者發(fā)現(xiàn)讓學生從自身興趣和學習需求出發(fā)選擇課程設(shè)計內(nèi)容,并將相關(guān)知識融入整個微信小程序開發(fā)周期中,相較于傳統(tǒng)的以授課為主和基于具體項目的教學方式,更能激發(fā)學生學習的熱情和培養(yǎng)能力。例如,2021級軟件工程1班和2班的課程目標達成度如圖2所示,與上一次教學效果(圖1) 相比,學生在課程目標4和課程目標5的達成度分別提升了7%至18%。此外,采用這種有針對性的學習方式,學生更愿意在課后投入時間將自己的想法付諸實踐,往往讓他們走在課程的前沿。教師負責指導(dǎo)學生解決實踐中遇到的問題,這有利于培養(yǎng)學生學習方法,使他們具備快速上手陌生領(lǐng)域軟件開發(fā)和終身學習的能力。
6 結(jié)束語
微信小程序開發(fā)能力已經(jīng)成為軟件工程專業(yè)學生需要具備的重要能力之一,如何有效培養(yǎng)當代軟件工程專業(yè)大學生開發(fā)微信小程序的能力變得越來越重要。本文提出了“以學促用”的微信小程序課程教學模式,即將微信小程序開發(fā)知識融入具體應(yīng)用開發(fā)過程中,以實際開發(fā)需求形成驅(qū)動學生學習相關(guān)知識的內(nèi)在動力,不僅促進了本課程教學質(zhì)量的提升,也為其他課程的改革創(chuàng)新提供了新的思路和方法,同時體現(xiàn)了堅持能力為本位、學生為主體的OBE 教育理念。