孫 慧
(重慶人文科技學院,重慶401524)
在教育部高等學校計算機科學與技術教學指導委員會編制的《關于進一步加強高等學校計算機基礎教學的意見暨計算機基礎課程教學基本要求》中,提出了“1 +X”的課程方案,即1門“大學計算機基礎”加幾門重點課程。對于“1 +X”方案中的其他課程,學校應根據情況確定。C 語言程序設計課程是電子類專業學生進入高校接觸的第一門計算機語言類課程,由于該課程在專業學習中的重要地位,因而它對奠定學生從事計算機、單片機、自動控制、PLC、SOPC、EDA 等后續課程的良好基礎特別重要。這需要授課教師根據課程目標,精心設計和組織教學內容。
電子類專業培養的是熟練掌握現代電子技術理論、通曉電子系統設計原理與設計方法、具有軟硬件工程開發能力的綜合性技術人才。因此,C 語言電子類專業的人才培養是非常重要的,其重要性主要體現在以下幾個方面。
電子設計競賽是面向電子類專業大學生的群眾性科技活動,目的在于推動全國高等學校信息與電子類學科,進行面向21 世紀的課程體系和課程內容的改革,有利于培養大學生的創造力、應變能力和拼搏精神,是促進電子類專業理論和實踐教學改革的強大動力。電子設計大賽作品的控制部分由MCU實現,如DSP、51 單片機等,顯然,控制部分的軟件部分也是由C 語言完成。若利用匯編語言來實現控制部分,可能碰到一些具體問題非常不方便處理。例如,處理浮點數。C 語言在此方面卻非常簡單方便,這是因為浮點數在C 語言中是以IEEE 格式存儲的,一個浮點數占用四個連續字節。要將一個浮點數存入EEPROM,實際上就是要存這四個數。那么如果要訪問浮點數,只要設法找到存儲位置就可以了。C 語言中提供了一個void 指針,將此指針指向需要存儲的浮點數,然后將此指針強制轉化成char 型,就可以得到組成該浮點數的各個字節的值了。因此,在電子設計大賽的培訓階段,通常將C 語言的編程練習作為其中一個非常重要的環節。
作為多元化教學模式的一個重要環節,應積極組織年級專業內興趣小組的建立和活動的開展,比如電子制作、家電維修、EDA 設計、網頁制作等。定期或不定期地開展形式多樣的活動。例如,C 語言興趣小組定期舉辦編程比賽,選題如貪吃蛇、繪制余弦曲線、捕魚和分魚等活動,學生從中學到了很多C 語言庫函數,收獲非常大,充分展現了個人風采。
隨著電子信息技術的高速發展,各個公司為了提高市場占有率,對軟件或者硬件的開發人才要求越來越高。很多大型企業要求求職者需要具備比較高端的硬軟件開發技術,如嵌入式系統、ARM 單片機、DSP、FPGA 等。據有關報道,在沿海大城市,電子信息類工作中DSP 很受青睞,還有C 底層開發和ARM單片機。有人認為,現在不再是“學好數理化,走到哪里都不怕”的時代了,而是“學好C 語言,走到哪里都不怕”。
筆者在講授過程中,將整個課程內容分為C 語言基礎、程序設計流程控制、數組與字符串處理、函數及其應用、指針及其應用、擴展數據類型及文件、底層資源控制等7 個專題。
根據電子類專業的培養方案,按照應用型人才培養的目標,筆者在實際的講授過程中,實施了以下教學改革方案:
在正式學習課程之前,教師應該首先讓學生明確這門課程在本學科中的地位,學習這門課程的目的和作用,以及可能對今后工作的影響。充分調動學生學習的積極性,明確學習目的。由于本專業的特點,專業課程中與硬件相關的課程非常多,并且雖然不是計算機專業,但也會涉及到專業領域的編程,包括軟件和硬件。因此,并不是只有計算機專業的學生才需要編程,電子信息類專業的學生同樣需要編程,只是與其他專業側重點不同。由于C 語言能夠直接對硬件進行操作,因此,我們將C 語言作為本專業的基礎編程語言。在學習C 語言之后,學生可以參加國家級或省級計算機等級考試,在就業時必然會更多地得到用人單位的青睞。
C 語言的主要作用是面向操作系統(如Windows、Unix)進行底層程序開發,如系統內核等;在應用層上可以解決簡單算術問題;開發桌面應用程序;編寫一些嵌入式軟件;編寫一些硬件的驅動程序等。如底層資源控制這部分專題,把一些中斷、串口、接口技術介紹給學生,便于他們后續課程的學習。在C語言課程的教學上,語法和算法同樣重要,教師在教學過程中應以程序設計方法為主線,把軟件工程的思想貫穿于教學過程,這在后續的課程設計和畢業設計中較為實用。
充分利用多媒體教學手段,提高課堂教學信息容量,創設多樣化的學習情境,對重點、難點內容列舉更多實例,進行分析、編程,讓學生逐漸理解、掌握這部分內容。如介紹排序算法、函數遞歸、指針等內容時,僅使用PPT 課件,在介紹知識時會顯得比較單薄,使用Flash 設計動畫體現算法的執行步驟,輸出算法的每步結果,會使枯燥的程序變得生動有趣。
利用C 語言解決很多實際問題具有優勢,在設計實例時,盡可能多地列舉實際問題,如用C 語言寫成的五子棋游戲、各種硬件驅動程序、嵌入式程序(例如一些車載導航系統、微型手持設備等),還有Linux、Windows 等操作系統,教學就會更加深入和生動,學生學習起來不會感到抽象和枯燥。
根據電子類專業學生的特點,成立興趣小組。例如,以常見算法為單位,分成排序算法小組、查找算法小組、矩陣算法小組、字符處理小組、遞歸算法小組等,經過這些小算法的深入學習,最終弄清了八皇后、漢諾塔、五子棋、管理系統等問題,既提高了學生的動手能力和自學能力,又初步培養了學生的自信心與成就感,有助于加強學生的團結協作精神,建立團隊攻關意識,互幫互助、共同進步。
[1] 王莉. 電子信息工程專業中的C 語言教學[J]. 科技視界,2013(9):208 -231.
[2] 劉莉,陶強.C 語言在電子類專業教學過程中的地位和作用[J].計算機教育,2012(8):47 -50.
[3] 程海,黃春光,楊自恒,等.C 語言在電子信息專業中的發展[J].中國科技信息,2013(10):242.
[4] 夏春華. 大學生電子設計競賽與電子類專業教學改革[J].武漢科技學院學報,2005(11):227 -229.
[5] 蘇仰娜.C 語言程序交互式虛擬算法動畫的開發與教學應用[J].電化教育研究,2010(4):72 -74.
[6] 張海玉.C 語言程序設計教學方法探析[J]. 山西財政稅務專科學校學報,2006,8(1):72 -74.