摘要:C程序設計作為一門重要的計算機基礎課程,在其教學過程中,主要存在著學生學習目的不明確、積極性不高、編程思維欠缺、動手能力差等問題。針對以上問題,結合教學中的一些體會對課程教學提出了一些方法和建議,以取得更好的教學效果。
關鍵詞:C程序設計;教學方式;實驗教學
中圖分類號:G642文獻標識碼:A文章編號:1009-3044(2008)11-20290-01
1 引言
C 程序設計功能豐富、表達能力強,既具有高級語言的優點,又具有低級語言的許多特點,在當今系統軟件和部分應用軟件的開發中具有很強的實用性。[1]C程序設計是計算機及相關專業中一門重要的計算機基礎課程,也是《C++程序設計》、《數據結構》和《操作系統》等課程的前導課程。由于作為程序設計的入門課程,同時C語言牽涉到的概念比較復雜,規則繁多,使用靈活,容易出錯,使不少初學者感到學習困難。這就要求教師深入探討教學內容、方法及手段的改革,尤其是探索一套行之有效的教學方法。
2 明確教學目的、引導學生正確認識課程
C 程序設計主要培養學生正確的設計算法以及編程能力,熟練掌握程序設計的思想,培養學生結合所學知識解決實際問題的能力和正確的編程思維方式。但是《C程序設計》課程在學生心中沒被引起足夠的重視,對課程的理解普遍存在兩個誤區:一是在當今的軟件領域,C語言已經無用武之地,想一步到位學C++、JAVA之類;二是程序設計對今后的學習和工作意義不大。[2]
針對這兩個錯誤的看法,我們從兩個方面有意識地引導學生正確對待C 程序設計:第一、強調算法,我們通過講解一些常用的、經典的算法,使學生對學習C程序設計有更高層次的認識,認識到算法是程序的靈魂,只要有了算法,可以用不同的計算機語言來實現;第二、理論與實踐相結合,收集一些與專業聯系緊密的應用程序作為范例,同時可以例舉一些因特網上的應用(例如:網站、網絡游戲的開發),讓學生清晰的認識到程序設計的重要作用。
3 注重教學改革,采用多樣化的教學方式
實例式教學注重實例演示、動手實踐,與計算機學科自身的實踐性、操作性強的特點相一致。優秀的課堂教學應該以程序設計為主線, 寓概念于實例中, 將復雜枯燥的語法知識分解到每個生動、有趣、實用的程序實例中,避免一味地給學生講解語句的功能和語法規則,使學生陷入到繁瑣的語法規則之中。實例選取的適當與否直接影響學生的學習效果;選取時應注重基礎知識與基本技能的訓練,選取的實例既有基礎性、典型性,又要盡量保持一定的趣味性。
在實例式教學活動中,我們不能只給學生一張n-s流程圖,一個正確的程序和結果,而更應該展示給學生的是一個過程,一個思想,也就是怎么樣去解決這個問題。我們的重點在于教會學生掌握方法,即幫助學生學會自己解決問題。我們首先介紹實際問題,針對問題進行分析,然后將實際問題抽象為數學模型(能否得到正確的數學模型就決定我們的程序能否得到正確的結果),接著我們介紹問題的解決辦法(即算法和數據結構),最后使用C編程實現。在教學過程中,教師切忌采用灌輸式教學,一味的自演自說,而是應該有意識地舉一些例子,由淺入深、由易到難、循序漸進、逐步深入的介紹我們的知識點;通過與學生的不斷互動,活躍、引導他們的思維,來啟發學生發現問題、解決問題;將自身角色轉變為學生主動學習的幫助者、促進者,培養學生獨立思考能力。
這個過程的重點是介紹程序設計方法和思路,在分析程序和程序設計中讓學生逐步熟悉基本的語法和語句。對于在程序中出現的新的語句或函數,我們據此實例對其進行講解,不做詳細深入講解,進而來突出程序設計為主線、算法是教學重點。在學生掌握實例的算法以后,我們針對新出現的語句或函數給出若干問題作為課下作業,采用問題驅動法來引導學生對該語句或函數進行更深入學習,這樣一方面,我們可以在有限的學時內,更好的講授教學重點難點;另一方面,可以引導學生在課余時間充分發揮自己的思維,突出其在學習中的主體作用,培養其自學能力。
整個教學過程中強調在應用中學習,從而避免了枯燥、繁雜的理論說教,不僅能增進學生的學習興趣和積極性,而且對提高學生綜合分析和解決實際問題的能力也大有幫助。
4 強化實驗教學,培養動手能力
C程序設計是一門理論與實踐并重的課程。我們應該改變實驗教學為理論教學的附屬、實驗僅僅是對理論的簡單驗證的觀念,認識到學生只有通過實驗環節才能在實踐中真正的掌握C語言語法、語義,培養程序設計的能力。因此,我們要加大實驗教學的力度,對實驗教學的各個環節進行精心設計。
興趣是激發學生主動學習C語言的關鍵,而加強實驗教學,盡力提高實驗內容的趣味性,利用學生在實驗過程中產生的“求知欲”和“成就感”是激發學習興趣的一種重要方式。精心設計實驗內容,使其不但與理論教學同步,而且突出理論知識的重點與難點。實驗內容包括三部分:一、驗證型實驗。該部分要求學生根據實驗指導書中要求進行操作,題目有參考答案可以借鑒。主要通過對一些知識點的驗證,來幫助學生掌握基本的知識點;二、簡單的編程題與程序填空題。該部分內容主要針對所學的新概念、新語句,是對他們的簡單的運用,盡量體現出教學重點與難點;三、程序改錯。內容的選取主要針對學生容易疏忽、易犯錯誤的知識點,通過這些“反例”幫助學生扎實掌握知識點;四、編程題,該部分題目較復雜,具有一定難度,注重前后知識的銜接,需要綜合運用前面章節的內容,要求學生綜合所學的知識來達到知識的系統化[3]。同時,在設置實驗內容時我們應該考慮到不同層次的學生,通過設置一部分選做題來引導學有余力的學生進一步學習。多種實驗內容的結合, 即鞏固了學生的理論基礎,又可提高學生分析問題、解決問題的能力,從而使學生整體的動手能力有所提高。
在指導實驗時,應讓學生先獨立解決問題,在學生不能獨立完成時,教師應該先詢問學生的解題思路,通過與學生進行討論來引導學生、讓學生自己發現問題,分析、解決問題,從而達到輔導的目的,而不是直接告訴學生正確的解題思路。
實踐環節要注重學生調試程序能力的培養。基本調試技術是深入學習和取得實際編程能力的前提,可通過現場演示等手段,講解C語言的編譯環境及一些常用的調試技巧,例如通過單步執行、設置斷點、觀察變量的值等調試技巧來幫助學生理解程序的執行過程,增強程序的排錯能力。教師需要對實驗操作中遇到的問題和常犯的操作錯誤進行歸納總結,集中進行講授,及時有效地清除學生學習過程中的障礙。
5 改革課程考核方式
課程考核采用筆試考試、實驗考試及平時實驗成績相結合的方式。其中筆試考試占總成績的50%,可采用類似計算機二級考試的C 語言部分作為考題,對學生掌握理論基礎知識的程度進行全方位考查。實驗考試占總成績的40%,采用上機操作的考核方式,考察學生的編程能力、程序調試能力。平時實驗成績占總成績的10%,考核依據為平時實驗項目的完成情況。
課程的這種考核方式避免了學生埋頭于書本,死記硬背知識點,忽視實際操作能力與應用能力的培養;使學生將精力集中于程序的設計與調試,有助于實際動手能力的培養。
6 結束語
C程序設計這門課程,作為程序設計的入門課程,起著重要的作用。教師要有效地組織教學,以“程序設計”為主線,靈活地運用多種方法進行課堂教學;注重學生程序設計能力的培養,抓好實踐技術技能的訓練;激發學生的學習興趣,讓學生主動、愉快地學習,這樣才能取得良好的教學效果。
參考文獻:
[1] 譚浩強.C程序設計[M](第三版)[M].北京:清華大學出版社,2005.
[2] 龔偉.《C程序設計》課程教學的思考[J]. 福建電腦2007,(8):213.
[3] 韋純福,耿三靖. 《C程序設計》課程教學效果探索[J]. 福建電腦2007,(3):214.