公務(wù)員期刊網(wǎng) 精選范文 c程序設(shè)計(jì)范文

c程序設(shè)計(jì)精選(九篇)

前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的c程序設(shè)計(jì)主題范文,僅供參考,歡迎閱讀并收藏。

c程序設(shè)計(jì)

第1篇:c程序設(shè)計(jì)范文

原型開發(fā)是C語(yǔ)言程序設(shè)計(jì)學(xué)習(xí)支持系統(tǒng)的使用的主要理論基礎(chǔ),在開發(fā)該系統(tǒng)的初始階段,首先要有針對(duì)性的對(duì)使用的需要進(jìn)行調(diào)查,以此為依據(jù)迅速的將一個(gè)系統(tǒng)原型制造出來(lái)并進(jìn)行正常的運(yùn)轉(zhuǎn)。使用者運(yùn)用這個(gè)原型之后,提供使用建議,接下來(lái)就是對(duì)該原型進(jìn)行有效的修補(bǔ)和完善,以新的結(jié)構(gòu)、數(shù)據(jù)和使用模型來(lái)建立起一個(gè)嶄新的原型。之后再交由使用者進(jìn)行使用并反饋意見,經(jīng)過(guò)幾次的使用和反饋、修改,使用者與系統(tǒng)提供者能夠在使用上達(dá)到共識(shí),使用過(guò)程中的種種誤會(huì)得以解除,使系統(tǒng)得到精準(zhǔn)的內(nèi)涵,同時(shí)能夠到達(dá)使用者的滿意。經(jīng)過(guò)這一系列的反饋與修改,系統(tǒng)如果能夠達(dá)到使用者的要求,就可以被定義為實(shí)際生產(chǎn)運(yùn)行系統(tǒng),如果達(dá)不到使用者的要求,則就會(huì)被舍棄進(jìn)行重新開發(fā)。

2C語(yǔ)言程序設(shè)計(jì)學(xué)習(xí)支持系統(tǒng)的開發(fā)步驟

在對(duì)C語(yǔ)言程序設(shè)計(jì)學(xué)習(xí)支持系統(tǒng)進(jìn)行開發(fā)的過(guò)程中,要嚴(yán)密結(jié)合《C語(yǔ)言程序設(shè)計(jì)》這門課程本身的獨(dú)特之處,并將該系統(tǒng)的開發(fā)思想融入其中,實(shí)現(xiàn)以下五個(gè)開發(fā)步驟:

2.1開發(fā)前分析

在進(jìn)行系統(tǒng)開發(fā)之前,一定要結(jié)合實(shí)際情況做好各方面的調(diào)研,這是系統(tǒng)開發(fā)的必經(jīng)之路,也是基礎(chǔ)所在。首先進(jìn)行開發(fā)前調(diào)研,能夠使有疑問的地方展現(xiàn)出來(lái),才能給設(shè)計(jì)者提供一個(gè)確實(shí)可行的主題來(lái)開發(fā)此系統(tǒng)。

2.2開發(fā)前設(shè)計(jì)

經(jīng)過(guò)了開發(fā)前有效的分析和主題的確立,將使用者在使用過(guò)程中的需求通過(guò)調(diào)查了解清楚,將該系統(tǒng)的具體模塊加以確立,將原型設(shè)計(jì)出來(lái),同時(shí)數(shù)據(jù)庫(kù)的基本情況也要得到有效的設(shè)計(jì)。

2.3C語(yǔ)言程序編程思路和語(yǔ)料分析

一個(gè)科學(xué)的推理路徑的確立需要有效分析C語(yǔ)言程序編程思路和語(yǔ)料,同時(shí)要仔細(xì)分析復(fù)雜程序中存在的編程思路。

2.4系統(tǒng)的開發(fā)

在開發(fā)系統(tǒng)的過(guò)程中,代碼的編寫、信息庫(kù)的開發(fā)、先進(jìn)的技術(shù)的采用一系列程序后,才能使該系統(tǒng)的功能得以實(shí)現(xiàn)。

2.5試用與修改

將開發(fā)出來(lái)的系統(tǒng)交給使用者進(jìn)行試用,使用者在使用過(guò)程中會(huì)發(fā)現(xiàn)各種各樣的不足,及時(shí)根據(jù)使用者的意見進(jìn)行溝通和修改,最終形成一個(gè)完善的系統(tǒng)。

3C語(yǔ)言程序設(shè)計(jì)學(xué)習(xí)支持系統(tǒng)的功能結(jié)構(gòu)

3.1學(xué)習(xí)支持模塊

在計(jì)算機(jī)的使用過(guò)程中,使用者很多時(shí)候會(huì)遇到種種困難,例如在對(duì)編程或程序進(jìn)行調(diào)試的過(guò)程中遇到的難題,自己無(wú)法解決時(shí),學(xué)習(xí)支持模塊就能夠及時(shí)幫助使用者將問題進(jìn)行指示并提供幫助。編程思路分析指導(dǎo)和程序調(diào)試指導(dǎo)是學(xué)習(xí)支持模塊的兩大組成部分。

3.1.1編譯診斷

使用者在使用計(jì)算機(jī)的過(guò)程中,正確的程序無(wú)法得到有效的調(diào)試的情況下,編譯診斷就能夠充分發(fā)揮自身作用,為使用者給予及時(shí)的幫助,使其了解發(fā)生錯(cuò)誤的根本原因。它包括了上傳程序和診斷問題兩大部分。該系統(tǒng)是在使用者無(wú)法進(jìn)行正確的編譯C語(yǔ)言源程序時(shí)啟用。使用者在啟用該系統(tǒng)是首先要將參數(shù)輸入進(jìn)去,此時(shí)數(shù)據(jù)庫(kù)就能夠通過(guò)系統(tǒng)的查找提供錯(cuò)誤的起因及解決方法,系統(tǒng)會(huì)逐步為使用者進(jìn)行提示,再通過(guò)使用者輸入的問題作出判斷并給出解決方案。此時(shí)問題如果沒有得到解決,則說(shuō)明不完善的數(shù)據(jù)庫(kù)存在于該系統(tǒng)中。

3.1.2編程思路分析

計(jì)算機(jī)使用者在進(jìn)行上機(jī)編程的過(guò)程中,該系統(tǒng)能夠使思路不清晰的復(fù)雜程序編程進(jìn)行分析,根據(jù)相近的程序編程思路給使用者提供指示。它能夠滿足使用者的即時(shí)需求。

3.2信息庫(kù)管理模塊

3.2.1用戶信息庫(kù)管理

使用者的使用權(quán)限、基本信息和上傳程序信息等的管理都是由該模塊來(lái)進(jìn)行的。在使用計(jì)算機(jī)的過(guò)程中首先信息庫(kù)要將使用者的基本信息收入其中,使用者在每次登陸的過(guò)程中只有將基本信息輸入進(jìn)去,通過(guò)系統(tǒng)的檢查之后才能夠進(jìn)行使用。

3.2.2出錯(cuò)知識(shí)信息庫(kù)管理

針對(duì)這一部分的管理,發(fā)生問題的知識(shí)信息,其中包括診斷、設(shè)問和編譯錯(cuò)信息,C語(yǔ)言使用者可以采取管理維護(hù)措施。完善、刪除和添加等操作可以對(duì)出錯(cuò)知識(shí)庫(kù)加以填充和完善。

3.2.3編程思路分析信息庫(kù)管理

C語(yǔ)言使用者可以針對(duì)這一部分采取維護(hù)管理,即維護(hù)管理復(fù)雜程序的編程思路分析信息,主要可以采取的手段有更改、刪除和添加等操作,不斷填充和完善此信息庫(kù)。

4結(jié)論

第2篇:c程序設(shè)計(jì)范文

(中國(guó)礦業(yè)大學(xué)(北京) 機(jī)電與信息工程學(xué)院,北京 100083)

摘要:分析C語(yǔ)言教學(xué)中存在的普遍問題,從教學(xué)內(nèi)容組織形式、教學(xué)方法以及考核方式等方面提出一系列有針對(duì)性的教學(xué)方法,指出這種教學(xué)方法能有效地提高學(xué)生的學(xué)習(xí)效率和質(zhì)量。

關(guān)鍵詞 :C語(yǔ)言程序設(shè)計(jì);公共基礎(chǔ)課;教學(xué)方法

基金項(xiàng)目:北京高等學(xué)校青年英才計(jì)劃項(xiàng)目;煤炭資源與安全開采國(guó)家重點(diǎn)實(shí)驗(yàn)室開放課題(SKLCRSM11KFB12)。

作者簡(jiǎn)介:王振武,男,副教授,研究方向?yàn)閿?shù)據(jù)挖掘、圖形圖像處理,wangzhenwu@126.com。

0 引言

為提高大學(xué)生利用計(jì)算機(jī)解決問題的能力,全國(guó)高校普遍為理工科專業(yè)的低年級(jí)學(xué)生開設(shè)了C語(yǔ)言程序設(shè)計(jì)這門必修的公共基礎(chǔ)課程。一方面,該課程是學(xué)生接觸的第一門程序設(shè)計(jì)類課程,其編程思維的養(yǎng)成是一個(gè)較長(zhǎng)的過(guò)程;另一方面,該課程具有內(nèi)容繁多、知識(shí)點(diǎn)關(guān)聯(lián)性強(qiáng)、算法抽象、實(shí)踐性要求高等特點(diǎn),學(xué)生在學(xué)習(xí)過(guò)程中易產(chǎn)生畏難心理,進(jìn)而出現(xiàn)學(xué)習(xí)動(dòng)力不足、積極性不高等問題。C語(yǔ)言程序設(shè)計(jì)是一門難學(xué)也難教的課程,目前在教學(xué)上普遍存在很多問題。文獻(xiàn)[1-4]對(duì)C語(yǔ)言程序設(shè)計(jì)的教學(xué)方法給出了建議,但都不夠系統(tǒng)和全面。

1 C語(yǔ)言程序設(shè)計(jì)教學(xué)方法研究

1.1 理論教學(xué)

對(duì)于大多數(shù)課程而言,從宏觀上將課程知識(shí)點(diǎn)及其關(guān)聯(lián)講授給學(xué)生非常必要,這便于學(xué)生更加系統(tǒng)深刻地理解所學(xué)內(nèi)容。筆者以文獻(xiàn)[5]作為教材講解C語(yǔ)言程序設(shè)計(jì)的知識(shí)點(diǎn)結(jié)構(gòu)。如圖1所示,知識(shí)點(diǎn)之間的關(guān)聯(lián)可以層層細(xì)化,教師首先從宏觀上給學(xué)生介紹C語(yǔ)言程序的整體組成結(jié)構(gòu)(如圖1-(a),然后針對(duì)圖1-(a)中一個(gè)源程序文件的組成成分舉例介紹,如圖1-(b)所示。在圖1-(b)中,教師對(duì)涉及的知識(shí)點(diǎn)進(jìn)行歸類,共包含預(yù)處理命令、數(shù)據(jù)類型、運(yùn)算符、語(yǔ)句和函數(shù)等5部分,然后圖1-(c)至圖1-(i)依次層層展開上述各類知識(shí)點(diǎn)的組成,逐步細(xì)化。

從宏觀上梳理C語(yǔ)言與程序設(shè)計(jì)課程的知識(shí)點(diǎn)是非常必要和重要的,這樣可以避免學(xué)生“只見樹木,不見森林”,最后只學(xué)到一堆零散的知識(shí)點(diǎn),只有從宏觀上把握各個(gè)知識(shí)點(diǎn)在知識(shí)體系中的位置和作用,才能學(xué)得深、記得牢。

對(duì)于程序語(yǔ)言課程,如果僅僅介紹語(yǔ)法的運(yùn)用,學(xué)生往往對(duì)知識(shí)點(diǎn)理解不深刻。我們?cè)诮虒W(xué)實(shí)踐中的體會(huì)是:在講解C語(yǔ)言語(yǔ)法的基礎(chǔ)上,適當(dāng)?shù)仄饰鼍幊陶Z(yǔ)言在計(jì)算機(jī)中的運(yùn)行機(jī)制,會(huì)讓學(xué)生的理解更加透徹。因此,我們的課堂教學(xué)方法分為如下兩部分。

1)課件講解。

課件講解包括兩部分,即知識(shí)點(diǎn)要點(diǎn)總結(jié)和知識(shí)點(diǎn)運(yùn)行機(jī)制剖析。知識(shí)點(diǎn)要點(diǎn)總結(jié)就是告訴學(xué)生該知識(shí)點(diǎn)如何使用;而知識(shí)點(diǎn)運(yùn)行機(jī)制剖析則告訴學(xué)生該程序在計(jì)算機(jī)內(nèi)存中的執(zhí)行過(guò)程。由于絕大部分高校在開設(shè)C語(yǔ)言程序設(shè)計(jì)之前都會(huì)開設(shè)計(jì)算機(jī)文化基礎(chǔ)等課程,因此學(xué)生有足夠的計(jì)算機(jī)基礎(chǔ)知識(shí)來(lái)理解C語(yǔ)言程序的運(yùn)行機(jī)制。

2)實(shí)例演示。

