国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

項(xiàng)目驅(qū)動的分組教學(xué)法在C語言課程設(shè)計(jì)中的實(shí)踐

2013-04-29 09:00:58樓軼超
計(jì)算機(jī)時(shí)代 2013年8期
關(guān)鍵詞:分組教學(xué)項(xiàng)目驅(qū)動協(xié)作

樓軼超

摘 要: 針對C語言實(shí)踐教學(xué)中存在的問題,提出在C語言課程設(shè)計(jì)的教學(xué)中采用項(xiàng)目驅(qū)動的分組教學(xué)模式。融合軟件工程思想,從項(xiàng)目設(shè)計(jì)、分組劃分、模塊化思想應(yīng)用、編程思想訓(xùn)練、測試、考核方式等多個方面改革實(shí)踐教學(xué)環(huán)節(jié),因材施教,使得學(xué)生在解決實(shí)際問題的過程中,通過分工協(xié)作,提高自主學(xué)習(xí)能力,培養(yǎng)起團(tuán)隊(duì)合作精神,從而提高教學(xué)效果和教育質(zhì)量。

關(guān)鍵詞: C語言課程設(shè)計(jì); 項(xiàng)目驅(qū)動; 分組教學(xué); 模塊化思想; 協(xié)作

中圖分類號:G642 文獻(xiàn)標(biāo)志碼:A 文章編號:1006-8228(2013)08-65-03

0 引言

當(dāng)今社會,隨著信息技術(shù)的高速發(fā)展,各種程序設(shè)計(jì)語言蓬勃發(fā)展,如C、C++、JAVA、C#等。在這些語言中,C語言是各高等院校的計(jì)算機(jī)及相關(guān)專業(yè)的一門核心基礎(chǔ)課程,它的學(xué)習(xí)效果會極大程度影響學(xué)生后續(xù)相關(guān)課程,如數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、算法分析以及其他高級語言的學(xué)習(xí)。

作為一種實(shí)踐性很強(qiáng)的程序設(shè)計(jì)語言,C語言課程的教學(xué)一般采用理論教學(xué)結(jié)合上機(jī)實(shí)踐的模式,理論教學(xué)以講授語法和基本算法為主,上機(jī)實(shí)踐則主要練習(xí)簡單程序的編寫,通常以驗(yàn)證性實(shí)驗(yàn)為主,以掌握、鞏固基礎(chǔ)的語法為目的。從教學(xué)效果來看,學(xué)生雖然掌握了不少語法知識,但在面對實(shí)際問題時(shí),往往不能靈活應(yīng)用。為了進(jìn)一步拓展學(xué)生的實(shí)踐編程能力,我們學(xué)院繼兩個學(xué)期的C語言教學(xué)后開設(shè)了“C語言課程設(shè)計(jì)”課程,該課程以設(shè)計(jì)性和綜合性實(shí)驗(yàn)為主,重點(diǎn)培養(yǎng)和鍛煉學(xué)生獨(dú)立分析問題,解決實(shí)際問題能力。根據(jù)這一教學(xué)目標(biāo),我們結(jié)合日常教學(xué),針對實(shí)踐教學(xué)中存在的不足,開展項(xiàng)目驅(qū)動的分組教學(xué)方法,使學(xué)生形成自主和協(xié)作型的學(xué)習(xí)模式。

1 教學(xué)現(xiàn)狀

C語言是一種面向過程的結(jié)構(gòu)化程序設(shè)計(jì)語言,具有數(shù)據(jù)類型較多、表達(dá)式豐富、語法結(jié)構(gòu)復(fù)雜、語法規(guī)則繁多等特點(diǎn),其授課對象往往又是第一次接觸程序設(shè)計(jì)語言的低年級學(xué)生,這些都給學(xué)生學(xué)習(xí)和教師教學(xué)帶來了難度。通過對學(xué)生進(jìn)行教學(xué)效果調(diào)查,發(fā)現(xiàn)在“理論+實(shí)驗(yàn)”的教學(xué)模式中,由于課時(shí)限制等各種因素,實(shí)際教學(xué)常存在著如下問題。

