摘要:本文結合高職電子類專業的特點和學生的實際情況,從教學內容、教學方法和考核評價體系三方面對C語言教學中存在的問題進行了探討,提出了切實可行的思路和方法,通過教學實踐,取得了良好的教學效果。
關鍵詞:高職;C語言程序設計;教學內容;教學方法
中圖分類號:G434 文獻標識碼:A 論文編號:1674-2117(2018)09-0092-04
● 引言
“C語言程序設計”課程是高職電子類專業必修的一門專業基礎課,一般安排在第一學期開課。C語言是一門應用廣泛、實踐性比較強的編程語言,它既具有高級語言的特點,又有匯編語言的特點,在系統軟件開發和硬件驅動程序設計,尤其是嵌入式應用程序設計方面應用比較多。學好C語言,將會為后續“Java程序設計”“單片機原理與技術”等課程的學習打下良好的基礎。C語言概念復雜而抽象,課程內容較多,語法規則繁雜,邏輯性強,運用靈活,筆者在多年的教學過程中發現,學生普遍認為這門課難度大、抽象,不容易入門,因此學習積極性不高,缺乏學習興趣。如何讓學生具有濃厚的學習興趣,喜歡C語言,愛上編程,這是一個值得探討的問題。筆者通過多年的探索和實踐,認為C語言的教學應從教學內容、教學方法和教學評價體系三個方面改革,以培養學生學習興趣,激發學習積極性,提高課堂效率。
● 整合優化教學內容,加強實踐教學
1.整合優化教學內容,適合專業要求
“C語言程序設計”課程內容繁多,語法知識講解比較多,如果按照課本把教學重點放在語法規則的內容上,很容易將學生引入枯燥的學習中,導致學生很快失去學習興趣。因此,有必要針對專業,按照教學目標,對C語言的教學內容重新進行設計,優化整合教學內容。本著“夠用”的原則,根據專業要求,刪減不常用的章節,增加后續課程如單片機的相關內容,實現課程之間教學內容的無縫銜接,加強函數、指針和位字段等章節的講解。因為后續課程中涉及內存的操作比較多,建議把計算機內存的組織形式提到第一章講解,讓學生早一點了解計算機的數據存儲形式,這樣在學習數據類型和變量時,就比較容易理解,更能引起學生學習的興趣。同時,教學內容不能僅限于課本,要結合實際,選擇一些具有代表性的實例,讓課程中的抽象概念、語法知識和算法變得具體形象,引起學生探尋新知識的興趣。例如,以算法為中心,搜集電子類專業方向的程序案例,將需要掌握的知識融入其中,這樣,學生在掌握了算法的同時,還在不知不覺中學會了理論知識,并能了解C語言在所學專業中的應用。
2.加強實踐教學,提高編程能力
高職學生的培養目標是高等技術應用人才,重點是培養學生解決問題的能力。在C語言教學過程中,應強調精講多練,加強實踐教學,讓學生學會通過計算機編程來解決實際問題,培養學生的計算思維,使其養成良好的編程習慣,并提高其編寫、調試、運行和維護應用程序的能力。這門課傳統的上課方式是理論課和實訓課分開上,這樣容易導致學生在上理論課時因為學習的理論過多而來不及消化和理解,在上實訓課時又容易忘記教師講授的內容,漏掉很多知識點的練習。而如果用理論實踐一體化教學,理論實踐課同時進行,讓學生邊學邊練,對學到的理論知識及時進行理解和應用,教學效果就會好很多。這樣的教學模式需要教師提前進行精心的教學設計,組織教學內容,合理安排講課和上機時間,調控教學環節和整個教學過程,選擇合適的案例和任務,采用多種形式的教學方法,引導學生主動探求新知識,因此,這對教師的綜合素質和能力也提出了更大的挑戰。
● 采用多樣化的教學方法,提高教學質量
1.圖示教學法
C語言邏輯性強,并且比較抽象,運行程序的時候,學生只能看到程序的執行結果,容易對程序的運行過程感到迷茫,并覺得神秘。學生對編程更覺得困難,不能靈活運行所學知識進行程序設計。而圖示法可以直觀形象地表示數據,模擬程序運行過程數據的變化,讓學生真正理解程序、讀懂程序,并能非常迅速正確地寫出程序的運行結果。
圖示法在運用過程中,尤其是在講解數組和指針時獲得了很好的教學效果,學生通過畫示意圖,能更深入地理解程序的執行過程,熟練編寫常用的簡單程序,并能舉一反三,靈活運用。
2.趣味教學法
有人說,數據結構+算法=程序設計。那么算法就是程序設計的靈魂,在C語言教學中,算法是教學重點,更是教學難點。計算機的邏輯和人的思維邏輯有很大區別,C語言算法非常抽象,如何讓學生適應計算機的邏輯,深入理解算法,熟練掌握編程方法和規范呢?筆者認為,在教學過程中引入各種形式的趣味教學,能活躍課堂氣氛,提高學生的學習積極性,突出教學重點,攻克教學難點,使學生在輕松愉快的氛圍中,很快掌握算法,取得很好的教學效果。下面以三個例子說明趣味教學法在C語言教學中的應用。
例一:交換兩個變量值的算法
此算法在教學中可以聯系現實生活中交換兩杯水的方法來理解。課上,筆者準備了一杯鹽水和一杯糖水,讓學生想辦法實現兩杯水交換。很快,學生們就想到了用第三個空杯子作為交換時的過渡。這時教師可以拋出問題,如何將兩個變量的值進行交換?大部分學生很快就能想出辦法:定義一個中間變量t,就能很容易地實現兩個數交換。這樣,學生以后就不容易忘記,編程也不會出錯了。交換示意圖如下圖。
例二:冒泡排序算法
單純講冒泡排序的過程,對學生來說理解有一定的難度,如果采用游戲的方法,就能達到理想的效果。在這里以升序冒泡排序為例,為了便于學生掌握冒泡排序的整個過程,筆者在課堂上隨機選6位學生排成一隊,用身高代表數組元素的值,通過游戲的方式演示冒泡排序的過程。
第一趟排序,先從隊尾開始,隊尾的兩位學生按照身高排序,即第5位和第6位學生身高比較,若第6位比第5位學生矮,則兩位學生交換位置,否則位置不變,然后第4位學生和第5位學生比較身高,按照規則一一排序,一趟排序結束后,排在第1位的學生身高最小。以此類推,經過5趟排序后,實現了6位學生按照身高由矮到高的冒泡排序演示。通過游戲的方式,學生們參與其中,直觀地體驗和向其他同學展示冒泡排序的過程,在快樂的游戲中進入到學習狀態,掌握了算法,找到了程序設計的樂趣,增強了學好C語言的信心。