作為一門編程語(yǔ)言,C語(yǔ)言需要在實(shí)踐中理解和掌握,因此,課堂教學(xué)中,在具體的編程環(huán)境(如VC++6.0)下演示十分必要。通過(guò)在具體的軟件環(huán)境下編程,告訴學(xué)生應(yīng)該做什么和不應(yīng)該做什么,并總結(jié)該知識(shí)點(diǎn)的注意事項(xiàng)。相比傳統(tǒng)的脫離編程環(huán)境,只在PPT或黑板上進(jìn)行板書的教學(xué)模式,該方法的教學(xué)效果要好得多。在課堂教學(xué)中,具體的教學(xué)步驟如下:①使用PPT或者板書列出該知識(shí)點(diǎn)的注意要點(diǎn);②在編程環(huán)境(如VC++6.0)下演示該知識(shí)點(diǎn)的用法,給出正確的和錯(cuò)誤的使用方法,并進(jìn)行對(duì)比;③通過(guò)幻燈片動(dòng)畫或flash動(dòng)畫等形式演示程序在計(jì)算機(jī)內(nèi)存中的執(zhí)行過(guò)程,讓學(xué)生更加深刻地理解程序的運(yùn)行機(jī)制。

3)教學(xué)難點(diǎn)與重點(diǎn)——“復(fù)合知識(shí)點(diǎn)”。

從C語(yǔ)言的教學(xué)內(nèi)容來(lái)講,數(shù)組、函數(shù)和指針是教學(xué)的重點(diǎn)章節(jié),這些章節(jié)之間相互關(guān)聯(lián)的部分又是重點(diǎn)中的難點(diǎn),如數(shù)組和函數(shù)結(jié)合,數(shù)組名做函數(shù)參數(shù),數(shù)組和指針結(jié)合,指向數(shù)組的指針變量,函數(shù)和指針結(jié)合,指向函數(shù)的指針變量等。在教學(xué)過(guò)程中要反復(fù)強(qiáng)調(diào)各個(gè)知識(shí)點(diǎn)的注意事項(xiàng),如果基本知識(shí)點(diǎn)能夠理解透徹,上述難點(diǎn)內(nèi)容也就迎刃而解了。

1.2 上機(jī)實(shí)踐教學(xué)

在實(shí)踐教學(xué)中,教師可以通過(guò)實(shí)際教學(xué)案例循序漸進(jìn)地強(qiáng)化學(xué)生對(duì)C語(yǔ)言知識(shí)點(diǎn)的理解。上機(jī)實(shí)踐的教學(xué)內(nèi)容通常分為兩部分:基本知識(shí)點(diǎn)練習(xí)和綜合訓(xùn)練。首先通過(guò)基本知識(shí)點(diǎn)的練習(xí),讓學(xué)生掌握該知識(shí)點(diǎn)的使用,即鞏固課堂所學(xué)內(nèi)容;然后通過(guò)一個(gè)綜合性的大作業(yè),訓(xùn)練學(xué)生綜合應(yīng)用C語(yǔ)言知識(shí)點(diǎn)的能力,例如,通過(guò)編寫“學(xué)生課程成績(jī)統(tǒng)計(jì)系統(tǒng)”考查學(xué)生對(duì)數(shù)組、結(jié)構(gòu)體、指針、函數(shù)、文件等知識(shí)的綜合掌握情況。

對(duì)于初學(xué)編程語(yǔ)言的學(xué)生,往往沒有養(yǎng)成良好的編程習(xí)慣,出錯(cuò)的可能性較大,而出錯(cuò)之后進(jìn)行調(diào)試又將耗費(fèi)較長(zhǎng)的時(shí)間,這勢(shì)必對(duì)學(xué)生的學(xué)習(xí)熱情產(chǎn)生負(fù)面影響。因此,一開始就給學(xué)生制定科學(xué)的編程步驟和規(guī)范,使學(xué)生養(yǎng)成良好的編程習(xí)慣,將大大減少程序出錯(cuò)的可能。在C語(yǔ)言教學(xué)實(shí)踐中,我們總結(jié)了“五步編程法”:①定義變量,如“int a;”;②對(duì)變量進(jìn)行初始化,如“a=0;”,對(duì)變量進(jìn)行初始化操作是一種良好的編程習(xí)慣,可防止未對(duì)變量賦值而引起的隱性錯(cuò)誤;③通過(guò)scanf語(yǔ)句賦值,如“scanf(“%d”,&a);”;④實(shí)現(xiàn)程序的主要算法,該部分是程序的主體;⑤通過(guò)printf語(yǔ)句將結(jié)果輸出在顯示器上,將結(jié)果輸出在顯示器上便于比較程序運(yùn)行結(jié)果是否正確。

下面是按照上述五步編寫的一個(gè)完整的C語(yǔ)言程序,用來(lái)比較兩個(gè)整數(shù)的大小。按照上述五步進(jìn)行編程,經(jīng)過(guò)一段時(shí)間的訓(xùn)練之后,學(xué)生出現(xiàn)語(yǔ)法錯(cuò)誤的可能性大大降低,此時(shí)學(xué)生更多的精力將集中在程序算法的設(shè)計(jì)和實(shí)現(xiàn)上。

1.3 考試形式

對(duì)于C語(yǔ)言程序設(shè)計(jì)的考核方式,我們采用知識(shí)點(diǎn)考核和編程實(shí)踐相結(jié)合的方式。知識(shí)點(diǎn)考核偏重于C語(yǔ)言基本語(yǔ)法,用于檢驗(yàn)學(xué)生對(duì)知識(shí)點(diǎn)的掌握是否全面,此項(xiàng)考核約占總成績(jī)的40%;編程實(shí)踐考核用于檢驗(yàn)學(xué)生的實(shí)際動(dòng)手能力,學(xué)生將在規(guī)定的時(shí)間內(nèi)根據(jù)題目在機(jī)器上編程,此項(xiàng)考核約占總成績(jī)的60%。為了實(shí)現(xiàn)知識(shí)點(diǎn)的考核,我們將考試與計(jì)算機(jī)二級(jí)C語(yǔ)言上機(jī)考試緊密結(jié)合,采用題庫(kù)平臺(tái)進(jìn)行上機(jī)考試,學(xué)生直接在機(jī)器上答題并提交,知識(shí)點(diǎn)考核多采取客觀題,如填空題、程序修改題以及讀程序題等,編程題在實(shí)戰(zhàn)編程中考核。C語(yǔ)言程序設(shè)計(jì)課程的重要特點(diǎn)就是實(shí)踐性強(qiáng),學(xué)習(xí)該課程的目的就是為了編寫程序。因此從考試的角度講,進(jìn)行編程實(shí)踐是最合適的方式,通過(guò)上機(jī)編程來(lái)考核學(xué)生的學(xué)習(xí)情況也是最公正和客觀的方式。

2 C語(yǔ)言程序設(shè)計(jì)教學(xué)實(shí)踐結(jié)果分析

中國(guó)礦業(yè)大學(xué)(北京)每年都有40多個(gè)班級(jí)同時(shí)開設(shè)C語(yǔ)言程序設(shè)計(jì)課程,因此該課程教學(xué)質(zhì)量的高低將直接影響全校理工科學(xué)生對(duì)C語(yǔ)言的理解和掌握。中國(guó)礦業(yè)大學(xué)(北京)C語(yǔ)言程序設(shè)計(jì)教學(xué)團(tuán)隊(duì)經(jīng)過(guò)長(zhǎng)期的探索總結(jié)出一套行之有效的C語(yǔ)言教學(xué)方法,我們將上述方法在學(xué)校越崎實(shí)驗(yàn)班中進(jìn)行了試點(diǎn)。如圖2所示,采用上述教學(xué)法的越崎實(shí)驗(yàn)班的C語(yǔ)言程序設(shè)計(jì)課程考試成績(jī)要明顯好于其他班級(jí),其中90分以上的學(xué)生占10.7%,80分以上的學(xué)生占總?cè)藬?shù)的53.6%。另外,學(xué)生的學(xué)習(xí)積極性比采用上述方法前得到明顯提高,很多學(xué)生都對(duì)計(jì)算機(jī)編程產(chǎn)生了濃厚興趣,實(shí)踐證明我們提出的上述方法是行之有效的。

3 結(jié)語(yǔ)

中國(guó)礦業(yè)大學(xué)(北京)C語(yǔ)言程序設(shè)計(jì)教學(xué)團(tuán)隊(duì)在長(zhǎng)期的教學(xué)實(shí)踐中探索出的這套教學(xué)方法被證明是行之有效的,它能夠極大地提高學(xué)生的學(xué)習(xí)興趣,不但讓學(xué)生學(xué)得會(huì)、記得牢,而且能夠舉一反三,把該方法應(yīng)用到其他編程語(yǔ)言的學(xué)習(xí)中。長(zhǎng)期的教學(xué)實(shí)踐使我們深刻地認(rèn)識(shí)到,教學(xué)方法的好壞對(duì)提高教學(xué)質(zhì)量有直接和重要的影響。我們團(tuán)隊(duì)提出的這套教學(xué)方法是對(duì)C語(yǔ)言程序設(shè)計(jì)教學(xué)方法的初步嘗試,希望能夠?qū)Ω叩仍盒語(yǔ)言程序設(shè)計(jì)教學(xué)方法的研究起到拋磚引玉的作用。

參考文獻(xiàn):

[1] 謝中科. C語(yǔ)言程序設(shè)計(jì)的教學(xué)改革與實(shí)踐[J]. 理工高教研究, 2004,3(23): 96-97.

[2] 簡(jiǎn)慧云. 提高C語(yǔ)言程序設(shè)計(jì)教學(xué)質(zhì)量的探討[J]. 理工高教研究, 2004, 6(23): 83-85.

[3] 王孝平, 董秀成, 謝維成.提高電器信息類專業(yè)學(xué)生C語(yǔ)言學(xué)習(xí)能力的教學(xué)方法探索[J]. 高等教育研究, 2012, 2(29): 37-40.

[4] 張麗華, 王冬星. 自主學(xué)習(xí)教學(xué)模式在C語(yǔ)言教學(xué)中的運(yùn)用[J]. 黑龍江教育: 高教研究與評(píng)估, 2009(12): 91-92.

第3篇:c程序設(shè)計(jì)范文

【關(guān)鍵字】C語(yǔ)言 程序設(shè)計(jì) 教學(xué)探討

一、由實(shí)驗(yàn)入手,培養(yǎng)學(xué)生的學(xué)習(xí)興趣

“C語(yǔ)言程序設(shè)計(jì)”課程往往是是學(xué)生所接觸的第一門計(jì)算機(jī)編程方面課程,所以很多老師采用理論教學(xué),學(xué)習(xí)完理論基礎(chǔ)后開始上機(jī)實(shí)踐,從介紹C語(yǔ)言的語(yǔ)法、算法開始,然后講程序的書寫,最后再學(xué)習(xí)程序的調(diào)試。這樣復(fù)雜且抽象,這就導(dǎo)致部分學(xué)生在上課初期就反映C語(yǔ)言難懂、難學(xué)。在教授C語(yǔ)言之初,教師應(yīng)注意教學(xué)的方式方法,要設(shè)法調(diào)動(dòng)學(xué)生的學(xué)習(xí)興趣,讓他們先體驗(yàn)C語(yǔ)言程序設(shè)計(jì)的樂趣。第一次上課最好定為實(shí)驗(yàn)課。通過(guò)給出幾個(gè)簡(jiǎn)單且學(xué)生熟悉的數(shù)學(xué)問題以及它們所對(duì)應(yīng)的C語(yǔ)言程序源代碼,邊介紹程序運(yùn)行平臺(tái)的操作邊指導(dǎo)學(xué)生自己編輯調(diào)試,觀察運(yùn)行結(jié)果。當(dāng)程序成功的輸出結(jié)果時(shí),學(xué)生對(duì)這門課的學(xué)習(xí)興趣自然產(chǎn)生了。第一堂課通過(guò)實(shí)驗(yàn)教學(xué),完成從數(shù)學(xué)邏輯到計(jì)算機(jī)語(yǔ)言程序的轉(zhuǎn)變,從而逐漸培養(yǎng)學(xué)生對(duì)程序設(shè)計(jì)的興趣。

二、教學(xué)中應(yīng)避免過(guò)分強(qiáng)調(diào)某些容易引起副作用的知識(shí)細(xì)節(jié)

由于C語(yǔ)言牽涉到的概念比較復(fù)雜,規(guī)則繁多,使用靈活,容易出錯(cuò),所以在C語(yǔ)言教學(xué)過(guò)程中,要遵循由易到難,抓主要矛盾的原則。介于C語(yǔ)言中有些細(xì)節(jié)牽涉到的副作用問題很多,教學(xué)時(shí)應(yīng)把教學(xué)精力放在最基本、最常用的那些部分,等學(xué)生有一定基礎(chǔ)后再深入到一些非主要的細(xì)節(jié)上。

三、階梯性舉例

為培養(yǎng)學(xué)生的學(xué)習(xí)興趣,大部分教師在C語(yǔ)言教學(xué)過(guò)程中,都不一味地按書本去講,而多舉實(shí)例來(lái)鞏固學(xué)生所學(xué)習(xí)的知識(shí)點(diǎn)。筆者在一年來(lái)的C語(yǔ)言教學(xué)實(shí)踐中采用階梯性舉例方式,取得了不錯(cuò)的教學(xué)效果。階梯性舉例是指在課堂上把同類型問題歸結(jié)出來(lái),讓學(xué)生從理解最簡(jiǎn)單的例子開始,按照由易到難的順序依次理解所學(xué)知識(shí)點(diǎn)。

