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