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