例如,在講述C語(yǔ)言中求若干數(shù)中最大值的知識(shí)點(diǎn)時(shí),舉出:第一層問題:2個(gè)數(shù)的最大值求法,采用簡(jiǎn)單if語(yǔ)句解決;第二層問題:3個(gè)數(shù)的最大值求法,采用簡(jiǎn)單if-else復(fù)合語(yǔ)句解決;第三層問題:4個(gè)數(shù)的最大值求法,采用條件語(yǔ)句加上if語(yǔ)句解決;第四層問題:n個(gè)數(shù)(4個(gè)數(shù)以上)的最大值求法,采用一維數(shù)組比較方式解決。

這樣通過(guò)階梯性舉例教學(xué),學(xué)生對(duì)同類問題的解決有了比較深刻的認(rèn)識(shí)。其主要特點(diǎn)是升級(jí)適度,符合學(xué)生的心態(tài),使學(xué)生有成就感,形成積極向上的學(xué)習(xí)態(tài)度。

四、強(qiáng)調(diào)程序語(yǔ)法規(guī)則,淡化程序算法設(shè)計(jì)思想

C語(yǔ)言語(yǔ)法規(guī)則繁多,且使用靈活,很容易出錯(cuò)。這樣使得學(xué)生調(diào)試程序過(guò)程變得更難。因此,教師在C語(yǔ)言的教學(xué)過(guò)程中,一定要強(qiáng)調(diào)C語(yǔ)言中語(yǔ)法細(xì)節(jié)問題,把一些經(jīng)常會(huì)犯的錯(cuò)誤總結(jié)出來(lái)。例如,在C語(yǔ)言里,賦值運(yùn)算符是“=”,而“==”是關(guān)系運(yùn)算符的相等比較,如if (a = 1),因?yàn)椤埃健笔琴x值操作,括號(hào)中的條件則會(huì)永遠(yuǎn)為真,程序在編譯時(shí)不會(huì)提示有錯(cuò),可以編譯通過(guò),但這明顯不是所要的結(jié)果。教師在授課時(shí)一定要強(qiáng)調(diào)語(yǔ)法細(xì)節(jié),避免出現(xiàn)不必要的錯(cuò)誤。

五、傳授編程技巧,養(yǎng)成良好編程習(xí)慣,培養(yǎng)學(xué)生獨(dú)立調(diào)試程序能力

C語(yǔ)言是一門實(shí)踐性相當(dāng)強(qiáng)的課程。教學(xué)中,教師應(yīng)該傳授學(xué)生一些編程技巧,例如一些典型數(shù)學(xué)問題的運(yùn)用等,讓學(xué)生學(xué)會(huì)如何熟練應(yīng)用C語(yǔ)言編程。由于C語(yǔ)言語(yǔ)句書寫靈活,教師在實(shí)驗(yàn)課上應(yīng)重視學(xué)生書寫程序規(guī)范問題。例如,強(qiáng)調(diào)變量命名應(yīng)顧名思義,一行只書寫一條語(yǔ)句,每一小段程序要有中文注釋等。養(yǎng)成這些良好的編程規(guī)范對(duì)學(xué)生今后編程解決問題是很有幫助的。此外還應(yīng)引導(dǎo)學(xué)生多讀程序,多編程序,多上機(jī)調(diào)試程序。教師在實(shí)驗(yàn)課中,應(yīng)該把一些常用的程序調(diào)試方法總結(jié)出來(lái),教給學(xué)生。只有通過(guò)反復(fù)上機(jī)操作,自行找錯(cuò)糾錯(cuò),才能對(duì)C語(yǔ)言有更深、更全面的認(rèn)識(shí)和理解,逐步提高實(shí)際操作和學(xué)習(xí)的能力。

六、采取多元化的考核方式

為了保證課程的教學(xué)質(zhì)量考核是必不可缺的,可以采用多元化的考核方式,針對(duì)C語(yǔ)言中不同的知識(shí)類型采取不同的考試形式。如:考查C語(yǔ)言中常識(shí)性的知識(shí)可以采用閉卷考試形式;考查學(xué)生知識(shí)轉(zhuǎn)化能力、應(yīng)用能力等可以采用開卷考試形式;考查學(xué)生的程序調(diào)試、改錯(cuò)等可以采用上機(jī)考試。

七、結(jié)束語(yǔ)

以上是筆者近年來(lái)學(xué)習(xí)和講授C語(yǔ)言課程中的一點(diǎn)心得體會(huì),在教學(xué)過(guò)程中應(yīng)注意的問題還是有很多的,但是關(guān)鍵在于對(duì) “教什么”和 “如何教”的合理組合,是否能調(diào)動(dòng)學(xué)生學(xué)習(xí)的積極性。教學(xué)中,只要教師能理解C語(yǔ)言本身的特點(diǎn)并采取相應(yīng)的措施與教學(xué)手段,一定能取得理想的教學(xué)效果。

參考文獻(xiàn):

[1]譚浩強(qiáng). C程序設(shè)計(jì)(第三版)[M]. 清華大學(xué)出版社.2005

第4篇:c程序設(shè)計(jì)范文

關(guān)鍵詞 C語(yǔ)言程序設(shè)計(jì);教學(xué)理念;教學(xué)方法

中圖分類號(hào)TP39 文獻(xiàn)標(biāo)識(shí)碼A 文章編號(hào) 1674-6708(2010)25-0198-02

C語(yǔ)言程序設(shè)計(jì)課程是我校理工類各專業(yè)必修的計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)課,是一門實(shí)踐性很強(qiáng)的課程,學(xué)習(xí)者必須通過(guò)大量的編程練習(xí),在實(shí)踐中掌握語(yǔ)言知識(shí),培養(yǎng)程序設(shè)計(jì)的基本能力,并逐步理解和掌握程序設(shè)計(jì)的思想和方法,培養(yǎng)學(xué)生編程興趣和編程能力是我們教師的責(zé)任,也是該課程的目標(biāo)。

現(xiàn)行的教學(xué)中存在一些問題:一是按照從基礎(chǔ)知識(shí)講起,然后講解語(yǔ)句語(yǔ)法,最后應(yīng)用舉例;二是教材內(nèi)容安排不盡合理,語(yǔ)法規(guī)則編寫過(guò)細(xì)[1];三是教學(xué)理念、教學(xué)方法和考核方法比較老套,不適應(yīng)當(dāng)今教學(xué)的發(fā)展。為了讓學(xué)生學(xué)好這門課程,提高動(dòng)手能力,必須進(jìn)行教學(xué)改革,探索改革的思路和方法。

1 轉(zhuǎn)變教學(xué)理念

傳統(tǒng)的“蓋房子”教學(xué)理念,強(qiáng)調(diào)必須先打好地基再砌墻,即強(qiáng)調(diào)先打好基礎(chǔ),然后再進(jìn)行實(shí)際編程。這種教學(xué)理念教師往往先介紹概念和定義,再舉例進(jìn)行講解,這種教學(xué)方法死板而枯燥,由于課程的教學(xué)重點(diǎn)往往放在了語(yǔ)言語(yǔ)法知識(shí)點(diǎn)上,而語(yǔ)言的語(yǔ)法是相當(dāng)煩瑣而復(fù)雜的,這種教學(xué)方法缺少應(yīng)用型、趣味性的案例,使學(xué)生一步步地陷入到紛多繁雜而索然乏味的語(yǔ)法學(xué)習(xí)當(dāng)中,很難充分調(diào)動(dòng)學(xué)生的積極性和啟發(fā)學(xué)生思維。

研究自然界中“樹”的生長(zhǎng)規(guī)律可以發(fā)現(xiàn),“樹”并不是先長(zhǎng)成發(fā)達(dá)的根系,再長(zhǎng)樹干和枝葉,樹的根系、樹干和枝葉是同步生長(zhǎng)的?!皹洹钡纳L(zhǎng)過(guò)程應(yīng)用到教學(xué)上,就是基礎(chǔ)語(yǔ)法和編程的教學(xué)同步進(jìn)行,甚至先教編程技能再教理論,在不斷地實(shí)踐中掌握技能,在技能學(xué)習(xí)中提高基礎(chǔ)理論。

2 教材編寫思路

從課程的教學(xué)目標(biāo)出發(fā)制定教材的編寫思路,采用實(shí)例引導(dǎo)法、歸納教學(xué)法和任務(wù)教學(xué)法編寫教材,在編寫內(nèi)容上拋棄過(guò)多的語(yǔ)法細(xì)節(jié)和非通用的或?qū)嶋H用途很少的語(yǔ)言特性,算法描述力求通俗易懂。理論教材以實(shí)例引導(dǎo)法思想為主導(dǎo),介紹概念、語(yǔ)句格式、語(yǔ)句用法和算法描述。用歸納教學(xué)法思想編寫多個(gè)函數(shù)中相同參數(shù)的使用問題。實(shí)驗(yàn)教材以任務(wù)教學(xué)法思想,確定每一個(gè)實(shí)驗(yàn)的任務(wù)、內(nèi)容、要求和思考題。

3 教學(xué)方法探索

3.1實(shí)例引導(dǎo)法[2]

一切從實(shí)際例子出發(fā),引導(dǎo)學(xué)生理解程序中的概念和算法,例如:在講解變量、運(yùn)算符和表達(dá)式時(shí),先通過(guò)一個(gè)具體實(shí)例程序介紹,如:求圓面積和周長(zhǎng),指出程序中臨時(shí)存放數(shù)據(jù)的單元和公式中的運(yùn)算符號(hào),然后再引出變量、運(yùn)算符和表達(dá)式進(jìn)一步講解。又如:在講解指針的概念時(shí),變量的“間接訪問”,可以通過(guò)“辦公桌抽屜”實(shí)例講解:一個(gè)辦公桌有A,B兩個(gè)抽屜,每個(gè)抽屜有一把鑰匙,可以把B抽屜的鑰匙放在A抽屜中,若要打開B抽屜,就需要先打開A抽屜,取出B鑰匙,再打開B抽屜,取出B抽屜中的物品,引出“間接訪問”。這樣學(xué)生很快就能理解變量、運(yùn)算符、表達(dá)式和指針的概念并掌握它們的用法。

3.2歸納教學(xué)法[3]

C語(yǔ)言的定義、概念、語(yǔ)法規(guī)則有許多相似的地方,在講解C語(yǔ)言函數(shù)庫(kù)中函數(shù)時(shí),有些函數(shù)參數(shù)的類型格式符是一樣的,在講解一個(gè)函數(shù)中類型格式符后,對(duì)其它函數(shù)的類型格式符可以進(jìn)行歸納,不講或簡(jiǎn)單的提一下即可,例如:printf()和scanf()函數(shù)中的類型格式符“%d、%f、%c”等,它們的語(yǔ)法規(guī)則是一樣的。通過(guò)歸納教學(xué),學(xué)生只要掌握其中一個(gè),另一個(gè)自然就會(huì)使用了,免去了重復(fù)講授,提高了教學(xué)效率。

3.3任務(wù)教學(xué)法

C語(yǔ)言程序設(shè)計(jì)課程必須采用實(shí)驗(yàn)教學(xué)環(huán)節(jié)才能把理論算法加以驗(yàn)證。采用任務(wù)教學(xué)法思想編寫實(shí)驗(yàn)教材,適度增加實(shí)用性和自主性實(shí)驗(yàn)任務(wù)內(nèi)容。每章有具體任務(wù)實(shí)例講解,可引導(dǎo)學(xué)生完成每章設(shè)置的實(shí)驗(yàn)任務(wù)題目。讓學(xué)生自主選擇實(shí)驗(yàn)時(shí)間,每次實(shí)驗(yàn)課前要布置實(shí)驗(yàn)任務(wù),學(xué)生根據(jù)任務(wù),自學(xué)和實(shí)驗(yàn)任務(wù)有關(guān)的知識(shí),完成實(shí)驗(yàn)任務(wù)的編程。這種教學(xué)方法能夠有效地培養(yǎng)學(xué)生的自學(xué)能力, 激發(fā)學(xué)生學(xué)習(xí)的積極性、主動(dòng)性和創(chuàng)造性, 鍛煉他們利用所學(xué)的知識(shí)解決實(shí)際問題的能力。

3.4網(wǎng)絡(luò)教學(xué)法

依托先進(jìn)完備的校園網(wǎng)絡(luò)環(huán)境,建立C語(yǔ)言程序設(shè)計(jì)網(wǎng)絡(luò)教學(xué)平臺(tái)??梢园颜n程教學(xué)大綱、教案、多媒體課件、教學(xué)錄像、綜合實(shí)例庫(kù)、習(xí)題庫(kù)、學(xué)習(xí)參考資料、模擬考試系統(tǒng)等教學(xué)資源全部上網(wǎng),通過(guò)這個(gè)網(wǎng)絡(luò)教學(xué)平臺(tái),學(xué)生可以瀏覽、下載學(xué)習(xí)資料,也可以提交電子作業(yè),在線提問題,老師在線輔導(dǎo)和答疑等,為學(xué)生自主學(xué)習(xí)提供強(qiáng)大的網(wǎng)絡(luò)支持。

