談引入軟件工程思想的C語(yǔ)言案例教學(xué)法
[摘 要]針對(duì)目前C語(yǔ)言課程教學(xué)中廣泛存在的學(xué)生綜合應(yīng)用能力不高的問題,文章提出在C語(yǔ)言案例教學(xué)中引入軟件工程思想,以幫助學(xué)生培養(yǎng)良好的編程習(xí)慣,提高軟件研發(fā)能力,并結(jié)合學(xué)生信息管理系統(tǒng)進(jìn)行了教學(xué)示范。
[關(guān)鍵詞]C語(yǔ)言 案例教學(xué)法 軟件工程 軟件分析
C語(yǔ)言是目前使用最廣泛的高級(jí)程序設(shè)計(jì)語(yǔ)言之一。C語(yǔ)言表達(dá)能力強(qiáng)、使用方便靈活,目標(biāo)程序執(zhí)行效率高、可移植性好,既可用于編寫系統(tǒng)軟件,也可用于編寫應(yīng)用軟件。因此很多高校把C語(yǔ)言作為計(jì)算機(jī)程序設(shè)計(jì)的入門語(yǔ)言。但是由于C語(yǔ)言開課時(shí)問早(常常在第一學(xué)期或第二學(xué)期),此時(shí)學(xué)生多數(shù)只是使用過諸如辦公自動(dòng)化等軟件,對(duì)程序設(shè)計(jì)語(yǔ)言接觸不多,對(duì)軟件開發(fā)了解甚少,在學(xué)習(xí)C語(yǔ)言時(shí)困難重重,尤其是對(duì)于循環(huán)、數(shù)組、函數(shù)、指針和結(jié)構(gòu)體等知識(shí)點(diǎn)較難理解。為此我們進(jìn)行了一些探索嘗試,也取得了些許經(jīng)驗(yàn)。
1.C語(yǔ)言課程教學(xué)現(xiàn)狀
目前,C語(yǔ)言課程的學(xué)時(shí)主要是60~8O學(xué)時(shí),由于學(xué)時(shí)有限,C語(yǔ)言課程側(cè)重語(yǔ)法的教學(xué),教材中的例題是針對(duì)個(gè)別知識(shí)點(diǎn)的,主要以數(shù)學(xué)問題為主,源代碼較短,致使學(xué)生在學(xué)習(xí)C語(yǔ)言的過程中很難遇到超過100行的源程序。而與C語(yǔ)言相關(guān)的后續(xù)課程,如數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)和編譯原理等,其算法的難度遠(yuǎn)遠(yuǎn)超過C語(yǔ)言教學(xué)中例題的難度,跨度過大,學(xué)生較難接受。
針對(duì)上述問題,我們認(rèn)識(shí)到,為了加深學(xué)生對(duì)C語(yǔ)法的理解,同時(shí)有利于后續(xù)課程銜接,應(yīng)該在C語(yǔ)言教學(xué)中增加學(xué)生的代碼量,而系統(tǒng)地使用案例教學(xué)法就可以達(dá)到此目的。本文接下來就討論如何系統(tǒng)的使用案例教學(xué)法,同時(shí)將軟件工程思想引入,從學(xué)生一開始接觸編程語(yǔ)言就培養(yǎng)其良好的軟件開發(fā)能力。
2.引入軟件工程思想的C語(yǔ)言案例教學(xué)法
2.1案例教學(xué)法
案例教學(xué)法于19世紀(jì)末出現(xiàn)在美國(guó),2O世紀(jì)3O年代由美國(guó)哈佛商學(xué)院倡導(dǎo),廣泛應(yīng)用于商業(yè)教育中,當(dāng)時(shí)是采取一種很獨(dú)特的案例形式的教學(xué),這些案例都是來自于商業(yè)管理的真實(shí)情境或事件,透過此種方式,有助于培養(yǎng)和發(fā)展學(xué)生主動(dòng)參與課堂討論,實(shí)施之后,頗具績(jī)效。
20世紀(jì)7O年代后,迅速在普通教育領(lǐng)域受到重視并開始普及。目前已有很多教師將案例教學(xué)法應(yīng)用于C語(yǔ)言程序設(shè)計(jì)課程的教學(xué),常采用兩種形式:一種是在每章教學(xué)結(jié)束后引入案例,另一種情況是在整門課程教學(xué)結(jié)束后引入案例。
第一種在每章教學(xué)結(jié)束后引入案例,這實(shí)際上并不是真正意義上的案例,只是在各章節(jié)語(yǔ)法教學(xué)環(huán)節(jié)針對(duì)相應(yīng)知識(shí)點(diǎn)所設(shè)計(jì)的例題而已,通常以簡(jiǎn)單算法為主,其目的是幫助學(xué)生對(duì)C語(yǔ)言語(yǔ)法的掌握。此時(shí)如果再結(jié)合設(shè)陷法,對(duì)該語(yǔ)法可能存在的問題,有針對(duì)地設(shè)計(jì)一些小錯(cuò)誤,讓學(xué)生去改錯(cuò)、調(diào)試。這樣的練習(xí),勢(shì)必會(huì)加深學(xué)生對(duì)C語(yǔ)法的理解,同時(shí)學(xué)生調(diào)試程序的能力也在不斷地提高,對(duì)C語(yǔ)言的學(xué)習(xí)興趣也在點(diǎn)滴中增強(qiáng)。但是這樣的實(shí)例對(duì)于C語(yǔ)言的綜合應(yīng)用能力的培養(yǎng)是遠(yuǎn)遠(yuǎn)不夠的,而且還不利于銜接后續(xù)課程,如:數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)和編譯原理等專業(yè)課程的學(xué)習(xí)是對(duì)C語(yǔ)言各知識(shí)點(diǎn)的綜合應(yīng)用,要求學(xué)生不但要熟練掌握C語(yǔ)言語(yǔ)法,同時(shí)還要具備一定的編程能力,光憑各章節(jié)的幾個(gè)例題是無法達(dá)到的。
第二種在整門課程教學(xué)結(jié)束后引入案例,確實(shí)可以讓學(xué)生體會(huì)到軟件開發(fā)的過程和樂趣,同時(shí)也是對(duì)C語(yǔ)言各語(yǔ)法的綜合應(yīng)用,這才是本文要討論的案例,它的實(shí)現(xiàn)具有一定的應(yīng)用價(jià)值,代碼量達(dá)到一定規(guī)模,有利于培養(yǎng)學(xué)生軟件開發(fā)能力。但是結(jié)合以往教學(xué)經(jīng)驗(yàn)發(fā)現(xiàn),這樣引入案例并沒有達(dá)到所預(yù)期的效果,由于之前知識(shí)點(diǎn)的遺忘,很多學(xué)生在課程結(jié)束面對(duì)案例時(shí)還是無從下手。我們認(rèn)為應(yīng)該系統(tǒng)地使用案例,即選取一個(gè)案例使其貫穿C語(yǔ)言教學(xué)始終,在每一階段的教學(xué)中都有一個(gè)相對(duì)比較完整的程序呈現(xiàn)在學(xué)生面前,前一階段成果是下一階段工作的基礎(chǔ),下一階段工作是前一階段工作的改進(jìn)或完善。這樣已學(xué)知識(shí)點(diǎn)會(huì)被反復(fù)使用,從而既鞏固對(duì)已學(xué)知識(shí)點(diǎn)的掌握,又是自身軟件開發(fā)能力的不斷提高。
2.2軟件工程思想
在20世紀(jì)60年代為解決“軟件危機(jī)”問題軟件工程課程迅速發(fā)展起來,它是一門建立在系統(tǒng)化、規(guī)范化、數(shù)量化等工程原則和方法上的,關(guān)于軟件開發(fā)各階段的定義、任務(wù)和作用的工程學(xué)科。它包括兩方面內(nèi)容:軟件開發(fā)技術(shù)和軟件項(xiàng)且管理。軟件開發(fā)技術(shù)包括軟件開發(fā)方法學(xué)、軟件工具和軟件工程環(huán)境;軟件項(xiàng)目管理則包括軟件度量、項(xiàng)目估算、進(jìn)度控制、人員組織、配置管理和項(xiàng)目計(jì)劃等。
經(jīng)典的軟件工程思想將軟件開發(fā)分為3個(gè)階段:軟件定義、軟件開發(fā)和軟件維護(hù)。軟件定義可進(jìn)一步劃分為問題定義、可行性分析和需求分析。在這一階段,通過對(duì)應(yīng)用問題及其環(huán)境的理解與分析,建立系統(tǒng)模型,將用戶的需求精確化、完全化。軟件開發(fā)階段可進(jìn)而劃分為:總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試?傮w設(shè)計(jì)階段的主要任務(wù)是如何得到一個(gè)能夠?qū)崿F(xiàn)用戶需求的理想的系統(tǒng)結(jié)構(gòu),詳細(xì)設(shè)計(jì)的任務(wù)是進(jìn)行系統(tǒng)所需要的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)或者數(shù)據(jù)庫(kù)的物理設(shè)計(jì)以及模塊邏輯開發(fā)。編碼即軟件系統(tǒng)的實(shí)現(xiàn)階段,在現(xiàn)代的軟件工程中,編碼階段所占的比重正在逐漸地縮小。軟件測(cè)試是軟件工程過程的一個(gè)重要階段,其主要任務(wù)是對(duì)軟件分析、設(shè)計(jì)和編碼各階段的產(chǎn)品進(jìn)行檢查,保證軟件開發(fā)產(chǎn)品的正確性、完全性和一致性,檢測(cè)并修正軟件中出現(xiàn)的錯(cuò)誤。軟件維護(hù)是在軟件產(chǎn)品交付給用戶之后進(jìn)行的修改工作,維護(hù)工作的好壞直接影響到用戶的滿意程度,關(guān)系到開發(fā)者的信譽(yù)。
2.3引入軟件工程思想的C語(yǔ)言案例教學(xué)法
軟件工程思想在軟件開發(fā)過程中的重要性不言而喻,但是在高校計(jì)算機(jī)專業(yè)課程設(shè)置中軟件工程課程可能在第6~7學(xué)期開設(shè),此時(shí)學(xué)生對(duì)于軟件開發(fā)已有所體驗(yàn),也已形成一些軟件開發(fā)的想法和習(xí)慣,這些想法和習(xí)慣也許并不利用軟件開發(fā),光憑一門課程的學(xué)習(xí)想要改變可能太晚了。因此我們認(rèn)為軟件工程思想應(yīng)該是貫穿計(jì)算機(jī)相關(guān)課程教學(xué)的,從學(xué)生接觸編程語(yǔ)言開始,教師就應(yīng)該不斷的引導(dǎo)學(xué)生,讓其在不斷接觸過程中潛移默化,從而具備優(yōu)秀的軟件開發(fā)能力和素質(zhì)。
本文將軟件工程思想引人C語(yǔ)言的案例教學(xué)法,在進(jìn)行案例教學(xué)的同時(shí)結(jié)合軟件工程思想以幫助學(xué)生更好地建立軟件開發(fā)的思想,也容易與后續(xù)課程銜接。這里涉及兩個(gè)問題:1)案例的選取;2)案例的引入和教學(xué)。
那么案例如何來選取呢?我們建議要符合以下幾個(gè)條件:1)案例背景不能太復(fù)雜,應(yīng)該是學(xué)生容易理解的,2)案例規(guī)模適中,要能全面表現(xiàn)C語(yǔ)言各要素,但是系統(tǒng)不能過于龐大,應(yīng)該適合教學(xué)。管理系統(tǒng)是不錯(cuò)的選擇,如學(xué)生信息管理、圖書管理等,這里我們選擇的案例是學(xué)生信息管理系統(tǒng)。
有關(guān)案例的引入和教學(xué),我們認(rèn)為案例可以在講授C語(yǔ)言概述之后引入,為了培養(yǎng)學(xué)生的學(xué)習(xí)興趣,提高其參與感,在引入案例之后,系統(tǒng)功能的確定應(yīng)該是教師與學(xué)生共同完成的。接下來跟隨教學(xué)的進(jìn)程,確定所需變量及變量類型,實(shí)現(xiàn)系統(tǒng)功能。該系統(tǒng)的實(shí)現(xiàn)貫穿C語(yǔ)言教學(xué)的始終,而且要求在不同教學(xué)階段,該系統(tǒng)都是可以運(yùn)行的,而不是把所有代碼留到課程的最后。同時(shí)建議在每一階段完成一定的文檔說明,這是很多學(xué)生甚至教師都不給予重視的。下面通過一個(gè)教學(xué)示范來說明結(jié)合軟件工程思想的C語(yǔ)言案例教學(xué)法。
3.教學(xué)示范
本文以學(xué)生信息管理系統(tǒng)為例介紹前述案例教學(xué)法在C語(yǔ)言教學(xué)中的應(yīng)用。學(xué)生信息管理系統(tǒng),要求實(shí)現(xiàn)如下功能:學(xué)生信息的輸入輸出、插入、刪除、查詢、成績(jī)的排序和統(tǒng)計(jì)等。C語(yǔ)言的教學(xué)通常按如下內(nèi)容及順序進(jìn)行:C語(yǔ)言概述一數(shù)據(jù)類型、運(yùn)算符與表達(dá)式→順序程序設(shè)計(jì)→選擇結(jié)構(gòu)程序設(shè)計(jì) →循環(huán)控制→數(shù)組→函數(shù)→預(yù)處理命令→指針→結(jié)構(gòu)體與共用體→文件。
學(xué)生信息管理系統(tǒng)實(shí)現(xiàn)的各階段任務(wù)與C語(yǔ)言教學(xué)內(nèi)容及軟件工程思想階段的對(duì)應(yīng)關(guān)系。其中C語(yǔ)言概述和數(shù)據(jù)類型、運(yùn)算符與表達(dá)式部分的教學(xué)后,很難完成具有實(shí)質(zhì)性的編程工作,作為軟件定義、分析階段,先確定功能,由于本系統(tǒng)與學(xué)生密切相關(guān),功能最好教師不要指定,而是與學(xué)生一起討論得出,接著分析各數(shù)據(jù)含義確定變量類型。從順序程序設(shè)計(jì)到文件的教學(xué)作為軟件開發(fā)階段,順序程序沒計(jì)部分的教學(xué),打印完成一個(gè)菜單;選擇結(jié)構(gòu)程序設(shè)計(jì)部分的教學(xué),實(shí)現(xiàn)上述菜單的功能選擇;循環(huán)結(jié)構(gòu)的教學(xué)則實(shí)現(xiàn)菜單的循環(huán)選擇;數(shù)組部分實(shí)現(xiàn)大多數(shù)功能,此時(shí)具備一定代碼規(guī)模,可以適時(shí)引出模塊化思想;接下來函數(shù)部分將按功能設(shè)計(jì)函數(shù),至此一個(gè)相對(duì)比較完整的學(xué)生信息管理系統(tǒng)應(yīng)該已完成。后續(xù)部分教學(xué)歸屬于維護(hù)階段,前述系統(tǒng)代碼量較大,可以在預(yù)處理命令部分將程序文件分出多個(gè)文件,指針部分可以擴(kuò)充其他功能或重寫函數(shù)部分得到的系統(tǒng)并對(duì)比,結(jié)構(gòu)體與共用體部分的教學(xué)將學(xué)生信息改為結(jié)構(gòu)體類型后重新實(shí)現(xiàn)前述系統(tǒng),最后文件部分將學(xué)生信息存人文件。
4.結(jié)束語(yǔ)
本文對(duì)C語(yǔ)言程序設(shè)計(jì)的教學(xué)方法進(jìn)行探討,將軟件工程思想結(jié)合案例教學(xué)法引入C語(yǔ)言的教學(xué)中,從學(xué)生接觸編程語(yǔ)言開始就培養(yǎng)軟件工程思想,有助于學(xué)生從整體上體會(huì)軟件開發(fā)的全過程。
【談引入軟件工程思想的C語(yǔ)言案例教學(xué)法】相關(guān)文章:
談案例教學(xué)法在中職《市場(chǎng)營(yíng)銷》教學(xué)中的應(yīng)用11-30
談項(xiàng)目教學(xué)法在高職英語(yǔ)教學(xué)中的實(shí)施案例12-02
談初中政治教學(xué)生活化的案例教學(xué)法11-17
初中思想品德課運(yùn)用案例教學(xué)法淺析論文11-18
任務(wù)驅(qū)動(dòng)型案例教學(xué)在“C語(yǔ)言”課程教學(xué)中的實(shí)施11-27
談案例教學(xué)法在中職專業(yè)課教學(xué)中應(yīng)注意的問題03-27
案例教學(xué)法在地理教學(xué)中的實(shí)踐12-04
案例教學(xué)法在法學(xué)教學(xué)中的應(yīng)用12-03
- 相關(guān)推薦