⑴ 實(shí)驗(yàn)訓(xùn)練以知識點(diǎn)訓(xùn)練為主,與實(shí)際應(yīng)用存在脫節(jié)。

在理論課后的上機(jī)練習(xí),通常是針對特定語法設(shè)計(jì),形式上采用練習(xí)書上的例子、驗(yàn)證某個語法或者實(shí)現(xiàn)一些簡單的相關(guān)算法,驗(yàn)證性實(shí)驗(yàn)占了多數(shù)。這種訓(xùn)練模式雖然能夠加深學(xué)生對各種語法細(xì)節(jié)的認(rèn)識,但同時(shí)導(dǎo)致的問題是,學(xué)生容易孤立地去看待各章節(jié)的語法,割裂了各知識之間的聯(lián)系,在編程時(shí)以模仿改寫書上的程序?yàn)橹?,欠缺工程型知識,處于被動灌輸?shù)膶W(xué)習(xí)狀態(tài),常常會覺得語法知識點(diǎn)繁瑣、內(nèi)容枯燥,很難調(diào)動積極性,當(dāng)面對實(shí)際工程問題時(shí),程序規(guī)模一大,就束手無策,無法有機(jī)地綜合應(yīng)用所學(xué)知識去解決問題。

⑵ 沒有形成系統(tǒng)化的分析過程。

由于教學(xué)和教材均側(cè)重于對語法進(jìn)行講授和剖析,未強(qiáng)調(diào)分析及測試的重要性,也沒有將軟件工程的思想融合在實(shí)踐教學(xué)中,因此,長久以來,學(xué)生養(yǎng)成一接觸題目就馬上開始編寫代碼的習(xí)慣,并且,運(yùn)行時(shí)往往僅按照預(yù)先設(shè)定的正確的輸入數(shù)據(jù),去驗(yàn)證自己的所編的程序是否正確。

⑶ 忽略算法邏輯思維能力的培養(yǎng)。

從學(xué)習(xí)效果來看,學(xué)生常存在著兩種誤區(qū),一種是將參與和獲得計(jì)算機(jī)等級考試證書作為學(xué)習(xí)目的,這就導(dǎo)致他們習(xí)慣于程序填空題形式的編程方式,獨(dú)立編程能力欠缺;一種是對C語言中的指針、遞歸問題存在畏難情緒,又認(rèn)為就業(yè)時(shí)可以選擇其他語言工具如Java來避免這些難點(diǎn),沒有認(rèn)識到指針和遞歸的真正價(jià)值在于學(xué)習(xí)它們過程中得到的思維深度[1],忽略了推理能力、抽象思考能力方面的培養(yǎng)。

⑷ 實(shí)踐操作能力不強(qiáng)。

學(xué)生的實(shí)驗(yàn)操作能力不強(qiáng)主要表現(xiàn)在對程序運(yùn)行中一些常見編譯問題無法很快做出反應(yīng),不會依據(jù)提示信息去判斷發(fā)生錯誤的原因,對一些運(yùn)行問題更是束手無策,通常一有問題產(chǎn)生,就轉(zhuǎn)向?qū)ふ遗涮椎膶?shí)驗(yàn)指導(dǎo)書中所提供的正確答案,或者依賴教師指出問題所在,幫忙改正錯誤。

2 項(xiàng)目驅(qū)動的分組教學(xué)方法的具體實(shí)施

