?

基于Arduino的C語言課程教學改革的探討

2016-10-27 15:28徐進強
人間 2016年25期
關鍵詞:C語言編程函數

徐進強

(威海職業學院,山東 威海 264210)

基于Arduino的C語言課程教學改革的探討

徐進強

(威海職業學院,山東 威海 264210)

本文論述了目前高職C語言課程教學存在的主要問題,針對C語言教學現狀,嘗試在教學過程中結合所教專業的實際應用引入Arduino項目平臺。實踐證明,基于Arduino平臺的C語言教學,可以做到理論聯系實際,貼近具體專業的應用,大大激發學生的學習興趣和積極性。

C語言;Arduino平臺;教學改革

C語言功能強大,編程靈活,表達能力強,是程序設計中的重要工具之一。隨著軟件編程技術在各行各業的應用越來越廣泛,C語言課程已成為高職理工類專業普遍開設的一門基礎課程。應用電子技術、物聯網、通信及機械類等眾多專業均安排了課時不等的C語言教學內容。但在長期的教學實踐中發現,C語言是一門難教難學的科目,特別在高職院校中的教學效果并不理想。C語言課程的教學內容、教學模式與方法亟需改革。

一、高職C語言課程教學主要存在的問題

(一)高職學生基礎薄弱,學習積極性不高。

高職院校生源種類多,參差不齊。有些來自春季高考,有些是夏季高考,有些是單獨招生,還有些是來自中職合作院校??偟膩碚f,大部分學生的文化課基礎普遍較差,數學邏輯思維和英語基礎特別薄弱,而這些方面恰恰是軟件編程人員應具備的重要專業素質。另外,高職學生多數缺乏堅持不懈、積極思考的精神。面對困難,特別是面對滿屏幕的英文程序代碼,如果教師不積極引導,不充分激發學生的學習興趣,容易造成知難而退的局面。

(二)教材沿用傳統本科模式,教學內容脫離實際應用。

傳統的C語言程序設計教材主要圍繞語言自身的語法展開,教材的體系結構、內容安排和例題習題配置上,過于數學化,理解起來有一定難度。傳統教材普遍采用單向灌輸的方式,忽略了與學生的溝通與交流,忽略了給予學生自主學習與探究的機會,忽視了對學生創新能力和綜合素質的培養。即便是所謂的立體化教材建設,也無非強化了多媒體技術應用,擴充了網絡資源,在形式上顯得豐富多彩,仍然存在諸多缺憾。

(三)教師能力欠缺,知識面與專業面不夠寬闊。

教師在教學過程中,由于知識面和專業面的限制,一味的重視理論知識的講解,局限在C語言本身,脫離本專業的應用,使得課程學習抽象而晦澀,學生缺乏貼合自身專業的實際操作的經歷。高職院校的師資應該是多面手,能夠執教本專業的多門課程,熟悉相近專業的核心技術,了解相關專業的技術發展,能夠跟隨時代潮流,將新技術、新方法、新平臺運用到傳統課程教學中。

二、基于Arduino平臺的C語言課程教學

(一)Arduino平臺簡介。

Arduino是一個可以用于C語言課程教學的效果很好的項目平臺。它源自國際上一個開放源代碼的硬件平臺,包括一塊具備簡單I/O功能的電路板以及一套程序開發環境軟件。Arduino可以用來開發交互產品,比如它可以讀取大量的開關和傳感器信號,并且可以控制電燈、電機和其他各式各樣的物理設備;Arduino也可以開發出與PC相連的周邊裝置,能在運行時與PC上的軟件進行通信。

Arduino設計之初的目的是希望讓人們能夠很快地學習電子和傳感器的基礎知識,并應用到他們的設計當中。設計中所要表現的想法和創意才是最主要的,至于核心控制器如何工作,硬件的電路是如何構成的,用戶并不需要考慮。Arduino的出現,大大降低了互動設計的門檻,沒有學過電子知識的人也能夠使用它制作出各種創意的作品,如巡線機器人、超聲波倒車雷達、門禁控制系統等。由于大多數理工類專業的學生都具備一些物理、電工電子、計算機等方面的基礎知識,使得Arduino平臺能夠在各專業教學中得到廣泛接受。

(二)Arduino編程語言。

Arduino語言是建立在C/C++基礎上的,其實也就是基礎的C語言,Arduino語言只不過把相關的一些參數設置都函數化,用戶不必去了解其底層,即便是不了解單片機(微控制器)的學生也能輕松上手。

實際工作當中所用到的很多應用編程軟件都是以C/C++為基礎,進行了一定的改進和優化。因此作為學校教師,教學過程中不必拘泥于標準C、經典C的框架束縛,當然在教學當中,提示學生注意各類編程工具有些許差別還是有必要的。

在Arduino中,主函數main在內部已經定義,使用者只需要完成和loop()函數就能完成Arduino程序的編寫,這兩個函數分別負責Arduino程序的初始化部分和執行部分。setup()函數主要用于設置一些引腳的輸出/輸入模式、初始化串口等,該函數只在上電或重啟時執行一次;loop()函數用于執行程序,它是一個死循環,其中的代碼將被循環執行,用于完成程序的功能,如讀入引腳狀態、設置引腳狀態等。

