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

表2 智能模塊選題表
本課程計(jì)劃學(xué)時為24學(xué)時,課程教學(xué)安排分為6個階段,包括課前預(yù)習(xí)、理論精講、基礎(chǔ)引導(dǎo)實(shí)驗(yàn)、自主設(shè)計(jì)與實(shí)踐、小組答辯、總結(jié)匯報(bào)。具體教學(xué)安排如見表3所列。

表3 教學(xué)計(jì)劃
在自主設(shè)計(jì)與實(shí)踐中,基于軟件工程思維,讓學(xué)生體驗(yàn)智能化軟件開發(fā)的生命周期的關(guān)鍵環(huán)節(jié),包括功能分析、方案設(shè)計(jì)、編碼測試、評估優(yōu)化四個階段。以視覺巡線模塊為例,學(xué)生自主設(shè)計(jì)與實(shí)踐安排如見表4所列。

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