建構(gòu)主義學(xué)習(xí)理論認(rèn)為,個體的認(rèn)知發(fā)展與學(xué)習(xí)過程密切相關(guān),知識獲取是以學(xué)習(xí)者為中心,利用“情境”、“協(xié)作”、“會話”等學(xué)習(xí)要素,通過意義建構(gòu)的方式而獲得。針對C語言課程設(shè)計(jì)這一門實(shí)踐性非常強(qiáng)的課程,我們采用項(xiàng)目驅(qū)動的分組教學(xué)方法,在建構(gòu)主義學(xué)習(xí)理論基礎(chǔ)上進(jìn)行教學(xué)設(shè)計(jì),以學(xué)生為中心,融合軟件工程思想,以培養(yǎng)學(xué)生的程序設(shè)計(jì)能力、創(chuàng)新能力、邏輯思維能力和協(xié)作精神為主線,通過項(xiàng)目任務(wù)引導(dǎo)他們主動學(xué)習(xí),去深入理解軟件設(shè)計(jì)思想,并加深對重要知識點(diǎn)的理解。為了將課內(nèi)實(shí)踐和課外自學(xué)有機(jī)結(jié)合起來,我們將15個學(xué)時(shí)的上機(jī)實(shí)踐分為5次,集中安排在5天內(nèi),每次上機(jī)后留充足時(shí)間,要求學(xué)生去查閱資料,提升獲取信息、解讀信息的能力。整個教學(xué)過程中,需要在多個教學(xué)環(huán)節(jié)注意改革和創(chuàng)新。

2.1 項(xiàng)目設(shè)計(jì)

項(xiàng)目的提出是能否調(diào)動學(xué)生學(xué)習(xí)積極性的關(guān)鍵。目前隨著信息化建設(shè)的深入,軟件在各個行業(yè)都獲得了廣泛應(yīng)用,其實(shí)際應(yīng)用領(lǐng)域非常廣泛。課程設(shè)計(jì)應(yīng)該提供一個良好的學(xué)習(xí)“情境”,要結(jié)合教學(xué)目標(biāo),來模擬演練實(shí)際軟件開發(fā)過程。項(xiàng)目的設(shè)計(jì)需要遵循以下幾點(diǎn):①選擇學(xué)生比較熟悉的領(lǐng)域,貼近學(xué)生生活和學(xué)習(xí)方面的應(yīng)用,避免選擇需要較強(qiáng)專業(yè)背景、業(yè)務(wù)邏輯復(fù)雜的應(yīng)用,例如可以選擇學(xué)生選課、書籍管理、宿舍管理等,而盡量不要去選擇企業(yè)人事管理之類的應(yīng)用。這樣可以方便學(xué)生理解或完整需求,激發(fā)他們用程序去解決現(xiàn)實(shí)生活問題的興趣。②功能上要有層次性,可劃分為一般性要求和可拓展性要求,一般性要求指出必須實(shí)現(xiàn)的功能,可拓展性要求則指出可以擴(kuò)展的功能,引導(dǎo)學(xué)生去探索和想象,可以方便開展梯隊(duì)型教學(xué)。③從項(xiàng)目的編碼實(shí)現(xiàn)考慮,要能涵蓋C語言中的結(jié)構(gòu)體或聯(lián)合體等復(fù)雜數(shù)據(jù)類型,體現(xiàn)函數(shù)和指針這條主線,以促進(jìn)學(xué)生去綜合運(yùn)用和深入理解這些重要的知識點(diǎn)。

2.2 分組劃分

一個軟件的開發(fā)僅依靠個人力量往往是無法實(shí)現(xiàn)的。軟件生命周期的各個階段需要軟件小組開發(fā)人員協(xié)作完成[2],因此,在課程設(shè)計(jì)教學(xué)中,我們采用分組教學(xué)模式來培養(yǎng)學(xué)生的團(tuán)隊(duì)合作意識和團(tuán)隊(duì)精神,來充分體現(xiàn)合作與競爭、分層教學(xué)與因材施教[3],并且還可以通過幫帶方式和組內(nèi)討論消化掉一部分問題。分組是否合理、有效,直接影響協(xié)作模式能否取得良好的教學(xué)效果。在C語言課程設(shè)計(jì)實(shí)踐中,我們按照任務(wù)量安排人數(shù),學(xué)生分為以3-5人一組,按照組內(nèi)搭配合理,組件平衡原則分配,在分組時(shí)充分考慮到學(xué)生的個體能力差異,使學(xué)生能在交流合作過程中取長補(bǔ)短。分組觀點(diǎn)認(rèn)為組內(nèi)成員之間的合作關(guān)系可以有“頭腦風(fēng)暴”式、模擬課題式、同伴互助式、角色扮演式和組合式[4]。這里,我們可以結(jié)合軟件開發(fā)的分工特點(diǎn),將角色扮演應(yīng)用到課程設(shè)計(jì)的分組中,由小組組長擔(dān)當(dāng)開發(fā)經(jīng)理角色,其他人員針對其特長分別擔(dān)當(dāng)需求分析師、架構(gòu)設(shè)計(jì)師、開發(fā)人員、測試人員等角色,根據(jù)開發(fā)階段的不同,各成員可以扮演不同類型的角色。

