龍雪玲 戴 歆
(1.武漢商學院 信息工程學院 湖北武漢 430056;2.武漢商學院 信息工程學院 湖北武漢 430056)
《中國制造2025》要求培養既掌握本專業技能,又有跨專業能力的創新型、復合型人才[1]。因此,要打破傳統實驗教學模式,開創實驗教學新方法,樹立人才培養新理念。軟件工程專業的人才培養模式中,要求軟件專業的交叉化、軟件人才的復合化以及軟件技術的智能化,與智能軟 件應用行業深度融合,培養高質量的“行業軟件開發人才”,填補智能制造復合型人才的缺口。
數據結構與算法課程設計是在培養學生應用數據結構與算法知識分析、解決問題的重要實踐環節,對提高學生綜合應用所學理論知識以及協作精神起著十分重要的作用。傳統的課程設計項目已無法滿足“兩性一度”要求以及智能軟件行業的人才需求,依托于人智能軟件發展的熱潮,數據結構課程設計也面臨著授課方式的調整[2]。
數據結構與算法是智能化軟件開發中設計與實踐的基礎,將數據結構與算法課程設計的教學面向典型智能化軟件的設計與實踐中,能夠提高學生解決復雜工程問題的能力,適應智能制造大環境下現代智能化軟件產業對技術和能力的需求[3]。
傳統的數據結構與算法課程設計,主要圍繞以某種程序設計語言(C語言為主)采用單一數據結構(線性結構為主)的簡單虛擬案例進行設計實踐,如圖書信息管理系統、鐵路客票管理系統等。學生將所要解決問題的程序驗證性地調試通過,設計結果常以單一的編譯器運行結果體現,課后以實驗報告作為課程設計評價依據。傳統的教學模式存在的問題主要有以下幾個方面。
以驗證性為主的課程設計項目,主要圍繞著基礎數據結構及算法的應用,脫離現代軟件產業的需求,不僅學生的獲得感不足,而且無法將所學理論知識應用工程應用實際問題的求解。
對于傳統的課程設計項目,學生在實踐過程中,無法體驗數據結構以及算法的分析設計過程,無法將實際問題抽象為計算機可處理的特定模型的計算思維能力的培養[3]。
課程設計過程應該包含需求分析、方案設計、編碼測試、評估等核心環節,但傳統的課程設計模式,學生傾向于直接編寫代碼進行測試,達不到課程設計的目的,更無利于軟件工程思維能力的培養。
緊跟科技發展趨勢,適應智能軟件行業的人才需求,針對前面所提出的課程教學中存在的問題,以“淘汰水課,打造金課”為課程建設目標,完善現有課程教學模式[4]。
(1)數據結構與算法課程設計是一門實踐性很強的課程,為課程實驗環節設計一系列具備高階性、創新性和挑戰度的綜合實驗項目是教學改革的關鍵。
(2)以前沿、成熟的技術體系為主線,既需要涵蓋專業基礎理論知識,軟件工程開發知識,也需要側重于與前沿智能軟件技術相結合。
(3)依托綜合實驗項目,實現軟件開發生命周期體驗,包含需求分析、方案設計、編碼測試、評估等關鍵環節[5]。
(4)通過學生自主學習、設計實踐、項目匯報、實驗文檔撰寫等環節構建多維度的過程性評價與考核體系。
國務院在《中國制造2025》中指出,未來10年,我國智能制造的首要目的是在解放勞動力的前提下,實現生產力與生產質量的進一步提高,其核心競爭力還是比的“快速”和“精準”。智能制造的核心是“智”,“智”的核心則是信息獲取和處理的快和準。視覺與圖像技術是20世紀人類最偉大技術之一。人們感知外界信息的70%是通過眼睛獲得的,圖像包含的信息量是最巨大的。信息時代,特別是工業信息時代,視覺圖像技術注定將成為扛鼎。
視覺與圖像技術,極大地提高了工業自動化中信息的獲取能力,信息將不再是單一維度的簡單數據,而是廣域立體的海量數據,視覺技術被廣泛應用于工業機器人領域,主要具有四個功能:
一是引導定位。視覺定位要求機器視覺系統能夠快速準確地找到被測零件并確認其位置,上下料使用機 器視覺來定位,引導機械手臂準確抓取,這就是視覺定位在機器視覺工業領域最基本的應用。
二是外觀檢測。檢測生產線上產品有無質量問題,該環節也是取代人工最多的環節。
三是高精度測量。有些產品的精密度較高,達到0.01~0.02m,甚至到u級,人眼無法測量,必須使用機器完成。
四是識別。就是利用機器視覺對圖像進行處理、分析和理解,以識別各種不同模式的目標和對象,可以達到數據的追溯和采集。
視覺與圖像技術在工業自動化領域的重大作用,相當于給工業設備安裝了一雙超級“智眼”。未來的工業生產將以“智眼”為核心,裝備在千千萬萬、形形色色的設備上,指揮各種各樣的“手、腳、身體”動作,實現“深度感知、智慧決策、自動執行”,成為“智人”。
移動機器人是當前工業自動化領域較成熟的產品,其中,常見的視覺智能小車所涉及的智能模塊亦是當前智能軟件行業的核心業務基礎。課程將以視覺智能小車為載體進行設計與開發。小車完整的開發涉及到硬件及軟件的部分。其中,軟件部分的設計與開發包含大量豐富的數據結構應用及算法的設計。這些成熟的產品為課程提供了大量優秀素材,想要完整實現智能小車的開發并非易事。因此,需要適當地裁剪和修改小車的功能,弱化硬件的開發量,簡化系統架構,選取具有代表性數據結構與算法的智能化模塊進行開發實踐,從而適合課堂教學。
課程擬選取簡化后的基礎智能模塊與智能制造核心技術對應關系見表1所列。
課程設計內容以樹莓派4B為主控的智能小車作為載體,可支持多種主流編程語言,如Python語言(后續的實踐基于Python語言進行開發),以主流的Jupter Lab為開發工具,學生們容易上手。以Open Source CV為主要圖像處理庫,搭配二自由度攝像頭云臺,可以實現典型的AI視覺功能,包括人臉跟蹤、顏色跟隨、二維碼識別、手勢識別等多種智能模塊.這些智能模塊多以數值矩陣進行數據邏輯表達以及應用經典圖像算法處理庫進行計算,適合底層語言的深度學習及進行拓展設計開發。另外,對于智能小車開發涉及的課程以外的理論或技術,需要編寫補充學習資料,幫助學生快速掃除障礙,盡快進入智能小車的開發實戰中。
考慮到數據結構與算法課程設計開設在大一下學期,學生具備一定的編程能力、數據結構以及算法基礎,但是對于類似于智能小車的開發屬于一個幾乎嶄新的領域,從基本硬件組裝、算法設計到后期的燒錄測試都具備一定的難度,因此,在智能模塊的自主開發中采用四人一組的形式開展,具體的智能模塊選題可以自選,老師進行微調確保選題全覆蓋。智能模塊選題如見表2所列。

