趙麗娜
[摘要]“C語言程序設計”不僅是計算機專業的專業基礎課,也是電氣工程及其自動化、電子信息、通信等專業的學科基礎課。該課程要求學生掌握C語言的基礎知識,能夠獨立編寫代碼,具備閱讀程序和程序編寫的素質。通過分析高職高專學生的特點,針對高職院校非計算機專業“C語言程序設計”教學過程中出現的問題,在教學內容、教學方法和考核方式等方面進行了探索和改革。
[關鍵詞]高職高專;非計算機專業;教學內容;教學方法;改革
[DOI]1013939/jcnkizgsc201718283
C語言是目前應用最廣泛的結構化程序設計語言之一,既具有高級語言的特點,也具備低級語言能夠訪問計算機底層的能力。C語言的應用非常廣泛,C語言可以應用在電子技術、計算機控制、嵌入式系統、單片機應用和通信技術等相關學科。通過本課程的教學,可以讓學生學習C語言的基本知識,掌握基本的程序設計能力,既可以為后續相關課程的學習打下堅實基礎,也可以運用C語言來解決以后崗位工作中出現的實際問題。
1C語言教學現狀
C語言具有較強的實踐性和應用性。對于高職非計算機專業,一般于大二第一學期開設本門課程,先修課程是“信息技術基礎”,后續課程是“單片機原理及應用”、“嵌入式系統”等。“C語言程序設計”要求學生掌握微機的硬件和軟件的基本知識,培養學生微機的邏輯思維能力,要求掌握編程思想,具備基本的閱讀程序和程序編寫的素質。
在實際教學過程中教學組織者發現,C語言語法煩瑣,知識點復雜,并且高職學生計算機專業知識水平較低,學習積極性欠缺,如果采用傳統的以教師講課為中心的教學方式,將不能實現很好的教學效果。除此之外,傳統的以筆試成績占總評成績的70%的考核方式,體現不出實踐的重要性。[1]
2改革措施
21優化教學內容
高職高專學生對感興趣的東西學習積極性較高,而對相對枯燥的內容則學習效率較低。又由于非計算機專業學生計算機相關知識薄弱,因此在“C語言程序設計”這門課的教學中,不能盲目地照本宣科,教學內容的傳授應考慮學生的接受程度和接受能力。樹立因材施教的指導思想,遵循“理論夠用,注重實踐”原則,選擇既具有基礎性、典型性的內容。應降低對算法的要求,選擇典型的、淺顯易懂的算法。例如講解指針部分,重點應放在指針的概念和簡單應用,其余內容可作簡單介紹或選擇課下學習。[2]
課程的前幾章內容往往是變量、數據類型、運算符、表達式等C語言基礎知識,如果只按照教材順序講解,講了幾周課之后還沒有涉及具體編程內容,學生感受不到C語言的功能和魅力所在,容易使學生對本門課程產生枯燥乏味和疲倦的心理,從而失去對C語言的學習興趣。所以在課堂教學過程中應以程序設計為主線,把學生要掌握的基礎內容貫穿到編寫代碼的過程中,通過實際案例講解基本知識點,把學生不感興趣的知識融入實際案例里。
22教學方式改革
C語言程序設計是一門專業基礎課,教師要把基本內容講解詳細,以便讓學生容易掌握,同時要讓學生學會編程技巧來解決實際問題。因而,在教學過程中應按照“教、學、做合一”的原則,變更了以教師講解為重點的傳統的教學方式,真正做到了以學生為主體,教師為主導,讓學生邊學邊練,并在實際編程平臺下熟練掌握編程技巧和操作方法。主動實施分組討論、任務驅動、講練結合和案例導入等多種“以學生為主體”的教學方法。
221案例導入
在本課程的講授過程中,學以致用是一個基本的要求,如果只是一味地對學生灌輸知識點,不注重與實際的結合,因此在教學的過程中使用了大量的案例。以解決實例的學習方式來學習C語言程序設計這門課程,使學生體會到知識的實用性,提高學習興趣,并能夠加深對知識點的理解。[3]
222任務驅動
通過任務來激發、加強學生的學習積極性,以任務的完成結果來檢驗和總結學習過程。每次課都提出一個明確的任務,通過一個任務掌握某個章節的知識點,突出重點,分解難點,教學目的明確。如講授選擇結構時模擬銀行ATM機的菜單選擇;講解順序結構程序設計時提出各類數據輸入輸出方式的問題。[4]
比如講解循環結構中的for語句,首先提出問題“計算sum=1+2+3+4+5+…+100的值”。傳統的思路是利用賦值語句,將1,2,3,4,…98,99,100這些數值進行加法運算賦值變量sum。當利用賦值語句求解加法運算的時候,按照以下思路賦值。
步驟1:初始化,賦值sum=0;
步驟2:計算sum=sum+1,此時sum中的值為1;
步驟3:計算sum=sum+2,此時sum=1+2;由此可知最后一條賦值語句為sum=sum+100,總共100條賦值語句。
在實際操作中發現輸入一百個數值的過程不僅重復煩瑣,而且效率低易出錯,如果利用賦值語句計算1+2+3…+10000的值,則更不容易實現。通過分析發現這種解決方式體現不出編程語言的優勢所在,需要尋求其他辦法。在這個時候教師提出重復執行的操作可以用循環結構來表示,下面用循環結構中的for語句解決此問題。
再次提出“具體怎樣使用循環結構”的問題,通過以上分析,每條賦值語句可以改寫成sum=sum+i的形式,并且這條語句重復了一百次,循環體語句是sum=sum+i,i的變化范圍是1~100,i的變化規律是自增1。引出for語句的標準形式for(i=0;i<=100;i++){sum=sum+i;}。通過“提出任務—分析任務—完成任務—引出知識點及學習重點”式的任務驅動教學方式,相對于傳統的反復枯燥講解知識點式的教學方式,可以讓學生帶著問題主動地去學習,有助于提高學生學習積極性。[5]
223講練結合
作為高職高專教學,實踐教學應該是其一大特色,學生對實踐性環節的學習興趣明顯高于理論課程的學習,C語言的教學也應通過加強實踐教學,來培養學生的學習興趣。
一般情況下,學生即使掌握了程序設計基礎知識,但是在實際操作中自己仍然不會編程,面對實際問題無從下手。針對以上問題,采用了邊講邊練的教學互動模式。通過講解編程思路、編寫代碼、運行、調試自己設計的程序,最終獲得正確結果,讓學生親自觀察和體驗程序設計的成功感受,加深知識的理解。在課內實踐教學過程中,采用啟發式的教學模式,摒棄“填鴨式”教學,引導學生在分析問題、解決問題的過程中加深對知識點的理解。例如學習復合賦值運算符“+=”,首先引導學生思考a=1;a+=?和a=2;a+=?,下一步經過編程或取結果,分析每一個結果,引出復合賦值運算符的運算規則,掌握C語言風格的表達方法。[6]
23考試改革建議
傳統的考核模式是期末考試占總評成績的70%,平時成績占總評成績的30%,這種“一考定終身”的評價方法,在很大程度上制約了教學水平和教育質量的提高。作為一門實踐性和應用性較強的課程,要求學生注重實踐,將體現編程能力的上機實驗成績加入到總評成績中,提高平時成績和實驗成績的比例,降低筆試成績的比例。凸顯實踐和學習過程的重要性。[7]
3結論
總之,教無定法,貴在得法。在本課程的建設過程中還有很多值得我們去研究探討的問題,希望本門課程的教學改革可以點燃學生對計算機學科領域的學習熱情,能夠養成學生良好的編程習慣,具有一定的程序設計能力,為以后專業課程的進一步學習打下堅實的基礎。
參考文獻:
[1]李凌以學生為中心的《C語言程序設計》課程教學改革[J].商丘職業技術學院學報,2015(2)
[2]陳偉宏,何建新高校非計算機專業C語言教學改革探討與實踐[J].中國電力教育,2013(34)
[3]于華應用型本科院校C語言教學改革的探討[J].山西大同大學學報,2009(6)
[4]康葦葦于計算思維的C語言教學模式分析與案例設計[J].重慶師范大學,2015(4)
[5]邊海容《高校語言程序設計》課研究性學習的設計與實踐[D].南昌:江西師范大學,2005
[6]鄧維斌,周玉敏提高C語言實驗教學效果的探索[J].實驗室研究與探索,2006,25(3)
[7]何雪英基于計算思維的C語言實驗教學改革探索[J].電腦知識與技術,2016(27)