崔舒寧,桂小林,吳 寧,薄鈞戈,齊 琪
(西安交通大學(xué) 電子與信息工程學(xué)院,陜西 西安 710049)
2017年2月18日,高校工程教育發(fā)展戰(zhàn)略研討會(huì)在復(fù)旦大學(xué)召開,“新工科”的研究與實(shí)踐被正式提上了章程[1]。新技術(shù)、新業(yè)態(tài)、新產(chǎn)業(yè)背景下,對(duì)工科人才創(chuàng)新創(chuàng)業(yè)能力有了更高的要求。教育部高等教育司張大良司長提出了急需新型工科人才支撐的要求。2017年4月8日,教育部在天津大學(xué)召開新工科建設(shè)研討會(huì),60余所高校共商新工科建設(shè)的愿景與行動(dòng)。 2017年6月9日,教育部在北京召開新工科研究與實(shí)踐專家組成立暨第一次工作會(huì)議,全面啟動(dòng)、系統(tǒng)部署新工科建設(shè)。30余位來自高校、企業(yè)和研究機(jī)構(gòu)的專家深入研討新工業(yè)革命帶來的時(shí)代新機(jī)遇,聚焦國家新需求,謀劃工程教育新發(fā)展,審議通過《新工科研究與實(shí)踐項(xiàng)目指南》,提出新工科建設(shè)指導(dǎo)意見。
“新工科”人才的特點(diǎn)是學(xué)科交叉與綜合?!靶鹿た啤笔窃谛聲r(shí)期全面創(chuàng)新我國高等工程教育,以適應(yīng)引領(lǐng)新經(jīng)濟(jì)發(fā)展戰(zhàn)略視角出發(fā)提出的新觀點(diǎn)?!靶鹿た啤保‥merging Engineering Education,3E)是基于國家戰(zhàn)略發(fā)展新需求、國際競爭新形勢(shì)、立德樹人新要求而提出的我國工程教育改革方向?!靶鹿た啤钡膬?nèi)涵是以立德樹人為引領(lǐng),以應(yīng)對(duì)變化、塑造未來為建設(shè)理念,以繼承與創(chuàng)新、交叉與融合、協(xié)調(diào)與共享為主要途徑,培養(yǎng)多元化、創(chuàng)新型卓越工程人才。“新”的內(nèi)涵表現(xiàn)在人才具有新素養(yǎng),教育需要新結(jié)構(gòu),教學(xué)要有新方法。
物聯(lián)網(wǎng)是新一代信息技術(shù)的重要組成部分,也是“信息化”時(shí)代的重要發(fā)展階段,它將改變?nèi)祟惖奈磥砑吧罘绞健rduino是一款便捷靈活、方便上手的開源電子原型平臺(tái);大量涌現(xiàn)的創(chuàng)客項(xiàng)目,包括機(jī)器人、無人機(jī)、智能家居控制、3d打印等主要以Arduino為原型或基礎(chǔ)研發(fā)[2]。
實(shí)驗(yàn)項(xiàng)目的設(shè)計(jì)以目前大眾關(guān)心的PM2.5環(huán)境問題為主題,打造一個(gè)簡單環(huán)境數(shù)據(jù)采集、顯示和傳輸系統(tǒng),并借助Wi-Fi和HTTP協(xié)議,將數(shù)據(jù)上傳到手機(jī)上瀏覽,該實(shí)訓(xùn)包含3個(gè)方面的內(nèi)容。
(1)硬件的連接。需要按照硬件接線圖連接各個(gè)傳感器和開發(fā)板,同時(shí)了解每個(gè)引腳的含義,正確接線。
(2)代碼編寫。實(shí)訓(xùn)項(xiàng)目采用Arduino的IDE作為開發(fā)環(huán)境,C/C++為開發(fā)語言。編寫的程序被編譯成二進(jìn)制文件,燒錄進(jìn)微控制器。為了直觀地看到效果,根據(jù)收集到的數(shù)據(jù),通過控制燈光、聲音等其他裝置反饋。
(3)如何通信。通過串口通信,將收集到的數(shù)據(jù)上傳到PC機(jī)器上進(jìn)一步分析。通過Wi-Fi,將收集到的數(shù)據(jù)傳送到手機(jī),實(shí)現(xiàn)移動(dòng)端瀏覽。
在實(shí)際的項(xiàng)目實(shí)訓(xùn)中,主開發(fā)板可以選用NodeMCU(ESP 8266),NodeMCU帶有的Wi-Fi具有接入點(diǎn)(AP)模式,通過它可以創(chuàng)建無線LAN,任何支持Wi-Fi的設(shè)備都可以連接,見圖1。
圖1 以 NodeMCU作為接入點(diǎn)連接其他設(shè)備
可以將NodeMCU當(dāng)成一個(gè)HTTP服務(wù)器,讓所有與之連接的Wi-Fi設(shè)備獲取相應(yīng)的信息。同時(shí)注意,這樣的通訊是雙向的,也可以通過連接NodeMCU設(shè)備,向它發(fā)出控制信號(hào),使NodeMCU按照控制信號(hào),對(duì)連接在其上的傳感器產(chǎn)生作用。在這個(gè)案例的最后,將通過在NodeMCU上安裝MQTT客戶端完成與IoT(物聯(lián)網(wǎng))的互聯(lián)。MQTT(Message Queuing Telemetry Transport,消息隊(duì)列遙測(cè)傳輸)是IBM開發(fā)的輕量級(jí)的基于發(fā)布—訂閱消息傳遞協(xié)議[3]。該協(xié)議支持所有平臺(tái),幾乎可以把所有聯(lián)網(wǎng)物品和外部連接起來,被用來當(dāng)做傳感器和制動(dòng)器(比如通過Twitter讓房屋聯(lián)網(wǎng))的通信協(xié)議。例如,如果溫度傳感器發(fā)布“溫度”主題的溫度數(shù)據(jù)(消息),那么訂閱了“溫度”主題的客戶就可以獲得如上所示的溫度數(shù)據(jù)。MQTT廣泛應(yīng)用于物聯(lián)網(wǎng)嵌入式應(yīng)用,每個(gè)傳感器都連接到服務(wù)器,并可以通過互聯(lián)網(wǎng)控制。NodeMCU是一個(gè)開源的物聯(lián)網(wǎng)平臺(tái),這是一個(gè)運(yùn)行在Espressif Systems的ESP8266 Wi-Fi SoC上的固件,具有可用的物聯(lián)網(wǎng)應(yīng)用程序易于構(gòu)建的無線網(wǎng)絡(luò)。
最終,該項(xiàng)目通過學(xué)習(xí)不同感應(yīng)器采集數(shù)據(jù)、發(fā)布數(shù)據(jù)以及遠(yuǎn)程控制設(shè)備等完成實(shí)訓(xùn),所需知識(shí)涉及計(jì)算機(jī)硬件及計(jì)算機(jī)軟件等方面,將軟件知識(shí)與硬件知識(shí)相結(jié)合,培養(yǎng)學(xué)生的思維與動(dòng)手能力。通過項(xiàng)目學(xué)生可以學(xué)到以下幾點(diǎn):①物聯(lián)網(wǎng)和Arduino行業(yè)相關(guān)知識(shí),Arduino在創(chuàng)客世界的應(yīng)用;②C語言在Arduino上的應(yīng)用;③物聯(lián)網(wǎng)采集數(shù)據(jù)的方法和原理,各種傳感器的連接和使用。
本案例給定學(xué)生一個(gè)迷宮類游戲,其中涉及矩陣的相關(guān)知識(shí)以及最短路徑的尋路算法,本案例用到了A*算法[4],該算法是一種靜態(tài)路網(wǎng)求解最短路徑最有效的直接搜索方法,被廣泛應(yīng)用于游戲AI的開發(fā)與人工智能領(lǐng)域。
學(xué)生以此游戲?yàn)槟0?,在此基礎(chǔ)上進(jìn)行創(chuàng)新,在訓(xùn)練學(xué)生開發(fā)小游戲基本能力的同時(shí),培養(yǎng)學(xué)生的創(chuàng)新思維能力,提高學(xué)習(xí)編程興趣。游戲主界面見圖2,主角是一只羊駝,羊駝從屏幕左邊某一位置出發(fā),一路經(jīng)過各種障礙物,在限定的步數(shù)內(nèi)到達(dá)終點(diǎn)(圖中房子),即為游戲的勝利,最終游戲的評(píng)分會(huì)根據(jù)游戲的時(shí)間與所剩步數(shù)計(jì)算得出。在游戲中可以設(shè)置多種障礙物,羊駝只能有上下左右4個(gè)方向的操作。每關(guān)限定的步數(shù)是根據(jù)計(jì)算機(jī)自動(dòng)尋路得到的最少步數(shù)加上關(guān)卡難度相應(yīng)的步數(shù)得到的,這樣確保游戲能夠順利進(jìn)行。例如游戲初始設(shè)定難度系數(shù)為10,A*算法算出起點(diǎn)到終點(diǎn)的最少步數(shù)為20,那么在游戲界面上顯示的剩余步數(shù)就是30。游戲開發(fā)的編程語言采用C++語言,圖形界面繪制用到了EasyX庫函數(shù)。
學(xué)生以團(tuán)隊(duì)的形式進(jìn)行開發(fā),通過完成該案例,熟悉整個(gè)軟件開發(fā)流程。開發(fā)平臺(tái)為Windows7或Windows10系統(tǒng),使用Visual Studio 2013及以上版本,要求有需求分析報(bào)告、軟件設(shè)計(jì)報(bào)告、測(cè)試報(bào)告、總結(jié)報(bào)告。最后進(jìn)行驗(yàn)收答辯。
圖2 游戲界面示意圖
程序要求完成如下基本功能:繪制地圖,設(shè)置障礙物,移動(dòng)迷宮里的“小人”,實(shí)現(xiàn)路徑提示(顯示通道)功能,實(shí)現(xiàn)計(jì)時(shí)功能,實(shí)現(xiàn)計(jì)步、計(jì)分功能,實(shí)現(xiàn)播放背景音樂功能。進(jìn)一步,可以完成如下較高要求的功能:添加“多重障礙”功能,添加“錘子”敲擊障礙物功能,添加“暢通無阻”功能,添加“排行榜”功能,添加“自選模式”生成地圖功能。
本案例針對(duì)非計(jì)算機(jī)專業(yè)學(xué)生,結(jié)合新工科背景設(shè)計(jì),通過讓學(xué)生完成一個(gè)小游戲的開發(fā),引入AI概念,其內(nèi)容還涉及圖像的處理、游戲動(dòng)畫的方法及游戲常用算法等方面。該游戲還可以進(jìn)一步擴(kuò)展,培養(yǎng)學(xué)生的創(chuàng)新思維能力,主要培養(yǎng)學(xué)生使用計(jì)算機(jī)解決問題的能力。
互聯(lián)網(wǎng)收集數(shù)據(jù)并分析,即數(shù)據(jù)(或大數(shù)據(jù))的采集、整理、分析和呈現(xiàn)也是新工科的熱點(diǎn)之一。本項(xiàng)目設(shè)計(jì)了一個(gè)問卷調(diào)查系統(tǒng),項(xiàng)目的任務(wù)是基于ASP.Net框架開發(fā)在線問卷調(diào)查分析系統(tǒng)。在滿足傳統(tǒng)系統(tǒng)的問卷管理、問卷發(fā)布、問卷結(jié)果統(tǒng)計(jì)功能基礎(chǔ)上,結(jié)合數(shù)據(jù)分析方法和可視化技術(shù),分析收集的問卷數(shù)據(jù),并通過可視化方法給予個(gè)性化的預(yù)測(cè)和反饋。
首先本系統(tǒng)支持多種類型的問卷調(diào)查,單選題目是基礎(chǔ)題型。管理員用戶對(duì)系統(tǒng)有全權(quán)限,即能夠管理用戶,包括用戶的創(chuàng)建和刪除、用戶權(quán)限管理;管理所有問卷,包括問卷/題目的增、刪、改。普通用戶只能進(jìn)行問卷選擇、問卷作答和問卷預(yù)覽,并在提交后得到系統(tǒng)的可視化反饋。反饋的內(nèi)容包括3方面:①能夠查看該問卷每道題目答案的整體統(tǒng)計(jì)分布;②獲得針對(duì)當(dāng)前答卷對(duì)某主題的預(yù)測(cè)結(jié)果,例如對(duì)就業(yè)取向預(yù)測(cè)等;③支持普通用戶通過主動(dòng)反饋機(jī)制重新獲得預(yù)測(cè)結(jié)果。例如,根據(jù)調(diào)查問卷獲取某用戶的個(gè)人信息和行為習(xí)慣、預(yù)測(cè)該用戶的畢業(yè)起薪等級(jí)。用戶可以通過重新答題,改變某些問卷題目的選項(xiàng)并提交,查看能否提升預(yù)測(cè)等級(jí)。根據(jù)預(yù)測(cè)結(jié)果的主動(dòng)性探索,啟發(fā)調(diào)整自身狀態(tài)的思考。
項(xiàng)目使用ASP.Net技術(shù)和C#語言實(shí)現(xiàn)一個(gè)B/S框架的動(dòng)態(tài)網(wǎng)站,開發(fā)模式要求使用傳統(tǒng)的事件驅(qū)動(dòng)開發(fā)模式Web Forms。以圖3為例,系統(tǒng)功能應(yīng)包含但不限于以下幾種(+較高層次的功能)。
圖3 問卷調(diào)查系統(tǒng)示例
(1)用戶管理:用戶角色分配,權(quán)限管理,用戶登錄;用戶注冊(cè),用戶注銷,修改密碼。
(2)問卷管理:問卷的創(chuàng)建、編輯、發(fā)布、刪除、預(yù)覽,自動(dòng)組卷,問卷導(dǎo)出。
(3)結(jié)果可視化:問卷結(jié)果統(tǒng)計(jì),圖形展示,可視化工具庫(echarts) ,解釋分析結(jié)果。
(4)調(diào)查問卷分析:通過RestAPI調(diào)用指定數(shù)據(jù)分析模型接口實(shí)現(xiàn)。
(5)前端頁面設(shè)計(jì):登錄頁面、功能頁面、模板設(shè)計(jì)、樣式設(shè)計(jì)、導(dǎo)航設(shè)計(jì)。
最后,系統(tǒng)應(yīng)功能穩(wěn)定、界面美觀、用戶體驗(yàn)友好。
具體開發(fā)時(shí),操作系統(tǒng)要求Windows 7或Windows 10,使用Visual Studio 2013或以上版本、使用SQL Server 2012 或以上版本以及網(wǎng)頁制作工具Hbuilder。調(diào)查問卷分析系統(tǒng)要求學(xué)生以團(tuán)隊(duì)形式完成,每個(gè)團(tuán)隊(duì)參與人數(shù)不超過3人。團(tuán)隊(duì)成員在項(xiàng)目開發(fā)過程中必須有明確的角色和任務(wù),要求學(xué)生通過完成本項(xiàng)目,了解Web應(yīng)用軟件的架構(gòu)和開發(fā)流程,設(shè)計(jì)并撰寫需求分析文檔、詳細(xì)設(shè)計(jì)說明書、數(shù)據(jù)庫設(shè)計(jì)文檔、產(chǎn)品測(cè)試報(bào)告。需要掌握的基礎(chǔ)技能有:①學(xué)習(xí)了解Web應(yīng)用程序基礎(chǔ)及動(dòng)態(tài)網(wǎng)頁的基本開發(fā)流程,熟練使用項(xiàng)目開發(fā)環(huán)境Visual Studio,掌握Web程序調(diào)試方法,運(yùn)用ASP.Net控件應(yīng)用技巧和事件處理編程,實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁的功能;②掌握SQL Server數(shù)據(jù)庫的配置及常規(guī)操作,學(xué)習(xí)設(shè)計(jì)思路和方法,設(shè)計(jì)數(shù)據(jù)表;③掌握ASP.net的數(shù)據(jù)庫連接及調(diào)用方法,將調(diào)查問卷與數(shù)據(jù)庫連接,掌握ASP.net的數(shù)據(jù)庫訪問技術(shù),針對(duì)調(diào)查問卷網(wǎng)站對(duì)數(shù)據(jù)庫進(jìn)行增、刪、改、查、統(tǒng)計(jì)操作;④了解當(dāng)今主流的數(shù)據(jù)可視化方法,在傳統(tǒng)電子表格顯示的基礎(chǔ)上,盡可能使統(tǒng)計(jì)、分析結(jié)果圖形化。
本案例首先是核心能力培養(yǎng),即工科類學(xué)生的計(jì)算機(jī)問題求解能力,要求具有編寫千行以上代碼的能力,具有團(tuán)隊(duì)合作意識(shí),具有自主分析問題和分解問題的能力;其次是提升能力培養(yǎng),即新工科背景下的以信息技術(shù)和計(jì)算機(jī)應(yīng)用融合帶來的問題求解能力;從信息技術(shù)的角度,調(diào)查問卷系統(tǒng)是獲取數(shù)據(jù)的手段,當(dāng)數(shù)據(jù)以一定目標(biāo)被分析、被挖掘后就能變成有價(jià)值的信息,從而啟發(fā)探索式的分析。
由于課程是面向全校的計(jì)算機(jī)實(shí)訓(xùn),因此授課的專業(yè)非常寬泛。就工科而言,從大類上講,包含機(jī)類和電類;從傳統(tǒng)的專業(yè)分類上看,包含機(jī)械、能動(dòng)、電氣、電子、通信、計(jì)算機(jī)等多個(gè)專業(yè)。這3個(gè)案例在實(shí)際實(shí)施的時(shí)候都是按40~60個(gè)學(xué)時(shí)設(shè)計(jì),其中包括講述基礎(chǔ)知識(shí)和背景知識(shí)的時(shí)間。參與1.1和1.2的學(xué)生具有C語言的基本知識(shí),參與1.3的學(xué)生學(xué)習(xí)過基本的C#程序設(shè)計(jì)[5]。整個(gè)項(xiàng)目可以用10天時(shí)間(2周)連續(xù)完成;每天需要花費(fèi)3~6學(xué)時(shí),其中前5天學(xué)習(xí)相關(guān)的基礎(chǔ)知識(shí),如果學(xué)生已經(jīng)具備,則項(xiàng)目時(shí)間可以縮短至1周。以1.3 的案例為例,2周的安排見表1。
表1 實(shí)訓(xùn)方案詳細(xì)計(jì)劃
利用暑期小學(xué)期的時(shí)間,我們對(duì)全校大學(xué)一年級(jí)的工科學(xué)生約1 200名展開了上述案例的實(shí)訓(xùn)工作。根據(jù)學(xué)生前期的先修課情況,我們將學(xué)生分為了3類:①前期學(xué)習(xí)過C語言;②學(xué)習(xí)過C++;③學(xué)習(xí)過C#。最后的實(shí)習(xí)答辯以及發(fā)放的調(diào)查問卷顯示:①近83%的學(xué)生認(rèn)為自己通過本次實(shí)訓(xùn)提高了自己的計(jì)算機(jī)能力;②92%的學(xué)生認(rèn)為項(xiàng)目設(shè)計(jì)非常有吸引力;③84%的學(xué)生認(rèn)為通過這些項(xiàng)目真正了解了計(jì)算機(jī)在現(xiàn)實(shí)生活中的作用。
面向非計(jì)算機(jī)專業(yè)的工科領(lǐng)域,計(jì)算機(jī)基礎(chǔ)實(shí)踐教學(xué)面臨2個(gè)問題:①課堂和實(shí)際脫節(jié),課堂上講述的內(nèi)容和實(shí)際生活中的應(yīng)用無法聯(lián)系起來;②如何開展新工科的教學(xué)。西安交通大學(xué)自2015年起,所有工科學(xué)生利用暑期小學(xué)期進(jìn)行計(jì)算機(jī)實(shí)訓(xùn),至今已經(jīng)是第4年了。每年大約有一千余名工科學(xué)生參與為期10天、每天6個(gè)小時(shí)的實(shí)訓(xùn)。在2015和2016年的實(shí)訓(xùn)中,圍繞計(jì)算思維和計(jì)算機(jī)能力培養(yǎng),側(cè)重了對(duì)學(xué)生編程能力的提高。在新工科的戰(zhàn)略提出后,筆者迅速和企業(yè)合作,重新制定和規(guī)劃了實(shí)訓(xùn)內(nèi)容。通過這3個(gè)案例的實(shí)踐,學(xué)生初步明白了生活用的智能開關(guān)、自動(dòng)駕駛等是怎么實(shí)現(xiàn)的,在此基礎(chǔ)上創(chuàng)作了許多創(chuàng)新的作品,在課堂的學(xué)習(xí)內(nèi)容和計(jì)算機(jī)在實(shí)際生活中的應(yīng)用之間搭起了一座橋梁,做到了學(xué)以致用,取得了良好的實(shí)訓(xùn)效果。通過實(shí)訓(xùn),激發(fā)了學(xué)生學(xué)習(xí)計(jì)算機(jī)的興趣,將新工科的教育理念落到了實(shí)處。