2.3 培養(yǎng)學(xué)生用模塊化思想對實(shí)際問題進(jìn)行分析和設(shè)計(jì)

結(jié)構(gòu)化方法強(qiáng)調(diào)以模塊為中心,采用模塊化、自頂向下、逐步求精設(shè)計(jì)過程。項(xiàng)目驅(qū)動的教學(xué)要培養(yǎng)學(xué)生用模塊化思想思考復(fù)雜問題,即將程序劃分成獨(dú)立命名且可獨(dú)立訪問的模塊,最后裝配集成模塊完成指定的功能。指導(dǎo)過程中,不僅需要糾正學(xué)生一接觸題目馬上編碼的習(xí)慣,而且需要糾正學(xué)生在main方法中編寫所有代碼的習(xí)慣,這種方式會使得整個函數(shù)變得龐雜,代碼冗余大,不利于分工協(xié)作,也給閱讀和維護(hù)帶來很大的困難。當(dāng)學(xué)生在程序分解主函數(shù)和若干個其他函數(shù)時(shí),發(fā)現(xiàn)常存在著隨意分解、隨心所欲定義函數(shù)的現(xiàn)象,針對這一情況,教師可以先以一個項(xiàng)目為例,如成績管理系統(tǒng),演示模塊的分解過程,說明內(nèi)聚性和耦合性要求[5]。在實(shí)際項(xiàng)目應(yīng)用時(shí),要求學(xué)生按功能分解,模塊內(nèi)的函數(shù)做到功能盡量單一,留出接口供其他模塊調(diào)用,一個模塊對應(yīng)一個文件,便于分工協(xié)作。各小組在完成按模塊劃分的軟件體系結(jié)構(gòu)圖后,才被允許進(jìn)入下一個詳細(xì)設(shè)計(jì)編碼階段。

2.4 強(qiáng)化編程思想的訓(xùn)練,加深對重要知識點(diǎn)的理解

算法是程序設(shè)計(jì)的靈魂,教學(xué)中需要成功訓(xùn)練好學(xué)生的頭腦,使他們變得足夠熟練、敏捷和靈活,需要訓(xùn)練學(xué)生在多個抽象層次上同時(shí)思考問題[1]。因此,實(shí)踐過程中,要求學(xué)生熟練應(yīng)用程序流程圖或偽代碼等工具設(shè)計(jì)算法,在組內(nèi)展開討論,比較不同算法實(shí)現(xiàn)方案的優(yōu)劣,以及如何在完成程序的功能基礎(chǔ)上,改善程序結(jié)構(gòu),優(yōu)化算法,進(jìn)一步提高運(yùn)行效率和空間利用率。

對C語言而言,訓(xùn)練學(xué)生的編程思想,離不開指針、函數(shù)參數(shù)傳遞這些重要概念,是否真正理解這些概念也與能否成為一個優(yōu)秀程序員直接相關(guān)。在學(xué)生編碼時(shí),可幫助他們建立內(nèi)存模型,通過跟蹤每條語句的執(zhí)行情況,感受不同數(shù)據(jù)類型在內(nèi)存中所占用的空間,直觀地觀察內(nèi)存布局變化、變量的生命周期、變量狀態(tài)的變化等,去深入理解這些概念尤其是指針的本質(zhì)。

