劉 越 莫方政
文章編號(hào):1672-5913(2009)08-0126-03
摘要:計(jì)算機(jī)應(yīng)用能力的培養(yǎng)以程序設(shè)計(jì)為主線,使學(xué)生掌握基于計(jì)算機(jī)的問(wèn)題求解策略和基本的程序設(shè)計(jì)方法,深入理解計(jì)算機(jī)系統(tǒng)。本文分析了機(jī)器人平臺(tái)在計(jì)算機(jī)基礎(chǔ)課程中的適用性,敘述了如何在計(jì)算機(jī)基礎(chǔ)課程中利用LEGO機(jī)器人和Robot C編程語(yǔ)言輔助程序設(shè)計(jì)入門(mén)教學(xué)。
關(guān)鍵詞:Lego Mindstorms;程序設(shè)計(jì);機(jī)器人
中圖分類號(hào):G642
文獻(xiàn)標(biāo)識(shí)碼:B
1介紹
國(guó)防科技大學(xué)的所有學(xué)生在入學(xué)后都要求學(xué)習(xí)完成“大學(xué)計(jì)算機(jī)基礎(chǔ)”、“程序設(shè)計(jì)基礎(chǔ)”等公共基礎(chǔ)課程。計(jì)算機(jī)公共基礎(chǔ)課程的目標(biāo)是介紹計(jì)算機(jī)和信息技術(shù)的概念,講授利用計(jì)算機(jī)進(jìn)行問(wèn)題求解的方法。在武器裝備中,高科技含量越來(lái)越高,作為未來(lái)的軍隊(duì)指揮員,學(xué)生必須理解所使用的計(jì)算機(jī)設(shè)備的長(zhǎng)處和弱點(diǎn),只有深入理解計(jì)算機(jī)系統(tǒng)的工作原理,才能在戰(zhàn)場(chǎng)上最大性能地發(fā)揮它們的作用。計(jì)算機(jī)基礎(chǔ)教育強(qiáng)調(diào)應(yīng)培養(yǎng)學(xué)生適應(yīng)未來(lái)技術(shù)發(fā)展的能力,利用應(yīng)用問(wèn)題培養(yǎng)學(xué)生獨(dú)立思考與合作解決問(wèn)題的能力,使學(xué)生成為終身的計(jì)算學(xué)習(xí)者。大部分學(xué)生在學(xué)完公共基礎(chǔ)課程這兩門(mén)課后可能不再學(xué)習(xí)計(jì)算機(jī)類的課程,這兩門(mén)課要為學(xué)生繼續(xù)學(xué)習(xí)(主要是自學(xué))打下扎實(shí)的基礎(chǔ),以便在指揮員崗位上盡快適應(yīng)部隊(duì)數(shù)字化建設(shè)和數(shù)字化戰(zhàn)場(chǎng)環(huán)境的需要。
最近的研究表明,使用機(jī)器人作為教學(xué)工具可以幫助理解計(jì)算機(jī)類課程的基本抽象概念。特別地,Kumar和Meeden指出在本科課程中使用HandyBoard 和LEGO積木作為實(shí)驗(yàn)教學(xué)基礎(chǔ)是可行的。從1990年起,一些本科的計(jì)算機(jī)科學(xué)和計(jì)算機(jī)工程項(xiàng)目開(kāi)始啟動(dòng),用來(lái)建立機(jī)器人實(shí)驗(yàn)室輔助教學(xué),或基于HandyBoard/LEGO或基于Mobile Robot平臺(tái)。
1996年LEGO公司發(fā)布了Mindstorms機(jī)器人開(kāi)發(fā)和編程工具包。由于與HandyBoard設(shè)計(jì)相關(guān),Mindstorms平臺(tái)最初并不適用于高等教育。那時(shí)的SIGCSE(美國(guó)計(jì)算機(jī)協(xié)會(huì)計(jì)算科學(xué)教育專業(yè)組)和ITiCSE文獻(xiàn)中同樣缺乏對(duì)Mindstorm是否支持計(jì)算機(jī)教育的研究。造成這種情況的原因是LEGO機(jī)器人缺乏與高等教育相當(dāng)?shù)某绦蛟O(shè)計(jì)環(huán)境,缺乏對(duì)大學(xué)水平的程序設(shè)計(jì)語(yǔ)言C或Java的支持。然而,在過(guò)去十幾年來(lái),Mindstorms使用者群體日益壯大和活躍,他們完成了相當(dāng)多的工作,如為C和Java開(kāi)發(fā)程序設(shè)計(jì)環(huán)境,使上面提到的缺點(diǎn)得到了有效的改善,越來(lái)越多的高校選用低價(jià)的LEGO機(jī)器人作為教學(xué)平臺(tái):
?(1) 西點(diǎn)軍校在“信息技術(shù)和程序設(shè)計(jì)”基礎(chǔ)課程CS105中利用LEGO Mindstorm 機(jī)器人作為學(xué)員主動(dòng)學(xué)習(xí)環(huán)境中的重要組成;
?(2) 加州州立大學(xué)在課程CECS174中使用物理模型來(lái)加深學(xué)生對(duì)問(wèn)題求解概念和程序設(shè)計(jì)結(jié)構(gòu)的理解,使用LEGO機(jī)器人作為教學(xué)實(shí)驗(yàn)平臺(tái);
?(3) 麻省理工學(xué)院電子技術(shù)和計(jì)算機(jī)科學(xué)系特別開(kāi)設(shè)了6.270自主機(jī)器人設(shè)計(jì)課程,學(xué)生在該課程中通過(guò)搭建物理模型并編程控制它,最終以比賽的形式完成實(shí)驗(yàn);
?(4) 卡耐基梅隆大學(xué)作為第三方開(kāi)發(fā)了Robot C程序設(shè)計(jì)環(huán)境,Robot C已成為L(zhǎng)EGO機(jī)器人最流行的程序設(shè)計(jì)語(yǔ)言之一。
到2006年LEGO公司發(fā)布Mindstorms NXT機(jī)器人套裝時(shí),機(jī)器人在計(jì)算機(jī)教育中的作用已得到普遍認(rèn)同。本文主要介紹作者在“大學(xué)計(jì)算機(jī)基礎(chǔ)”課程中使用LEGO機(jī)器人的教學(xué)經(jīng)驗(yàn)。
2 “大學(xué)計(jì)算機(jī)基礎(chǔ)”課程組織
“大學(xué)計(jì)算機(jī)基礎(chǔ)”包括計(jì)算機(jī)基本知識(shí)和基本操作兩個(gè)部分,要求學(xué)生熟練掌握計(jì)算機(jī)的使用,培養(yǎng)計(jì)算機(jī)應(yīng)用能力。
本年度我們選擇兩個(gè)教學(xué)班實(shí)施雙語(yǔ)教學(xué),教材選用《New Perspectives on Computer Concepts》第十版,課程安排如下:
實(shí)踐教學(xué)環(huán)節(jié)是這門(mén)課程成敗的關(guān)鍵,學(xué)生編程能力培養(yǎng)必須在實(shí)踐中進(jìn)行,同時(shí)在實(shí)踐中檢驗(yàn),而這種能力的獲得正是課程教學(xué)的主要目的。本學(xué)期實(shí)施的大多數(shù)實(shí)驗(yàn)由外版教材提供,外版教材自帶的光盤(pán)同時(shí)提供了軟件,可以對(duì)學(xué)生的實(shí)驗(yàn)和作業(yè)情況進(jìn)行跟蹤,使教師能夠清楚了解每個(gè)學(xué)生對(duì)學(xué)習(xí)內(nèi)容的掌握情況,提供工具對(duì)所有實(shí)驗(yàn)和作業(yè)情況進(jìn)行統(tǒng)計(jì)分析。
3基于LEGO 機(jī)器人的程序設(shè)計(jì)教與學(xué)
依據(jù)國(guó)防科技大學(xué)2006年修訂的“大學(xué)計(jì)算機(jī)基礎(chǔ)”課程標(biāo)準(zhǔn),程序設(shè)計(jì)部分的教學(xué)要求如下:
(1) 計(jì)算機(jī)程序基本概念:了解計(jì)算機(jī)程序的概念和功能,理解程序控制概念;
(2) 計(jì)算機(jī)程序表示:理解計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言、程序編譯的基本概念;
(3) 程序設(shè)計(jì)的一般過(guò)程:了解計(jì)算機(jī)程序設(shè)計(jì)的一般過(guò)程;
(4) 軟件開(kāi)發(fā)的一般方法:理解軟件的基本概念,了解軟件生存周期的概念及軟件的開(kāi)發(fā)方法。
雖然程序設(shè)計(jì)在“大學(xué)計(jì)算機(jī)基礎(chǔ)”中所占學(xué)時(shí)并不多,我們依然決定依托人工智能實(shí)驗(yàn)室建設(shè)購(gòu)置的60套Lego Mindstorms NXT和RobotC程序設(shè)計(jì)語(yǔ)言來(lái)設(shè)計(jì)整個(gè)程序設(shè)計(jì)入門(mén)的教學(xué)過(guò)程,讓學(xué)生通過(guò)搭建實(shí)實(shí)在在的物理模型并編程控制它的運(yùn)動(dòng),來(lái)加深學(xué)生對(duì)計(jì)算機(jī)工作原理的理解。
3.1LEGO Mindstorms NXT
通過(guò)機(jī)器人的運(yùn)動(dòng)來(lái)理解程序和程序設(shè)計(jì)是感性記憶與理性理解的結(jié)合,能夠使學(xué)生更快的掌握程序設(shè)計(jì)的精髓,達(dá)到教學(xué)目的。LEGO Mindstorms NXT 9797機(jī)器人套裝售價(jià)不超過(guò)250美元,已被歐美一流高校普遍使用于計(jì)算機(jī)基礎(chǔ)教育、人工智能教育中。
LEGO NXT機(jī)器人硬件是由NXT 32位控制器、馬達(dá)、傳感器等組成。套裝中包括兩個(gè)碰觸傳感器、一個(gè)超聲波傳感器、一個(gè)光電傳感器和一個(gè)聲音傳感器,馬達(dá)中內(nèi)置了角度傳感器,如圖1所示。
圖1 LEGO Mindstorms NXT、傳感器及學(xué)生搭建的部分模型
LEGO機(jī)器人由于平臺(tái)的開(kāi)放性擁有龐大用戶群,軟件開(kāi)發(fā)環(huán)境豐富,幾乎支持所有主流的程序設(shè)計(jì)語(yǔ)言。常用的語(yǔ)言編譯環(huán)境包括Robolab、微軟的Microsoft Robotics Studio、leJOS NXJ (Java)、NXC、Robot C,比較之后我們選擇了由卡耐基梅隆大學(xué)開(kāi)發(fā)的Robot C,理由如下:
(1)Robot C是一種基于C語(yǔ)言的機(jī)器人開(kāi)發(fā)環(huán)境,而國(guó)防科技大學(xué)的程序設(shè)計(jì)基礎(chǔ)課程是基于C的,保證了教學(xué)的連貫性,這一點(diǎn)對(duì)于大一的新生來(lái)講相當(dāng)重要;
(2)Robot C擁有編寫(xiě)和調(diào)試程序的所有功能,有成熟
的機(jī)器人程序設(shè)計(jì)調(diào)試工具;
(3) 同其他幾種流行的機(jī)器人語(yǔ)言相比,Robot C是效率最高的一種語(yǔ)言,并且具備功能齊全、界面簡(jiǎn)潔實(shí)用等優(yōu)點(diǎn)。
3.2課堂教學(xué)
在“大學(xué)計(jì)算機(jī)基礎(chǔ)”課程教學(xué)中使用LEGO機(jī)器人始于2006年,由于數(shù)量有限,只用于課堂演示。
依據(jù)課程標(biāo)準(zhǔn),課堂講授的主要內(nèi)容如下:
(1) 程序和程序設(shè)計(jì)的基本概念:什么是程序,程序設(shè)計(jì)和程序設(shè)計(jì)語(yǔ)言,以最簡(jiǎn)單的機(jī)器人程序講述程序設(shè)計(jì)的一般過(guò)程;
圖2 2006年課堂演示部分幻燈片(編程語(yǔ)言是NQC)
(2) 程序設(shè)計(jì)的基本思想:程序設(shè)計(jì)語(yǔ)言的分類、編譯與解釋;
(3) 結(jié)構(gòu)化程序設(shè)計(jì):順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu);如在講解循環(huán)結(jié)構(gòu)時(shí),設(shè)計(jì)機(jī)器人案例,要求機(jī)器人完成沿正方形巡邏任務(wù),逐步演示從問(wèn)題分析到算法描述直到程序編寫(xiě)和調(diào)試過(guò)程,直觀形象地講解循環(huán)概念;
(4) 軟件開(kāi)發(fā)的一般方法:什么是軟件?什么是軟件生存周期?
3.3實(shí)驗(yàn)項(xiàng)目示例
程序設(shè)計(jì)實(shí)驗(yàn)分組進(jìn)行,兩人一組設(shè)備,合作完成一組實(shí)驗(yàn)項(xiàng)目,實(shí)驗(yàn)項(xiàng)目示例如下:
實(shí)驗(yàn)項(xiàng)目:循環(huán)結(jié)構(gòu),分為三個(gè)任務(wù),其中第三個(gè)任務(wù)要用到分支結(jié)構(gòu)。
任務(wù)一:下載示例程序(正方形巡邏)并運(yùn)行,熟悉編程環(huán)境,熟悉編程與調(diào)試過(guò)程;完成步驟如下:
(1) 準(zhǔn)備:通過(guò)USB連接線連接機(jī)器人與計(jì)算機(jī)。注意機(jī)器小車要在開(kāi)機(jī)狀態(tài)下;
(2) 編譯:打開(kāi)示例程序,該示例程序以類C語(yǔ)言編寫(xiě),需經(jīng)過(guò)編譯翻譯成機(jī)器人能理解的代碼形式;
(3) 下載:T將示例程序下載到NXT機(jī)器人;
(4) 運(yùn)行:Take the robot over to 將機(jī)器人放置到場(chǎng)地中,并按下運(yùn)行按鈕,觀察;
(5) 閱讀程序:回到計(jì)算機(jī)上閱讀程序,嘗試?yán)斫猓?/p>
(6) 小車前進(jìn),觸碰(或光電檢測(cè)到障礙)停車。
任務(wù)二:修改示例程序,使機(jī)器人按六角形軌跡前進(jìn)。
任務(wù)三:機(jī)器人一直沿六角形軌跡巡邏,直到檢測(cè)到障礙或碰到障礙。
4結(jié)論
計(jì)算機(jī)科學(xué)教育界普遍認(rèn)為程序設(shè)計(jì)的入門(mén)教育非常困難。在計(jì)算機(jī)基礎(chǔ)課程中使用機(jī)器人平臺(tái),學(xué)生可以通過(guò)機(jī)器人的運(yùn)動(dòng)來(lái)理解程序和算法,機(jī)器人平臺(tái)為學(xué)生提供了編寫(xiě)程序的實(shí)實(shí)在在的反饋。更進(jìn)一步,編程和調(diào)試時(shí)的物理約束使得學(xué)生清楚認(rèn)識(shí)到設(shè)計(jì)和規(guī)劃的重要性。
我們的方法是將程序設(shè)計(jì)實(shí)驗(yàn)處理成機(jī)器人任務(wù),在實(shí)驗(yàn)室中,學(xué)生構(gòu)建機(jī)器人,并編程完成任務(wù)。通過(guò)構(gòu)建物理實(shí)體并編程控制它,學(xué)生有機(jī)會(huì)直接接觸計(jì)算機(jī)科學(xué)中的許多中心問(wèn)題,包括軟件硬件間交互、存儲(chǔ)程序控制工作原理、程序的編制與調(diào)試等。從學(xué)生完成的程序設(shè)計(jì)實(shí)驗(yàn)來(lái)看,他們?cè)诶斫忭樞?、選擇和循環(huán)結(jié)構(gòu)上要好于上一屆學(xué)生。更重要的是,機(jī)器人平臺(tái)對(duì)學(xué)生來(lái)說(shuō)是個(gè)極大的激勵(lì),學(xué)生的學(xué)習(xí)過(guò)程快樂(lè),并且很有成就感,同時(shí)教學(xué)質(zhì)量得到進(jìn)一步提高。
參考文獻(xiàn):
[1] Jerry Schumacher, Don Welch, David Raymond. Teaching Introductory Programming, Problem Solving and Information Technology with Robots at West Point[C],31st ASEE/IEEE Frontiers in Education Conference, October 10 - 13, 2001 Reno,NV.
[2] Kumar. D., and Meeden, L. A robot laboratory for teaching artificial intelligence[C]. In Proceedings of the 29 th SIGCSE Technical Symposium on Computer Science Education (1998).
[3] Martin, F. The MIT HandyBoard Project, 2000[EB/OL]. lcs.www.media.mit.edu/ groups/el/Projects/ handyboard, Sept. 6, 2001.
[4] Beer, R. D., Chiel, H. J., and Drushel, R. F. "Using autonomous robotics to teach science and engineering" [J]. Communications of the ACM, Vol. 42 (6) June 1999, pp. 85- 92.
[5] Frank Klassner. A Case Study of LEGO Mindstorms Suitability for Artificial Intelligence and Robotics Courses at the College Level[C]. SIGCSE'02, February 27- March 3, 2002, Covington, Kentucky, USA.
[6] C. E. Van Lent. Using Robot Platforms to Enhance Concept Learning in Introductory CS Courses, in AAAI Spring Symposium on Robotics in Education 2004: Stanford, CA.
[7] http://web.mit.edu/6.270/www/contestants/.
[8] http://www.robotc.net/.
[9] June Jamrich Parsons and Dan Oja. New Perspectives on Computer Concepts[M]. 北京:機(jī)械工業(yè)出版社,2008.