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