4 師資隊(duì)伍建設(shè)

成立C語(yǔ)言程序設(shè)計(jì)課程組,建立結(jié)構(gòu)合理的教師梯隊(duì)。由具有豐富教學(xué)經(jīng)驗(yàn)和科研能力的教授任組長(zhǎng),激勵(lì)教師努力鉆研教學(xué)內(nèi)容和教學(xué)方法,拓寬知識(shí)結(jié)構(gòu)。同時(shí),針對(duì)組內(nèi)教師的不同特點(diǎn),課程組制定了切實(shí)可行的目標(biāo),并定期進(jìn)行集體備課,相互探討,號(hào)召組內(nèi)教師積極參與教學(xué)研究和科研開發(fā),為提高教學(xué)水平打下良好的基礎(chǔ)。建立主講教師之間互相聽課和評(píng)課制度,定期召開學(xué)生座談會(huì)和課程質(zhì)量分析會(huì),并針對(duì)反饋意見提出改進(jìn)教學(xué)的具體措施,從而規(guī)范教學(xué)的各個(gè)環(huán)節(jié),為更好地提高教學(xué)質(zhì)量奠定良好的基礎(chǔ)。

5 考核評(píng)價(jià)體系

對(duì)課程考核評(píng)價(jià)體系進(jìn)行改革,突出過(guò)程考核和編程能力考核,促進(jìn)學(xué)生實(shí)際動(dòng)手能力和創(chuàng)新能力的提高。例如:總評(píng)成績(jī)=理論課出勤成績(jī)+作業(yè)成績(jī)+實(shí)驗(yàn)出勤成績(jī)+實(shí)驗(yàn)完成成績(jī)+期末考試成績(jī)。期末考試采用《C語(yǔ)言程序設(shè)計(jì)機(jī)考系統(tǒng)》,機(jī)考系統(tǒng)為每個(gè)考生隨機(jī)出題,體現(xiàn)了公平考試的原則。改革后的考核評(píng)價(jià)體系主要體現(xiàn)了考核形式多樣化、考核標(biāo)準(zhǔn)合理化以及考核試卷個(gè)性化三大特征。

6 結(jié)論

鑒于目前C語(yǔ)言程序設(shè)計(jì)課程教學(xué)中存在的一些問題,文章通過(guò)改革探索,一切從培養(yǎng)學(xué)生編程能力的角度出發(fā),按著新的教學(xué)理念對(duì)教材編寫思路和教學(xué)方法進(jìn)行了探索,提出了教學(xué)改革的具體措施。希望對(duì)C語(yǔ)言程序設(shè)計(jì)課程的教學(xué)改革有所借鑒。

參考文獻(xiàn)

[1]譚浩強(qiáng).C程序設(shè)計(jì)[M].3版.北京:清華大學(xué)出版社, 2005.

第5篇:c程序設(shè)計(jì)范文

本書作者具有多年C++面向?qū)ο蟪绦蛟O(shè)計(jì)課程的教學(xué)經(jīng)驗(yàn)。根據(jù)教學(xué)過(guò)程中反映出的主要問題,作者在參考大量已有教材和相關(guān)資料的基礎(chǔ)上,對(duì)書中的內(nèi)容進(jìn)行合理組合與取舍,力求澄清概念上的誤區(qū),使內(nèi)容反映學(xué)科發(fā)展、涵蓋最新特征,通過(guò)具體實(shí)例使讀者盡快掌握C++語(yǔ)言的語(yǔ)法知識(shí),把重點(diǎn)放在程序設(shè)計(jì)方法上。為使學(xué)生了解C++標(biāo)準(zhǔn)庫(kù)、掌握標(biāo)準(zhǔn)模板庫(kù)的精華,特別安排一章內(nèi)容,介紹C++標(biāo)準(zhǔn)庫(kù)的構(gòu)成。另外通過(guò)閱讀本書,讀者還可以對(duì)過(guò)程化編程、面向?qū)ο缶幊毯头盒途幊痰染幊趟枷胗兴私狻?/p>

與同類教材相比,本書具有如下特色:

1) 雖然在最后一章對(duì)C++標(biāo)準(zhǔn)庫(kù)進(jìn)行了較為詳細(xì)的介紹,但是在第1章安排一節(jié)對(duì)標(biāo)準(zhǔn)庫(kù)進(jìn)行簡(jiǎn)單介紹,并通過(guò)一個(gè)具體例子告訴讀者如何使用標(biāo)準(zhǔn)庫(kù)編寫C++程序,以吸引讀者進(jìn)一步學(xué)習(xí)。

2) 對(duì)C++支持的豐富多彩的數(shù)據(jù)類型,進(jìn)行了比較合理的分類,以方便讀者在閱讀過(guò)程中理清思路,盡早掌握類(class)的概念。本書將C++支持的數(shù)據(jù)類型分為三大類:基本數(shù)據(jù)類型、自定義類型(抽象類型)和擴(kuò)展類型。

其中基本數(shù)據(jù)類型是C++預(yù)定義的數(shù)據(jù)類型,包括布爾型(bool)、字符型(char)、整型(int)、浮點(diǎn)型(float, double)、空類型(void)。可以利用修飾符對(duì)基本類型進(jìn)行擴(kuò)展。例如,signed、unsigned可用來(lái)修飾字符型和整型,long可用來(lái)修飾整型和雙精度浮點(diǎn)型,short可以修飾整型。

用戶根據(jù)需要,將數(shù)據(jù)與操作數(shù)據(jù)的算法封裝在一起所建立的類型,稱為用戶自定義類型或者抽象數(shù)據(jù)類型,也就是C++中的類,枚舉、聯(lián)合、結(jié)構(gòu)可以看作類的特殊情況。

在已定義的數(shù)據(jù)類型基礎(chǔ)上,結(jié)合某些修飾符(如[]、*、&、())或者關(guān)鍵字(如const、static),可以得到擴(kuò)展數(shù)據(jù)類型,如數(shù)組、指針、引用等。

3) 將類和對(duì)象(object)的概念提前介紹,從基本數(shù)據(jù)類型到結(jié)構(gòu)再到類,使讀者盡快建立起“類”這種抽象數(shù)據(jù)類型的概念。在介紹對(duì)象的概念時(shí),不是用過(guò)于抽象的語(yǔ)言,而是具體到C++語(yǔ)言及計(jì)算機(jī)存儲(chǔ)情況進(jìn)行介紹。

C++中的對(duì)象,強(qiáng)調(diào)的是分配好的、具體的一塊內(nèi)存區(qū)域。每個(gè)對(duì)象都與一個(gè)特定的數(shù)據(jù)類型相關(guān)聯(lián),這個(gè)類型決定了內(nèi)存的大小、布局、能夠存儲(chǔ)在該區(qū)域的值的范圍以及可以對(duì)該區(qū)域進(jìn)行哪些操作等。

4)C++在創(chuàng)建對(duì)象時(shí),系統(tǒng)要為對(duì)象分配一定的存儲(chǔ)區(qū)域,這些存儲(chǔ)區(qū)包括靜態(tài)存儲(chǔ)區(qū)、棧區(qū)和堆區(qū)。本書對(duì)不同存儲(chǔ)類型對(duì)象的存儲(chǔ)特性進(jìn)行了較為詳細(xì)的介紹,并通過(guò)具體實(shí)例進(jìn)行驗(yàn)證。

靜態(tài)存儲(chǔ)區(qū)(static storage)。全局對(duì)象、靜態(tài)對(duì)象和函數(shù)一般存儲(chǔ)于該區(qū)域,存儲(chǔ)區(qū)是在程序開始執(zhí)行之前分配的,這些存儲(chǔ)區(qū)在程序的整個(gè)運(yùn)行期間都存在。

棧區(qū)(stack)。程序執(zhí)行期間進(jìn)行的內(nèi)存分配。在執(zhí)行函數(shù)時(shí),函數(shù)內(nèi)一般局部變量的存儲(chǔ)區(qū)都可以在棧上創(chuàng)建,函數(shù)執(zhí)行結(jié)束時(shí)這些存儲(chǔ)區(qū)被自動(dòng)釋放。

堆區(qū)(heap),也稱為動(dòng)態(tài)存儲(chǔ)區(qū)。程序在運(yùn)行的時(shí)候用運(yùn)算符new申請(qǐng)內(nèi)存,由程序員自己負(fù)責(zé)何時(shí)用運(yùn)算符delete釋放內(nèi)存。

5) 內(nèi)容結(jié)構(gòu)安排上,將函數(shù)與函數(shù)模板、類與類模板分別放在同一章介紹,使得內(nèi)容前后銜接密切,便于讀者由簡(jiǎn)單到復(fù)雜、逐步掌握標(biāo)準(zhǔn)C++的精髓。

6) 與同類大部分中文教材相比,增加了指向成員的指針、成員函數(shù)地址獲取、動(dòng)態(tài)綁定機(jī)制、函數(shù)對(duì)象、模版重載與專門化等內(nèi)容,加強(qiáng)了對(duì)C++標(biāo)準(zhǔn)庫(kù)特別是對(duì)標(biāo)準(zhǔn)模板庫(kù)的介紹。

7) 本書的例題和習(xí)題選材大部分面向?qū)嶋H問題,題目具有一定的難度和趣味性,讀者學(xué)完此書從內(nèi)心里會(huì)感到有很大收獲。

8) 使用本書不需要有C語(yǔ)言基礎(chǔ)。

第6篇:c程序設(shè)計(jì)范文

1.1教學(xué)只注重課程的講解,不注重教學(xué)過(guò)程的質(zhì)量控制

傳統(tǒng)的教學(xué)以課程內(nèi)容的講解為主,通過(guò)講解變量、循環(huán)、數(shù)組、指針等內(nèi)容,并結(jié)合一定的教學(xué)案例來(lái)推進(jìn)教學(xué)過(guò)程的實(shí)施。這種傳統(tǒng)的教學(xué)方法沒有考慮到本階段學(xué)生的特點(diǎn),往往造成教學(xué)效果差,教學(xué)質(zhì)量難以控制。C語(yǔ)言程序設(shè)計(jì)課程在大一新生中開設(shè),許多學(xué)生缺乏程序的思維和一定的動(dòng)手能力,學(xué)生難以跟上教學(xué)進(jìn)度,造成一定數(shù)量的學(xué)生對(duì)學(xué)習(xí)語(yǔ)言失去興趣,從而影響整個(gè)專業(yè)課程的學(xué)習(xí)。

1.2教學(xué)過(guò)程缺乏有效的互動(dòng)

C語(yǔ)言程序設(shè)計(jì)的教學(xué)過(guò)程中主要使用PPT來(lái)講解,案例程序也通過(guò)PPT展示,甚至包括程序運(yùn)行結(jié)果也以截圖的形式在PPT中顯示。雖然在PPT中可以添加很多的動(dòng)作,動(dòng)態(tài)地標(biāo)注、顯示程序的運(yùn)行過(guò)程,但這種方法以投影為中心,缺少與學(xué)生交流的環(huán)節(jié),加上程序類課程相對(duì)枯燥,以致學(xué)生難以集中精力做到全程聽課。

1.3代碼編寫規(guī)范強(qiáng)調(diào)不夠

編碼規(guī)范是軟件專業(yè)學(xué)生必須要牢記并遵守的,良好的編碼規(guī)范不僅能體現(xiàn)軟件從業(yè)人員的素質(zhì),而且使代碼有更好的可讀性,更容易被別人所理解和交流。該課程的講解主要以編寫簡(jiǎn)單邏輯來(lái)解決一些日常問題、數(shù)學(xué)問題,編程的環(huán)節(jié)側(cè)重于算法的實(shí)現(xiàn),往往忽略了編碼規(guī)范

。1.4考試以筆試為主,難以檢驗(yàn)學(xué)生的動(dòng)手能力

傳統(tǒng)的C語(yǔ)言程序設(shè)計(jì)課程考試以筆試為主,考查學(xué)生對(duì)C語(yǔ)言基本的語(yǔ)法、簡(jiǎn)單邏輯編寫的掌握情況。這種考試機(jī)制脫離了程序語(yǔ)言的實(shí)現(xiàn)介質(zhì),即計(jì)算機(jī)。雖然在試卷中也可以用編程題目來(lái)考查學(xué)生的編程能力,但在紙上寫程序與在計(jì)算機(jī)上寫程序有本質(zhì)的不同。在紙上寫程序只需要寫出大致的邏輯即可,而在計(jì)算機(jī)上寫程序不僅要寫出正確的代碼,而且需要調(diào)試和跟蹤代碼,最終保證程序的正確執(zhí)行。因此,筆試并不能很好地檢驗(yàn)學(xué)生的動(dòng)手實(shí)踐能力。

2教學(xué)改革措施

2.1加強(qiáng)教學(xué)過(guò)程的質(zhì)量控制

