張引 趙玉麗 張斌 高克寧
[摘 要] 項(xiàng)目式學(xué)習(xí)并非是添加了項(xiàng)目學(xué)時(shí)的傳統(tǒng)課程,而是基于項(xiàng)目式學(xué)習(xí)的理念重構(gòu)教學(xué)內(nèi)容和具有示范性的教學(xué)項(xiàng)目??梢暬绦蛟O(shè)計(jì)技術(shù)及應(yīng)用課程實(shí)踐了面向項(xiàng)目式學(xué)習(xí)的模塊化教學(xué)內(nèi)容組織方法,構(gòu)建符合行業(yè)標(biāo)準(zhǔn)的示范性教學(xué)項(xiàng)目并組織模塊化的教學(xué)內(nèi)容,幫助學(xué)生形成解決復(fù)雜工程問題的能力。
[關(guān)鍵詞] 項(xiàng)目式學(xué)習(xí);模塊化;教學(xué)改革
[基金項(xiàng)目] 2018年教育部產(chǎn)學(xué)合作協(xié)同育人項(xiàng)目;東北大學(xué)PBL教學(xué)法研究與應(yīng)用項(xiàng)目(NEUJX04214)
[作者簡介] 張 引(1985—),男,遼寧沈陽人,工學(xué)博士,東北大學(xué)軟件學(xué)院軟件工程系副教授,主要從事搜索學(xué)習(xí)研究;趙玉麗(1985—),女,內(nèi)蒙古赤峰人,工學(xué)博士,東北大學(xué)軟件學(xué)院軟件工程系副教授,主要從事信道編碼研究;張 斌(通信作者)(1964—),男,遼寧本溪人,工學(xué)博士,東北大學(xué)軟件學(xué)院軟件工程系教授,博士生導(dǎo)師,主要從事邊緣計(jì)算研究;高克寧(1962—),女,北京人,工學(xué)博士,東北大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院教授,主要從事社會計(jì)算研究。
[中圖分類號] G642 ? ?[文獻(xiàn)標(biāo)識碼] A ? ?[文章編號] 1674-9324(2020)36-0222-02 ? ?[收稿日期] 2019-12-15
一、引言
項(xiàng)目式學(xué)習(xí)作為實(shí)現(xiàn)新工科改革目標(biāo)的一種有效的途徑,受到越來越多的關(guān)注。一種廣泛采用的項(xiàng)目式學(xué)習(xí)模型,是“講授課時(shí)”+“項(xiàng)目學(xué)時(shí)”的課程及項(xiàng)目式學(xué)習(xí)模型。然而,項(xiàng)目式學(xué)習(xí)并非是添加了項(xiàng)目學(xué)時(shí)的傳統(tǒng)課程,還需要基于項(xiàng)目式學(xué)習(xí)的項(xiàng)目中心、實(shí)踐導(dǎo)向、整合學(xué)習(xí)等理念重構(gòu)教學(xué)內(nèi)容,并構(gòu)建具有示范性的教學(xué)項(xiàng)目。
傳統(tǒng)課程在組織教學(xué)內(nèi)容時(shí),通常力求內(nèi)容之間彼此獨(dú)立,這樣雖然降低了教學(xué)內(nèi)容的復(fù)雜度,方便了教學(xué)活動的開展,卻違背了知識的使用規(guī)律,也有悖于項(xiàng)目式學(xué)習(xí)的整合學(xué)習(xí)理念。同時(shí),傳統(tǒng)課程雖然也使用案例教學(xué)法,但所選項(xiàng)目只注重知識點(diǎn)的覆蓋率,卻忽視項(xiàng)目的示范性,導(dǎo)致教學(xué)項(xiàng)目嚴(yán)重脫離實(shí)際,難以激發(fā)學(xué)生的學(xué)習(xí)興趣,也導(dǎo)致所學(xué)知識無法應(yīng)用于實(shí)際。解決這些問題的一種可行的方法是按照實(shí)際應(yīng)用的需求,依據(jù)行業(yè)標(biāo)準(zhǔn)構(gòu)建具有示范性的教學(xué)項(xiàng)目,并圍繞教學(xué)項(xiàng)目組織教學(xué)內(nèi)容。
本文介紹可視化程序設(shè)計(jì)技術(shù)及應(yīng)用課程(以下簡稱“可視化”)開展的面向項(xiàng)目式學(xué)習(xí)的模塊化教學(xué)內(nèi)容組織方法實(shí)踐。通過構(gòu)建符合行業(yè)標(biāo)準(zhǔn)的示范性教學(xué)項(xiàng)目,并圍繞教學(xué)項(xiàng)目組織模塊化教學(xué)內(nèi)容?!翱梢暬睂?shí)現(xiàn)了對復(fù)雜可視化應(yīng)用開發(fā)方法的示范性學(xué)習(xí),有效幫助學(xué)生形成解決復(fù)雜工程問題的能力。
二、教學(xué)項(xiàng)目構(gòu)建
傳統(tǒng)課程在構(gòu)建教學(xué)項(xiàng)目時(shí),通常只注重項(xiàng)目能否覆蓋知識點(diǎn),缺乏對項(xiàng)目示范性的關(guān)注,經(jīng)常導(dǎo)致“大題小作”,即選取一個(gè)“大”的項(xiàng)目問題,卻又作出種種不切實(shí)際的假設(shè),從而把項(xiàng)目做“小”以方便教學(xué)。這導(dǎo)致教學(xué)項(xiàng)目嚴(yán)重脫離實(shí)際,難以激發(fā)學(xué)生的學(xué)習(xí)興趣,也使得學(xué)生學(xué)習(xí)到的知識無法匹配實(shí)際問題,導(dǎo)致學(xué)生缺乏解決實(shí)際問題的能力,更傳達(dá)了一種好大喜功的錯(cuò)誤價(jià)值觀。以下以常見的教學(xué)項(xiàng)目為例。
1.學(xué)生/圖書館信息管理系統(tǒng)。從表面來看,信息管理系統(tǒng)的核心是數(shù)據(jù)的“增刪改查”,但其真正的關(guān)鍵技術(shù)卻體現(xiàn)在如何實(shí)現(xiàn)極高的安全標(biāo)準(zhǔn)、復(fù)雜的數(shù)據(jù)統(tǒng)計(jì),以及可靠的備份機(jī)制等。然而,作為教學(xué)項(xiàng)目的信息管理系統(tǒng)通常忽略安全、統(tǒng)計(jì)、備份等需求,導(dǎo)致學(xué)生缺少對關(guān)鍵技術(shù)的了解。
2.電梯/路網(wǎng)/產(chǎn)線調(diào)度系統(tǒng)。調(diào)度系統(tǒng)的核心似乎是調(diào)度算法,但工業(yè)軟件最重要的是如何利用極其有限的計(jì)算資源滿足性能需求,同時(shí)確保萬無一失的穩(wěn)定性與安全性。然而,作為教學(xué)項(xiàng)目的調(diào)度系統(tǒng)通常忽略除算法外的所有其他的要求,導(dǎo)致學(xué)生不了解也沒有能力實(shí)現(xiàn)工業(yè)軟件的核心價(jià)值。
為確保教學(xué)項(xiàng)目的示范性,“可視化”在構(gòu)建教學(xué)項(xiàng)目時(shí),從小題目入手,同時(shí)按照實(shí)際應(yīng)用的要求,依據(jù)行業(yè)標(biāo)準(zhǔn)將項(xiàng)目做復(fù)雜,做完整。這種“小題大做”的教學(xué)項(xiàng)目與實(shí)際問題緊密契合,給學(xué)生以強(qiáng)烈的代入感,有效地激發(fā)了學(xué)生的興趣。通過完整、真實(shí)的教學(xué)項(xiàng)目,學(xué)生學(xué)習(xí)解決實(shí)際問題所需要的方方面面的知識,從而形成復(fù)雜工程問題的解決能力。同時(shí)以小見大,切身體會如何腳踏實(shí)地完成項(xiàng)目,形成正確的價(jià)值觀與專業(yè)精神。
“可視化”的教學(xué)項(xiàng)目“DailyPoetryX”是一款古詩詞推薦、搜索、收藏以及同步應(yīng)用,其已在App Store發(fā)布。除了功能性需求,該項(xiàng)目按照行業(yè)級標(biāo)準(zhǔn)制定了一系列非功能性需求,從而確保項(xiàng)目的示范性:①嚴(yán)格貫徹?cái)?shù)據(jù)—業(yè)務(wù)—視圖分離的軟件架構(gòu),同時(shí)嚴(yán)格貫徹編碼規(guī)范;②規(guī)范數(shù)據(jù)庫使用場景,貫徹?cái)?shù)據(jù)庫版本管理,全面使用ORM工具操作數(shù)據(jù)庫,實(shí)現(xiàn)純動態(tài)的數(shù)據(jù)庫查詢;③深度推廣單元測試,實(shí)現(xiàn)可測試的軟件架構(gòu);④全面引入源代碼管理與分支開發(fā);⑤嚴(yán)格對象創(chuàng)建過程管理,深度引入依賴注入容器;⑥深度使用緩存、異步調(diào)用、多線程等技術(shù)提升用戶體驗(yàn);⑦完全服務(wù)化的導(dǎo)航機(jī)制與參數(shù)傳遞機(jī)制;⑧使用事件與消息機(jī)制傳遞信息,實(shí)現(xiàn)跨頁面數(shù)據(jù)同步刷新;⑨使用符合行業(yè)最新標(biāo)準(zhǔn)的安全認(rèn)證機(jī)制同步數(shù)據(jù)。
這些非功能性需求有效確保了項(xiàng)目的示范性,為幫助學(xué)生形成復(fù)雜工程問題的解決能力提供了堅(jiān)實(shí)的基礎(chǔ)。
三、內(nèi)容模塊構(gòu)建
“可視化”在組織教學(xué)內(nèi)容時(shí),采用了軟件設(shè)計(jì)的模塊化思想,將教學(xué)內(nèi)容按照實(shí)際項(xiàng)目的軟件架構(gòu)劃分為一系列教學(xué)模塊并連接成網(wǎng)。通過這種方法,“可視化”實(shí)現(xiàn)了對復(fù)雜可視化應(yīng)用開發(fā)方法的示范性學(xué)習(xí),有效幫助學(xué)生形成復(fù)雜工程問題的解決能力。
1.基礎(chǔ)知識模塊組。基礎(chǔ)知識模塊組是學(xué)習(xí)課程的基礎(chǔ),該模組包括:①平臺與工具模塊,涉及在Windows 10/macOS操作系統(tǒng)下進(jìn)行iOS、Android,以及UWP開發(fā)所需的不同工具組合;②控件模塊,涉及完成項(xiàng)目所需的9種控件,重點(diǎn)介紹基于屬性與事件控制控件外觀與行為的使用模式;③基礎(chǔ)數(shù)據(jù)管理模塊,涉及使用鍵值存儲、關(guān)系數(shù)據(jù)庫,以及Web服務(wù)管理本地或遠(yuǎn)程存儲的少量或大量數(shù)據(jù)。
2.核心架構(gòu)模塊組。心架構(gòu)模塊組為復(fù)雜可視化應(yīng)用的開發(fā)提供了統(tǒng)一、標(biāo)準(zhǔn)化的核心架構(gòu)。該模組包括:①M(fèi)VVM+IService架構(gòu)模式模塊,涉及MVVM+IService架構(gòu)模式的設(shè)計(jì)、實(shí)現(xiàn)與運(yùn)行機(jī)制;
②View-ViewModel融合模塊,涉及設(shè)計(jì)時(shí)數(shù)據(jù)、View-ViewModel初始化、ViewModel單元測試、擴(kuò)展控件功能、并行執(zhí)行代碼、自定義屬性、ViewModel in ViewModel等;③依賴注入模塊,涉及復(fù)雜對象初始化、工廠函數(shù)、依賴注入容器、反射等內(nèi)容;④編碼規(guī)范模塊,涉及命名、排版、注釋規(guī)范;⑤協(xié)作開發(fā)模塊,涉及源代碼管理、MVVM+IService架構(gòu)的分支開發(fā)、Git等內(nèi)容;⑥測試模塊,涉及單元測試,Mocking、面向測試的設(shè)計(jì)、副作用清除等;⑦高級數(shù)據(jù)庫模塊,涉及數(shù)據(jù)庫的類型、運(yùn)行模式、許可方式、ORM、以及數(shù)據(jù)庫的IService架構(gòu)等;⑧高級Web服務(wù)模塊,涉及異常處理、警告服務(wù)、內(nèi)存-存儲兩級緩存、HTTP請求頭、Mock Web服務(wù)等。
3.擴(kuò)展技術(shù)模塊組。擴(kuò)展技術(shù)模組涉及到構(gòu)建復(fù)雜可視化應(yīng)用所需的一系列可選技術(shù)。該模組包括:①文件下載與緩存模塊,涉及文件下載、檢查更新、文件緩存、文件單元測試、文件壓縮等。②頁面導(dǎo)航模塊,涉及內(nèi)容導(dǎo)航、根導(dǎo)航、導(dǎo)航的MVVM+IService架構(gòu)、頁面激活與緩存、帶參數(shù)導(dǎo)航的MVVM+IService架構(gòu)等;③動態(tài)查詢模塊,涉及LINQ、動態(tài)LINQ、單元測試動態(tài)LINQ等;④消息機(jī)制模塊,涉及信息傳遞的函數(shù)、事件與消息方法,事件的定義、觸發(fā)與處理,消息的定義、發(fā)布與監(jiān)聽等;⑤數(shù)據(jù)同步模塊,涉及面向同步的設(shè)計(jì)、同步算法與服務(wù)的實(shí)現(xiàn)等;⑥OneDrive模塊,涉及OneDrive安全機(jī)制、登錄與注銷、上傳與下載、基于OneDrive的數(shù)據(jù)同步等。
四、結(jié)論
面向項(xiàng)目式學(xué)習(xí)的模塊化教學(xué)內(nèi)容組織方法以示范性的教學(xué)項(xiàng)目為核心,組織模塊化的教學(xué)內(nèi)容,幫助學(xué)生將知識連接成網(wǎng),從而解決復(fù)雜的實(shí)際問題。基于該方法,“可視化”有效確保了學(xué)習(xí)的示范性,為培養(yǎng)學(xué)生的復(fù)雜工程問題解決能力提供了堅(jiān)實(shí)的基礎(chǔ)。