曹 陽
(陜西理工學院 數學與計算機科學學院,陜西 漢中 723000)
探索高校專科C語言教學模式
曹 陽
(陜西理工學院 數學與計算機科學學院,陜西 漢中 723000)
基于教學實踐,分析了當前高校計算機專業“C語言程序設計”專科教育中存在的問題,從激發學生自信心、教材選擇、現有教學模式、現代教學手段應用和實踐教學等方面進行探討,進而加強學生程序設計能力的培養,提高教學效果.
C語言程序設計;教學現狀;教學改革
C語言[1,2]是最簡單、最基礎的一門結構化編程語言,是數據結構、操作系統等計算機課程的先行課,是應用最廣泛的計算機程序設計語言之一.學好C語言已成為高校學生普遍需求.由于專科學生自身基礎薄弱加之C語言自身的特點,學生普遍存在“聽得懂,不會編”的現象,教學效果不理想.如何使學生既掌握基礎知識又能對所學的知識加以靈活應用解決相關的實際問題,已成為該門課程教學的難點.筆者結合自身從事多年的實踐教學體會,對C語言教學改革提出一些看法和建議.
C語言是學生在高校學習中的學習的第一門計算機語言,是人與計算機交流的語言之一.如何將自然語言描述的問題用C語言描述并讓計算機解決,為什么必須遵循“所謂的”語法規則等問題成為學生在學習中的障礙,從而影響學生對該門課程的學習興趣.
C語言具有運算符豐富、語法限制不嚴格、用戶自定義數據類型、程序設計自由度大等特點.然而,這些特點既是C語言的優點,也是初學者學習的難點、絆腳石.例如:自加(++)和自減(--)運算符,雖然能簡化程序和提高運算速度,但++/--運算符只能對變量進行運算,運算符前置和后置的效果不同,一個表達式中出現連續的++/--運算符時結果也不同,例設變量i=3,表達式(++i)+(++i)+(++i)運算結果為什么不是4+5+6=15,而是18,這也造成了學生學習的困惑.
從實際教學經歷來看,學生學習主要受計算機基礎差、邏輯思維能力差、數學基礎差、英語能力差四個因素的制約.計算機基礎差受環境和條件的限制,邏輯思維能力差影響學生分析、設計、調試程序的能力,加之高級語言普遍用英文,所以要學好C語言必須克服以上四個制約因素.
教學大綱是教師教學必須遵守的守則,然而很多高校并不重視專科教育的培養,只制訂了培養計劃,沒有為各門課制定專門的教學大綱,教師上課時通常根據本科教學大綱給專科學生上課,因而它又成為教師教學的絆腳石.由于教學課時的減少(以前72學時變成今天的36學時),教學的內容沒有減少,教師在教學中為了完成教學任務,利用課件進行教學,知識點太多,學生在有限時間難以接受,一堂課下來學生感覺好像“看電影”,從而影響教學的質量.
語言學習必須理論與實踐相結合,只有在上機實踐中學生才能真正學會如何編寫和調試程序,才能更好地掌握理論知識及其應用.然而在C語言實驗教學中普遍存在實驗時間安排不合理,實驗內容針對性不強,不能理論聯系實際,不能把編程思路和程序測試放在首位,致使學生分析和解決問題的能力不能達到很好的訓練.
C語言程序設計考核方式主要以筆試考核為主,上機考核為輔甚至完全不作考核,形成了一種片面的應試教育,忽視了學生實驗能力、動手能力和創新能力的培養.從而不能激發學生學習的積極性,考試及格就行,也就失去了學習C語言的本意.
許多高校并沒有為專科教育預訂專門的教材及制定專門的教學大綱,而是采用的大學本科教材及教學大綱,只是教學過程中降低難度而已.目前很多院校都采用清華大學出版社出版的譚浩強《C程序設計》,該書內容較多,有些知識點過于細致,學生在自學過程中容易混淆.因此,學校首先應組織教師結合實際為專科學生制訂相應的教學大綱,其次教師要認真鉆研教材,研究教學內容,結合學生實際情況對教材進行整合、優化設計.授課時注意突出解題思路,突出課程重點和難點,強化在實際軟件開發中經常使用的結構體、函數等重點知識,以增強學生求職時的競爭力,實現課程的“程序設計”的目的.
多媒體輔助教學,改變傳統的教學方法,拋棄單一的“教師—黑板—教材”的教學方式,將課堂學習與多媒體教學、網絡教學、實踐教學、個性的學習有機的結合起來,形成“課堂—網絡—實踐”的教學模式.在教學中可以通過案例教學法、問題引入法、任務驅動法等方法來吸引學生學習的興趣.例在案例選擇時應該與實際相結合,具有趣味性.如在講分枝結構時,先提出出租車如何根據里數計費,也就引出了起步價內及外的問題,自然也就引出了選擇結構的相關知識,當學習完選擇結構的知識時,還可以引入“獎學金發放問題”、“綜合測評問題”對所學的知識進行鞏固,進而改善教學效果.
“精講”不等于講得越少越好.教師要講到要點上,充分體現典型例題的編程思路、算法,將嚴謹、富有邏輯性的編程規范思想清晰地展現在學生面前.學習C語言必須“手“和”腦“結合起來.多練是學習編程的關鍵,是檢驗所學知識的重要途徑.在練習的過程中,不僅要注意習題的針對性、典型性和靈活性,還應該提倡一題多解,培養學生從多種角度對問題進行思考的能力,拓寬解題思路,訓練學生發散性思維.例如在求n=5的階乘時,可以用遞歸,如果求n=100的階乘,怎么求?應該采用什么樣的數據結構?
算法是計算機解決問題的方法和步驟,是程序設計的靈魂,而語言只是算法的表現形式.因此在理論教學中,應注重算法,培養學生以算法為中心的思維模式.將語法知識與實例相結合進行實例教學,使學生互動參與教學過程,解決實際問題.學生程序設計題中必須做到先分析題目,做什么,完成功能是什么,如何做,即給出算法,然后用語言表示,解決問題,最后拓展問題,這樣有助于形成學生創造性思維.
實踐是檢驗理論教學的真理.只有通過上機實踐,學生才能真正掌握如何編寫和調試程序.然而上機實踐中存在問題較多,導致學生上機興趣并不濃厚,主要原因是實驗內容針對性不強,實驗項目不能激發學生的興趣,缺乏創新性.很多學生在上機時只是驗證程序,沒有思考,感覺上機很無聊.因此在教學中首先必須與實際相結合引入教學案例;其次在制訂實訓內容時可由必做和選做兩部分構成,必做是每個學生必須完成的部分,選做部分是供接受能力強、有余力、有興趣的學生選做;再次采用分組參加項目設計,每組中必須有一個動手能力強的同學和一個動力能力弱的同學,通過編寫掃雷、貪吃蛇、五子棋等游戲項目讓學生體會實際編程中學與用結合的樂趣,從而提高學生實際編程能力.
期末考試不能作為判斷學生成績好壞,更不能作為判斷學生是否優秀的“鐵尺”,現代教育中判斷學生成績采取多樣化的考核形式.C語言是理論與實踐緊密結合的課程,更不能采用傳統的考核方式來評價學生,應該將實驗教學與平時學習也作為評價學生的依據,也就是說學生的成績應該由上機操作、卷面及平時成績構成,具體分布詳見表1.

表1 C語言課程考核標準
本文對高校專科C語言教學現狀進行了分析、研究并結合實際的教學經歷,從教學方法、教材選擇、教學內容、學生學習積極性、實踐教學等方面提出了自己的教學建議.在今后的教學中仍將不斷探索,積極改進教學方法,激發和培養學生學習的積極及創造性,為后繼課程及實際應用打下堅實的基礎.
〔1〕譚浩強.C語言程序設計(第三版)[M].清華大學出版社.2010.
〔2〕羅建軍,等.C++程序設計教程(第二版)[M].高等教育出版社,2010.
〔3〕許晶.論實訓在高職C語言教學中的重要性[J].計算機教育,2007(9).
〔4〕丁輝.高職C語言教學改革探索的思路[J].常州輕工職業技術學院學報,2006(3):23-27.
G642
A
1673-260X(2012)03-0225-02
陜西理工學院科研基金(SLGKY10-09)