程序設(shè)計(jì)的另一目的是要培養(yǎng)學(xué)生的操作能力,其中很重要的一點(diǎn)就是提高調(diào)試能力。調(diào)試的方便與否與程序書寫風(fēng)格密切相關(guān),學(xué)生通常不注意代碼的規(guī)范化,出現(xiàn)沒有層次縮進(jìn),標(biāo)記符隨意命名、詞不達(dá)意,也沒有必要的注釋等現(xiàn)象,這些給查錯和閱讀帶來了很大的不便,不利于分組模式下的協(xié)作開發(fā)和維護(hù),因此,實(shí)踐教學(xué)時(shí)應(yīng)該培養(yǎng)學(xué)生注意良好程序風(fēng)格。此外,教學(xué)時(shí)還需糾正部分學(xué)生寫代碼一寫到底的習(xí)慣,讓學(xué)生認(rèn)識到程序的編寫是一個調(diào)試-修改-調(diào)試的反復(fù)迭代過程,要在多次錯誤或失敗中獲取調(diào)試經(jīng)驗(yàn)。在學(xué)生出現(xiàn)錯誤時(shí),要引導(dǎo)學(xué)生根據(jù)錯誤和警告信息,分析辨別是語法錯誤還是邏輯錯誤,并鼓勵學(xué)生使用調(diào)試工具,應(yīng)用斷點(diǎn)跟蹤和對分查找等調(diào)試方法,去主動地發(fā)現(xiàn)和解決問題。

測試在軟件開發(fā)中占重要地位,軟件測試的工作量往往占軟件開發(fā)總工作量的40%以上。從學(xué)生實(shí)踐情況調(diào)查來看,測試往往是初學(xué)C語言的學(xué)生特別容易忽略的,普遍出現(xiàn)一些諸如不重視人機(jī)交互界面設(shè)計(jì),沒有輸入提示或出錯提示信息,僅使用在預(yù)定范圍內(nèi)、滿足預(yù)定格式要求的正確數(shù)據(jù)進(jìn)行測試等問題。項(xiàng)目驅(qū)動的教學(xué)尤其應(yīng)該注重培養(yǎng)學(xué)生的測試意識,指導(dǎo)學(xué)生學(xué)會設(shè)計(jì)簡單的有效測試用例和無效測試用例,并開展組內(nèi)測試和組間測試,以提高測試效率和質(zhì)量。

2.5 考核方式改革

對不容易理解的常量、變量和語句有注釋\&5%\&函數(shù)、變量取名較規(guī)范易懂\&5%\&函數(shù)功能是否滿足功能內(nèi)聚\&15%\&調(diào)試手段\&會單步運(yùn)行到任何一個語句,查看變量值\&5%\&會斷點(diǎn)調(diào)試\&5%\&總結(jié)報(bào)告\&用流程圖或偽代碼描述一個函數(shù)的算法\&10%\&有小組分工情況說明和各自的經(jīng)驗(yàn)總結(jié)\&5%\&語言簡練,條理清楚,圖表規(guī)范,附程序清單\&10%\&]

分組形式的課程設(shè)計(jì)需采用彈性考核機(jī)制,個人考核、組內(nèi)考核和教師考核有機(jī)結(jié)合方式。課程設(shè)計(jì)考核成績=個人自我評價(jià)(15%)+組內(nèi)評價(jià)(35%)+教師評價(jià)(50%)。自我評價(jià)是促進(jìn)學(xué)生反思的一種有效手段,組內(nèi)評價(jià)可以觀察學(xué)生組內(nèi)交流協(xié)調(diào)時(shí)有沒有突出表現(xiàn),而為避免少數(shù)學(xué)生抄襲實(shí)驗(yàn)報(bào)告,教師評價(jià)采用答辯形式,考核學(xué)生的實(shí)際操作能力、對數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和算法的理解程度,以及功能和算法上的應(yīng)用亮點(diǎn)??己说木唧w內(nèi)容和評分標(biāo)準(zhǔn)可以多元化,比如對一個用鏈表實(shí)現(xiàn)圖書信息管理系統(tǒng)的項(xiàng)目,可以按表1來指定具體考核標(biāo)準(zhǔn)。

