彭治國 ,劉海浪,陳輝金
(桂林電子科技大學,a.教學實踐部;b.機電工程學院,廣西 桂林 541004)
由于C 語言具有邏輯性強、內容抽象、語句使用靈活的特點,雖然學生們覺得相應的語法知識并不難,聽老師分析講解例題時,也覺得很明白,但真正讓他們自己動手編程解決實際問題時,有相當一部分學生感到無從下手。
學生對課程的重要性認識不夠,沒有充分明確的學習目標,學習興趣不高。部分非計算機專業的學生覺得C 語言和自己的專業離得較遠,以后用不上,不想學,甚至出現懶惰、厭煩、消極的情緒,這也是實驗課上學生積極性不高應付了事的重要原因。
大多教材和理論課堂教學,重點放在了C 語言的“語法研究”上,甚至很多理論課老師本身就缺少工程項目的經驗。而課程考核的考試內容,大多也都無法逃脫“語法”的束縛。
安排的實驗內容一般都有60%以上的驗證性實驗,致使一部分學生程序出錯后,不是通過調試來改錯,而是逐行對照書上的內容進行糾正,因此導致學生不會調試程序,沒有真正理解程序中的邏輯關系,從而也就很難學會編寫程序,更談不上開發一個完整的項目。
2010年6月23日,教育部在天津召開“卓越工程師教育培養計劃”(簡稱“卓越計劃”)啟動會,其指導思想是貫徹落實《國家中長期教育改革和發展規劃綱要(2010-2020年)》的精神,樹立全面發展和多樣化的人才觀念,樹立主動服務國家戰略要求、主動服務行業企業需求的觀念。改革和創新工程教育人才培養模式,創立高校與行業企業聯合培養人才的新機制,著力提高學生服務國家和人民的社會責任感、勇于探索的創新精神和善于解決問題的實踐能力。
在這種背景下,對卓越班的C 語言實驗環節的教學,提出了培養學生實際工程項目開發能力、創新能力、實踐動手能力以及提出問題解決問題和表達溝通能力,使學生在C 語言的實踐教學上,能達到企業滿意的高素質人才的要求。
選取合適的實際工程項目為背景,以項目開發為主線,強化項目開發實踐能力、設計能力與創新能力。提煉實驗內容,使其少而精,在基于工程項目的內容設置上,采用“循序漸進”的方法,如把一個大的綜合工程項目覆蓋到各個章節的實驗內容中,使學生在實驗過程中清楚總體目標的前提下,思考怎么一步步去實現它。同時通過閱讀一個到二個完整的項目程序,增加學生的閱讀程序的能力,最后學生根據自己的專業特點,選擇一個自己感興趣的項目進行項目實訓。通過這樣的實驗安排,使學生感受到解決問題的快樂和成就感,提高學習的主動性,最終使學生具有工程項目開發能力。
另外,為了提高學生的學習興趣,激發學生的學習創新能力,感受C 語言實際應用的能力,我們在C 語言的實驗環節中,引入基于C51 單片機的智能小車控制對象,培養學生解決實際問題的能力和創新能力。
(1)循序漸進,短期任務和長期任務相結合。在教學上采用項目案例,以項目為驅動,把項目相關的內容分解到每個實驗單元中,采用循序漸進的方法,最終完成項目的開發。
在實驗內容上也是選擇同學們比較熟悉的一些實際項目,比如俄羅斯方塊、貪吃蛇、五子棋等項目,作為學生的可選項目。學生選定一個自己感興趣的項目后,把它作為一個長期的任務,然后按不同的功能或知識點分開來,形成一個短期任務,在每章的實驗中體現出來,每次的實驗中可以完成項目的一部分,或是對以前完成的內容用新學到的知識進行改進。
這樣,可以使得每次實驗中的內容不是孤立的,而是相互聯系的,是一個總體項目的內容不斷增加和完善的過程。使學生的學習形成一種連貫性。在整個實驗的學習過程中,始終有個總的任務在驅動,而學生又是在一個又一個小的任務的驅動下,一次又一次的親身體驗邁向成功的喜悅。
(2)基于機器人的工程對象項目及組織編程競賽,激發學生學習興趣,培養學生實際動手與創新能力。對于即將從事工程師職業的學生而言,學習不僅是學習某一知識體系,比如單片機或者C 語言知識體系,而是應該更近一步獲得如何利用這些知識去解決實際問題的能力,即創新與動手能力。
在實驗中,選擇了由秦志強編寫的工作創新實踐教材系列中的《C51 單片機應用與C 語言程序設計》這本輔助教材,這是基于機器人工程對象的項目實踐教材。在其書中,提到工作導向的概念,這種概念不只是一個簡單的概念游戲,而是包含了實踐、歸納、推理和再實踐的深刻的哲理。本教材的主要特點是寓教于樂,興趣為先,采用機器人作為本項目實踐內容,非常容易引起學生的興趣和學習熱情。機器人對象采用舵機作為控制和驅動電機,非常容易控制,便于老師和學生入門,重點是時序和邏輯上,而不是電機的復雜控制上。
在C 語言實驗教學中,引入了如下內容:
(1)AT89S52 單片機知識及用C 語言開發單片機程序的開發流程。內容涉及單片機的硬件知識、單片機的工作原理、及開發工具的使用如Keil 集成開發環境、ISP 系統在線編程、串口調試助手軟件的使用。
(2)輸入輸出語句實現單片機與PC 上位機的串口通信。
(3)C51 單片機I/0 與伺服電機的控制,控制小車前后左右、原地轉繞軸旋轉,加速、減速、勻速等運動。
(4)用胡須作為觸覺和紅外線實現導航功能,實現障礙物的檢測與避讓。
(5)C51 定時器與機器人的距離檢測,引入中斷及中斷處理知識以及機器人巡跡功能。
(6)C51 與LCD 顯示接口的編程。
多傳感器智能機器人在這些實驗項目中,對C語言的相關知識幾乎都涉及到,是C 語言基于具體對象的編程應用,使學生在實踐過程中感受到學習的快樂,激發探究知識的欲望,以及實際解決問題的能力。同時通過單片機和C 語言的學習,為學生進一步學習ARM、Android 和linux 等高級嵌入式課程打下了堅實的基礎。
每年我們還組織C 語言程序設計大賽,通過開展編程競賽活動,提高了學生編程的興趣,激發了學生的競爭意識,調動了學習積極性,營造了積極向上的學習氛圍,以促進課堂教學和學生綜合能力的提高,同時加強實踐能力、軟件開發能力和創新精神的培養。
協作學習,是當前在世界范圍內被廣泛使用的教學組織形式和教學策略之一,其能充分體現教師的主導地位和學生的主體作用。在實驗教學過程中,把學生分成小組,有意識地組織學生開展協作學習,通過組內的協作討論,相互交流信息,取長補短,共同完成任務。
通過協作學習,學生能夠相互啟發,相互促進,培養學生的合作意識,驅動學生更加強烈的創作欲望。在邊學邊實踐的過程中,學生始終處于主體地位,在教師的引導下,學生充分發揮主動性和創造性,不僅讓學生親身感受認知的過程,而且培養提高學生實際解決問題的能力和創新意識。實際上任務的完成,標志著學生實踐能力的提高,學生也能體驗到任務完成后的成就感,從而激發他們進一步學習的興趣和積極性。同時,還可以促進學生間良好的人際關系,進一步培養學生的協作精神。
自學能力是創新的基礎,培養學生自學能力,是高校教育教學中的一個重要任務。由于實驗課時的限制,課內學生所做的實驗,其內容是不夠全面的。讓學生利用課外時間去完成,不僅可以彌補課內實驗的不足,還可以充分挖掘學生的學習潛能,培養學生的自學能力,是課堂教學的有效補充和延伸。
課外實驗是在課堂之外進行的,所以實驗方案的設計、程序調試、結果分析以及實驗過程中遇到的各種問題,均需要學生自己獨立解決。因此,與課堂實驗相比,課外實驗更能發揮學生在學習活動中的積極主動性,更有利于培養學生的獨立工作能力,在發揮學生在學習活動中的主體作用和教師的主導作用等方面,均有不可替代的重要作用。
以網絡作為一種多媒體資源發布平臺,將各種教學資源如CAI 課件、授課視頻、課程資料等發布于教學網站上,并建立C 語言學習QQ 群號,教師和學生可以隨時隨地共享這些資源和相互交流。因而極大地延伸了教學空間,為學生提供自主學習的有效方式和可選資源,彌補課堂教學的不足。
通過教學網站的應用,在教與學的過程中,從以教為中心,走向以學為中心;從以教師為中心,走向以學生為中心,充分發揮學生的主觀能動性和創造性,培養學習過程的認知策略,使學生按需獲得知識與技能,最終達到或超越基本教學要求,獲得發展。
在國家“卓越計劃”下,對C 語言的實驗教學的改革迫在眉睫。實踐證明,本文中提到的改革方法,收到了比較好的效果。學生的學習興趣大大提高,在項目的開發過程中,提高了實踐動手能力和創新能力,是值得借鑒的改革方案。
[1]譚浩強. C 程序設計(第3 版)[M]. 北京:清華大學出版社,2005.
[2]劉一松,畢建良,等.“認知- 驅動- 自主”教學模式與C 語言教學改革[J].Computer Education,2008,(14):23-24.
[3]滕金芳. C 語言程序設計課程教學方法的探討[J]. 高教論壇,2007,3(6):88-92.
[4]楊 平. C 語言教學改革探討與實踐[J]. 電腦學習,2011,2(4):63-64.
[5]唐 英. 項目遞進驅動教學法在《C 語言程序設計》的應用[J].職教探索與研究,2007,(4):32-34.