劉珊珊 呂林海
第38卷第6期教學研究Vol38 No6
2015年11月Research in TeachingNov. 2015
應用型本科電子信息類學生
編程能力培養(yǎng)的探索與實踐
包理群李錦瓏蘭聰花(蘭州工業(yè)學院電子信息工程學院,甘肅蘭州730050)
[收稿日期]20150515[基金項目]甘肅省十二五教育科學規(guī)劃項目(GS[2013]GHB0940)
[作者簡介]包理群(1983),女,甘肅定西人。副教授,碩士,主要研究方向為程序設計、嵌入式系統(tǒng)等相關課程的研究和教學。[摘要]硬件編程能力是應用型本科電子信息類學生的專業(yè)核心能力,本文分析了電子信息類學生編程能力培養(yǎng)現狀、問題和難點,結合教學實踐,探討了教學案例設計與硬件編程應用相結合、實踐教學采用軟件仿真與實物調試相結合、編程思維與學習主動性培養(yǎng)等教學改革思路,教學成效顯著。
[關鍵詞]應用型本科;電子信息類學生;編程能力;教學案例設計
[中圖分類號]G642.0[文獻標識碼]A[文章編號]10054634(2015)060085040引言
在教育領域,目前把大學分為學術型、應用型和技能型大學,應用型本科是針對我國普通本科培養(yǎng)單一學術性人才模式的一種改革,它要求專業(yè)基礎知識夠用,更注重知識的綜合應用和解決實際問題能力的培養(yǎng)[1]。應用型本科的主要任務是實施應用型本科教育,培養(yǎng)適應社會需求的應用型人才。應用型人才,就是指相對于高精尖理論型、學術型人才而言,掌握應用型知識、更具有實踐能力的人。2014年,教育部提出將600所地方本科院校轉向應用型[2],也體現了應用型人才對我國經濟和社會發(fā)展的重要性[2]。對于新建或新辦應用型本科院校,不能穿新鞋、走老路,照搬舊模式,否則會與傳統(tǒng)大學辦學模式相似,失去自己的辦學特色和競爭基礎,因此大力推進教學改革勢在必行。
電子信息是一門應用計算機等技術進行信息處理和信息控制的學科,編寫程序完成數據采集、數據處理及硬件控制是該學科的主要技術領域。編程能力對于電子信息領域相關專業(yè)的學生都有要求,學習和掌握編程技術可以讓學生熟悉電子信息產品的運行原理和運行方式,提高電子信息產品的軟件研發(fā)能力。應用型人才更注重知識的綜合應用和解決實際問題能力的培養(yǎng),因此基于硬件環(huán)境的編程能力對于電子信息類學生顯得尤為重要,研究電子信息類應用型人才編程能力的培養(yǎng)具有十分重要的現實意義[3]。
1電子信息類學生編程能力培養(yǎng)現狀
目前,我國應用型本科院校電子信息類學生編程能力培養(yǎng)主要在兩個環(huán)節(jié)完成:一是在“程序設計”類課程(如《C語言程序設計》等)的教學中;二是在后續(xù)相關專業(yè)課程(如單片機、ARM、DSP等)的學習中。
程序設計基礎課程一般在大一第二學期開設,該課程概念抽象、語法繁多,剛進入大學的學生在學習方式和思維方式須有較大改變,學生普遍感到難學;學生對課程知識的應用領域沒有認識,導致學習興趣不足;傳統(tǒng)的程序設計教學側重于語法知識,大多數教材都是以成績管理為例講述相關算法,沒有與專業(yè)應用相結合,也使學生感到枯燥乏味;在后續(xù)專業(yè)課程的學習中,編程能力又成了制約這些課程學習的主要瓶頸,造成學、用脫節(jié),這也是當前高校電子信息類學生培養(yǎng)中存在的主要問題和難點,有些學生對編程感興趣,但又不能與硬件環(huán)境相結合;有些學生對硬件設計感興趣,但缺乏硬件平臺上的編程能力,直接導致學生發(fā)展后勁不足和難以適應市場需求。
綜上,編程能力是電子信息類學生的薄弱環(huán)節(jié),直接制約了學生技術應用能力和實踐創(chuàng)新能力的培養(yǎng),難以滿足對應用型人才的社會需求。本文以提高電子信息類學生編程能力為出發(fā)點,結合教學實踐,探索教學改革思路。
2基于編程能力培養(yǎng)的教學改革
2.1教學案例設計與硬件編程應用相結合
程序設計類課程教學中,設計與單片機、ARM、DSP等實際編程應用相結合的、具有實際應用背景的教學案例,然后找到本課程相關知識在該案例解決中的應用。新的教學內容開始時,不直接講述課程知識點,而是先提出一些具有實際意義的硬件編程實例讓學生去思考,看能否用已有的知識找到解決方法,然后再引入新的教學內容?!禖語言程序設計》課程是電子信息類專業(yè)的核心專業(yè)基礎課,是后續(xù)單片機、DSP、ARM等嵌入式開發(fā)類課程的重要語言和編程基礎。下面以《C語言程序設計》課程教學中兩個具體案例進行說明。
第6期包理群李錦瓏蘭聰花應用型本科電子信息類學生編程能力培養(yǎng)的探索與實踐
教學研究2015
1) “位運算”教學。
“位運算”是一種特殊的運算,在嵌入式系統(tǒng)編程中,“位運算”比其他運算更常用,而教材的這部分內容通常不涉及其應用領域,因此可在“位運算”這一部分內容講授時設計和引入“單片機/ARM控制流水燈顯示”項目,讓學生了解“位運算”的應用領域,既增強了學生學習本課程的興趣和積極性,也實現了與后續(xù)專業(yè)課程的有效銜接。
2) “數組”教學。
“數組”是程序設計中一種非常重要的數據結構,是學生學完基本類型的“變量”之后接觸到的第一種構造數據類型。這部分內容的教學可與電子信息專業(yè)的后期專業(yè)應用相結合,例如,在“單片機控制數碼管顯示”問題中,就用到了對數組的訪問;“求最大值、最小值”問題是數據應用中最基本的算法,傳統(tǒng)教學在講述該算法時還是以學生成績最高分、最低分為例。該算法也在傳感器采集數據濾波問題中用到,因此在講述這部分內容時,可以設計這些專業(yè)應用實例,引導學生的學習興趣,加深學生對基礎知識的理解。下面以《C語言程序設計》課程中“一維數組的應用”一節(jié)教學內容設計為例進行說明。
學習內容:一維數組的應用。
學習目標:熟悉一維數組的使用,掌握應用一維數組進行數據處理的方法,實現與后續(xù)單片機、ARM、DSP等電子信息類專業(yè)課程的有效銜接。
學習重點:應用一維數組進行數據處理的方法。
學習難點:數組元素的引用(數組下標的靈活使用)。
【任務要求】
從下列數據中找出最大值并輸出:
18.5,16.3,21.4,13.2,8.6,7.5,19.2,25.3,15.7,13.8。
【課堂討論】
求最值在電子信息數據處理中的應用:例如傳感器采集數據的濾波。
【任務分析】
1、數據存儲
float temper[10];
2、數據處理
int max=0;
temper[max]與temper[1]比較:
temper[max]與temper[2]比較:max=2
……
temper[max]與temper[9]比較:
3、數據輸出 temper[max]
【程序代碼】
#define NUM 10
main()
{ float temper[NUM]={18.5,16.3,21.4,13.2,8.6,7.5,19.2,25.3,15.7,13.8};
int i,max=0;
for(i=1;i /*如果找到了更大的數組元素,則max 記錄其下標值*/ if(temper[i]>temper[max]) max=i; printf("The highest temperature is %.1f degrees ", temper[max]); } 【課堂練習】 編寫程序,從下列數據中找出最小值并輸出(自己動手,掌握算法核心思想): 18.5,16.3,21.4,13.2,8.6,7.5,19.2,25.3,15.7,13.8 【應用舉例】 演示單片機控制數碼管顯示時、分、秒應用系統(tǒng),如圖1所示現在是13時15分32秒。分析此實例中的如下關鍵代碼(假設變量hour、min、sec分別保存時、分、秒數值),鞏固“數組下標的靈活使用”這一知識點。 dispbuf [0]= code[sec%10]; dispbuf [1]= code[sec/10]; dispbuf [2]= code[min%10]; dispbuf [3]= code[min/10]; dispbuf [4]= code[hour%10]; dispbuf [5]= code[hour/10]; 圖1數組應用——單片機控制數碼管顯示 【任務拓展】 如何在后三個數碼管上顯示一個三位十進制整數qtity(動腦思考:實際問題中數組下標的靈活應用)。 2.2實踐教學采用軟件仿真與實物調試相結合目前大多數高校在單片機等課程的實踐教學中只采用實驗箱[4],學生只通過簡單的連線就完成了硬件電路連接,而且實驗箱的線路連接已經固定,因此學生不能深入掌握硬件電路的工作原理和設計方法[5],更不會自己設計硬件電路;在程序編寫時也是簡單的模仿實驗例程,不能真正提高學生自主分析和解決問題的能力,也難以激發(fā)學習興趣。 Proteus軟件是英國Labcenter公司開發(fā)的電路分析與實物仿真軟件??蓪崿F單片機、ARM等與外部設備的仿真,可在沒有實際硬件的場合實現軟硬件聯合調試。學生只需要一臺電腦就可以完成原理圖設計、PCB設計、軟件編寫到軟硬件聯合調試整個過程,有效避免了學生只能在做實驗時調試程序,課堂教學、實驗教學和課后自學相脫節(jié)的難題。因此,在實踐教學中,可以采用Proteus系統(tǒng)仿真與實物調試相結合的方法,讓學生更方便、直觀地感受硬件編程環(huán)境和編程場景,為學生在硬件平臺上的軟件編程能力培養(yǎng)創(chuàng)造和提供條件。 以單片機系統(tǒng)實訓為例,將其分為Proteus系統(tǒng)仿真與實物調試兩個環(huán)節(jié),圖2是筆者設計的實訓題目——“多功能電子萬年歷”的單片機系統(tǒng)仿真圖,具有日期時間顯示和調節(jié)、鬧鐘參數設置、溫度顯示、音樂播放等功能。實習內容分為基本任務和拓展任務,以滿足不同層次學生的培養(yǎng)要求。通過該仿真環(huán)節(jié)的實現,培養(yǎng)學生以下幾方面的技術應用能力。 1) 單片機應用系統(tǒng)設計方法(包括硬件電路和軟件編程); 2) 按鍵、液晶、發(fā)光二極管、蜂鳴器等基本輸出設備的使用和編程控制; 3) 時鐘芯片、溫度傳感器等常用集成電路芯片的編程; 4) 分析和解決問題的能力、查閱資料的能力和團隊合作能力。 圖2單片機控制多功能電子萬年歷仿真圖 2.3編程思維與學習興趣的培養(yǎng) 傳統(tǒng)的程序設計教學,往往把精力和時間花在語法知識上,而沒有把程序設計思路作為教學重點,學生不具備編程的抽象思維能力。因此,教師要轉變教學觀念,從案例入手,在案例中引出問題,在問題的解決中消化知識點,然后再引導學生應用所學知識解決實際問題[6],以此激發(fā)學生的學習興趣,培養(yǎng)編程思維。 采用基礎實驗實習實訓學生競賽的實踐教學培養(yǎng)體系和分層遞進的實踐項目,將編程能力的培養(yǎng)貫穿于大學四年的學習之中,讓編程能力培養(yǎng)在四年學習中不間斷,一般學生的能力得到最大程度的發(fā)揮,優(yōu)秀學生脫穎而出,帶動和激勵大多數學生的學習積極性和創(chuàng)造性。 在編程能力的后續(xù)培養(yǎng)中,一部分對編程感興趣的同學能積極參與各種競賽,鍛煉和提升了學生的能力,另一部分學生處于自發(fā)的摸索狀態(tài),缺乏相互的交流與合作,還有大部分同學放棄了編程學習。因此,可將學生分成各種層次、類型的興趣小組,創(chuàng)造良好的學習交流氛圍,形成激勵機制,讓高年級學生或者編程能力較強的學生帶動、幫扶中等和較差的學生,定期舉辦講座等學術交流活動,請優(yōu)秀學生講解學習經驗、開發(fā)技巧。鼓勵學生參與教師的科研項目,以科研促教研,實現教學與工程實際、科學研究和社會應用的密切結合。