C語(yǔ)言程序設(shè)計(jì)課程是一門實(shí)踐性強(qiáng)的課程,僅通過(guò)做一些常規(guī)練習(xí)無(wú)法達(dá)到教學(xué)質(zhì)量監(jiān)控的目的。為了更好地控制教學(xué)質(zhì)量,需要從學(xué)生語(yǔ)法規(guī)則的掌握到動(dòng)手編程這一系列環(huán)節(jié)進(jìn)行掌握和跟蹤。為此,我們開發(fā)了一套在線作業(yè)系統(tǒng)用于教學(xué)質(zhì)量的控制。⑴作業(yè)題庫(kù)的建設(shè)C語(yǔ)言程序設(shè)計(jì)的任課教師根據(jù)自己的經(jīng)驗(yàn)和理解來(lái)搜集和設(shè)計(jì)C語(yǔ)言題目,包括基礎(chǔ)知識(shí)的題目和編程實(shí)踐的題目。基礎(chǔ)知識(shí)的題目主要用于C語(yǔ)言知識(shí)點(diǎn)的訓(xùn)練,包括填空題、選擇題、判斷題和程序閱讀題;編程實(shí)踐的題目主要用于編程能力的訓(xùn)練,這類題目需要學(xué)生對(duì)問題進(jìn)行正確分析、設(shè)計(jì)算法、編程并運(yùn)行,最終得到結(jié)果。教師在給出題目時(shí),需要提供測(cè)試數(shù)據(jù)和對(duì)應(yīng)的結(jié)果。⑵作業(yè)的布置與批改教師可以根據(jù)每次課的教學(xué)大綱、課程內(nèi)容,從作業(yè)題庫(kù)中選擇一些填空題、選擇題、程序閱讀題、編程題來(lái)建立課程作業(yè)供學(xué)生在課外完成。學(xué)生在規(guī)定的時(shí)間之內(nèi)完成作業(yè)后提交作業(yè),系統(tǒng)根據(jù)教師預(yù)先設(shè)定的答案進(jìn)行自動(dòng)批改,形成每個(gè)學(xué)生的作業(yè)記錄。如果學(xué)生在規(guī)定的時(shí)間之內(nèi)沒有完成作業(yè)并提交則失去本次作業(yè)的記錄。教師通過(guò)查閱部分學(xué)生的解答來(lái)掌握學(xué)生對(duì)相關(guān)知識(shí)的掌握情況,特別是需要整理學(xué)生所犯的共性問題,并有針對(duì)性的開設(shè)習(xí)題課進(jìn)行解答。⑶配套政策為了使學(xué)生重視平時(shí)作業(yè)的完成,課程的期末成績(jī)將考查平時(shí)作業(yè)的情況。如果學(xué)生沒有提交作業(yè)的次數(shù)在30%以上,則平時(shí)成績(jī)計(jì)0分,其他情況按照提交作業(yè)次數(shù)和作業(yè)得分根據(jù)一定的公式進(jìn)行計(jì)算得到學(xué)生的平時(shí)成績(jī)。這種策略的主要目的在于督促學(xué)生跟著教學(xué)進(jìn)度進(jìn)行學(xué)習(xí)和訓(xùn)練,不至于嚴(yán)重滯后于教學(xué)進(jìn)度而失去學(xué)習(xí)的興趣,可有力地保證教學(xué)質(zhì)量。

2.2加強(qiáng)教學(xué)過(guò)程中的互動(dòng)

課堂教學(xué)應(yīng)該在一定程度上脫離PPT的教學(xué),這樣才可以調(diào)動(dòng)學(xué)生的積極性。加強(qiáng)師生之間的互動(dòng)可以結(jié)合本課程特點(diǎn)進(jìn)行。在講解課程知識(shí)點(diǎn)后,配以適合的案例進(jìn)行教學(xué),這些案例都是需要編寫C語(yǔ)言程序來(lái)實(shí)現(xiàn)的。此時(shí),編程實(shí)現(xiàn)的環(huán)節(jié)不要通過(guò)PPT展示,而要在教師的計(jì)算機(jī)上動(dòng)手編寫并運(yùn)行得到結(jié)果,這樣可以改變教學(xué)節(jié)奏,吸引學(xué)生的注意力。C語(yǔ)言課程案例程序的一大特點(diǎn)是代碼量少,一般在20~30行之間,適宜在課堂上完成。教師在編寫程序的過(guò)程中,可以向?qū)W生展示編程中需要注意的問題,同時(shí),進(jìn)一步講解C語(yǔ)言的語(yǔ)法和基本知識(shí)點(diǎn)。教師在編寫程序的過(guò)程中難免會(huì)犯小錯(cuò)誤,或者是有針對(duì)性的故意犯一些學(xué)生經(jīng)常犯的錯(cuò)誤,在編程后的編譯運(yùn)行時(shí)會(huì)有錯(cuò)誤報(bào)出,這時(shí)對(duì)于提高師生交互是很好的機(jī)會(huì)。從學(xué)生的角度來(lái)說(shuō),他們的編程往往會(huì)有很多錯(cuò)誤,編譯時(shí)會(huì)出現(xiàn)大量的錯(cuò)誤提示。此時(shí),學(xué)生可能就比較迷茫,不知道如何定位并解決錯(cuò)誤。因此,當(dāng)老師也出現(xiàn)錯(cuò)誤,而且是學(xué)生經(jīng)常遇到的錯(cuò)誤時(shí),學(xué)生往往是比較興奮的,希望能知道老師是如何處理錯(cuò)誤的。從老師的角度來(lái)說(shuō),真實(shí)地反映程序編寫、編譯的過(guò)程,展示程序錯(cuò)誤的發(fā)現(xiàn)、定位、解決的方法,能夠更快地提高學(xué)生的動(dòng)手實(shí)踐能力。面對(duì)錯(cuò)誤,教師還可以引導(dǎo)學(xué)生參與程序錯(cuò)誤的解決,消除學(xué)生對(duì)程序錯(cuò)誤的恐懼感。在解決程序錯(cuò)誤時(shí)可以參考以下步驟。首先,教師要把所有錯(cuò)誤信息讀出來(lái)給學(xué)生聽,因?yàn)橐话憔幾g出來(lái)的錯(cuò)誤是用英文寫的,而且有些單詞學(xué)生不熟悉,因此,老師需要指出錯(cuò)誤是變量重定義、變量沒有定義、還是其他錯(cuò)誤;然后,指出核心錯(cuò)誤的位置,教師要告訴學(xué)生程序報(bào)出很多錯(cuò)誤信息往往是由一個(gè)小錯(cuò)誤導(dǎo)致的,因此,老師要指導(dǎo)學(xué)生學(xué)會(huì)確定引起其他錯(cuò)誤的核心錯(cuò)誤;最后,在源程序中找到錯(cuò)誤的位置,修改錯(cuò)誤并重新編譯,得出運(yùn)算結(jié)果。這個(gè)錯(cuò)誤處理過(guò)程是針對(duì)簡(jiǎn)單語(yǔ)法錯(cuò)誤的處理方法,如果程序中出現(xiàn)了邏輯錯(cuò)誤,即程序編譯正確,但運(yùn)行結(jié)果不是預(yù)期結(jié)果,此時(shí),錯(cuò)誤的處理方法更為復(fù)雜,可能需要重新檢查程序邏輯,并使用編譯環(huán)境進(jìn)行程序中可疑變量的監(jiān)視,通過(guò)觀察變量中的數(shù)值在程序運(yùn)行過(guò)程的變化來(lái)確定錯(cuò)誤。通過(guò)實(shí)地編寫程序并調(diào)試,發(fā)現(xiàn)和解決程序錯(cuò)誤,最終得到正確的計(jì)算結(jié)果,不僅能使同學(xué)更好地掌握程序編寫的方法,而且還能更好地與學(xué)生進(jìn)行互動(dòng),提高教學(xué)效果。

2.3強(qiáng)調(diào)代碼規(guī)范

有些老師在教學(xué)的過(guò)程別是演示程序時(shí),注重于解決問題而忽視代碼規(guī)范,甚至是自己寫程序也是這樣,沒有代碼規(guī)范。雖然遵守代碼規(guī)范并不能改善程序的性能,但遵守代碼規(guī)范能夠使程序具有更好的可讀性、可維護(hù)性,是軟件代碼實(shí)施過(guò)程中軟件從業(yè)人員良好素質(zhì)的重要體現(xiàn)。改善代碼規(guī)范可以從以下幾個(gè)方面進(jìn)行。⑴適當(dāng)?shù)目s進(jìn)每一行代碼不要頂格書寫,而要根據(jù)情況縮進(jìn)。具有良好縮進(jìn)格式的代碼不僅能少犯語(yǔ)法錯(cuò)誤,還能夠使閱讀者快速掌握程序內(nèi)容。⑵適當(dāng)?shù)目招泻瘮?shù)與函數(shù)之間增加必要的空行,使得程序構(gòu)成一目了然。⑶適當(dāng)增加代碼注釋程序中函數(shù)的開頭最好加上注釋說(shuō)明該函數(shù)的作用、參數(shù)的意義,在函數(shù)中重要邏輯的部分加入注釋說(shuō)明該邏輯的主要思路、算法。⑷代碼塊要用花括號(hào)界定代碼塊盡量使用花括號(hào)來(lái)界定代碼范圍,即使代碼塊里只有一行代碼,這樣可以提高代碼的可閱讀性,防止閱讀者誤解程序。⑸變量和函數(shù)的命名盡量使用多個(gè)字母來(lái)命名變量和函數(shù),使得程序閱讀者通過(guò)名稱即可大致了解變量的意義、函數(shù)的作用,提高程序的可讀性。通過(guò)編碼規(guī)范的強(qiáng)調(diào)和實(shí)施,使學(xué)生認(rèn)識(shí)到軟件開發(fā)的專業(yè)素質(zhì),對(duì)于提高學(xué)生的專業(yè)素養(yǎng)具有潛移默化的作用。

2.4上機(jī)考試

上機(jī)考試采用在線考試的方式進(jìn)行,考試環(huán)節(jié)包括如下幾個(gè)部分。⑴試題庫(kù)的建設(shè)C語(yǔ)言程序設(shè)計(jì)的任課教師負(fù)責(zé)組建上機(jī)試題庫(kù),試題庫(kù)中的題目都是編程的題目,用于考核學(xué)生的編程能力。教師在組建試題庫(kù)時(shí),標(biāo)明每個(gè)試題的知識(shí)點(diǎn)和大致難度,并提供測(cè)試案例和對(duì)應(yīng)的答案。題庫(kù)負(fù)責(zé)人負(fù)責(zé)查看、重新編輯每個(gè)題目,從題庫(kù)整體的角度更新每個(gè)試題的難度。⑵上機(jī)考試的實(shí)施為單次考試準(zhǔn)備7個(gè)知識(shí)點(diǎn)和1個(gè)綜合知識(shí)點(diǎn)的題目,教師在考試之前為每個(gè)知識(shí)點(diǎn)選定難度相當(dāng)?shù)?個(gè)題目。每個(gè)學(xué)生登錄系統(tǒng)后,系統(tǒng)自動(dòng)建立考卷,具體策略是從為每個(gè)知識(shí)點(diǎn)準(zhǔn)備的5個(gè)題目中隨機(jī)選擇1題組成一個(gè)考卷,因此,該考卷包含8個(gè)題目,這8個(gè)考題要求學(xué)生在4小時(shí)內(nèi)完成編程。考試時(shí)間一般定為上午8:00至中午12:00點(diǎn)。學(xué)生根據(jù)隨機(jī)組成的考卷題目進(jìn)行解答,為每道題目編程求解,并在學(xué)生機(jī)上利用示例測(cè)試用例檢驗(yàn)代碼的正確性。如果在本地沒有通過(guò)檢測(cè),則進(jìn)行邏輯檢查,修改程序;如果本地通過(guò)測(cè)試,學(xué)生需要將代碼提交到服務(wù)器。服務(wù)器接收到代碼后,自動(dòng)調(diào)用教師提供的更多的測(cè)試用例來(lái)檢測(cè)程序運(yùn)行結(jié)果是否與預(yù)先設(shè)置的結(jié)果匹配,進(jìn)行代碼邏輯黑盒測(cè)試。如果全部通過(guò),則說(shuō)明學(xué)生的編程邏輯是正確的,此時(shí)將學(xué)生成績(jī)記錄中對(duì)應(yīng)的題目標(biāo)為通過(guò),并回顯“通過(guò)”給學(xué)生,學(xué)生繼續(xù)做下一道題目;如果其中有的用例運(yùn)行結(jié)果不正確,則返回“錯(cuò)誤”給學(xué)生,學(xué)生可以接著做本道題目,也可以選做另外一道題目,同時(shí),在學(xué)生成績(jī)記錄中對(duì)應(yīng)的題目標(biāo)為錯(cuò)誤。教師在考試現(xiàn)場(chǎng)調(diào)取并查看所有學(xué)生成績(jī)記錄信息,如果發(fā)現(xiàn)異常信息,如在很短的時(shí)間內(nèi)完成了過(guò)多的題目,則可能學(xué)生在作弊。此時(shí),根據(jù)異常學(xué)生信息中的IP地址找到該學(xué)生,進(jìn)行現(xiàn)場(chǎng)查證,如果確認(rèn)為作弊則立即處理。如果學(xué)生正確完成了8道題中的5道題,則學(xué)生通過(guò)上機(jī)測(cè)試,否則,學(xué)生沒有通過(guò)上機(jī)測(cè)試。為了減輕學(xué)生的壓力,上機(jī)考試可以分兩次進(jìn)行,如果第一次沒有通過(guò)上機(jī)考試,還可以組織學(xué)生進(jìn)行第二次考試,取這兩次考試的較高分作為學(xué)生成績(jī)。

