郭瑩 張翠玲
摘要: 目前國內《C語言程序設計》的研究論文大多局限于微觀層面的具體教學方法,缺少全局性的認識和分析。本文從中觀層面對《C語言程序設計》課改問題進行了深入系統的研究,并從教師、學生、教學內容和教學環境等四個方面提出了相應對策。
關鍵詞: C語言提高教學質量對策
一、引言
目前,許多高等院校開設了《C語言程序設計》這門課程。然而,學生普遍認為這門課程枯燥難懂,沒有學習信心和興趣,學習效果不容樂觀。教師作為教學過程的主導者,有責任認真反思教學中存在的問題,創新教學觀念,改革教學方式,努力增強教學效果。
二、現狀分析
1.C語言自身有一定難度。
C語言涉及的概念復雜、規則繁多、語法嚴格、使用靈活,且基于DOS運行環境缺乏直觀性,一般的編程枯燥乏味。以上特點給師生的教學和學習帶來了一定的難度,嚴重制約了學生主體作用的發揮。
2.教學要求相對專業培養目標孤立。
《C語言程序設計》作為一門重要的基礎課程,要為后續的數據結構、操作系統、編譯原理、面向對象程序設計等課程打下堅實的基礎。然而,課程教學大綱如何不閉門造車,適應專業培養目標的整體要求?其修訂工作往往為人所忽視。
3.缺乏較好的教學方法[1]。
盡管當前大多數《C語言程序設計》課程采用了多媒體教學手段,然而,多數依然沿用以教師和教材為中心的講授教學模式,基本上把教材的內容原封不動地輸入到課件,形成了效果更差的以課件為中心的模式。在這種模式下,學生往往按照教師的講授速度被動學習,缺少及時地消化理解,更談不上進行知識的內化和再創造,喪失學習興趣的也不在少數。
4.重理論,輕實踐。
教師容易走入一個誤區,即把授課重點放在大量的概念、術語和語法解釋上,忽視程序設計思想和能力的培養。許多教師不能對實踐環節進行系統的教學設計,往往把上機作為驗證理論的手段。盡管教師們不愿承認,但正是這種重理論、輕實踐的思想使得學生的學習目標模糊不清、學習方法事倍功半,枯澀難懂的抽象理論甚至把一些學生拒之門外。
5.學生學習目的不明確,學習積極性不高。
一些非計算機專業的學生認為這門課程與所學專業毫不相關;一些計算機及相關專業對編程有所了解的學生認為C語言是過時的語言,應該學一些C++、JAVA等當前主流的語言。還有許多學生習慣于應試教育下的教學模式,一旦遇到困難就會產生畏懼、排斥心理。基于以上種種原因,許多學生對學習C語言沒有興趣,毫無疑問對增強教學效果起到了負面作用。
6.學生學習水平參差不齊。
有些學生基礎較差,高中階段未學過計算機語言,甚至沒有接觸過計算機;有些學生邏輯思維能力強,不滿足于課堂上教師教授的知識;有些學生學習能力相對較弱,理解和掌握各知識點速度較慢;有些學生不重視實驗,課前不預習,上機就是機械地打字,課后抄襲實驗報告;有些學生反映上課能聽懂,上機時不知從何下手;上課開小差、打游戲的學生更是屢見不鮮,等等。面對這些千差萬別的教學對象,大多數教師采取折中的方法,即以中等學生的學習能力作為教學的標準,這種“齊步走”的方法使相當數量的“兩端”學生逐漸失去了學習的興趣。
三、對策研究
教學是教與學的總稱,教學活動由教師、學生、教學內容和教學環境等四個要素組成,這些因素互相作用,共同影響著教學活動的效果。以下針對四個要素分別闡述提高教學質量的對策。當然,在實際應用中要把它們看做一個有機的整體。
1.教師層面。
(1)轉變觀念,努力提高自身素質。
教師要樹立以學生為本的理念,明確以培養學生的程序設計思維、創新意識和實踐能力為目標,努力提高自身素質,尤其是教學設計和實踐教學能力,爭取成為“雙師型”教師。
(2)以人為本,強調因材施教。[2]
教學目標歸根結底是讓學生學到了什么,而不是教師教了什么。在教學過程中,應以學生為中心,以激發學生的學習興趣、提高學生的能力為關鍵,針對學生的需求和特點組織教學,根據學生的反饋及時調控教學進度,同時注重不同層次學生的差異,針對學生實際的認知水平和能力水平,因材施教。
(3)認真鉆研,不斷改進教學方法。
所謂“教無定法”,教師、學生、教學內容、教學環境任何一個因素的改變均可使用不同的教學方法。因此,教師應認真研究教學規律[3],根據學生基礎、教學目標、教學內容、教學條件,對教學方法進行不斷深入的改革和實踐,方可保證教學質量的穩步提高。
在多年的實踐過程中,廣大教師已總結了不少值得借鑒的教學方法,如討論法、演示法、實驗法、案例法、發現法等。在教學過程中,不能盲目照搬他人模式,應將各種教學方法相互融合,力求做到深、活、透、新,建立完整的教學模式體系。
2.學生層面。
(1)激發學習興趣,端正學習態度。
教師通過明確C語言在專業學習中的地位、精心選擇教學內容、合理設計教學方法,不斷激發和保持學生的學習興趣。然而,學習不能僅憑興趣,更要有持之以恒的精神和毅力。特別是隨著學習目標的不斷提高,困難也會越來越多,此時教師要多加引導,幫助學生克服畏難情緒,端正學習態度。
(2)明確學習特點,強調學習方法。
C語言概念復雜,使用靈活,不能局限于基本語法和規則的掌握,更強調程序設計的思想和方法。鑒于此特點,教師要引導學生重視實踐在學習過程中的重要地位,采取適合自身的學習方法,在程序設計、調試分析的動態過程中達到預期目標。
(3)理論聯系實踐,重視實驗環節。
有些老師把實驗課完全交給了學生自主進行,教師的任務是為有疑問的同學解決問題,這種方式是極不可取的。實驗環節“教師主導,學生主體”的模式仍要貫徹執行。教師不僅要進行講解答疑,而且要明確教學目標,安排實驗任務,分析典型算法和解題思路,鼓勵學生獨立完成。
(4)加強程序設計思維訓練。
程序設計課程的基本任務就是訓練學生的邏輯思維和程序設計思維能力。在教學中,要淡化語法、強化算法,把算法分析與設計思想貫穿于程序設計的教學過程中,為以后編寫程序、軟件設計奠定基礎。
(5)培養自主學習和創新思維能力。[1,4]
教師要“傳道、授業、解惑”,我認為“傳道”即“授人以漁”。教師傳授的知識往往是抽象、機械、靜止、片面和孤立的,學生不知道如何靈活地綜合運用這些知識解決實際問題。因此,培養學生自主學習和創新思維能力,對解決本門課程乃至工作崗位上的問題至關重要。
3.教學內容層面。
(1)針對專業,制訂教學大綱。
教學大綱是教學活動的重要依據,要明確學生在知識、能力、素質等不同層面上要達到的要求。不同的人才培養目標必然由不同的知識和技能構成,目前我們缺乏細致的教學研究,除認真分析各專業的共同點之外,更要深入挖掘各專業對程序設計基礎能力的不同要求。
(2)依據大綱,精選教學內容。
無論教材編寫得多好,其深度和廣度不一定適合本校學生的具體情況。因此,教學內容不能等同于教材,教師應根據教學大綱的要求,認真鉆研、補充、優化教材,采取“有所取、有所不取”的策略,精心選擇教學內容。
在課程內容的設計上,不宜過分注重語法知識,而應該重點強調程序設計技術的基本方法,要合理選配和組織那些基本的、核心的、重點的內容,做到少而精,對于一般性的、擴展的內容,可以組織學生進行課外自學。
(3)減少驗證性實驗,增加綜合性、設計性實驗。
在實驗環節設計上,要注意驗證性、設計性和綜合性實驗的比例,在保證驗證基本理論和訓練基本技能的基礎上,增加設計性和綜合性實驗項目。有些高校在課程結束時增加了實訓或課程設計環節,使學生對所學知識綜合運用、融會貫通,這將有利于培養學生的創新思維、獨立分析和解決問題的能力。
(4)合理設計作業任務。
針對每堂課的知識點,安排適量作業,以便及時強化和鞏固所學內容。作業布置要符合學生的學習目標和學習規律,難度和題型要適合學生學習狀態,兼顧理論和實踐形式,兼顧語法規則和算法設計。還要針對作業中存在的問題,及時適當調整下堂課的教學設計。
4.教學環境層面。
(1)合理運用教學手段。
利用現代化的教學手段,可以豐富課堂教學內容,提高課堂教學效率,降低理解難度,達到直觀、快速、標準、深刻的教學效果。然而,要防止對現代化教學手段的盲目和隨意使用,為達到不同的教學目標需要選擇不同的教學媒體。在適當的時候,“黑板+粉筆”是最佳的媒體選擇。
(2)建立課程網站。
課程網站通常提供教學大綱、教學日歷、電子教材、授課錄像、多媒體課件、實驗指導、作業與習題、網上答疑、在線測試及經驗交流等功能。有效地利用課程網站可以調動學生的學習積極性,彌補教師在因人施教難免存在的不足,為教學質量的提高起到重要的保障作用。
四、結語
以上是我近十年來在《C語言程序設計》課程教學改革中一些體會。隨著社會需要、計算機發展和學生知識結構的變化,對該課程的深入改革是一項長期而艱巨的任務,但只要勇于探索,善于總結,就一定可以取得理想的成效。
參考文獻:
[1]董衛紅.C語言程序設計的教學改革與實踐[J].常州輕工職業技術學院學報,2007,(1):35-38.
[2]謝少安.關于大學互動教學設計的探索與思考[J].教育探索,2010,(223):61-63.
[3]張桂春,唐為民,張琳琳.高等教育學[M].大連:遼寧師范大學出版社,2007.8:187-243.
[4]高偉,張國印,黃宏濤.C語言程序設計課程建設研究與實踐[J].計算機教育,2010,(16):79-82.