(三)教學方法。

C語言教學,特別是針對高職學生,應偏重編程思想與邏輯思維的訓練,強化各類函數的靈活調用,以與本專業相關的實際應用項目為導向,施以具體任務為驅動,通過大量生動有趣的編程訓練解決實際問題,提升學生的技能水平和應用能力。

Arduino開發環境下提供了大量的基礎函數和擴展函數,這些函數涉及I/O控制、時間函數、數學函數、三角函數等,使用者可以很方便地對板上的硬件資源進行控制。同時,在Arduino開發環境下還提供了豐富的示例程序來使用這些函數。教師可以基于Arduino平臺當堂演示各種程序的運行效果,講解示例程序的編寫架構和技巧,鼓勵學生參照示例程序進行改造,實現其他自定義的控制功能。

C語言教學內容無非主要包括C語言的標識符與關鍵字、三大程序結構(順序、分支與循環)、函數、數組、指針、結構體等。在傳統的教學模式下,這些內容需要按部就班的學習。在Arduino平臺下不必拘泥于以上教學順序,可以將內容打碎,糅合在項目和任務中教授,在課程最后再形成完整的知識體系。

引入Arduino平臺教學模式,并不意味著徹底擯棄傳統的C語言教學模式。相反,如果教師認為某些知識點難以在Arduino平臺的教學項目中講述,仍可以沿用以往的講授方式,比如結構體,文件操作等。二者并不矛盾,應該是相互補充的關系。究竟哪種教學模式占主導地位,筆者認為與所教專業有很大關系。建議計算機與軟件開發類專業將Arduino平臺作為期末的集中實訓平臺,占次要地位,而其它專業可以將其作為主要學習平臺,充分發揮它的專業結合能力。

(四)教學項目。

Arduino平臺下可以完成的項目非常之多,如LED彩燈控制,電機驅動,LCD顯示,機器人運動,RFID讀卡器,無線模塊應用等。不同專業可以選取2、3個合適的項目學習。如物聯網專業可以選擇RFID應用、各類傳感器的應用;機電類專業選擇電機驅動、機器人項目;通信專業選擇無線模塊的應用,如藍牙技術等;計算機與軟件類專業可以選擇LCD和矩陣按鍵相關的編程項目,如小型計算器的編程應用等。

可能有教師會有所顧忌,擔心以上編程項目涉及到比較深的專業知識,大一的學生會難以接受。但由于Arduino平臺已經將涉及的硬件控制程序模塊化,用戶只需調用庫函數即可。教師只需告訴學生相關庫函數的用途,簡單講解硬件系統的原理。實踐證明,大一學生完全可以接受并理解,使得該專業的初學者在不太懂硬件技術的前提下也能夠對硬件進行控制,從而實現看似很專業的功能。對專業學習非常感興趣的學生,在Arduino平臺的引導下,甚至能夠在課下提前自學很多專業課程,激發自主學習積極性。

雖然學生不必花很多時間研究Arduino平臺硬件,但對于教師來說,要想充分發揮平臺的教學功能,解答學生練習中可能遇到的各種軟硬件的問題,教師必須熟練掌握Arduino平臺及涉及到的與本專業相關的技術。例如,對于物聯網專業的C語言教師,不僅要求具備扎實的C語言編程技能,還應熟悉RFID技術、傳感器技術等,能夠基于Arduino平臺把這些深奧的技術簡化,引導學生在僅僅了解專業技術的基礎上就能夠編寫要求的C語言程序代碼。

由于以上項目都是實實在在的技術應用,與本專業應用結合緊密,項目任務本身活潑有趣,如LED跑馬燈項目,機器人行走項目,大大激發了學生的學習熱情和積極性。傳統的C語言教學過程自始至終都是面對電腦編寫程序,程序運行結果索然無味,無非是屏幕打印些簡單圖形,輸出運算結果,很難吸引年輕學生的注意力。兩種教學方式相比較,孰優孰劣,一目了然。

三、結束語

教學實踐證明,高職C語言課程教學不能再走千篇一律式的傳統教學模式,引入Arduino平臺,是一種很好的教學改革的模式。各專業任教教師應針對不同專業,以“必需夠用”為原則,依托Arduino平臺,選擇貼近本專業實際應用的教學案例,重構教學體系,激發學生的學習興趣和積極性。

[1]程晨.Arduino開發實戰指南[M].北京:機械工業出版社,2012.

[2][美]Michael McRobers.Arduino從基礎到實踐[M]. 北京:電子工業出版社,2013.

[3]劉永平,郭小波.C語言教學改革探討[J].時代教育, 2016,(11):253-255.

G718

A

1671-864X(2016)09-0166-02

徐進強(1974—),男,山東青島人,碩士,副教授,專業帶頭人,主要研究方向為高職教育,嵌入式技術開發。

猜你喜歡
C語言編程函數
二次函數
第3講 “函數”復習精講
編程,是一種態度
元征X-431實測:奔馳發動機編程
二次函數
函數備考精講
編程小能手
基于Visual Studio Code的C語言程序設計實踐教學探索
紡織機上誕生的編程
基于C語言的計算機軟件編程
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合