3 結(jié)束語

本學(xué)院的C語言課程設(shè)計(jì)教學(xué)實(shí)踐表明,通過項(xiàng)目驅(qū)動的分組教學(xué)法的實(shí)施,能充分調(diào)動學(xué)生的學(xué)習(xí)積極性,學(xué)生的編程邏輯性和實(shí)踐能力都得到了明顯提高。在模仿實(shí)際開發(fā)環(huán)境過程中,學(xué)生對項(xiàng)目開展的整個流程和各環(huán)節(jié)的具體要求程有了切實(shí)了解,積累了一定的項(xiàng)目開發(fā)經(jīng)驗(yàn),培養(yǎng)起了團(tuán)隊(duì)協(xié)作能力。為了能更好地提高學(xué)生實(shí)踐能力,為他們將來從事軟件開發(fā)工作奠定扎實(shí)基礎(chǔ),我們還需要在今后的實(shí)踐教學(xué)中繼續(xù)開拓和探索,以期達(dá)到更好的實(shí)踐效果。

參考文獻(xiàn):

[1] Spolsky J. More Joel on Software: Further Thoughts on Diverse and Occasionally Related Matters that Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune Or Ill Luck, Work with Them in Some Capacity[M].Apress,2008.

[2] Brooks, Jr. Frederick P., "The Mythical Man-Month", The: Essays on Software Engineering[M]. Anniversary Edition, 2/E, Addison Wesley,1995.

[3] 時(shí)貴英,劉華鎣,李瑞芳.分組協(xié)作教學(xué)模式在程序設(shè)計(jì)課程中的應(yīng)用[J].長江大學(xué)學(xué)報(bào)自然科學(xué)版:理工卷,2010.3:704-705

[4] 趙琦.分組教學(xué)的形式及指導(dǎo)方法.http://www.edu.cn/20010827/208389.shtml.

[5] Lawrence P S, Pfleeger S L, Atlee J M. Software engineering:theory and practice[M].Pearson Education India,2006.

猜你喜歡
分組教學(xué)項(xiàng)目驅(qū)動協(xié)作
團(tuán)結(jié)協(xié)作成功易
協(xié)作
讀者(2017年14期)2017-06-27 12:27:06
淺析如何構(gòu)建初中化學(xué)實(shí)驗(yàn)課高效課堂
未來英才(2016年2期)2016-12-26 13:26:29
一體化課堂分組教學(xué)中確定展示學(xué)生的策略
利用數(shù)學(xué)建模提高高等數(shù)學(xué)教學(xué)效果的研究
分組教學(xué)在中學(xué)體育教學(xué)中的實(shí)施研究
依托工作室的軟件工程實(shí)踐教學(xué)研究
基于物聯(lián)網(wǎng)項(xiàng)目驅(qū)動的嵌入式系統(tǒng)教學(xué)改革的研究與實(shí)踐
基于“紅色之旅”項(xiàng)目驅(qū)動的《調(diào)酒與咖啡》工作室制人才培養(yǎng)機(jī)制探討
試論基于項(xiàng)目驅(qū)動的機(jī)械制圖教學(xué)改革
高要市| 澳门| 青川县| 阿城市| 富锦市| 拜城县| 九龙坡区| 克山县| 崇左市| 景宁| 白山市| 东明县| 封开县| 广宁县| 兴国县| 宁海县| 大连市| 黄浦区| 巴彦县| 仲巴县| 临湘市| 永定县| 河南省| 伊通| 罗山县| 晋城| 蕉岭县| 玉田县| 监利县| 如东县| 安多县| 青阳县| 城市| 九江市| 钟山县| 类乌齐县| 大同县| 汾阳市| 深泽县| 开原市| 娱乐|