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