3結(jié)束語(yǔ)

第7篇:c程序設(shè)計(jì)范文

關(guān)鍵詞:C語(yǔ)言程序設(shè)計(jì);計(jì)算思維;抽象;自動(dòng)化

美國(guó)卡內(nèi)基?梅隆大學(xué)的周以真教授在2006年系統(tǒng)地提出了計(jì)算思維的概念[1]:計(jì)算思維指的是運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問題求解、系統(tǒng)設(shè)計(jì)以及人類行為理解等一系列思維活動(dòng)。其后,陳國(guó)良院士和李廉教授歸納出三種典型的科學(xué)思維,即以觀察和歸納為特征的實(shí)證思維,以推理和演繹為特征的邏輯思維,以抽象和自動(dòng)化為特征的計(jì)算思維[2-3]。計(jì)算思維是計(jì)算機(jī)類課程的主要思維方式。

有關(guān)計(jì)算思維在程序設(shè)計(jì)類課程中的研究,已經(jīng)引起很多學(xué)者的興趣[4-6]。這些研究雖然從案例設(shè)計(jì)和項(xiàng)目過(guò)程等角度做了有益探索,但卻忽略了對(duì)計(jì)算思維本質(zhì)的討論。C語(yǔ)言程序設(shè)計(jì)課程中,我們采用李廉教授的觀點(diǎn),即計(jì)算思維的本質(zhì)是抽象和自動(dòng)化。抽象指的是使用符號(hào)系統(tǒng)對(duì)問題進(jìn)行精確而嚴(yán)格的描述;自動(dòng)化指的是對(duì)這些符號(hào)系統(tǒng)施加一定操作并按照某種結(jié)構(gòu)自動(dòng)地執(zhí)行。

一、C語(yǔ)言程序中的計(jì)算思維本質(zhì)之一:抽象

有些C語(yǔ)言程序設(shè)計(jì)課程教學(xué)的一開始就提倡使用案例教學(xué)。這雖然能夠使得學(xué)生可以迅速進(jìn)入實(shí)際編程環(huán)節(jié)并建立直觀感性認(rèn)識(shí),但案例教學(xué)由于往往出現(xiàn)“程序就是編程工具”的工具論現(xiàn)象,導(dǎo)致出現(xiàn)“只知其然,而不知其所以然”的學(xué)習(xí)后果,不利于學(xué)生的后續(xù)發(fā)展。

對(duì)于C語(yǔ)言程序來(lái)說(shuō),抽象指的是使用符號(hào)系統(tǒng)對(duì)求解問題進(jìn)行精確而嚴(yán)格的描述,抽象的過(guò)程就是對(duì)實(shí)際系統(tǒng)建模的過(guò)程。實(shí)際上,程序是用來(lái)描述現(xiàn)實(shí)生活中某個(gè)實(shí)際存在的或不存在的系統(tǒng)。程序就是對(duì)系統(tǒng)的抽象。系統(tǒng)之所以存在,是因?yàn)橄到y(tǒng)具有一些關(guān)鍵特征和核心功能。程序中對(duì)系統(tǒng)特征進(jìn)行抽象的就是操作對(duì)象,對(duì)系統(tǒng)功能進(jìn)行抽象的就是函數(shù)。系統(tǒng)功能往往有多個(gè)且存在著復(fù)雜的調(diào)用關(guān)系。例如,求一個(gè)函數(shù)定積分的功能必然涉及求函數(shù)在某一個(gè)點(diǎn)的取值功能,如果該函數(shù)比較復(fù)雜且含有正弦、余弦和正切等三角函數(shù),還需要繼續(xù)調(diào)用求這些三角函數(shù)值的功能,形成多級(jí)調(diào)用;有時(shí)函數(shù)執(zhí)行過(guò)程中還需要調(diào)用本身,形成遞歸調(diào)用。

C語(yǔ)言程序中的操作對(duì)象分為變量和常量。常量是對(duì)系統(tǒng)中的取值不變的特征進(jìn)行抽象,如圓的圓周率;而變量是對(duì)系統(tǒng)中取值可以改變的特征進(jìn)行抽象,如圓的半徑。不管是哪類特征,都會(huì)有一個(gè)取值范圍以及所允許的操作。例如,對(duì)于課程成績(jī),其取值范圍一般是從0~100,而允許對(duì)該特征進(jìn)行的操作可以是加法和減法等算術(shù)操作以及大于和小于等比較運(yùn)算;而對(duì)于課程名字這一特征,就不能進(jìn)行加法和減法這樣的算術(shù)操作。C語(yǔ)言程序中用來(lái)對(duì)特征的取值范圍及允許的操作進(jìn)行抽象的概念是數(shù)據(jù)類型。C語(yǔ)言程序中的抽象模塊如表1所示。

現(xiàn)實(shí)生活中,經(jīng)常需要描述多個(gè)相同數(shù)據(jù)類型的一個(gè)系統(tǒng)特征,如所有同學(xué)的高等數(shù)學(xué)課程的成績(jī),可以使用一維數(shù)組來(lái)進(jìn)行描述;而描述多個(gè)不同數(shù)據(jù)類型的多個(gè)系統(tǒng)特征,如學(xué)生的姓名、學(xué)生的身高和學(xué)生的年齡等,可以使用結(jié)構(gòu)體來(lái)進(jìn)行描述;如果要描述多個(gè)相同數(shù)據(jù)類型的多個(gè)系統(tǒng)特征,如全班所有同學(xué)的高等數(shù)學(xué)和大學(xué)英語(yǔ)課程的成績(jī),則可以使用二維數(shù)組來(lái)進(jìn)行描述。

表1 C語(yǔ)言程序中的抽象模塊

C語(yǔ)言程序中的元素 現(xiàn)實(shí)生活中的元素

程序 系統(tǒng)

函數(shù) 系統(tǒng)功能

函數(shù)調(diào)用 功能調(diào)用

數(shù)據(jù)類型 常量 系統(tǒng)特征

變量

一維數(shù)組 多個(gè)相同類型的一個(gè)系統(tǒng)特征

多維數(shù)組 多個(gè)相同類型的多個(gè)系統(tǒng)特征

結(jié)構(gòu)體 多個(gè)不同類型的多個(gè)系統(tǒng)特征

鏈表或結(jié)構(gòu)體數(shù)組 多個(gè)不同類型的多個(gè)系統(tǒng)特征的集合

二、C語(yǔ)言程序中的計(jì)算思維本質(zhì)之二:自動(dòng)化

計(jì)算思維的另一個(gè)本質(zhì)是自動(dòng)化。自動(dòng)化指的是對(duì)符號(hào)系統(tǒng)建模的各種元素施加一些操作,并按照某種順序的或非順序的結(jié)構(gòu)自動(dòng)地執(zhí)行。對(duì)于C語(yǔ)言程序來(lái)說(shuō),自動(dòng)化體現(xiàn)為函數(shù)內(nèi)部的語(yǔ)句在EIP寄存器加法操作支持下順序自動(dòng)地執(zhí)行以及函數(shù)之間的調(diào)用在內(nèi)存堆棧區(qū)支持下自動(dòng)地進(jìn)行跳轉(zhuǎn)。EIP是32位機(jī)的指令指針寄存器,用來(lái)存放下一條要執(zhí)行的指令的地址。EIP寄存器中增加值的大小需要根據(jù)實(shí)際存儲(chǔ)指令的大小來(lái)確定。

對(duì)于C語(yǔ)言程序來(lái)說(shuō),自動(dòng)化過(guò)程中執(zhí)行的對(duì)象是語(yǔ)句。不同類型的語(yǔ)句,執(zhí)行的結(jié)果和效用是不一樣的。例如,一個(gè)變量定義語(yǔ)句“int a”的執(zhí)行結(jié)果是在內(nèi)存中分配4個(gè)字節(jié)的空間,一個(gè)返回語(yǔ)句“return t”的執(zhí)行結(jié)果是將程序的執(zhí)行流程返回到主調(diào)函數(shù)中。這些語(yǔ)句的組合構(gòu)成一個(gè)個(gè)函數(shù),程序的執(zhí)行就是在某個(gè)函數(shù)之中順序自動(dòng)地執(zhí)行以及在多個(gè)函數(shù)之間來(lái)回自動(dòng)地跳轉(zhuǎn)。

既然程序的執(zhí)行過(guò)程是在某個(gè)函數(shù)之中順序自動(dòng)地執(zhí)行以及在多個(gè)函數(shù)之間來(lái)回自動(dòng)地跳轉(zhuǎn),這種自動(dòng)執(zhí)行需要有相應(yīng)的計(jì)算機(jī)軟件和硬件基礎(chǔ)。支持程序自動(dòng)執(zhí)行的軟件基礎(chǔ)是操作系統(tǒng),支持程序自動(dòng)執(zhí)行的硬件基礎(chǔ)是計(jì)算機(jī)硬件結(jié)構(gòu),即馮?諾依曼原理的程序存儲(chǔ)思想。當(dāng)用戶點(diǎn)擊執(zhí)行按鈕后,程序被提交給操作系統(tǒng)來(lái)執(zhí)行,可以不需要人為干預(yù)。此后,程序在操作系統(tǒng)中以進(jìn)程的方式出現(xiàn)。操作系統(tǒng)協(xié)調(diào)內(nèi)存、中央處理器和外存等硬件資源執(zhí)行該進(jìn)程。

函數(shù)中的語(yǔ)句之所以能夠一個(gè)接著一個(gè)順序地執(zhí)行,主要依賴于EIP寄存器的加法操作。當(dāng)一條指令執(zhí)行完成之后,EIP寄存器在原有內(nèi)容的基礎(chǔ)上再加上當(dāng)前指令所占存儲(chǔ)空間大小,其內(nèi)容便是下一條指令的地址。如此進(jìn)行下去,就可以一個(gè)一個(gè)順序地執(zhí)行函數(shù)中的語(yǔ)句。

程序控制之所以能夠在函數(shù)之間進(jìn)行跳轉(zhuǎn),主要依賴于操作系統(tǒng)管理的內(nèi)存堆棧區(qū)。內(nèi)存堆棧區(qū)是滿足“后進(jìn)先出”操作約束的存儲(chǔ)區(qū)。當(dāng)操作系統(tǒng)開始執(zhí)行用戶提交的C語(yǔ)言程序時(shí),首先開始從main函數(shù)執(zhí)行,main函數(shù)的相關(guān)局部變量被壓入棧中;當(dāng)執(zhí)行到被調(diào)函數(shù)時(shí),被調(diào)函數(shù)的相關(guān)局部變量再次被壓入棧中,程序控制轉(zhuǎn)移到被調(diào)函數(shù),且操作只能對(duì)當(dāng)前棧頂進(jìn)行,而此時(shí)棧頂存儲(chǔ)的就是被調(diào)函數(shù)的相關(guān)局部變量;而當(dāng)被調(diào)函數(shù)執(zhí)行結(jié)束時(shí),被調(diào)函數(shù)的相關(guān)局部變量從棧中退出,程序控制轉(zhuǎn)移到main函數(shù)繼續(xù)執(zhí)行,此時(shí)棧頂存儲(chǔ)的是main函數(shù)的相關(guān)局部變量;當(dāng)main函數(shù)執(zhí)行結(jié)束時(shí),main函數(shù)的局部變量從棧中退出,整個(gè)程序執(zhí)行結(jié)束。下列程序執(zhí)行時(shí)的堆棧變化過(guò)程示意如圖1所示。

#include "stdio.h"

double s(double r)

{ return r*r; }

int main()

{ double r;

double area;

r=2.0;

area= s(r);

printf("area=%f",area);

return 0;

}

圖1 函數(shù)調(diào)用過(guò)程的堆棧變化

自動(dòng)化過(guò)程實(shí)際反映了C語(yǔ)言程序解決實(shí)際問題的算法流程。算法是解決某一問題的執(zhí)行步驟。一般而言,使用C語(yǔ)言進(jìn)行編程之前,需要進(jìn)行相應(yīng)的算法設(shè)計(jì),即構(gòu)思解決實(shí)際問題的思路和步驟。一旦這些步驟變成C語(yǔ)言程序語(yǔ)句并形成一個(gè)完整的程序,就可以提交給操作系統(tǒng)自動(dòng)地執(zhí)行這些步驟,這正是計(jì)算機(jī)解決問題的高效率的體現(xiàn)。

三、以計(jì)算思維為導(dǎo)向的C語(yǔ)言程序設(shè)計(jì)課程教學(xué)

1.教學(xué)內(nèi)容

針對(duì)計(jì)算思維的抽象和自動(dòng)化兩大本質(zhì)特征,C語(yǔ)言程序設(shè)計(jì)課程的教學(xué)內(nèi)容需要在原有的基礎(chǔ)上特別強(qiáng)調(diào)一些針對(duì)性的觀點(diǎn)。例如,C語(yǔ)言中的各種數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu)可以完成實(shí)際系統(tǒng)中各種不同元素的抽象,一個(gè)函數(shù)之中的順序語(yǔ)句自動(dòng)執(zhí)行的基礎(chǔ)是EIP寄存器的加法操作,多個(gè)函數(shù)之間的來(lái)回自動(dòng)跳轉(zhuǎn)的基礎(chǔ)是內(nèi)存堆棧區(qū)的支持等。具體強(qiáng)調(diào)的觀點(diǎn)如表2所示。