例三:累加求和算法
如果求s=1+2+3+…+100的算法設計,用實物演示法很容易把這個算法講明白。課前提前準備一些水果和一個袋子,上課時將這些水果按照每份1個、2個、3個……的數量分成多份。先用空袋子表示s=0,用i表示每一份水果的個數,將每一份水果裝進袋子里,就相當于s+=i;通過多次裝袋,最后袋子里的水果個數,就是累加以后的數據的和,即s=1+2+3+…,也即s的值,這樣算法自然就形成了。有不明白的學生,可以自行進行實物演示,直到理解為止。等學生掌握了這個算法,可以讓其思考類似s=a1+a2+a3+…+an這樣的累加求和,引導他們進一步探索累加求和算法。
3.啟發式教學法
啟發式教學法是以學生為中心,教師在學生現有認知水平的基礎上,提出新的問題,啟發學生去思考,積極探索新知識,在教師的引導下解決新問題的方法。通過這種方式,可以引導學生主動學習,從而讓學生主動完成知識的構建,達到一個更高的認知水平。教師在提出新問題的時候,在設置問題時,要遵循由易到難、循序漸進、逐層深入的原則,讓學生通過一定的努力就能解決問題,這樣才能引起學生學習的興趣,提高學習積極性,一步步完成任務,同時,教師要及時給學生鼓勵和評價,讓其體驗到成就感。例如,在講解求兩個數的最大值的時候,筆者用啟發式教學,學生很快就掌握了求兩個數最大值的算法,在此基礎上,筆者又提出如何求三個數的最大值的問題,在學生完成后,又提出了如何求多個數的最大值的問題,引導學生一步步思考,并引出了數組的概念,在講完數組的基礎知識后,又啟發學生通過數組實現多個數據求最值問題。在學習函數和指針時,筆者又提出如何通過函數和指針求最值的問題。這樣以問題為線索,將各個知識點串起來,學生就能系統地掌握所學知識,靈活進行C語言程序設計。
● 改革考核評價體系,突出過程性考核
筆試成績在傳統的C語言考核方式中占的比重比較大,一般超過50%,平時成績占的比重比較小,這樣的考核方式往往不能反映學生的真實水平,也很難調動學生的學習積極性。若要提高學生的學習積極性,加強課堂管理,真正合理公平地體現學生的真實學習水平,期末考核評價體系改革勢在必行。筆者在實踐中,將考核評價體系分為三部分:第一部分為平時成績,占總成績的20%,平時成績包括考勤、課堂紀律、課堂回答問題情況和課后作業完成情況。第二部分為實際操作能力考核成績,占總成績的60%,主要是平時學生實訓完成情況,動手能力和分析問題、解決問題的能力。第三部分是期末機考,占總成績的20%。在考核評價體系中突出了過程性考核,使學生更加注重平時的學習。通過改革考核體系,營造了良好的學習氛圍,學生們始終保持著學習的熱情,成績也有顯著提升。
● 結語
針對高職電子類專業要求和C語言教學中普遍存在的問題,筆者通過整合優化教學內容,采用多種形式的教學方法,改革期末考核評價體系等一系列的教學探索和實踐,使學生在整個學習階段一直保持著濃厚的學習興趣,使其編程能力得到了顯著的提高,讓學生逐漸喜歡上了C語言,愛上了編程。
參考文獻:
[1]劉小兵.《C語言程序設計》興趣培養教學改革與實踐[J].湖南科技學院學報,2016(5).
[2]袁喜連.“產教融合”思想指導下改進高職《C語言》課程教學的探索與實踐[J].快樂學習報:信息教研周刊,2014(9).
[3]付淇,譚軍.基于多元智能理論的教育游戲教學應用初探——以高職《C語言程序設計》課程為例[J].職教論壇,2015(29).
[4]張傳學.高職C語言教學方法改革探討[J].軟件,2012(10).
[5]甄華.C語言案例教學模式在高職教育中的探討[J].計算機與網絡,2015(8).
作者簡介:宮業琴,女,(1972.01—),副教授,碩士學位,研究方向為計算機應用及數字圖像處理。