摘要:不分專業(yè)的“C語言程序設(shè)計”課程沒有針對高職應(yīng)用電子的專業(yè)特點。本文分析了該課程的現(xiàn)狀及其與高職應(yīng)用電子專業(yè)其他課程之間的關(guān)系,提出了將“C語言程序設(shè)計”置換為“單片機C語言程序設(shè)計”的改革設(shè)想,使之成為高職應(yīng)用電子專業(yè)的一門專業(yè)技能課程。
關(guān)鍵詞:C語言;高職;單片機
中圖分類號:G642 文獻標識碼:B
“C語言程序設(shè)計”是高職高專電子專業(yè)的專業(yè)必修課。傳統(tǒng)教學(xué)以理論為主,以學(xué)科本位的邏輯體系來設(shè)計課程的教學(xué)內(nèi)容。課程內(nèi)容沒有與高職電子專業(yè)的其他課程有機銜接,不符合高職高專技能培養(yǎng)的特點。學(xué)生在學(xué)習(xí)C語言之后,不能用之有效地解決實際問題,學(xué)生的學(xué)習(xí)積極性難以調(diào)動,因此有必要對該課程進行改革。
1 現(xiàn)狀分析
目前高等學(xué)校都把“C語言程序設(shè)計”作為理工科非計算機專業(yè)的計算機基礎(chǔ)教育課程,屬于計算機基礎(chǔ)教育課程的一部分。但課程設(shè)置并沒有考慮與其他專業(yè)課程之間的關(guān)系,沒有針對高職應(yīng)用電子技術(shù)的專業(yè)特點,成了非計算機專業(yè)學(xué)生的“計算機通識教育”課程。
雖然許多學(xué)校對“C語言程序設(shè)計”課程從教學(xué)內(nèi)容、教學(xué)手段、教學(xué)方法等方面進行了大膽的改革,把邏輯與編程解題思路(算法)放在主體地位,講解如何分析問題和解決問題;但是受“在學(xué)校里牢固掌握基礎(chǔ)知識,畢業(yè)后在實踐中積累經(jīng)驗”這種傳統(tǒng)的教學(xué)理念的影響,把培養(yǎng)學(xué)生閱讀程序、設(shè)計程序的能力,分析問題、、解決問題的能力和邏輯思維能力作為教學(xué)目標。課堂上學(xué)到的也只是用C語言解決一些數(shù)學(xué)問題,所學(xué)內(nèi)容和實際應(yīng)用相脫節(jié),認識不到“C語言程序設(shè)計”和自己專業(yè)之間的關(guān)系,學(xué)生在學(xué)習(xí)C語言之后,不能用C語言編寫為本專業(yè)服務(wù)的應(yīng)用軟件。特別對高職高專電子專業(yè)學(xué)生來說,C語言的知識成了他們專業(yè)知識結(jié)構(gòu)中的一個“孤島”。
2 改革的必要性
C語言是影響深遠的、傳統(tǒng)的、優(yōu)秀的面向過程的結(jié)構(gòu)化程序設(shè)計語言。C語言功能豐富、表達能力強、使用靈活方便、應(yīng)用面廣、代碼轉(zhuǎn)換質(zhì)量高。C語言方便進行模塊化軟件設(shè)計,還可以實現(xiàn)C語言和匯編語言的混合編程。C語言既具有高級語言的優(yōu)點,又具有低級語言的許多特點,能像匯編語言那樣直接利用CPU的硬件特性進行程序設(shè)計。既可以編寫應(yīng)用軟件,又可以編寫系統(tǒng)軟件。和匯編語言相比,C高級語言程序設(shè)計快、可讀性、可移植性和可維護性好。一般情況下,完成同樣的任務(wù),使用C高級語言比用匯編語言可提高工作效率5-10倍,在調(diào)試階段更容易體會到這一點,因此C語言特別適合單片機的開發(fā)。嵌入式系統(tǒng)中使用的嵌入式操作系統(tǒng)絕大部分也都是以C高級語言為基礎(chǔ)的,很多直接將源代碼提供給使用者。目前在單片機應(yīng)用領(lǐng)域,C高級語言越來越受到人們的重視。用C語言進行單片機程序設(shè)計已經(jīng)成為單片機開發(fā)的一個主流,是單片機開發(fā)與應(yīng)用的必然趨勢。
單片機課程是應(yīng)用電子技術(shù)及相關(guān)專業(yè)的一門重要的專業(yè)主干課,在專業(yè)基礎(chǔ)課和其他專業(yè)課方面起著重要的橋梁作用。它涉及到的基礎(chǔ)理論知識較廣,應(yīng)用范圍廣,是一門實踐性、工程性很強的技術(shù)課程,在電子技術(shù)及相關(guān)專業(yè)課程中群中占有十分重要的地位。電子專業(yè)的學(xué)生普遍將單片機用于課程設(shè)計、畢業(yè)設(shè)計和電子產(chǎn)品設(shè)計大賽等許多實踐環(huán)節(jié)。單片機應(yīng)用也是學(xué)生將來在電子類公司或電子行業(yè)工作的最基本的技能。“單片機原理與應(yīng)用”課程都是基于匯編語言的,高職高專學(xué)生很難應(yīng)用匯編語言去搞程序設(shè)計,學(xué)生學(xué)到的單片機知識不能得到應(yīng)用。
高等職業(yè)教育的培養(yǎng)目標是:培養(yǎng)既有一定理論基礎(chǔ)又有較強實踐能力,在生產(chǎn)服務(wù)第一線工作高層次的實用型、技術(shù)型人才,它不同于一般本科院校的學(xué)術(shù)型、工程型人才的培養(yǎng)目標。就高職應(yīng)用電子技術(shù)專業(yè)而言,它培養(yǎng)強電弱電相結(jié)合,以弱電為主,并能熟練應(yīng)用電氣技術(shù)、計算機技術(shù)和控制技術(shù)等現(xiàn)代科學(xué)技術(shù),具有較強實踐能力的技術(shù)管理人才。強調(diào)應(yīng)用性、實用性是高職教育的特色,教學(xué)內(nèi)容突出基礎(chǔ)理論知識的應(yīng)用和實踐能力培養(yǎng)的原則,以應(yīng)用為目的,以“必需、夠用”為度,加強針對性和實用性。
因此,高職應(yīng)用電子專業(yè)的“C語言程序設(shè)計課程”應(yīng)不同于本科相應(yīng)專業(yè),也應(yīng)不同于高職其他專業(yè)?!癈語言程序設(shè)計”課程的開設(shè)應(yīng)緊扣本專業(yè)的特點,為本專業(yè)的培養(yǎng)目標服務(wù)。如果將“C語言程序設(shè)計”變成“單片機C語言程序設(shè)計”,學(xué)生通過本課程的學(xué)習(xí)掌握單片機C語言程序設(shè)計方法,達到獨立利用C語言編寫單片機應(yīng)用程序的目的。將C語言“知識孤島”和單片機“知識孤島”連接起來,結(jié)合所學(xué)其他專業(yè)知識,使學(xué)生學(xué)會應(yīng)用單片機開發(fā)電子系統(tǒng)的基本方法。如果學(xué)生以后需要用C語言或其他高級語言開發(fā)通用計算機系統(tǒng)的應(yīng)用軟件或系統(tǒng)軟件,有了“單片機C語言程序設(shè)計”的基礎(chǔ),可以觸類旁通,很容易掌握其他高級程序設(shè)計語言。這也符合從特殊到一般,再從一般到特殊的認知規(guī)律。
3 課程改革設(shè)想:
3.1 課程內(nèi)容的改革
把“C語言程序設(shè)計”置換為“單片機C語言程序設(shè)計”,放在“單片機原理與應(yīng)用”課程之后開設(shè),將“計算機基礎(chǔ)教育”課程變成“單片機開發(fā)技能”課程。課程內(nèi)容適用于C高級語言的初學(xué)者,包括數(shù)據(jù)類型、運算符和表達式、數(shù)組、指針和函數(shù)、程序的順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)、程序設(shè)計基本知識和單片機的C編程等內(nèi)容。對C語言中較難或單片機程序不常使用的內(nèi)容,比如多維數(shù)組、指向指針的指針、鏈表等進行刪減。相關(guān)例題應(yīng)本著“深入淺出,突出實用”的指導(dǎo)思想,難度應(yīng)與高職高專學(xué)生的基礎(chǔ)相適應(yīng),算法不要過于復(fù)雜。單片機的C語言編程部分主要應(yīng)包括中斷、定時器/計數(shù)器、串行口、鍵盤和顯示等相關(guān)應(yīng)用,適當(dāng)包含少量可編程芯片的應(yīng)用。所選內(nèi)容應(yīng)體現(xiàn)先進性、實用性和技能培養(yǎng)的特點,拋棄一些過時或不實用的內(nèi)容,把提高學(xué)生的職業(yè)技能放在突出的重要位置。整門課程應(yīng)將單片機和C語言有機結(jié)合起來,強調(diào)知識點在單片機程序設(shè)計中的應(yīng)用,體現(xiàn)“單片機C語言”的特色,避免把課程內(nèi)容分為“C語言程序設(shè)計”和“單片機C編程”兩部分。
3.2 編譯開發(fā)環(huán)境
以80C51系列為基礎(chǔ),開發(fā)環(huán)境選擇德國KeilSoftware公司的Keil uVision集成開發(fā)環(huán)境(當(dāng)前版本是uVision3)。這是一個基于Windows的開發(fā)平臺,集成了編輯器、項目管理器、Cx51編譯器、Ax51宏匯編器、BL51/Lx51連接定位器和調(diào)試器,用戶群極為龐大,符合教學(xué)特點的典型性。其中Cx51是專為80C51單片機設(shè)計的C語言編譯器,生成的程序代碼運行速度高,存儲空間小。KeiluVision還提供了強大的項目管理功能,可以十分方便地進行結(jié)構(gòu)化多模塊程序設(shè)計,特別是Keil提供的純軟件模擬仿真功能(也支持硬件目標板在線仿真),非常適合教學(xué)使用。Keil調(diào)試器支持斷點管理和程序代碼的多種執(zhí)行方式(全速、單步、執(zhí)行到指定行等)。在調(diào)試狀態(tài)下有寄存器窗口、存儲器窗口、觀察窗口和命令窗口,用于程序執(zhí)調(diào)試過程中顯示單片機寄存器、存儲器、局部變量和觀察點的狀態(tài)和輸入各種調(diào)試命令。Keil uVision的外圍集成功能(Peripherals)菜單可以打開中斷系統(tǒng)、I/O接口、串行口、定時器計數(shù)器等狀態(tài)窗口,通過這些狀態(tài)窗口可以觀察軟件仿真結(jié)果。
Keil uVision可以與PROTEUS整合構(gòu)建單片機虛擬實驗室。PROTEUS是目前世界上最先進最完善的嵌入式系統(tǒng)設(shè)計與仿真平臺,可以實現(xiàn)數(shù)字電路、模擬電路及微控制器與外設(shè)組成的混合電路系統(tǒng)仿真、軟件仿真、系統(tǒng)協(xié)同仿真和PCB設(shè)計等全部功能。由于PROTEUS軟件包逼真、真實的協(xié)同仿真功能,得到了包括劍橋在內(nèi)的眾多大學(xué)用戶的認可,作為電子學(xué)或嵌入式系統(tǒng)的課程教學(xué)、實驗和水平考試平臺。Keil uVision與PROTEUS通過設(shè)置聯(lián)機調(diào)試單片機系統(tǒng),在PROTEUS中完成單片機系統(tǒng)的電路原理圖繪制后,在Keil uVision集成開發(fā)環(huán)境中進行程序設(shè)計、項目的創(chuàng)建、編譯鏈接和調(diào)試,同時可在PROTEUS查看直觀的結(jié)果(如鍵盤輸入和LCD顯示等)。
3.3 教學(xué)方式的改革
高職教學(xué)應(yīng)該是基礎(chǔ)和技能的教學(xué)同步進行,甚至先教技能再教理論,在不斷實踐中掌握技能,在技能學(xué)習(xí)中提高基礎(chǔ)理論。在高級語言程序設(shè)計教學(xué)中,不能期望高職學(xué)生對每一個算法都理解。一些太復(fù)雜的算法、單片機應(yīng)用系統(tǒng)中常用芯片的驅(qū)動程序,可以以函數(shù)庫或軟件包的形式直接提供給學(xué)生,供學(xué)生在程序設(shè)計中調(diào)用,降低理論教學(xué)難度。
確立以學(xué)生為中心的教學(xué)理念。從學(xué)生實際出發(fā),以學(xué)生為本,采用多樣化、層次化的教學(xué)方法,貫徹循序漸進、深入淺出的原則。學(xué)生沒有高級語言程序設(shè)計的基礎(chǔ),在“單片機C語言程序設(shè)計”教學(xué)中要注意分散難點,縮小臺階。在內(nèi)容體例的設(shè)計上以實用為主,拋棄過多的語法細節(jié)和非通用的或?qū)嶋H用途很少的語言特性,理出重點和教學(xué)主線;采用一體化教學(xué)方法,以程序樣例為主實施教學(xué)。淡化語法教學(xué),以程序設(shè)計帶動基本語法的學(xué)習(xí)。
上機實驗是掌握單片機C語言程序設(shè)計的必要手段。不能簡單地認為上機實驗只是輔助性的教學(xué)。程序設(shè)計的能力是在實際動手實踐中練就的,通過上機操作和驗證可進一步加深各種語句的理解,提高學(xué)生的編程能力。通過Keilu Vision與PROTEUS組成的聯(lián)機調(diào)試環(huán)境,熟練使用Keilu Vision和PROTEUS軟件對學(xué)生的深入學(xué)習(xí)有巨大的幫助。
4 結(jié)束語
以上是我校根據(jù)“C語言程序設(shè)計課程”和高職電子電子專業(yè)其他課程之間的關(guān)系并結(jié)合高等職業(yè)教育的培養(yǎng)目標提出的一些改革設(shè)想。一門課程的改革包括教學(xué)理念、教學(xué)內(nèi)容體系、實踐教學(xué)環(huán)境、教學(xué)方法和教學(xué)手段等一系列的改革,需要高質(zhì)量的教材和教學(xué)一線的教師在實踐中不斷地探索。