高洪皓 陳章進(jìn) 陳怡海 王鏡杰
摘? ?要:程序設(shè)計(jì)課程以教為主,創(chuàng)新實(shí)踐課以實(shí)操為主。文章以“搭建智能小車和控制系統(tǒng)”為創(chuàng)新實(shí)踐需求,充分利用課上和課下資源,促使本科生將程序設(shè)計(jì)、機(jī)械自動(dòng)化、通信等多學(xué)科知識(shí)點(diǎn)進(jìn)行融合,強(qiáng)化基礎(chǔ)課程和實(shí)現(xiàn)培養(yǎng)獨(dú)立創(chuàng)新能力;將程序設(shè)計(jì)課程通過軟件開發(fā)形式與硬件相結(jié)合,從問題中尋找解決方案,從應(yīng)用解決方案中凝聚問題,提高學(xué)生的學(xué)習(xí)主動(dòng)性和積極性。文章介紹了以軟硬件協(xié)同開發(fā)為向?qū)У谋究苿?chuàng)新實(shí)踐,探討計(jì)算機(jī)基礎(chǔ)課程的創(chuàng)新人才培養(yǎng)經(jīng)驗(yàn)。
關(guān)鍵詞:軟硬件協(xié)同開發(fā);程序設(shè)計(jì)與多學(xué)科交叉;創(chuàng)新實(shí)踐;智能小車和控制系統(tǒng)
中圖分類號(hào):G434 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1673-8454(2021)11-0082-04
一、引言
程序設(shè)計(jì)課程內(nèi)容教學(xué)和教學(xué)時(shí)間相對(duì)有限,而本科生的編程能力也需要大量實(shí)踐。創(chuàng)新實(shí)踐項(xiàng)目能夠增強(qiáng)課外實(shí)踐動(dòng)手能力,是提升“教與用”的有效方法[1][2]。針對(duì)創(chuàng)新實(shí)踐課,近年來,各高校都開展聯(lián)合大作業(yè)等形式促進(jìn)本科生進(jìn)行創(chuàng)新創(chuàng)業(yè)訓(xùn)練,將課程內(nèi)容應(yīng)用到實(shí)際問題,有效地提高了本科生對(duì)課程知識(shí)點(diǎn)的認(rèn)識(shí)和深刻體會(huì)。程序設(shè)計(jì)課程實(shí)踐包括開發(fā)軟件和軟硬件協(xié)同開發(fā)。對(duì)于后者來說要求較高,涉及學(xué)科也較多,如程序設(shè)計(jì)、通信、機(jī)械自動(dòng)化等學(xué)科。
實(shí)踐教學(xué)對(duì)于提升學(xué)生的實(shí)踐應(yīng)用能力和專業(yè)基礎(chǔ)素養(yǎng)具有十分重要的意義[3][4]。一方面能豐富課程教學(xué),讓學(xué)生體會(huì)所學(xué)知識(shí)點(diǎn)能解決什么問題、所學(xué)知識(shí)能與什么現(xiàn)實(shí)問題相結(jié)合;另一方面,通過交叉學(xué)科的融合,讓學(xué)生“大膽去想,小心去實(shí)現(xiàn)”,從知識(shí)點(diǎn)出發(fā),解決功能開發(fā)問題和軟硬件功能模塊的繼承,又通過軟硬件協(xié)同開發(fā)回到知識(shí)點(diǎn)。智能小車項(xiàng)目將算法、想法和編程技能應(yīng)用到實(shí)踐中,所有開發(fā)的實(shí)物不僅“看得見、摸得著”,反過來還能檢驗(yàn)學(xué)生所學(xué)的編程知識(shí)點(diǎn)。筆者認(rèn)為這種教學(xué)改革的變化是培養(yǎng)創(chuàng)新實(shí)踐精神的重要方法。
圖1給出了基于軟硬件協(xié)同開發(fā)的創(chuàng)新實(shí)踐課程。在實(shí)踐開展之前,召集本科生組成團(tuán)隊(duì),并鼓勵(lì)學(xué)生勇于挑戰(zhàn)新課題,樹立實(shí)踐目標(biāo)。同時(shí),按照實(shí)際工程方法,明確所需要開發(fā)軟硬件系統(tǒng)的開發(fā)計(jì)劃和開發(fā)需求。要求學(xué)生在一定的時(shí)間內(nèi)理解需求,通過廣泛調(diào)研和指導(dǎo)教師溝通,明確“做什么、怎么做”等問題。在創(chuàng)新開展過程中,按照項(xiàng)目既定計(jì)劃分步實(shí)施,重點(diǎn)基于已學(xué)的程序設(shè)計(jì)知識(shí),了解軟硬件協(xié)同開發(fā)所需要的新知識(shí),探索并自學(xué)與通信和機(jī)械相關(guān)的方法,嘗試將其集成到智能小車項(xiàng)目中。在實(shí)踐結(jié)束之后,及時(shí)總結(jié)并采用成果匯報(bào)方式將實(shí)踐所學(xué)所感和成長故事進(jìn)行分享,吸引下一批本科生參與。
本文介紹以軟硬件協(xié)同開發(fā)為向?qū)У谋究苿?chuàng)新實(shí)踐課程經(jīng)驗(yàn)。首先介紹如何進(jìn)行實(shí)踐課前動(dòng)員,然后介紹智能小車項(xiàng)目的具體案例,最后探討多方支持的本科創(chuàng)新實(shí)踐將有助于強(qiáng)化創(chuàng)新創(chuàng)業(yè)教育與專業(yè)教育的深度融合。
二、實(shí)踐課前動(dòng)員
1.鼓勵(lì)學(xué)生積極參與
大學(xué)本科生思維開放、想法多元,處于最具有創(chuàng)新想法的階段。創(chuàng)新與實(shí)踐能夠相互促進(jìn),有想法不去實(shí)踐是非常可惜的。一方面,本科生自己有想法,但是實(shí)際知識(shí)和動(dòng)手經(jīng)驗(yàn)不足,導(dǎo)致放棄;另一方面,本科生對(duì)自己的想法不太自信,不知道是否可以實(shí)現(xiàn),對(duì)項(xiàng)目實(shí)施不抱有希望。另外,本科生還容易產(chǎn)生畏懼心理,需要鼓勵(lì)其參與到課程導(dǎo)師的課外項(xiàng)目中去,大膽實(shí)踐并勇于試錯(cuò)。
在以軟硬件協(xié)同開發(fā)為向?qū)У谋究苿?chuàng)新實(shí)踐課程中,也存在一些問題:①學(xué)生很有興趣,但是參與人數(shù)不多;②項(xiàng)目初始階段報(bào)名人數(shù)很多,隨著項(xiàng)目開展,退出也很多。因此,需要課程導(dǎo)師在項(xiàng)目實(shí)施前大量動(dòng)員并鼓勵(lì)學(xué)生。創(chuàng)新實(shí)踐可以成功,也允許失敗,鼓勵(lì)本科生勇于嘗試,能提高本科生創(chuàng)新實(shí)踐的信心。
2.以團(tuán)隊(duì)形式開展
以2~3人組成團(tuán)隊(duì)并設(shè)置不同分工,有側(cè)重點(diǎn)地安排軟件模塊、硬件組成模塊、通信和數(shù)據(jù)模塊。這種分組有助于項(xiàng)目團(tuán)隊(duì)協(xié)作,避免出現(xiàn)“單打獨(dú)斗”的情況。當(dāng)然,對(duì)于能力突出的本科生,也可以單獨(dú)安排一組。
實(shí)踐項(xiàng)目開展過程中,相關(guān)技術(shù)指導(dǎo)還需要課程導(dǎo)師來把關(guān)。從程序設(shè)計(jì)、通信技術(shù)、機(jī)械原理等知識(shí)的角度給予實(shí)操指導(dǎo)。因此,一方面,導(dǎo)師需要定期和團(tuán)隊(duì)見面,討論和檢查進(jìn)度,防止一些學(xué)生消極怠工;另一方面,高年級(jí)本科生和研究生可以參與指導(dǎo),以朋友的身份參與,可以與學(xué)生更好地進(jìn)行溝通。
沒有實(shí)踐環(huán)境的支持,就無法實(shí)現(xiàn)創(chuàng)新想法。為了給本科生提供相關(guān)資源平臺(tái),可使用導(dǎo)師的項(xiàng)目經(jīng)費(fèi),資助購買無線模塊、驅(qū)動(dòng)馬達(dá)、履帶和移動(dòng)電源等耗材,支持搭建硬件平臺(tái);還可通過導(dǎo)師權(quán)限,申請(qǐng)學(xué)校云主機(jī)和數(shù)據(jù)庫服務(wù)器,支持搭建軟件平臺(tái)[5]。
三、項(xiàng)目實(shí)施案例
以程序設(shè)計(jì)課程教師團(tuán)隊(duì)為基礎(chǔ),上海大學(xué)計(jì)算機(jī)基礎(chǔ)教學(xué)研究室從2016年開始實(shí)施以軟硬件協(xié)同開發(fā)為向?qū)У谋究苿?chuàng)新實(shí)踐項(xiàng)目。該項(xiàng)目得到全國高等院校計(jì)算機(jī)基礎(chǔ)教育研究會(huì)和谷歌信息技術(shù)(中國)有限公司產(chǎn)學(xué)研合作等課題的資助。本文以功能設(shè)計(jì)實(shí)現(xiàn)為主線,介紹智能小車的開發(fā)過程。
1.開發(fā)目標(biāo)
智能小車的開發(fā)需求為:自主開發(fā)設(shè)計(jì)一款能用于巡查實(shí)驗(yàn)室環(huán)境,并通過傳感器來判斷實(shí)驗(yàn)室中是否有火災(zāi)、漏水等情況的發(fā)生,幫助學(xué)校管理人員及時(shí)發(fā)現(xiàn)和預(yù)防災(zāi)難的智能小車。如圖2所示,該項(xiàng)目需要本科生分組完成后,再討論需求,明確所需要完成的硬件搭建任務(wù)和軟件開發(fā)任務(wù)。包括幾個(gè)問題點(diǎn):①如何通信、如何進(jìn)行無線通信;②如何進(jìn)行控制、采用什么語言進(jìn)行程序設(shè)計(jì);③如何進(jìn)行數(shù)據(jù)收集和存儲(chǔ)以方便后期展示、如何進(jìn)行數(shù)據(jù)預(yù)警;④如何實(shí)現(xiàn)按照實(shí)驗(yàn)室路徑進(jìn)行巡查。
項(xiàng)目團(tuán)隊(duì)擬采用Arduino進(jìn)行無線智能小車搭建,通過搭載各種傳感器(火焰、溫度等),實(shí)現(xiàn)實(shí)驗(yàn)室自動(dòng)化巡查,定時(shí)收集實(shí)驗(yàn)室內(nèi)各種環(huán)境數(shù)據(jù)。具體技術(shù)選型包括:①使用Arduino對(duì)Raspberry Pi進(jìn)行拓展,通過USB向Raspberry Pi傳輸傳感器數(shù)據(jù);②基于Raspberry Pi搭建一個(gè)小車的基礎(chǔ)通訊平臺(tái),使用MQTT協(xié)議與服務(wù)器通訊;③使用QT平臺(tái)編寫用戶端應(yīng)用,用以對(duì)小車進(jìn)行控制,并且可以實(shí)現(xiàn)跨平臺(tái)部署。
2.Raspberry Pi與Arduino的通訊
圖3為項(xiàng)目團(tuán)隊(duì)搭建的無線智能小車實(shí)物原型圖。團(tuán)隊(duì)使用了Arduino對(duì)樹莓派Raspberry Pi進(jìn)行拓展,其中Arduino控制機(jī)械馬達(dá)轉(zhuǎn)動(dòng),所有傳感器都與Arduino連接,并定期上報(bào)數(shù)據(jù)給樹莓派Raspberry Pi。而樹莓派則完成數(shù)據(jù)發(fā)送任務(wù),減輕Raspberry Pi端直接處理數(shù)據(jù)的壓力。
3.協(xié)議通訊設(shè)計(jì)
在進(jìn)行充分的技術(shù)調(diào)研后,項(xiàng)目團(tuán)隊(duì)決定采用消息隊(duì)列遙測(cè)傳輸協(xié)議MQTT進(jìn)行數(shù)據(jù)傳輸。MQTT協(xié)議具有輕量、省帶寬以及QoS等特性,是一種專為IoT設(shè)備設(shè)計(jì)的輕量級(jí)消息通訊協(xié)議。借助“百度智能云天工物聯(lián)網(wǎng)平臺(tái)”作為MQTT消息的中轉(zhuǎn)服務(wù)器,與用戶端應(yīng)用和小車進(jìn)行通訊。如圖4(a)所示,數(shù)據(jù)通信借助百度的“物模型”和“物影子”概念,將小車的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)打包成模型,作為固定格式產(chǎn)生多個(gè)對(duì)應(yīng)于小車數(shù)據(jù)實(shí)體的影子,有助于實(shí)現(xiàn)部署多個(gè)小車的需求,也方便進(jìn)行模塊化安裝。圖4(b)為數(shù)據(jù)展示效果。
4.數(shù)據(jù)發(fā)布與接收
MQTT協(xié)議包括發(fā)布者(Publisher)、代理(Broker)、訂閱者(Subscriber)。發(fā)布者是指將某一數(shù)據(jù)進(jìn)行上報(bào)的一方,而訂閱者則是接收發(fā)布者上報(bào)數(shù)據(jù)的一方。MQTT傳輸?shù)南⒎譃橹黝}(Topic)和負(fù)載(payload)。負(fù)載是消息真正的傳遞內(nèi)容,而主題可以理解為消息的類型。只要有訂閱者訂閱消息,該訂閱者就會(huì)及時(shí)收到該消息的負(fù)載。
項(xiàng)目團(tuán)隊(duì)將智能小車設(shè)置為“發(fā)布者+訂閱者”雙模式,因?yàn)榧刃枰皶r(shí)收到小車檢測(cè)到的相關(guān)數(shù)據(jù),也需要下達(dá)指令操縱小車的行進(jìn)軌跡。同時(shí)在小車端,既需要及時(shí)收到用戶的相關(guān)操縱指令,也需要上報(bào)各類傳感器數(shù)據(jù)。對(duì)MQTT的主題進(jìn)行拆分,在智能小車端使用兩個(gè)線程發(fā)布和訂閱主題,方便了開發(fā)工作的進(jìn)行。針對(duì)特殊的自主循跡功能,小車在接到循跡指令后,可以放棄自己的部分訂閱者身份,以能夠?qū)P倪M(jìn)行循跡工作,直到用戶發(fā)出手動(dòng)控制行進(jìn)的指令。
5.循跡的實(shí)現(xiàn)
在智能小車上使用兩個(gè)紅外傳感器來實(shí)現(xiàn)循跡功能。黑色物體理論上可以吸收一切光線,區(qū)別于其他物體可以折射部分光線。因此可以選用黑色軌道進(jìn)行循跡,當(dāng)紅外傳感器在黑色軌道上方時(shí),將無法接收到自己發(fā)出的信號(hào);反之,則可以接收到,用此來判斷小車是否在預(yù)定軌跡。最后,團(tuán)隊(duì)采用兩個(gè)紅外傳感器實(shí)現(xiàn)二路循跡功能。圖5為小車循跡實(shí)物圖。
四、創(chuàng)新實(shí)踐過程中的多方支持
我校任課教師指導(dǎo)學(xué)生競賽,積極推行大學(xué)生創(chuàng)新項(xiàng)目的團(tuán)隊(duì)培養(yǎng),招收有興趣的學(xué)生,并根據(jù)創(chuàng)新實(shí)踐成果,推薦學(xué)生參加上海市及全國大學(xué)生計(jì)算機(jī)設(shè)計(jì)大賽。該項(xiàng)目自2016年持續(xù)開展以來,已有十多個(gè)團(tuán)隊(duì)順利完成課外實(shí)踐項(xiàng)目,已獲得多項(xiàng)計(jì)算機(jī)類競賽的獎(jiǎng)勵(lì)[6]。
該項(xiàng)目指導(dǎo)部分本科生、研究生開展大學(xué)生創(chuàng)新創(chuàng)業(yè)項(xiàng)目,部分優(yōu)秀項(xiàng)目被立項(xiàng)。同時(shí)挖掘?qū)W生的潛力,引入項(xiàng)目實(shí)踐課作為補(bǔ)充,鼓勵(lì)學(xué)生參與到項(xiàng)目和競賽,充分調(diào)動(dòng)本科生學(xué)習(xí)計(jì)算機(jī)的主動(dòng)性和動(dòng)手操作的熱情。
通過“產(chǎn)學(xué)研”合作,提供合作企業(yè)的云主機(jī)來支持學(xué)生的創(chuàng)新項(xiàng)目,同時(shí)開放智慧教室給學(xué)生進(jìn)行競賽項(xiàng)目研討。指導(dǎo)部分本科生參與企業(yè)實(shí)際課題開發(fā),實(shí)現(xiàn)“打基礎(chǔ)”和“重實(shí)踐”的銜接。
五、總結(jié)與展望
大學(xué)生創(chuàng)新實(shí)踐的培養(yǎng)應(yīng)該以基礎(chǔ)知識(shí)為主,通過實(shí)踐項(xiàng)目提升實(shí)操能力[7]。智能小車項(xiàng)目以軟硬件協(xié)同開發(fā)為向?qū)?,以學(xué)生為中心,積極指導(dǎo)學(xué)生進(jìn)行課外創(chuàng)新項(xiàng)目,使得學(xué)生對(duì)計(jì)算機(jī)編程課程充滿興趣,同時(shí)提升了自我價(jià)值。這一過程涉及程序設(shè)計(jì)、機(jī)械自動(dòng)化、通信等多學(xué)科知識(shí)點(diǎn)的深度和廣度融合。該項(xiàng)目可以作為程序設(shè)計(jì)相關(guān)課程的參考,在教學(xué)內(nèi)容和教學(xué)手段上進(jìn)行嘗試,讓本科生動(dòng)手實(shí)現(xiàn)“看的見摸得著”的硬件來體會(huì)軟件編程知識(shí)點(diǎn),是另一種形式的“翻轉(zhuǎn)學(xué)習(xí)”。
參考文獻(xiàn):
[1]黃陳蓉,張建德.校企深度融合的計(jì)算機(jī)應(yīng)用型人才培養(yǎng)模式探索[J].計(jì)算機(jī)教育,2017(6):14-16.
[2]李輝.大學(xué)生創(chuàng)新能力培養(yǎng)中的創(chuàng)新實(shí)踐教育平臺(tái)建設(shè)[J].中國大學(xué)教學(xué),2013(9):83-85.
[3]姜代紅,任春美,程紅林.談?dòng)?jì)算機(jī)科學(xué)與技術(shù)創(chuàng)新型應(yīng)用人才培養(yǎng)的實(shí)踐教學(xué)體系建設(shè)[J].現(xiàn)代教育科學(xué),2010(S1):30.
[4]周震.地方高?!?+X”應(yīng)用型人才培養(yǎng)模式的實(shí)踐探索[J].中國高等教,2019(20):46-48.
[5]高洪皓,單子鵬,陳章進(jìn)等.云實(shí)驗(yàn)室在大學(xué)計(jì)算機(jī)基礎(chǔ)實(shí)驗(yàn)教學(xué)中的應(yīng)用[J].電氣電子教學(xué)學(xué)報(bào),2016(5):130-133.
[6]高洪皓,劉安康,鄒啟明等.面向軟硬件融合的Arduino機(jī)械控制小車課程實(shí)踐研究[J].計(jì)算機(jī)教育,2019(1):76-79.
[7]彭強(qiáng),楊燕,張翠芳.計(jì)算機(jī)專業(yè)大學(xué)生創(chuàng)新能力培養(yǎng)的探索與實(shí)踐[J].計(jì)算機(jī)教育,2009(13):19-20.
(編輯:王曉明)