摘要:C語言作為入門級的編程語言,已經被越來越多的學生所重視,然而在當前的《C語言程序設計》課程教學中,卻存在著很多問題,導致學生的學習興趣不高,基礎知識掌握不牢,缺乏對算法的抽象思維能力等問題,本文結合教學體會,提出了一些合理化的改革措施和建議。
關鍵詞:C語言 程序設計 算法 興趣
中圖分類號:G64文獻標識碼:A文章編號:1672-3791(2012)09(b)-0164-02
《C語言程序設計》是我校計算機類各專業開設的一門專業基礎課程,也是非計算機專業理工科開設的一門公共基礎課程。主要講授C程序設計語言的基本知識和程序設計的方法與技術。通過本課程的學習,使學生掌握計算機程序設計的思想和方法,初步具有在各領域應用計算機的能力,并為后續課程的學習創造條件。但從教學過程來看,學生們普遍反映C語言難學,概念難理解,學完后編程不知如何入手等問題,因此,學習失去興趣,掛科率一直高居不下,使學生對該課程產生了畏懼心理。教師教學效果不理想。在此,結合教學實踐,根據遇到的一些問題提出自己的解決思路。
1 激發學生的學習興趣
要想學生學好C語言,提高學生的學習興趣,首先必須讓學生對課程有個全局的認識。學生在接觸一門新課程前,最關心的問題就是這門課程是學什么、學完之后可以做什么[1]。因此,在教學之初,教師應首先使學生明確學習這門課程的目的、要求以及目標,使學生初步了解該課程在本專業中處于什么位置,為什么要學習該課程,學好該課程對于個人的專業發展有什么作用,教師可以結合程序設計在本專業中應用的實例,使學生明白學習該課程的重要性和必要性,從而激發學習興趣。另外,由于C語言的概念比較抽象,在每一章初期概念講解階段,可以多舉一些與生活密切相關的例子,為概念的引入做準備,以激發學生的學習興趣。例如,在介紹數組這個概念時,由于數組是一種新的數據類型,為加深學生的理解,可以提出一個問題讓同學們思考:一個班學生的學習成績應該如何存儲呢?并提示學生這些數據有何特點,從而引出在C語言中如何存儲,從而引出數組這個概念。這種方法能夠發展學生的探索能力,避免了直接的理論說教,不僅能激發學生的學習興趣,還能加深學生對新知識點的理解。此外,在教學過程中,布置一些有趣味性的編程題目,積極鼓勵有能力的同學參加軟件設計大賽,使學生通過獨立或團體完成一個軟件設計,增強他們的學習自信,調動學習熱情,提高學習興趣。
2 注重知識的歸納總結
和自然語言一樣,許多字詞可能是相近的、相反的或者是相同的,字詞間存在著內在的聯系[2]。在C語言中,涉及到此類的知識點時,可以采用歸納總結的方法進行教學。例如,循環結構中的while語句,do-while語句和for語句。在學生充分掌握三種語句的基礎上,教師對這三種循環語句進行歸納總結,歸納三種語句的異同點,并針對同一程序詳細介紹如何用這三種語句分別實現。便于學生對循環結構的靈活掌握。另外,C語言中學到的知識點都是零星、片面的,有些甚至是容易混淆的,比如說運算符的優先級和結合性,教師在課堂中對此類知識點進行歸納總結,方便學生的比較與記憶。并且在新的一章開始學習之前,對上一章的內容進行重點、難點以及小結的歸納總結,便于學生溫故而知新,避免學生邊學邊忘,前后知識不銜接的問題。
3 注重算法思維的培養
算法是程序設計的靈魂,在程序設計中要設計一個好的程序首先要對程序的算法有較詳細的了解,其次才是采用編程語言對算法的實現。但很多學生學完C語言課程后不會編程,甚至不知道從何下手。造成這一現象的主要原因是由于程序設計的思想與學生傳統的思維方式不一致,學生缺乏對算法的抽象思維能力,因此不會分析問題,無法寫出算法,這就需要教師在介紹程序范例時注重學生算法思維能力的培養。教師首先提出問題,可以選擇一些與實際生活貼近的小例子,如雞兔同籠問題,引發學生進行思考,然后詳細分析問題,啟發學生用現有的思維方式去思考如何解決,得到解決問題方法后再啟發學生將其轉化為算法,并可以改變現有條件,使學生在對新問題的思考過程中,培養學生對算法舉一反三的能力,最后教師對算法進行總結歸納,加深學生對這類問題的理解。將具體問題和學生的現有知識聯系起來,有利于克服學生的畏難情緒,也有利于使學生快速掌握算法。
4 認真上好實驗課
《C語言程序設計》是一門實踐性很強的課程,“邊學邊練”是掌握這門課程的最好方法。因此,我們根據理論教學進度安排了實驗課,并制定了專門的實驗指導書,實驗指導書明確了上機實驗目的和要求,制定了實驗內容和詳細的操作步驟,并為程度較高的學生設置了選做題目。在實驗過程中,注重以學生為主體,教師為主導,安排的實驗內容循序漸進,采用模仿-改正-編程的實踐訓練思路來培養學生[3],使學生在運行程序和調試程序中鍛煉分析問題和解決問題的能力,對于實驗過程中學生提出的疑難問題,教師首先加以引導或者提示,啟發他們獨立思考解決問題,經過自己思考解決問題往往印象比較深,也能激發學生的學習熱情,對于實驗中存在問題比較多的題目,教師及時進行總結,并在課堂中統一進行指導,不僅節約時間,滿足同學們的需要,而且對知識的掌握起到鞏固加強的目的。
5 提高教師素質
由于《C語言程序設計》課程教學任務較重,所以計算機專業老師難以承擔所有的課程教學任務,造成許多任課老師都是各個院系的非專業老師,缺乏系統的程序設計思想。針對這一情況,學校每學年都多次組織計算機學院多年從事課程教學并且經驗豐富的專業老師對任課教師進行培訓,針對課程內容進行串講,在串講過程中,任課老師可以對在教學過程中的疑難問題以及教材中出現的問題進行討論。促進教師之間的教學交流,并創建了QQ群以及網絡平臺,便于老師們之間的信息共享以及交流,努力提高教師素質。另外,學校每學年組織《C語言程序設計》教學競賽,教師教學的積極性顯著提高,使教師不斷擴充自己的知識水平和能力,不斷學習新的教學方法和手段,從而提高課堂教學效果。
6 改革考核方式
為了扎實推進學校教學改革,切實提高《C語言程序設計》課程教學質量,對《C語言程序設計》課程考試環節進行了改革,在傳統的考核方式理論成績(70%)和平時成績(30%)基礎上,新增了上機考試環節,課程成績由平時成績(15%)、理論成績(70%)、機試成績(15%)等3部分組成。理論考試重點考核學生的C語言基礎知識、編程思想和算法分析能力,上機考試重點考核學生的動手編程操作能力和程序調試能力。機試的考試系統由學校自主開發,學生考試時由系統自動從100套試題庫中隨機抽題進行考試,做到了嚴格的公平公正。實踐后表明,這種考核方式能夠更加客觀地反映學生的知識掌握程度,同時能夠促進學生主動學習,提高學生的動手操作能力。
實踐證明,C語言的教學改進可以提高學生的學習興趣,有利于學生對相關概念的理解以及編程能力的培養,使學生逐步掌握分析問題、解決問題的思維能力,同時也為非計算機類專業學生將程序設計思想靈活運用到自己的專業領域打下了基礎。
參考文獻
[1]胡丹.非計算機專業《C語言程序設計》教學探討[J].電腦知識與技術,2011,7(34):8983-8985.
[2]鄧靜.C語言程序設計教學方法的探討[J].教育教學論壇,2010(9):88.
[3]戴春燕,徐智文.《C++語言程序設計》課程教學改革[J].包鋼科技,2011,37(3):92-9