表2 教學(xué)內(nèi)容中需要強(qiáng)調(diào)的觀點(diǎn)

C語(yǔ)言程序設(shè)計(jì)

課程的內(nèi)容 強(qiáng)調(diào)的觀點(diǎn)

C語(yǔ)言概述 程序是對(duì)系統(tǒng)的抽象

抽象過(guò)程就是C語(yǔ)言的建模過(guò)程

自動(dòng)化過(guò)程反映C語(yǔ)言的算法流程

數(shù)據(jù)類型、表達(dá)式和語(yǔ)句 操作對(duì)象是對(duì)系統(tǒng)特征的抽象

語(yǔ)句是系統(tǒng)自動(dòng)化執(zhí)行的基本對(duì)象

控制結(jié)構(gòu) 控制結(jié)構(gòu)是問題求解步驟的抽象

函數(shù)中順序語(yǔ)句自動(dòng)執(zhí)行的基礎(chǔ)是EIP寄存器的加法操作

數(shù)組 一維數(shù)組是對(duì)多個(gè)相同類型的一個(gè)系統(tǒng)特征的抽象,多維數(shù)組是對(duì)多個(gè)相同類型的多個(gè)系統(tǒng)特征的抽象

函數(shù) 函數(shù)是對(duì)系統(tǒng)功能的抽象

函數(shù)調(diào)用是功能調(diào)用的抽象

函數(shù)之間的來(lái)回自動(dòng)跳轉(zhuǎn)的基礎(chǔ)是內(nèi)存堆棧區(qū)的支持

結(jié)構(gòu)體 結(jié)構(gòu)體是對(duì)多個(gè)不同類型的多個(gè)系統(tǒng)特征的抽象

指針 鏈表是多個(gè)不同類型的多個(gè)系統(tǒng)特征集合的抽象

2.教學(xué)方式

計(jì)算思維的本質(zhì)是抽象和自動(dòng)化。C語(yǔ)言程

序設(shè)計(jì)課程一般都是面向大一新生,理解抽象和自動(dòng)化進(jìn)而培養(yǎng)計(jì)算思維,對(duì)于還處在計(jì)算機(jī)學(xué)習(xí)起點(diǎn)的學(xué)生來(lái)說(shuō)是比較困難的。

對(duì)于C語(yǔ)言程序來(lái)說(shuō),抽象過(guò)程實(shí)際就是運(yùn)用C語(yǔ)言中各種符號(hào)對(duì)所描述系統(tǒng)的建模過(guò)程,培養(yǎng)抽象的計(jì)算思維方式就是培養(yǎng)使用C語(yǔ)言描述實(shí)際系統(tǒng)的思維過(guò)程。因此,可以通過(guò)啟發(fā)式教學(xué)方式引導(dǎo)學(xué)生思考如何使用C語(yǔ)言中的符號(hào)來(lái)描述系統(tǒng)。可以提出這樣的一系列問題:C語(yǔ)言中如何描述一個(gè)人的身高?如何綜合描述一個(gè)人的姓名、年齡和籍貫等?如何描述一個(gè)班中所有學(xué)生的高等數(shù)學(xué)成績(jī)?如何描述各路公共汽車站的網(wǎng)狀信息?通過(guò)啟發(fā)學(xué)生對(duì)這些問題的思考,讓學(xué)生所學(xué)的C語(yǔ)言中的各種符號(hào)不再“虛幻”,讓學(xué)生真正理解這些符號(hào)實(shí)際是一種建模元素,每種符號(hào)有著其特別的抽象描述能力。

對(duì)于C語(yǔ)言程序來(lái)說(shuō),理解自動(dòng)化過(guò)程必須借助一些形象化的手段。例如,借助于Visual C++ 6.0平臺(tái)的單步調(diào)試功能,可以形象地演示上述C語(yǔ)言程序的自動(dòng)化過(guò)程,如表3所示。

表3 C語(yǔ)言程序執(zhí)行過(guò)程中EIP和ESP寄存器內(nèi)容的變化

斷點(diǎn) EIP寄存器內(nèi)容 ESP寄存器內(nèi)容 當(dāng)前棧頂函數(shù)

r=2.0;語(yǔ)句 00401068 0013FF24 main函數(shù)

area=s(r);語(yǔ)句 00401076 0013FF24 main函數(shù)

return r*r;語(yǔ)句 00401020 0013FF18 s函數(shù)

printf("area=%f",area);語(yǔ)句 00401089 0013FF24 main函數(shù)

從表3可以看出,隨著EIP寄存器內(nèi)容的增加,main函數(shù)中的語(yǔ)句順序自動(dòng)執(zhí)行,即從語(yǔ)句“r=2.0”到語(yǔ)句“area=s(r)”再到語(yǔ)句“printf("area=%f",area)”。ESP寄存器是另一個(gè)重要的寄存器,它始終存放棧頂?shù)牡刂贰kS著main函數(shù)對(duì)s函數(shù)的調(diào)用開始,棧頂工作函數(shù)由main函數(shù)變化為s函數(shù);當(dāng)s函數(shù)調(diào)用結(jié)束后,棧頂工作函數(shù)又由s函數(shù)回到main函數(shù)。

3.考核內(nèi)容

針對(duì)C語(yǔ)言程序設(shè)計(jì)課程的計(jì)算思維培養(yǎng)要求,考核方式上必須從以考查語(yǔ)言的語(yǔ)法知識(shí)為主轉(zhuǎn)變?yōu)橐钥疾閷W(xué)生的系統(tǒng)建模能力和算法設(shè)計(jì)能力為主。

系統(tǒng)建模能力的考查主要針對(duì)計(jì)算思維的抽象特征。例如,可以給出各種系統(tǒng)特征,考查學(xué)生使用數(shù)據(jù)類型進(jìn)行描述的能力。

算法設(shè)計(jì)能力的考查主要針對(duì)計(jì)算思維的自動(dòng)化特征。當(dāng)然,C語(yǔ)言程序設(shè)計(jì)課程中涉及的都是一些如迭代、枚舉和排序等簡(jiǎn)單算法??蓪⑦@些算法封裝成各種函數(shù)來(lái)進(jìn)行調(diào)用,以考查函數(shù)中順序語(yǔ)句的執(zhí)行以及函數(shù)間的伴隨參數(shù)傳遞的跳轉(zhuǎn)來(lái)理解自動(dòng)化過(guò)程。因此,必須以簡(jiǎn)單算

法設(shè)計(jì)和函數(shù)調(diào)用為重點(diǎn)考核內(nèi)容,突出對(duì)函數(shù)接口設(shè)計(jì)和算法流程設(shè)計(jì)的考核。

參考文獻(xiàn):

[1] Jeannette M. Wing. Computational Thinking[J]. Communications of the ACM, 2006, 49(3):33-35.

[2] 陳國(guó)良. 計(jì)算思維[J]. 中國(guó)計(jì)算機(jī)學(xué)會(huì)通訊,2012,8(1):31-34.

[3] 李廉. 計(jì)算思維――概念與挑戰(zhàn)[J]. 中國(guó)大學(xué)教學(xué),2012(1):7-12.

[4] 張耀文. 基于計(jì)算思維的程序設(shè)計(jì)課程案例教學(xué)法研究[J]. 重慶電子工程職業(yè)學(xué)院學(xué)報(bào),2012,21(3):149-150.

[5] 吳紹兵. 計(jì)算思維和程序設(shè)計(jì)能力的培養(yǎng)[J]. 計(jì)算機(jī)教育,2011(16):11-14.

第8篇:c程序設(shè)計(jì)范文

關(guān)鍵詞:結(jié)構(gòu)化程序設(shè)計(jì);順序結(jié)構(gòu);選擇結(jié)構(gòu);循環(huán)結(jié)構(gòu);算法

當(dāng)前,計(jì)算機(jī)技術(shù)飛速發(fā)展,程序設(shè)計(jì)技術(shù)已從結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)向面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù)過(guò)渡,對(duì)一個(gè)規(guī)模較大的應(yīng)用程序,總體框架是由面向?qū)ο蟪绦蛟O(shè)計(jì)構(gòu)搭而成,而在局部實(shí)現(xiàn)時(shí)仍需采用結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)。C語(yǔ)言是一種很好的結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言,因此,筆者論述了C中的的結(jié)構(gòu)化程序設(shè)計(jì)的方法。

結(jié)構(gòu)化程序設(shè)計(jì)(STRUCTURED PROGRAMING,簡(jiǎn)稱SP)的概念是由荷蘭學(xué)者E·W.DUKSTRA等人在20世紀(jì)60年代后期提出的,是以模塊化設(shè)計(jì)為中心,將原來(lái)較為復(fù)雜的問題化簡(jiǎn)為一系列簡(jiǎn)單模塊的設(shè)計(jì),也就是將—個(gè)大的計(jì)算任務(wù)劃分為一個(gè)個(gè)比較小的任務(wù),這些小任務(wù)均由函數(shù)來(lái)完成。而函數(shù)既可以是C的標(biāo)準(zhǔn)庫(kù)函數(shù)。也可以是自定義函數(shù)。在C中,一個(gè)具備一定規(guī)模的C程序往往是由多個(gè)函數(shù)組成,其中必有一個(gè)名為main的主函數(shù),由main來(lái)調(diào)用其他函數(shù),必要的話,其他函數(shù)還可以調(diào)用另外的函數(shù)。同一函數(shù)可以被一個(gè)或多個(gè)函數(shù)調(diào)用一次或多次。模塊的獨(dú)立性還為擴(kuò)充已有的系統(tǒng)、建立新系統(tǒng)帶來(lái)了不少的方便,因?yàn)槲覀兛梢猿浞掷矛F(xiàn)有的模塊作積木式的擴(kuò)展。

結(jié)構(gòu)化程序設(shè)計(jì)的思想是一個(gè)程序的任何邏輯問題,均可用順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)這3種基本結(jié)構(gòu)來(lái)描述。順序結(jié)構(gòu)的程序流程是按語(yǔ)句的書寫順序依次執(zhí)行;選擇結(jié)構(gòu)是對(duì)給定條件進(jìn)行判斷,根據(jù)判斷結(jié)果決定執(zhí)行兩分支中的一個(gè)分支或多分支中的一個(gè)分支;循環(huán)結(jié)構(gòu)是在給定條件成立的情況下,反復(fù)執(zhí)行某個(gè)程序段。實(shí)現(xiàn)這些程序流程的語(yǔ)句都是流程控制語(yǔ)句。流程控制語(yǔ)句在程序設(shè)計(jì)中起著重要的作用,通過(guò)3種基本控制結(jié)構(gòu)使結(jié)構(gòu)化程序具有唯一的人口和出口,沒有死循環(huán),而且程序的靜態(tài)形式與動(dòng)態(tài)執(zhí)行形式之間具有良好的對(duì)應(yīng)關(guān)系。在C語(yǔ)言中,有4種語(yǔ)句是順序執(zhí)行的:①空語(yǔ)句,光有一個(gè)分號(hào)“;”作為語(yǔ)句結(jié)束符,它表示什么也不做。②表達(dá)式語(yǔ)句,表達(dá)式后面加一個(gè)分號(hào),表達(dá)式語(yǔ)句主要有賦值語(yǔ)句、自加減運(yùn)算符構(gòu)成的語(yǔ)句和逗號(hào)表達(dá)式語(yǔ)句。③函數(shù)調(diào)用語(yǔ)句,它是由一個(gè)函數(shù)調(diào)用加上一個(gè)分號(hào)組成的。④復(fù)合語(yǔ)句,由“{”和“}”把一些變量說(shuō)明和語(yǔ)句組合放在一起,又稱為語(yǔ)句塊。選擇語(yǔ)句有if語(yǔ)句和switch語(yǔ)句。循環(huán)語(yǔ)句有for,while和do-while語(yǔ)句以及一些輔助流程轉(zhuǎn)向語(yǔ)句如continue,break,goto等。順序結(jié)構(gòu),選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)共同作為各種復(fù)雜程序的基本構(gòu)造單元,由這3種結(jié)構(gòu)經(jīng)過(guò)反復(fù)嵌套構(gòu)成的程序稱為結(jié)構(gòu)化程序,也就是說(shuō),結(jié)構(gòu)化程序是由上述3種基本結(jié)構(gòu)組成的。但如果在編程過(guò)程中無(wú)限制地使用轉(zhuǎn)移語(yǔ)句(goto),會(huì)使程序的控制流程強(qiáng)制性地向前或向后跳轉(zhuǎn)而導(dǎo)致程序的流程無(wú)序可循,結(jié)構(gòu)雜亂無(wú)章。結(jié)構(gòu)化構(gòu)造減少了程序的復(fù)雜性,提高了可靠性、可測(cè)試性和可維護(hù)性,使用少數(shù)的基本結(jié)構(gòu),就可使程序邏輯結(jié)構(gòu)清晰,易讀易懂,并且容易驗(yàn)證程序的正確性。對(duì)—個(gè)初學(xué)計(jì)算機(jī)語(yǔ)言的人來(lái)說(shuō)。最重要的就是要有正確的程序流程概念,不僅要懂得而且要靈活應(yīng)用。由此可見,用結(jié)構(gòu)化方法設(shè)計(jì)的結(jié)構(gòu)是清晰的,有利于編寫出結(jié)構(gòu)良好的程序。因此。結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則可以概括為自頂向下,逐步求精,模塊化,限制使用goto語(yǔ)句。將程序設(shè)計(jì)針對(duì)的問題進(jìn)行分解,直到分解到對(duì)應(yīng)于一個(gè)個(gè)功能更簡(jiǎn)單,又獨(dú)立的模塊,每個(gè)模塊再分解到上述3種基本程序結(jié)構(gòu)。