表2 智能模塊選題表
本課程計劃學時為24學時,課程教學安排分為6個階段,包括課前預習、理論精講、基礎引導實驗、自主設計與實踐、小組答辯、總結匯報。具體教學安排如見表3所列。

表3 教學計劃
在自主設計與實踐中,基于軟件工程思維,讓學生體驗智能化軟件開發的生命周期的關鍵環節,包括功能分析、方案設計、編碼測試、評估優化四個階段。以視覺巡線模塊為例,學生自主設計與實踐安排如見表4所列。

表4 自主設計與實踐計劃
根據課程安排進行過程化考核。
(1)課前:完成自學資料的預習,老師可通過線上學習平臺監督統計,學生完成項目相關基礎知識測試。
(2)課中:完成基礎引導實驗的實驗報告;能夠按需求分析、方案設計、編碼測試、評估優化四個環節完成所選模塊的設計與實現,按環節依次提交功能結構圖、主程序執行流程圖、模塊實現源碼以及算法優化方案說明;按小組提交答辯PPT。
(3)課后:整理和完善課中的實驗文檔,根據實驗中所遇到的問題及采取的解決方案進行歸納形成總結,結合課中實驗環節的過程性資料形成完整的課程設計,與源碼一起提交。
基于智能軟件開發的數據結構與算法課程設計課程教學模式,在強化傳統數據結構與算法核心知識的訓練的同時,加強了與現代智能軟件行業的應用技術接軌,在應用型人才培養方面擬實現如下效果:
(1)在實驗過程中,融合了軟件開發過程中的需求分析、方案設計、編碼測試、評估優化等必要環節,體現了知識、技術、方法的綜合應用,有利于逐步培養解決復雜工程問題的思維能力。
(2)實驗取材于智能小車中智能模塊的開發,需要用到圖像處理、智能控制及軟件設計等多個領域的知識技能,具備一定的挑戰性。教師提供充足的配套教學指導資源,并進行引導性指導,學生通過自己的努力也可以完成預定目標,有利于培養學生迎難而上的韌性及合理應用工程原理解決問題的能力。
(3)在實驗過程中,學生在根據已有的指導資源可以完成智能模塊的基礎功能開發的基礎上,對于模塊功能的完善,需要進行方案優化二次開發,有利于學生自主創新實踐的能力。
基于智能軟件開發的數據結構與算法課程設計課程教學模式,緊密結合現代軟件產業的技術發展,提升學生的工程實踐能力,培養學生的計算思維能力及創新能力。從數據結構與算法的基礎知識點出發,探討知識點及技術在經典的智能制造領域中的應用,激發學生的興趣和提高獲得感,為以后順應現代軟件產業的技術和能力需求奠定良好基礎。