郭凌云
摘要:對高職學生開設C程序設計課程是為了提高他們利用計算機解決實際問題的能力,但是在實際教學中,學生獨立編寫、調試程序的能力和用C語言解決實際問題的能力較差,主要原因是學生學習的積極性不夠,教師在教學過程中沒有很好地激發學生的學習興趣,對實踐課程也不夠重視。筆者根據實踐教學經驗,針對高職學生C語言程序設計課程教學過程中存在的問題進行了改革探索,并通過明確教學目標、改革教學方法、加強實踐教學和改革考核方式等方法提高教學質量,取得了良好效果。
關鍵詞:C語言;教學改革;綜合編程
中圖分類號:G642.0 ? ? 文獻標志碼:A ? ? 文章編號:1674-9324(2015)23-0068-02
一、引言
隨著計算機技術逐步應用到各個領域,如何全面增強學生的計算機應用能力,是計算機教學的重點之一。目前程序設計類課程在多數高校已成為必修課,其中C程序以其語言簡練、數據類型豐富等優點在系統軟件和應用程序中應用廣泛。C程序完全結構化、邏輯性強,非常適合教學,許多院校把C語言作為程序設計的入門課程,它是計算機專業的必修課,也是很多非計算機專業的公共基礎課,其重要性可見一斑。
高校的擴招以及各行業對各類人才需求增加,高職類院校學生人數也逐年增加。相比普通高等院校,高職院校更重在培養學生的實際工作能力,而相比普通高等院校的學生,高職學生有一定的文化知識儲備,動手實踐能力較強,但部分學生的文化素養偏低、意志力較差、缺乏學習興趣。針對高職院校學生開設C程序設計課程,教學效果往往事倍功半。
C程序教學過程中普遍存在教學學時緊張的問題,教師為了在有限的學時內完成培養方案中要求的教學內容,多借助多媒體課件進行講授,較少在課堂上示范編程及程序調試過程,而程序語言的概念、語法多而細,算法結構枯燥難懂,學生較難入門;實踐性教學環節薄弱,缺乏針對專業要求的訓練,學生主要對課堂上講過的例題或相似的習題進行驗證性實驗,不能很好地發現編程中會出現的問題,造成學生實踐動手能力差,難以實現技能培養目標;考核大多通過筆試的方式進行,不能有效地評價學生的學習情況,也不能很好地促進學生的實踐性學習,也無法鍛煉學生應用編程解決實際問題的能力。
本文針對我校軟件學院專科學生在C語言程序設計課程理論教學、實踐教學和教學考核等環節中存在的問題提出了改革方法,應用在實際教學過程中獲得了良好效果。
二、教學改革探索
1.明確教學目標,精選教學內容,改革教學方法。傳統C語言教學的目標更多的是教學生程序設計語言,卻非程序設計,而高職學生在實際需求中更注重程序設計的能力。因此本課程改革的教學目標是希望學生掌握簡單的數據抽象問題建模和簡單的算法等基礎知識,養成解決問題的能力和程序設計的能力,養成自我學習專業知識的能力,學會學習一門語言,熟練使用語言及其開發環境進行程序開發與測試的技能。C語言的計算能力強,語法知識豐富而細致,上機調試容易出錯,是一門比較難學的課程,C語言程序設計一般安排在大一第一學期,與它相關的課程沒有上,這也增加了學習的難度,學生比較難入門。因此,在開始學習的前幾節課,教師一定要注重激發學生學習興趣和學習主動性。提高教師自身素質,對所教課程鉆研精通,教學方法得當,精選教學內容,精心設計課件,課堂演示編程和調試過程,提高學生的學習興趣。C語言語法豐富,但是如果過度強調語法知識的細節和容易出錯的地方,特別容易使學生陷入過度關注細節,而忽略學習C語言的目標在于應用。在實際教學中要重點突出,把不常用的函數只簡單介紹,避免展開分析。在每節課之前,教師要對本節內容進行精心設計,針對本小節的內容提出一個與現實生活聯系較緊密且難度適中的問題,使用案例式教學法,分析問題,提出解決問題的方法,在分析問題、解決問題的過程中強化學生用編程解決實際問題的意識,在學生對該問題的程序所涉及的知識點和函數有了宏觀的認識后,然后講授與此相關的語法和函數,演示編程和調試的過程,最終給出相應的程序。另外,在教學過程中不應過度依賴PPT等多媒體教學設備,也要發揮傳統教學媒體的作用,利用黑板對關鍵內容進行板書演示,加強學生對主要內容的理解和對知識點的消化吸收。在課堂上提出問題、分析問題的過程符合學生的思維特點,也符合程序設計的本質要求,編程思想在理論教學中逐步加強,演示編程和調試過程,使枯燥的語法在解決實際問題的編程過程中得到具體應用。
2.加強實踐教學,針對不同的學生因材施教。C語言是實踐性很強的課程,大量的語法和算法應該在實踐教學中得到應用和鞏固,而編程思想也必須在實踐中逐步形成。在課內外,教師要經常通過各種方式與學生溝通,了解學生的計算機水平、對本課程的學習情況,以及在本課程學習中遇到的問題,對不同的學生實行因材施教,對學生集中反映的問題及時解決。在實踐教學過程中要對學生提出具體詳細的要求,使每個學生能夠盡其所能提高自己的實踐技能,避免學生在有限的實踐教學時間內因為沒有具體的實踐任務而降低實踐教學的效果。我們將實踐教學分成入門技能、基本技能和綜合技能三個階段,在不同的階段對學生提出具體的不同要求,并且根據不同學生的能力靈活調整實踐學習的要求。(1)編程入門技能。這一階段主要是練習C語言基礎知識、各類運算符、表達式、輸入輸出語句。首先要求學生能夠看懂課本的例題,在編輯器VC++6.0中輸入例題中的程序,并調試運行出結果。在學習初期,學生一般會出現各種語法錯誤,在此階段可以強化學生的語法知識。一個好的程序一般是經過多次修改和調試才能夠很好地實現它的功能,因此在C語言學習過程中,調試程序、改錯是一個重要的部分,學生熟悉課本例題后,教師可以給定一些能夠實現特定功能的程序,要求學生改錯,直至調試運行出正確結果。這一階段可以是學生熟練掌握語法知識,獲得學習程序設計的成就感,并激發強烈的學習興趣。(2)基本編程技能。本階段教學內容包括函數、數組和指針,在實踐教學中要求學生需要完成簡單的編程任務。這一階段要求學生能夠看懂程序的流程圖,給定程序后,學生應該能夠清楚的知道程序的執行順序,通過練習學會使用順序結構、選擇結構和循環結構,改編課本例題、擴展原有的程序實現更加完善的功能,使用數組、指針等新技能實現原有程序,實現一題多解,擴展解決問題的思路。教師給定實際生活中相對簡單的問題,用編程的思想對問題抽象建模,畫出流程圖,設計算法,并寫出相應的程序來實現。(3)綜合編程技能。程序設計不能陷入到單純學習語言語法的誤區,程序設計的語法是重要的,但是更重要的是用編程來解決實際問題。綜合編程階段教學內容深入到結構體、共用體和文件,在實踐教學過程中學生除了練習本階段編程的基礎知識外,教師提出實際問題,引導學生應用所學知識分工合作解決問題,達到學習知識點、掌握編程技能的效果。教師在布置具體試驗任務時要考慮問題的難易度和趣味性,可以布置難易程度不同的多個任務,學生根據自己的能力選擇不同的任務來完成,以充分發揮學生的主動性,避免能力較強的學生快速完成后浪費時間,同時也避免了水平較差的學生對實踐課程喪失信心和興趣,讓學生在學習中獲得成就感,在課堂上發揮主體作用。endprint
3.改革考核方式。教師在教學評價體系中增加對學生動手能力的激勵機制,能夠有效促進學生的實際動手操作的主動性。改變考試方式并不是一個教師所能進行的教學改革,但教師應該在能力范圍之內探索教學改革,增強學生的學習效果。我校的學生的成績評定中平時成績占30%,平時成績不應該是學生出勤率的簡單體現,而應是多種因素的共同結果,教師應注重對學生學習過程的評價,并將其作為平時成績的重要參考。實踐教學一般采用驗證性實驗和綜合性實驗的方式考核。驗證性實驗由學生獨立完成,綜合性實驗則分小組進行,學生對實驗的情況撰寫實驗報告,描述需求分析、算法設計、編寫程序和上機調試的過程,總結出現的問題和解決方法。教師針對不同學生的不同設計方案和不同問題做一些關鍵性的指導,形成一個以學生自己動手為主,教師引導與點評相結合的啟發式教學模式。在實踐教學時增加隨堂測驗,要求學生現場完成編寫調試程序。在評價過程中避免單一考核實驗結果的正確性,要建立面向過程,注重實踐操作能力和創新能力的考核機制,考核機制應能夠反映學生實踐課程的學習態度和實驗任務的完成情況,鼓勵學生主動分析問題,嘗試用不同的方法完成實驗任務,鍛煉學生創新能力。
三、結語
計算機應用廣泛,學生普遍對計算機水平有了更高的要求,學習程序設計難度較大,這就要求教師在教學過程中不斷探索和改進教學方法,促進學生的高效學習。結合高職院校學生的特點,從C語言課程的教學目標、教學方法、實踐教學環節和考核方式等方面進行分析,探討教學改革的方法,經過教學實踐,取得了較好效果,今后將在理論教學的案例教學和合作學習方面進行更加深入的探討和嘗試。
參考文獻:
[1]周軍妮,楊潤玲,江莉.C語言的多維立體教學系統[J].計算機教育,2013,(2):79-82.
[2]辛秀.高職院校C語言合作學習的教學實踐與反思[D].大連:遼寧師范大學,2012.
[3]黃淼,高敬禮,單冬紅,熊蜀峰.C#程序設計課程教學改革研究[J].計算機教育,2010,(18):21-24.
[4]周世平,童向榮,盧云宏.程序設計基礎課程改革方案探討[J].計算機教育,2015,(3):84-86.
[5]李學會.C程序設計教學改革與實踐[J].實驗室科學,2010,13(2):33-34.endprint