舒澤芳等
摘 要: “C語(yǔ)言程序設(shè)計(jì)”課程是本科院校機(jī)械設(shè)計(jì)制造及其自動(dòng)化專業(yè)重要的計(jì)算機(jī)程序語(yǔ)言課程。在傳統(tǒng)教學(xué)中,教學(xué)內(nèi)容為語(yǔ)法、程序結(jié)構(gòu)及簡(jiǎn)單算法,教學(xué)方法基本采用教師課堂講授知識(shí)點(diǎn),學(xué)生進(jìn)行實(shí)驗(yàn)訓(xùn)練。整個(gè)教學(xué)過(guò)程未與機(jī)制專業(yè)特點(diǎn)相結(jié)合。項(xiàng)目組采用引入專業(yè)實(shí)例、介紹關(guān)聯(lián)課程等措施對(duì)傳統(tǒng)教學(xué)過(guò)程進(jìn)行改革,深化學(xué)生對(duì)C語(yǔ)言基本概念及應(yīng)用背景的理解,增強(qiáng)其應(yīng)用C語(yǔ)言解決實(shí)際問題的能力,教學(xué)效果良好。
關(guān)鍵詞: 機(jī)械設(shè)計(jì)制造及其自動(dòng)化 C語(yǔ)言程序設(shè)計(jì) 教學(xué)改革
C語(yǔ)言應(yīng)用靈活方便,功能強(qiáng)大,是國(guó)際上應(yīng)用廣泛的計(jì)算機(jī)高級(jí)語(yǔ)言之一,同時(shí)也是眾多理工科類專業(yè)的必修課程。然而,如何結(jié)合理工科專業(yè)自身特點(diǎn)進(jìn)行“C語(yǔ)言程序設(shè)計(jì)”課程教學(xué),使之既遵循課程教學(xué)的基本原則和方法,又融入專業(yè)背景是目前“C語(yǔ)言程序設(shè)計(jì)”課程教學(xué)改革研究的熱點(diǎn)[1]。
1.機(jī)制專業(yè)“C語(yǔ)言程序設(shè)計(jì)”課程教學(xué)現(xiàn)狀
機(jī)械設(shè)計(jì)制造及其自動(dòng)化專業(yè)的“C語(yǔ)言程序設(shè)計(jì)”通常開設(shè)在大一下或大二上,授課54學(xué)時(shí),其基本教學(xué)內(nèi)容為基本語(yǔ)法、程序結(jié)構(gòu)和簡(jiǎn)單算法及數(shù)據(jù)結(jié)構(gòu),教學(xué)方法上基本采用教師講授各知識(shí)點(diǎn),學(xué)生上機(jī)進(jìn)行驗(yàn)證性實(shí)驗(yàn)。相比計(jì)算機(jī)類專業(yè)教學(xué)而言,機(jī)制專業(yè)學(xué)生沒有系統(tǒng)地安排計(jì)算機(jī)類課程的學(xué)習(xí),C語(yǔ)言是其學(xué)習(xí)的首個(gè)編程語(yǔ)言,學(xué)習(xí)難度大;由于缺乏“算法與數(shù)據(jù)結(jié)構(gòu)”及“編譯原理”等后續(xù)課程的支撐[2],學(xué)生進(jìn)行真實(shí)項(xiàng)目編程實(shí)踐的機(jī)會(huì)較少。綜上所述,導(dǎo)致目前機(jī)制專業(yè)“C語(yǔ)言程序設(shè)計(jì)”課程教學(xué)中存在以下三個(gè)問題:
1.1對(duì)C語(yǔ)言的地位和作用認(rèn)知不全面。
由于沒有接觸商業(yè)化編程項(xiàng)目,機(jī)制專業(yè)大部分學(xué)生認(rèn)為C語(yǔ)言比較陳舊,不及JAVA、Python、C#等語(yǔ)言流行度高,僅認(rèn)為C語(yǔ)言是國(guó)家計(jì)算機(jī)等級(jí)考試中的一門語(yǔ)言,沒有全面認(rèn)識(shí)C語(yǔ)言的地位和作用。在純軟件編程設(shè)計(jì)方面,C語(yǔ)言在TIOBE編程語(yǔ)言排名中一直位于前三位,是目前最流行的iOS/Android的底層核心開發(fā)語(yǔ)言。同時(shí)由于C語(yǔ)言具備位操作,使得其在硬件控制方面有得天獨(dú)厚的優(yōu)勢(shì),是控制硬件的基本工具,對(duì)于機(jī)制專業(yè)的單片機(jī)技術(shù)、數(shù)控編程、機(jī)器人技術(shù)、PLC原理及應(yīng)用等核心課程學(xué)習(xí)極其重要。
1.2教學(xué)內(nèi)容聯(lián)系實(shí)際不緊密。
傳統(tǒng)機(jī)制專業(yè)“C語(yǔ)言程序設(shè)計(jì)”課程教學(xué)內(nèi)容過(guò)多集中在語(yǔ)法和程序結(jié)構(gòu)的講解,上機(jī)編程實(shí)驗(yàn)則集中在驗(yàn)證性實(shí)驗(yàn)方面,既缺乏對(duì)程序設(shè)計(jì)中重要思想和調(diào)試技巧的講解和訓(xùn)練,又缺乏對(duì)重要數(shù)據(jù)結(jié)構(gòu)和算法的詳細(xì)講解,使學(xué)生在解決實(shí)際問題時(shí)缺乏經(jīng)驗(yàn)和技巧。同時(shí)在教材選擇方面,“C語(yǔ)言程序設(shè)計(jì)”教材基本上是通用教材,并沒有區(qū)分不同專業(yè)的需求和特點(diǎn),使得機(jī)制專業(yè)學(xué)生在學(xué)習(xí)中無(wú)法接觸C語(yǔ)言在本專業(yè)中的應(yīng)用實(shí)例,導(dǎo)致大部分學(xué)生缺乏明確的學(xué)習(xí)目的。
1.3傳統(tǒng)教學(xué)方法不適用。
目前在“C語(yǔ)言程序設(shè)計(jì)”課程的教學(xué)方法上通常以語(yǔ)法知識(shí)作為教學(xué)主線,教學(xué)方法仍以灌輸式為主,C語(yǔ)言語(yǔ)法、數(shù)據(jù)結(jié)構(gòu)及簡(jiǎn)單算法的理論性較強(qiáng),傳統(tǒng)講授方法形式單一、啟發(fā)性及對(duì)比性弱,學(xué)生未能成為學(xué)習(xí)的主體,學(xué)生理解掌握難度大。同時(shí)由于C語(yǔ)言的語(yǔ)法和結(jié)構(gòu)的靈活性,如果不依托真實(shí)且具有專業(yè)背景的實(shí)例講解,學(xué)習(xí)難度大,就會(huì)極大挫傷學(xué)習(xí)積極性,教學(xué)效果往往事倍功半。
2.基于機(jī)制專業(yè)特色的“C語(yǔ)言程序設(shè)計(jì)”課程教學(xué)改革
針對(duì)機(jī)制專業(yè)“C語(yǔ)言程序設(shè)計(jì)”課程教學(xué)存在的普遍問題,項(xiàng)目組推動(dòng)了一系列教學(xué)改革,并在實(shí)施中不斷改進(jìn)和完善。
2.1增加關(guān)聯(lián)課程介紹環(huán)節(jié),強(qiáng)化C語(yǔ)言的地位與作用。
機(jī)制專業(yè)的“C語(yǔ)言程序設(shè)計(jì)”課改由本院專業(yè)教師承擔(dān),一改過(guò)去由計(jì)算機(jī)專業(yè)老師承擔(dān)的現(xiàn)狀,本院專業(yè)老師既熟悉C語(yǔ)言基本理論,對(duì)于C語(yǔ)言在機(jī)制專業(yè)中的應(yīng)用情況又比較了解,并且具備使用C語(yǔ)言進(jìn)行實(shí)際項(xiàng)目開發(fā)的經(jīng)驗(yàn)。在教學(xué)中可以使C語(yǔ)言和本專業(yè)應(yīng)用更有效地融合。
在“C語(yǔ)言程序設(shè)計(jì)”課程的入門介紹中,將C語(yǔ)言在機(jī)制專業(yè)的各領(lǐng)域的應(yīng)用情況給學(xué)生做梳理和介紹,重點(diǎn)介紹其在單片機(jī)原理及應(yīng)用、機(jī)械設(shè)計(jì)原理、數(shù)控技術(shù)、機(jī)器人控制技術(shù)、PLC原理及應(yīng)用、現(xiàn)代控制工程等課程的應(yīng)用。強(qiáng)化C語(yǔ)言和這些專業(yè)課程之間的聯(lián)系,使學(xué)生認(rèn)識(shí)到C語(yǔ)言對(duì)于這些專業(yè)技術(shù)而言,是重要的編程工具,其實(shí)際編程能力的強(qiáng)弱將直接決定其能否學(xué)習(xí)好上述專業(yè)課程。同時(shí)將C語(yǔ)言和JAVA、Python、C#等其他編程語(yǔ)言從數(shù)據(jù)類型、語(yǔ)法結(jié)構(gòu)、編譯效率、開發(fā)平臺(tái)、商業(yè)應(yīng)用五個(gè)方面進(jìn)行對(duì)比分析,從純計(jì)算機(jī)編程語(yǔ)言的角度向?qū)W生說(shuō)明C語(yǔ)言的特點(diǎn)。以此強(qiáng)化學(xué)生對(duì)C語(yǔ)言地位與作用的認(rèn)識(shí)。
2.2調(diào)整教學(xué)內(nèi)容,強(qiáng)化機(jī)制專業(yè)特色。
C語(yǔ)言的教學(xué)實(shí)例在教學(xué)中至關(guān)重要,是理解C語(yǔ)言基本概念和程序設(shè)計(jì)思路的橋梁,而傳統(tǒng)教學(xué)實(shí)例以簡(jiǎn)單算法(例如:斐波拉契數(shù)列、猴子摘桃、楊輝三角等)為主,缺乏專業(yè)背景,且略顯枯燥。在改革教學(xué)中,教學(xué)實(shí)例增加大量具有特定專業(yè)應(yīng)用背景的項(xiàng)目案例作為實(shí)例講解,使教學(xué)實(shí)例理論性和實(shí)踐性有效結(jié)合,將理論學(xué)習(xí)與實(shí)物開發(fā)通過(guò)實(shí)例結(jié)合后,既體現(xiàn)C語(yǔ)言在這些領(lǐng)域的應(yīng)用,又提高學(xué)生學(xué)習(xí)的積極性,有利于培養(yǎng)其解決實(shí)際問題的能力。
例如當(dāng)學(xué)生完成基本語(yǔ)法和循環(huán)結(jié)構(gòu)程序設(shè)計(jì)的學(xué)習(xí)后,將“單片機(jī)原理及應(yīng)用”課程中的經(jīng)典案例——LED跑馬燈作為講解實(shí)例,在簡(jiǎn)要介紹LED燈發(fā)光原理后,利用Proteus平臺(tái)搭建由8個(gè)LED燈構(gòu)成的跑馬燈系統(tǒng),教師編寫好程序整體框架后,引導(dǎo)學(xué)生使用賦值語(yǔ)句使8個(gè)LED燈逐個(gè)點(diǎn)亮,使學(xué)生理解賦值操作和LED燈被點(diǎn)亮之間的關(guān)系。在此基礎(chǔ)上,進(jìn)一步引導(dǎo)學(xué)生使用循環(huán)結(jié)構(gòu)程序使8個(gè)LED燈依次循環(huán)被點(diǎn)亮,而且循環(huán)次數(shù)可以設(shè)定,形成跑馬燈,讓學(xué)生在“程序修改”至“現(xiàn)象改變”的過(guò)程中深刻理解循環(huán)結(jié)構(gòu)程序的作用;當(dāng)學(xué)生完成選擇結(jié)構(gòu)程序設(shè)計(jì)的學(xué)習(xí)后,引導(dǎo)學(xué)生在開源的Arduino系統(tǒng)上對(duì)智能小車進(jìn)行避障控制,當(dāng)智能小車上紅外傳感器有信號(hào),表明前方有障礙,則需要繞過(guò)障礙,通過(guò)實(shí)現(xiàn)此控制功能,學(xué)生可以深入理解選擇結(jié)構(gòu)程序,反復(fù)使用if-else語(yǔ)句進(jìn)行選擇結(jié)構(gòu)程序設(shè)計(jì),控制智能小車走迷宮;再如當(dāng)學(xué)生完成基于函數(shù)和指針的復(fù)雜程序設(shè)計(jì)學(xué)習(xí)后,可引導(dǎo)學(xué)生利用C語(yǔ)言調(diào)用相關(guān)庫(kù)函數(shù)進(jìn)行畫法幾何的作圖練習(xí),作出某一零件的三視圖,使學(xué)生熟練掌握庫(kù)函數(shù)的調(diào)用和復(fù)雜程序設(shè)計(jì)。
2.3利用機(jī)器人綜合實(shí)驗(yàn)平臺(tái),突出手腦并重。
為使學(xué)生學(xué)以致用,院實(shí)驗(yàn)設(shè)備與管理中心聯(lián)合博創(chuàng)等企業(yè)建立了機(jī)器人綜合實(shí)驗(yàn)平臺(tái),可作為“C語(yǔ)言程序設(shè)計(jì)”課程的課外第二課堂,該平臺(tái)提供底層驅(qū)動(dòng)代碼,學(xué)生可以在此基礎(chǔ)上利用C語(yǔ)言控制機(jī)器人上的各種舵機(jī),實(shí)現(xiàn)控制功能。在“C語(yǔ)言程序設(shè)計(jì)”課程的學(xué)習(xí)期間,引導(dǎo)學(xué)生進(jìn)入機(jī)器人實(shí)驗(yàn)室進(jìn)行簡(jiǎn)單的機(jī)器人控制操作,將所學(xué)的C語(yǔ)言程序設(shè)計(jì)知識(shí)用于實(shí)際控制中。同時(shí),該平臺(tái)可提供分立元件由學(xué)生自行設(shè)計(jì)搭建機(jī)器人,使學(xué)生得到充分的動(dòng)手訓(xùn)練,做到手腦并重。
3.教改效果
實(shí)踐表明,通過(guò)以上教改措施的實(shí)施,教學(xué)效果顯著,教學(xué)質(zhì)量有效提高。首先,學(xué)生不再將“C語(yǔ)言程序設(shè)計(jì)”課程的學(xué)習(xí)目的僅定義為通過(guò)計(jì)算機(jī)等級(jí)考試,而是認(rèn)識(shí)到學(xué)習(xí)C語(yǔ)言對(duì)其后續(xù)專業(yè)課程的作用;其次,通過(guò)具體專業(yè)實(shí)例的學(xué)習(xí),學(xué)生的邏輯思維能力得到鍛煉,解決問題的算法明顯呈現(xiàn)多樣性。近年來(lái),貴陽(yáng)學(xué)院機(jī)械工程學(xué)院學(xué)生利用C語(yǔ)言作為編程語(yǔ)言,參加全國(guó)大學(xué)生機(jī)械創(chuàng)新設(shè)計(jì)大賽,多次獲得賽區(qū)一、二等獎(jiǎng);在全國(guó)“三菱自動(dòng)化”設(shè)計(jì)大賽中,多次榮獲全國(guó)一等獎(jiǎng)。以上成績(jī)的取得,表明貴陽(yáng)學(xué)院機(jī)械工程學(xué)院“C語(yǔ)言程序設(shè)計(jì)”課程教學(xué)改革取得初步成效。
參考文獻(xiàn):
[1]陳麗敏,邵長(zhǎng)友.基于自動(dòng)化專業(yè)C語(yǔ)言課程教學(xué)改革的研究[J].中國(guó)電力教育,2013,(31).
[2]鄭征,吳云潔.自動(dòng)化專業(yè)“C語(yǔ)言程序設(shè)計(jì)”教學(xué)思考[J].電氣電子教學(xué)學(xué)報(bào),2013,(12).
課題項(xiàng)目:貴州省高等學(xué)校教學(xué)內(nèi)容和課程體系改革培育項(xiàng)目“基于新型工業(yè)化需求的機(jī)械設(shè)計(jì)制造及其自動(dòng)化專業(yè)三元制教學(xué)改革與探索”(編號(hào):黔教高2012-426號(hào));貴陽(yáng)市高層次創(chuàng)新型青年教師項(xiàng)目“信息化視角下應(yīng)用型本科院校機(jī)械專業(yè)課程體系建設(shè)及實(shí)踐教學(xué)環(huán)節(jié)研究與改革”(編號(hào):筑教人發(fā)2014-74號(hào))。