秦鵬
【摘 要】C語言程序設計是一門基礎的程序設計語言,它既具有高級語言的特點,又具有低級語言的功能,是學習其他計算機課程的基礎。C語言數(shù)據(jù)類型豐富,靈活性強,比較抽象且實踐性很強,學生普遍認為太難、太深奧、難學,教師也覺得難教,最終達不到本門課程教學目的。本文探討了一些可以采取的行之有效的教學模式、教學方法和教學實踐,最后總結了教學改革的效果和體會。
【關鍵詞】C語言;教學改革;模塊化教學;項目化教學
0.前言
C語言是一種通用性計算機程序設計語言。它兼有匯編語言和高級語言的雙重優(yōu)點,運用它既能編寫操作系統(tǒng)軟件,又能開發(fā)各個領域的應用軟件。本課程是計算機專業(yè)的計算機基礎課,是學生今后學好后繼課程的基礎,學好了C語言,再進一步學習C++、VC++、JAVA等語言,就有了堅實的基礎。
C語言教學的主要任務是培養(yǎng)學生程序設計的思想,并奠定學習其它計算機課程的理論基礎。要求學生通過C語言的學習,了解語言課的基礎知識、基本技能和編程的基本思想,同時需要學生有一定的軟件和硬件的的基礎知識和一定的高等數(shù)學基礎,能運用C語言進行程序設計,解決顯示生活中的一些實際問題。了解一般的應用程序和系統(tǒng)程序的編程知識 。
1.C語言教學現(xiàn)狀
1.1理論和實踐脫節(jié)
學校分別安排理論教學和實踐教學的地點,甚至負責理論教學和實踐教學的教師都不同。這樣就導致理論和實踐教學各自一條線進行。上實踐課的時候可能還缺乏一些理論基礎,也有可能上了很久的理論知識得不到實踐機會,教學環(huán)節(jié)上的脫節(jié),導致教師無法很好的掌控整個教學過程。
1.2學生缺乏興趣
C語言從基本概念、語法規(guī)則,到較復雜的程序設計,要求掌握語言、算法、數(shù)據(jù)結構和程序設計等方面的知識,同時需要有一定的軟件和硬件的基礎知識和一定的高等數(shù)學知識。而高職高專的學生恰恰數(shù)學基礎很差,面對C語言是概念性強、理論性強、內(nèi)容豐富且抽象、嚴密的邏輯性這些,學習難度比較大,也就自然的失去了學習的積極性。尤其是單純的理論課,到課率不高,實驗課效果稍好些。
1.3課堂效果不好
高職高專學生基礎較差,理解問題、掌握問題的速度較慢,需要指導老師非常耐心的教學,然而目前學校的情況是一個老師帶四五十個學生,這樣很難照顧好每個學生。有些學習不自覺的學生就干脆抄襲別人的作業(yè),甚至不做作業(yè),很難把當堂課內(nèi)容掌握好。實踐課的給部分同學提供了條件,一些自律性較差的學生在機房不學習,只顧玩游戲,很難扭轉(zhuǎn)這種壞習慣。另外學生本身長期養(yǎng)成的不好的學習習慣,導致他們中的大部分聽課效率都不高,老師上課講授的內(nèi)容很難聽進,即使是實踐課的問題,也是要講很多遍才能解決,也就導致上課的效率不高,很難實現(xiàn)預期目標。
2.教學改革策略
2.1激發(fā)學生的學習興趣
C語言本身是一門極其抽象難懂的學科,把抽象的問題形象化,使本來枯燥無味的程序代碼變得充滿魅力,讓學習過程變得輕松有趣,是激發(fā)學生興趣的關鍵所在。要激發(fā)學生的興趣,首先要讓學生明白C語言能做到很多事,利用它我們能編寫各種軟件,可以向?qū)W生展示很多程序結果,面對如此多的程序結果,學生應該很想自己動手試一試了,也就有了學習的興趣和動力。
接下來讓學生親自動動手。C語言是一門實踐性課程,要理論結合實踐,加強學生的動手能力和解決問題的能力,教師可以舉出幾個簡單的小程序演示給他們看,并逐一講解,引導學生自己去發(fā)現(xiàn)程序中存在的缺陷以及改進的方式。讓學生仿照所列舉的幾個程序模仿著編一個小程序。程序不用太多代碼,也不要求能完成多強大的功能,哪怕完成一個簡單的計算器也能讓學生有強大的成就感,進而產(chǎn)生繼續(xù)學習的動力和樂趣。
2.2 C語言理論教學方法
理論教學整體采用模塊教學法,按照本課程難易層次組織教學內(nèi)容。按照由淺及深的順序大致把本課程分為三個模塊:
(1)了解計算機語言的整體結構。主要內(nèi)容如下:
C語言的概述。
數(shù)據(jù)類型、運算符與表達式簡易部分。
三種基本結構(順序結構、選擇結構、循環(huán)結構)及相應的程序設計。
(2)掌握基本的語言規(guī)則和編程方法。主要內(nèi)容如下:
函數(shù)概念及函數(shù)的簡單調(diào)用。
數(shù)組的概念與簡單應用。
指針的概念及指針的簡單應用。
結構體與共用體的概念。
文件的概念及文件的簡單讀寫。
(3)了解C語言的擴展功能,掌握C語言的編程技巧。主要內(nèi)容如下。
復雜的選擇、循環(huán)控制盒、帶有一定算法的程序設計。
函數(shù)的復雜調(diào)用,內(nèi)外部函數(shù)、存儲類型等。
(4)掌握C語言高級編程技巧,進行綜合的程序設計。
教師可以根據(jù)學生的學習情況,適當調(diào)整模塊中的內(nèi)容,比如講述函數(shù)的簡單應用,如學生掌握很好,且學習愿望強烈,可以適當添加復雜函數(shù)應用的實例。上課中可以采用問題啟發(fā)式、引申法、框架法、求異法相結合方法授課。采用問題啟發(fā)式即把很多難理解、難記憶的概念和規(guī)則變成一系列問題呈現(xiàn)在課堂教學中,把學習積極性調(diào)動起來,師生問答,達到師生互動的效果,增強學生自主探索的能力。引申法是由此及彼,在現(xiàn)有的已經(jīng)解決的問題的基礎上,引申出其他相關聯(lián)的問題和應用,引導學生解決。這種方法可以培養(yǎng)學生自主解決問題的能力,畢竟程序設計過程中產(chǎn)生的問題是無法完全預料的,在實際編程工作中面對問題,自主解決的能力尤其重要。 框架法可培養(yǎng)學生的全局思維和算法的整體設計能力。通過框架法,可以使初學者有清晰的結構和思路,從全局角度設計問題,層次分明,突出算法設計的關鍵,利于培養(yǎng)學生的編程思路。求異法是指解決問題的方案可以設計多種,在多種方法中選擇最優(yōu)方法。這種方法能啟發(fā)學生多角度、多側(cè)面去尋求解決問題的辦法,則可激發(fā)學生思考的積極性,提高其學習興致。
3.C語言實踐課的教學方法
C語言實踐課采用項目化教學的策略。針對每個模塊的學習內(nèi)容,設計相應的程序設計要求,即項目要求。學生根據(jù)項目要求,寫出設計方法及步驟,交與老師檢查,進一步確定設計方案,然后在一定的時限內(nèi)完成代碼編寫工作,并給出系統(tǒng)的分析、設計、實現(xiàn)報告。項目化教學方法類似于任務驅(qū)動式教學,只不過任務驅(qū)動是以課時為時限設計單一的任務,學生根據(jù)要求完成一個個分散的任務。而項目化教學沒有那么嚴格的時限,是設計綜合的實際應用,是完成可應用的功能,是綜合型的。為了達到實踐教學的目標以下事項須注意:
(1)學習C語言程序設計應當充分重視實踐課。學生應多編寫程序,多上機調(diào)試程序,積累編程經(jīng)驗。只有在實際的編程實踐中,才能發(fā)現(xiàn)問題,解決問題,進而提高編程技巧和能力。
(2)加強機房管理,對學生嚴格考勤,并把考勤成績記入期末成績。對學生嚴格要求,杜絕在機房玩游戲、看電影等情況。
(3)在項目下設計小項目,爭取在每個課時都能有所實現(xiàn),達到課堂效果。
(4)每周編寫一次實驗報告,總結本周完成事項,記錄解決問題的方案,這樣可以幫助他們總結編程經(jīng)驗。
4.改革初見成效
學生學習興趣明顯變濃,上課時跟老師互動熱烈,積極性也充分調(diào)動起來了。課堂聽課質(zhì)量明顯提高,實踐課上機效率也明顯提高。學生樂于完成項目,能夠完成預先設計的項目,在今后教學中還需進一步探索,爭取能取得更好的效果。