第9篇:c程序設(shè)計(jì)范文

關(guān)鍵詞:C語(yǔ)言;程序設(shè)計(jì);經(jīng)典教材;計(jì)算機(jī)教育

中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:B

1引言

只要人們提到學(xué)習(xí)C語(yǔ)言,都會(huì)不由自主地和譚浩強(qiáng)三個(gè)字聯(lián)系在一起,特別是20世紀(jì)80年代以后的學(xué)生,都是在譚老師的《BASIC程序設(shè)計(jì)》、《FORTRAN語(yǔ)言》、《C程序設(shè)計(jì)》的指引下走過(guò)來(lái)的。特別是20世紀(jì)的90年代中后期,全國(guó)非計(jì)算機(jī)專業(yè)學(xué)生的計(jì)算機(jī)應(yīng)用能力等級(jí)考試,將C語(yǔ)言納入到考試的范疇,C語(yǔ)言便進(jìn)入大學(xué)計(jì)算機(jī)公共基礎(chǔ)課的講堂,譚老師的《C程序設(shè)計(jì)》因?yàn)橄到y(tǒng)性強(qiáng)、通俗易懂、例題豐富,并且實(shí)用性強(qiáng),很適合初學(xué)者,瞬時(shí)風(fēng)靡各大高校,成為許多理工科專業(yè)學(xué)生書包中的必備書籍。多年的一線教學(xué)體會(huì),我始終推薦該書為使用教材或主要參考書。

2適用各類學(xué)習(xí)對(duì)象

筆者從20世紀(jì)90年代中期開始講授C語(yǔ)言,至今已有15年,授課對(duì)象有計(jì)算機(jī)專業(yè)和非計(jì)算機(jī)專業(yè)的學(xué)生,也有大專生和社會(huì)上成人教育的函授學(xué)員,使用的教材主要是譚老師的《C程序設(shè)計(jì)》,從第一版到第二版、第三版,同學(xué)們都覺得這本書好,從沒有學(xué)生對(duì)選用這本教材提出異議。事實(shí)上,國(guó)內(nèi)許多高校的非計(jì)算機(jī)專業(yè)用譚老師的書作為“C語(yǔ)言程序設(shè)計(jì)”課的教材,而且許多高校的計(jì)算機(jī)專業(yè)同樣也用譚教授的書作為“C語(yǔ)言程序設(shè)計(jì)”課的教材,自學(xué)C語(yǔ)言程序設(shè)計(jì)的讀者更是不約而同地選擇譚教授的書作為叩開C語(yǔ)言大門的入門書。

最初學(xué)習(xí)C語(yǔ)言的主要是計(jì)算機(jī)專業(yè)學(xué)生,而且大都是作為第二語(yǔ)言開設(shè)的,后來(lái)才逐漸演變成作為第一語(yǔ)言,而部分非計(jì)算機(jī)專業(yè)的學(xué)生也有這種歷程。當(dāng)C語(yǔ)言作為第一語(yǔ)言開設(shè)后,《C程序設(shè)計(jì)》的第二版便增加了“算法”,并安排在第二章(C語(yǔ)言概述之后),使學(xué)生首先掌握常用算法(如求一批數(shù)的累加和、累乘積,判斷某年是否為閏年,判斷一個(gè)大于等于3的正整數(shù)是否為素?cái)?shù)等算法)的編程思想,而后再講解具體的語(yǔ)法定義、規(guī)則,以及算法的具體實(shí)現(xiàn),將程序語(yǔ)言的講解與算法的分析有機(jī)地結(jié)合起來(lái),同時(shí)知識(shí)的講解有螺旋式上升的趨勢(shì),非常符合初學(xué)者的認(rèn)知規(guī)律,受到各種學(xué)習(xí)對(duì)象的歡迎。記得有一年上成教的課,當(dāng)時(shí)成教教材管理部門選用了其他教材并發(fā)給了學(xué)生,筆者在第一次上課時(shí)便將譚老師的《C程序設(shè)計(jì)》作為主要的參考書推薦給了學(xué)生。上了兩次課后,許多同學(xué)反映:“老師,我們這本教材沒有譚浩強(qiáng)那本講得清楚”,筆者后來(lái)向成教學(xué)院的有關(guān)人員提出下一屆更換教材的建議,以后使用的教材都是譚老師的《C程序設(shè)計(jì)》這本教材。

3內(nèi)容全面、結(jié)構(gòu)清晰

《C程序設(shè)計(jì)》一書涵蓋了程序設(shè)計(jì)基礎(chǔ)知識(shí)和C語(yǔ)言程序設(shè)計(jì)的全部?jī)?nèi)容,并介紹了大量常用算法。在C語(yǔ)言中,數(shù)據(jù)類型豐富,運(yùn)算符也比較多,程序設(shè)計(jì)自由度大,這些都給初學(xué)者帶來(lái)了較大的學(xué)習(xí)難度。本書從C語(yǔ)言的結(jié)構(gòu)開始,從最簡(jiǎn)單的輸出“This is a C program.”、“求兩數(shù)之和”、“求兩個(gè)數(shù)中最大者”實(shí)例出發(fā),將基本的程序結(jié)構(gòu)中應(yīng)至少有一個(gè)輸出、最簡(jiǎn)單的變量定義和使用、C程序是由函數(shù)構(gòu)成的知識(shí)點(diǎn)講解得非常清晰,只要懂點(diǎn)英文,就能讀懂程序。進(jìn)而介紹具體的數(shù)據(jù)類型、運(yùn)算符、表達(dá)式、基本的輸入輸出函數(shù),使初學(xué)者很快就能編寫出比較簡(jiǎn)單的程序,看到自己的學(xué)習(xí)效果,很有成就感。而后開始介紹稍復(fù)雜的程序結(jié)構(gòu)(選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu))和數(shù)據(jù)類型(數(shù)組),并結(jié)合圖例講解和實(shí)現(xiàn)常用的算法。在函數(shù)一章通過(guò)利用前面的講過(guò)的實(shí)例復(fù)習(xí)已學(xué)的知識(shí)點(diǎn),同時(shí)也降低了學(xué)習(xí)函數(shù)的難度。在讀者會(huì)編寫基本的C程序后,才開始介紹C語(yǔ)言的特色部分,如編譯預(yù)處理、指針、結(jié)構(gòu)體、共同體、位運(yùn)算文件等,將C語(yǔ)言程序設(shè)計(jì)的知識(shí)點(diǎn)全部展開,難度逐漸地增加,而沒有采取在講解函數(shù)之前先講解指針的做法。這種循序漸進(jìn)、螺旋式的教學(xué)內(nèi)容安排非常符合認(rèn)知規(guī)律。

4深入淺出、講解透徹

大學(xué)教材是供人們使用的,它既用于老師教,又供學(xué)生自學(xué),也可作為有關(guān)人員的參考用書。它不但要強(qiáng)調(diào)基礎(chǔ)知識(shí)和系統(tǒng)的完整性,而且也能使人通過(guò)自學(xué)就可能進(jìn)入一個(gè)新的發(fā)展領(lǐng)域。這就要求一本好的教材既要內(nèi)容完整,同時(shí)又必須能夠做到深入淺出,講解透徹?!禖程序設(shè)計(jì)》一書各個(gè)章節(jié)的編寫通過(guò)提出問題、分析問題、解決問題,然后再歸納總結(jié)的方法,將復(fù)雜難懂的抽象概念與實(shí)際應(yīng)用實(shí)例結(jié)合,與形象的比喻科學(xué)地結(jié)合,使其變得容易理解,并與計(jì)算機(jī)的基礎(chǔ)知識(shí)相結(jié)合。如在講解遞歸算法時(shí)先用求人的年齡問題來(lái)講解遞推和回歸的過(guò)程,而后才講解經(jīng)典的漢諾塔問題,同時(shí)給出了詳盡的數(shù)學(xué)公式推導(dǎo)過(guò)程,并配以圖例說(shuō)明。又如在介紹指針概念中“間接訪問”一詞時(shí),使用了生動(dòng)的比喻:“為安全起見,將A鑰匙放到另一抽屜B中鎖起來(lái),若果需要打開A抽屜,就需要先找出B鑰匙,打開B抽屜,取出A鑰匙,再打開A抽屜,取出A抽屜中之物,這就是‘間接訪問’?!边@使讀者不僅理解了“間接訪問”概念,也加深了對(duì)指針概念的理解。再如在介紹變量的存儲(chǔ)類型時(shí)、介紹指針時(shí)都對(duì)計(jì)算機(jī)的存儲(chǔ)管理作了清楚的論述。

該書的內(nèi)容重點(diǎn)突出,難點(diǎn)分散,對(duì)C語(yǔ)言中最基本和常用的部分進(jìn)行了詳細(xì)的分析和講解,凡是涉及的內(nèi)容,都講得非常透徹、詳盡。

5例題難易適度、習(xí)題豐富、教學(xué)資料齊全

多年的課堂教學(xué)過(guò)程中,總能體會(huì)到本書中例題和習(xí)題選擇的難度非常適宜,如講解循環(huán)結(jié)構(gòu)時(shí)選用計(jì)算“1+2+…+100”作為入門的例題,習(xí)題中便有計(jì)算“1!+2!+…+ 20!”之和,既有相似之處又有新舊知識(shí)(循環(huán)結(jié)構(gòu)的使用和前面介紹的數(shù)據(jù)類型及其表示范圍)的結(jié)合。另外本書通過(guò)豐富的習(xí)題來(lái)豐富常用的實(shí)用算法。如在循環(huán)一章的習(xí)題中將迭代法和二分法引入,通過(guò)求方程的根來(lái)理解其算法含義和實(shí)現(xiàn)過(guò)程,在數(shù)組一章的習(xí)題中引入了“篩選法”、“選擇排序法”、“楊輝三角形”等。

計(jì)算機(jī)程序設(shè)計(jì)是一門實(shí)踐性很強(qiáng)的課程,學(xué)習(xí)時(shí)不僅僅需要選擇合適的例題,還需要編寫足夠代碼量的程序,僅靠閱讀教教材或聽課是不可能掌握編程技能的??傆腥吮г拐f(shuō):“課堂上聽得很明白,就是課下編程困難”,而學(xué)習(xí)程序設(shè)計(jì)最重要的環(huán)節(jié)就是實(shí)踐?!禖程序設(shè)計(jì)》一書中每章都附有大量的各種類型習(xí)題,并且有配套的習(xí)題解答,這不僅有利于學(xué)生開闊視野,豐富知識(shí),而且有益于復(fù)習(xí)、鞏固、加深理解和掌握課上所學(xué)的知識(shí),提高他們的學(xué)習(xí)興趣,培養(yǎng)自學(xué)能力,也便于教師設(shè)計(jì)實(shí)驗(yàn)課的教學(xué)內(nèi)容。近年來(lái)譚老師講授《C程序設(shè)計(jì)》的教學(xué)錄像也已成為很多教師講課前的觀摩學(xué)習(xí)課程。

6強(qiáng)調(diào)應(yīng)用意識(shí)和應(yīng)用技能

教材要起一種引導(dǎo)作用,要強(qiáng)調(diào)應(yīng)用意識(shí)和應(yīng)用技巧,應(yīng)特別注意學(xué)科間的聯(lián)系?!禖程序設(shè)計(jì)》一書將實(shí)際生活中數(shù)學(xué)問題的解決算法、工程應(yīng)用的常用數(shù)值分析方法均作為本書的實(shí)例和習(xí)題,這不僅有助于培養(yǎng)學(xué)生的邏輯思維,而且也有助于學(xué)生分析問題和解決問題的應(yīng)用能力。正因如此,初學(xué)程序設(shè)計(jì)的學(xué)生可以達(dá)到熟練運(yùn)用C語(yǔ)言進(jìn)行小規(guī)模應(yīng)用開發(fā)的能力,許多非計(jì)算機(jī)專業(yè)的人士通過(guò)自學(xué)這本教材,打下了程序設(shè)計(jì)的基礎(chǔ),后來(lái)便使用C語(yǔ)言開發(fā)出本專業(yè)的應(yīng)用軟件。

7結(jié)論

大學(xué)教材非常重要。譚老師為人們寫下了諸如《BASIC語(yǔ)言》、《FORTRAN語(yǔ)言》、《C程序設(shè)計(jì)》等深受廣大教師和學(xué)生歡迎的經(jīng)典之作。譚老師的《C程序設(shè)計(jì)》一書對(duì)我國(guó)普及C語(yǔ)言程序設(shè)計(jì)起了很大的推動(dòng)作用,他為計(jì)算機(jī)教育的普及不懈地努力,取得了巨大的成就,功不可沒,真正做到了“桃李滿天下”。

參考文獻(xiàn):