摘要:針對(duì)C語言課程中概念繁雜,規(guī)則多樣等教學(xué)難點(diǎn),提出了多角度模塊化教學(xué)方法,從概念、算法、實(shí)驗(yàn)三方面進(jìn)行模塊化教學(xué)探索。通過班級(jí)試點(diǎn)表明了該教學(xué)方法的有效性。
關(guān)鍵詞:程序設(shè)計(jì);C語言;多角度;模塊化;教學(xué)方法
中圖分類號(hào):G642.0?搖 文獻(xiàn)標(biāo)志碼:B 文章編號(hào):1674-9324(2013)19-0204-02
1 引言
程序設(shè)計(jì)課程是工科大學(xué)生的計(jì)算機(jī)基礎(chǔ)教育必修課,而C語言作為一種常見的高級(jí)語言被廣泛采用。另外,C語言程序設(shè)計(jì)課程也是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的學(xué)科基礎(chǔ)課程,是數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)等課程的先修課程。通過該課程的學(xué)習(xí),可以使學(xué)生了解高級(jí)語言程序設(shè)計(jì)的基本思想,掌握相應(yīng)的程序設(shè)計(jì)語法與一定的算法,為后續(xù)課程打下良好基礎(chǔ)[1]。
然而,C語言涉及的概念較多,其語法規(guī)則廣且較分散,各知識(shí)點(diǎn)間有穿插,常常使初學(xué)者很難理清頭緒。傳統(tǒng)教學(xué)方法按照相關(guān)知識(shí)點(diǎn)順序介紹,常常使學(xué)生在學(xué)習(xí)的中前期“只見樹木不見森林”,陷入到語法規(guī)則中。這樣,部分學(xué)生在趣味性較多的算法介紹到來之前容易喪失信心甚至放棄學(xué)習(xí)。
針對(duì)這種情況,本文提出了多角度模塊化教學(xué)方式,通過對(duì)教學(xué)內(nèi)容進(jìn)行整體化歸納提煉,使得學(xué)生在教學(xué)的早期階段能夠?qū)φn程有感性的整體認(rèn)識(shí)。另外,通過不同視角的知識(shí)點(diǎn)模塊化,讓學(xué)生從多個(gè)角度理解相關(guān)概念及它們的區(qū)別與聯(lián)系,從而達(dá)到更好地掌握課程知識(shí)的目的。
本文剩余部分的結(jié)構(gòu)為:第2節(jié)詳細(xì)介紹了多角度模塊化教學(xué)方法的實(shí)施細(xì)節(jié),第3節(jié)介紹該教學(xué)改革的試點(diǎn)情況,第4節(jié)對(duì)全文進(jìn)行了總結(jié)。
2 多角度模塊化教學(xué)方法
C語言課程知識(shí)點(diǎn)較多,包括:數(shù)據(jù)類型,運(yùn)算符與表達(dá)式,順序程序,循環(huán)程序,數(shù)組,函數(shù),編譯預(yù)處理,指針,結(jié)構(gòu)體與共用體,文件,等。這些知識(shí)點(diǎn)中又包含相當(dāng)多的語法規(guī)則,顯得零零碎碎,初學(xué)的學(xué)生很難把握[2]。本章從三個(gè)不同的視角介紹模塊化教學(xué)方式以解決這些問題。
2.1概念模塊化
通過將眾多的概念知識(shí)歸納提煉并模塊化授課,可以有利于學(xué)生從總體上把握概念,也便于進(jìn)一步自學(xué)更多的知識(shí)點(diǎn)。以數(shù)據(jù)類型為例,授課時(shí)并不是逐一講解,而是首先以模塊化方式展現(xiàn)這一部分的主要知識(shí)點(diǎn),圖1給出了這部分概念模塊化的一個(gè)示意圖。
授課時(shí)根據(jù)模塊圖講解概念間的區(qū)別和聯(lián)系,鼓勵(lì)學(xué)生克服對(duì)這一部分的學(xué)習(xí)感到枯燥的情緒,然后再逐步講解這些概念內(nèi)容,講解中注重相關(guān)比較,使得學(xué)生進(jìn)一步加深印象。
由于從不同角度歸納總結(jié)存在不同的模塊化,因此同時(shí)展現(xiàn)多個(gè)角度的知識(shí)概念模塊對(duì)深刻理解問題是非常重要的,以C語言中的作用域與存儲(chǔ)類別為例,通過時(shí)間和空間的不同角度可以加深學(xué)生對(duì)這部分重要概念的掌握。圖2給出了從作用域角度和存在時(shí)間角度歸納的變量存儲(chǔ)類別。這些模塊化歸納對(duì)學(xué)生深入理解和掌握函數(shù)及軟件復(fù)用的相關(guān)概念和思想是非常必要的。
2.2常見算法模塊化
學(xué)生在課程教學(xué)的中后期開始逐步理解和閱讀相關(guān)程序,但自己寫程序卻非常困難,常常對(duì)自己理解的簡(jiǎn)單的程序也難以獨(dú)立寫出,這是因?yàn)槿鄙俪R娝惴ǖ哪J椒e累。如同英語作文寫作需要積累一定的句式一樣,程序設(shè)計(jì)初學(xué)者也需要積累一定的常見算法模塊。可以從多個(gè)角度積累相關(guān)算法模塊,如從實(shí)際問題的角度、從程序套路的角度歸納提煉并進(jìn)行模塊化。
以實(shí)際問題的角度為例,比較重要的算法有:求素?cái)?shù)、求公倍數(shù)公約數(shù)等等,這些算法的重要性其實(shí)不在應(yīng)用本身,而是一種編程思想的鍛煉。對(duì)這些問題模塊化,有助于訓(xùn)練學(xué)生快速獨(dú)立編寫程序,樹立學(xué)習(xí)信心。
從程序套路的角度,對(duì)初學(xué)者而言,熟練掌握累加、階乘、求最值等的模塊化套路是非常重要的。以累加為例:諸如:□-□+…±□ 此類的程序均可模塊化為如下代碼:
sum=0;sign=1;for(i=0;i 其中□為泛化的累加項(xiàng),sum記錄累加和,sign記錄正負(fù)號(hào)變化,i是循環(huán)變量,N是循環(huán)次數(shù)。通過將這些套路模塊化也有助于學(xué)生理解計(jì)算機(jī)與人各自的優(yōu)缺點(diǎn),理解自然語言轉(zhuǎn)化為高級(jí)語言直至機(jī)器語言的一般過程,激發(fā)學(xué)生程序設(shè)計(jì)的興趣和靈感。 2.3 實(shí)驗(yàn)?zāi)K化 實(shí)驗(yàn)對(duì)程序語言的學(xué)習(xí)至關(guān)重要,只有通過實(shí)驗(yàn)反復(fù)訓(xùn)練才可能真正掌握紛繁復(fù)雜的C語言語法規(guī)則,領(lǐng)悟程序設(shè)計(jì)的思想[3]。如何利用好有限的實(shí)驗(yàn)時(shí)間是非常值得探索的問題。將實(shí)驗(yàn)按內(nèi)容或方式模塊化可以方便程序驗(yàn)證,提高學(xué)習(xí)效率。 通常,實(shí)驗(yàn)根據(jù)課程進(jìn)度分階段完成不同的內(nèi)容,前后聯(lián)系并不大,如果能合理規(guī)劃,將內(nèi)容模塊化,隨著課程的推進(jìn),后面的實(shí)驗(yàn)內(nèi)容利用前面的模塊,可以極大地提高實(shí)驗(yàn)效率并培養(yǎng)學(xué)生軟件復(fù)用的思想。 對(duì)初學(xué)程序設(shè)計(jì)的同學(xué)而言,對(duì)于布置的實(shí)驗(yàn),常常對(duì)結(jié)果比較重視,而忽略了調(diào)試能力的鍛煉。鑒于這種狀況,對(duì)實(shí)驗(yàn)方式開展專項(xiàng)練習(xí),對(duì)實(shí)驗(yàn)的代碼編寫、運(yùn)行、調(diào)試、測(cè)試、維護(hù)等階段開展專項(xiàng)模塊化訓(xùn)練,可以鍛煉學(xué)生對(duì)程序的排錯(cuò)能力,提高所編寫代碼的質(zhì)量,并逐步體會(huì)到軟件工程的相關(guān)思想。 3 班級(jí)試點(diǎn)結(jié)果 教學(xué)方法改革在多個(gè)計(jì)算機(jī)專業(yè)和非計(jì)算機(jī)專業(yè)班級(jí)均進(jìn)行試點(diǎn),所試點(diǎn)的計(jì)算機(jī)專業(yè)班級(jí)有多名同學(xué)參加程序設(shè)計(jì)競(jìng)賽獲獎(jiǎng);所試點(diǎn)的非計(jì)算機(jī)專業(yè)班級(jí)在學(xué)校組織的同類型班級(jí)統(tǒng)考中多次名列前茅,在40多個(gè)同類型班級(jí)中一次排名第七,一次排名第四,一次排名第一,取得了較好的效果。 4 總結(jié) C語言是一門重要的計(jì)算機(jī)基礎(chǔ)教育課程,其教學(xué)方法的改革和創(chuàng)新是一項(xiàng)系統(tǒng)工程,涉及到教材選用、理論知識(shí)點(diǎn)的講授以及實(shí)驗(yàn)的設(shè)計(jì)和創(chuàng)新。通過多視角多模塊化教學(xué)方法的探索,可以有效地克服學(xué)生在學(xué)習(xí)中容易陷入繁雜知識(shí)點(diǎn)從而缺少整體觀念的問題,提高學(xué)生的學(xué)習(xí)興趣。總之,針對(duì)C語言程序特點(diǎn),探索相應(yīng)的教學(xué)方法創(chuàng)新有助于提高教學(xué)質(zhì)量,為培養(yǎng)應(yīng)用型、創(chuàng)新型、復(fù)合型人才做出貢獻(xiàn)。 參考文獻(xiàn): [1]何欽銘,顏暉,蘇小紅,等.“程序設(shè)計(jì)基礎(chǔ)”課程教學(xué)實(shí)施方案[J].中國(guó)大學(xué)教學(xué),2010,(5):62-65 [2]王國(guó)偉.C語言程序設(shè)計(jì)課程教學(xué)探析[J].教育教學(xué)論壇,2012,(19):79-80 [3]陳婷.C語言程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)改革探究[J].實(shí)驗(yàn)技術(shù)與管理,2010,(10):182-184. 基金項(xiàng)目:本文受中國(guó)計(jì)量學(xué)院教改項(xiàng)目資助(編號(hào):HEX2012010)