啟發(fā)式程序設(shè)計(jì)實(shí)訓(xùn)探索與實(shí)踐
時(shí)間:2022-06-17 03:29:32
導(dǎo)語(yǔ):?jiǎn)l(fā)式程序設(shè)計(jì)實(shí)訓(xùn)探索與實(shí)踐一文來(lái)源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
隨著以工業(yè)互聯(lián)網(wǎng)為代表的“第四次工業(yè)革命”的到來(lái),以及“新工科”概念的提出,國(guó)家對(duì)工科學(xué)生的創(chuàng)新實(shí)踐能力的培養(yǎng)提出了新的要求[1-2]。對(duì)于軟件工程專業(yè)的學(xué)生而言,利用編程語(yǔ)言編寫軟件程序來(lái)解決實(shí)際問(wèn)題是必須掌握的一項(xiàng)基本能力,然而在學(xué)生學(xué)習(xí)編程的過(guò)程中,依然存在著重理論輕實(shí)踐的現(xiàn)象。首先,目前的教材多偏向于理論講解且缺乏導(dǎo)向性[3],絕大多數(shù)教材中的示例比較乏味,而且脫離實(shí)際,以至學(xué)生不愿意主動(dòng)去動(dòng)手實(shí)踐。其次,課堂教學(xué)受場(chǎng)地、設(shè)備等限制,往往只能采取講授式教學(xué)。這種教學(xué)方法不能有效調(diào)動(dòng)學(xué)生的學(xué)習(xí)積極性,導(dǎo)致學(xué)生能理解理論知識(shí),但是實(shí)踐能力還是沒(méi)有得到鍛煉[4]。最后,學(xué)生為了取得高績(jī)點(diǎn),主觀上更愿意將精力放在理論的記憶和理解,而忽略了實(shí)際編程能力的訓(xùn)練,導(dǎo)致許多學(xué)生考試能得高分,卻仍然不會(huì)編寫程序。針對(duì)以上問(wèn)題,一些教師將項(xiàng)目案例引入程序設(shè)計(jì)的教學(xué)過(guò)程中,對(duì)激發(fā)學(xué)生編程興趣起到了促進(jìn)作用[5-6],但是這些方法只是對(duì)課堂教學(xué)的一種補(bǔ)充。為了進(jìn)一步提高學(xué)生的編程實(shí)踐能力,越來(lái)越多的高校將程序設(shè)計(jì)實(shí)訓(xùn)作為一個(gè)獨(dú)立的實(shí)踐環(huán)節(jié)加入培養(yǎng)方案中。重慶大學(xué)軟件工程專業(yè)將程序設(shè)計(jì)實(shí)訓(xùn)作為大一年級(jí)的專業(yè)必修課,作為實(shí)踐教學(xué)體系中重要的一環(huán)[7]。
1程序設(shè)計(jì)實(shí)訓(xùn)實(shí)施現(xiàn)狀分析
1.1程序設(shè)計(jì)實(shí)訓(xùn)的目標(biāo)。學(xué)生在進(jìn)行實(shí)訓(xùn)之前已經(jīng)初步掌握了面向?qū)ο蟮某绦蛟O(shè)計(jì)思想以及基本的編程理論知識(shí),通過(guò)實(shí)訓(xùn),學(xué)生需要達(dá)到以下目標(biāo)。(1)學(xué)生應(yīng)理解面向?qū)ο蟪绦蛟O(shè)計(jì)的基本知識(shí),掌握面向?qū)ο蠓治鰡?wèn)題的基本方法。(2)學(xué)生應(yīng)該具有運(yùn)用一種主流程序開(kāi)發(fā)環(huán)境(如MicrosoftVisualStudio),將面向?qū)ο蠓治龊?jiǎn)單問(wèn)題并將其轉(zhuǎn)化成C++語(yǔ)言代碼的能力以及跟蹤調(diào)試程序錯(cuò)誤的能力。(3)學(xué)生應(yīng)具備運(yùn)用面向?qū)ο蟮乃枷敕治鰧?shí)際問(wèn)題,并將其進(jìn)行編程實(shí)現(xiàn)的能力。1.2程序設(shè)計(jì)實(shí)訓(xùn)中存在的問(wèn)題。(1)學(xué)生習(xí)慣了課堂教學(xué)中,教師講授為主的授課方式,在實(shí)踐環(huán)節(jié)中往往表現(xiàn)出主動(dòng)性不強(qiáng),過(guò)于依賴?yán)蠋煹闹笇?dǎo)。(2)學(xué)生缺乏將實(shí)際問(wèn)題轉(zhuǎn)換成代碼的能力,同時(shí)也缺乏調(diào)試代碼和獨(dú)立解決程序錯(cuò)誤的能力。(3)對(duì)學(xué)生的實(shí)訓(xùn)結(jié)果評(píng)價(jià)方式單一,導(dǎo)致學(xué)生又回到了以成績(jī)?yōu)槟康牡膽?yīng)試思維模式,使得學(xué)生對(duì)實(shí)踐能力的培養(yǎng)失去信心[8]。1.3問(wèn)題的原因分析(1)學(xué)生第一次接觸實(shí)踐類課程,還不適應(yīng)新的教學(xué)內(nèi)容和教學(xué)環(huán)境,過(guò)于依賴?yán)蠋煹闹笇?dǎo)[9]。因此,教學(xué)方式一旦由老師教授,變?yōu)楠?dú)立開(kāi)發(fā),就感到無(wú)所適從。(2)實(shí)訓(xùn)所涉及的項(xiàng)目除了需要用到面向?qū)ο蟪绦蛟O(shè)計(jì)的知識(shí),還需要用到圖形編程,網(wǎng)絡(luò)通信以及數(shù)據(jù)庫(kù)等知識(shí)。而這些知識(shí)并沒(méi)有在大一的時(shí)候?qū)W習(xí),因此對(duì)部分學(xué)習(xí)能力較差的學(xué)生造成了障礙。(3)學(xué)生還保留著高中時(shí)期的應(yīng)試教育的學(xué)習(xí)習(xí)慣,還以考試為目的來(lái)學(xué)習(xí)。對(duì)于實(shí)訓(xùn)的認(rèn)識(shí)不足,還是以分?jǐn)?shù)為導(dǎo)向,忽略了自身實(shí)踐能力的培養(yǎng)。
2項(xiàng)目驅(qū)動(dòng)的啟發(fā)式程序設(shè)計(jì)實(shí)訓(xùn)方法
2.1設(shè)計(jì)以興趣激發(fā)為目的的實(shí)訓(xùn)項(xiàng)目案例。實(shí)訓(xùn)項(xiàng)目作為程序設(shè)計(jì)實(shí)訓(xùn)的重要依托,既需要涵蓋一定范圍的編程知識(shí),又需要激發(fā)學(xué)生的興趣。根據(jù)程序設(shè)計(jì)實(shí)訓(xùn)的課程目標(biāo),結(jié)合工程實(shí)踐的特點(diǎn),按每個(gè)人獨(dú)立完成一個(gè)項(xiàng)目的要求,保證每位學(xué)生具有一定量的代碼編寫量;項(xiàng)目類型以基本單機(jī)應(yīng)用、圖形化界面等方面為主。結(jié)合學(xué)生基礎(chǔ)和具體課程安排,擬定實(shí)訓(xùn)項(xiàng)目供學(xué)生選擇。實(shí)施的時(shí)候?qū)⒏鶕?jù)學(xué)生的測(cè)評(píng)成績(jī)、興趣方向等進(jìn)行選擇。表1中列出了部分實(shí)訓(xùn)項(xiàng)目案例。這些案例都是根據(jù)真實(shí)軟件項(xiàng)目經(jīng)過(guò)簡(jiǎn)化后的仿真項(xiàng)目。可以讓學(xué)生真切地感受到從無(wú)到有的軟件創(chuàng)造過(guò)程,將看不見(jiàn)摸不著的理論學(xué)習(xí),變成可以得到實(shí)實(shí)在在成果的軟件項(xiàng)目,從而讓學(xué)生獲得較大的成就感和自信心。2.2采用結(jié)合線上多媒體知識(shí)補(bǔ)強(qiáng)和線下項(xiàng)目實(shí)踐的實(shí)訓(xùn)方案。為了有效對(duì)實(shí)訓(xùn)中涉及的知識(shí)進(jìn)行補(bǔ)強(qiáng),將程序設(shè)計(jì)實(shí)訓(xùn)分為2個(gè)階段:線上知識(shí)補(bǔ)強(qiáng)階段與線下項(xiàng)目實(shí)踐階段。2.2.1線上知識(shí)補(bǔ)強(qiáng)階段。在進(jìn)行實(shí)際的項(xiàng)目實(shí)訓(xùn)之前,利用網(wǎng)絡(luò)資源,包括PPT課件、課程視頻、慕課等多媒體技術(shù),提前學(xué)習(xí)實(shí)訓(xùn)中所需要的知識(shí)。通過(guò)一個(gè)小課題的實(shí)踐,結(jié)合理論知識(shí)的講解,快速掌握項(xiàng)目開(kāi)發(fā)必備的知識(shí)和技能。知識(shí)補(bǔ)強(qiáng)以邊學(xué)邊做的形式,避免學(xué)習(xí)的枯燥,提高學(xué)習(xí)興趣和效果。同時(shí),小課題的練習(xí)將極大地提升學(xué)生的學(xué)習(xí)信心,對(duì)后面的項(xiàng)目實(shí)踐起到較好的示范作用。從而有效彌補(bǔ)學(xué)生實(shí)際能力與實(shí)訓(xùn)任務(wù)之間的鴻溝。2.2.2線下項(xiàng)目實(shí)踐階段。在此階段學(xué)生將通過(guò)9天的線下項(xiàng)目實(shí)踐,完成自己所選項(xiàng)目的任務(wù)。在實(shí)施過(guò)程中,通過(guò)以下步驟對(duì)學(xué)生的實(shí)訓(xùn)過(guò)程進(jìn)行有效推進(jìn)和管理。(1)學(xué)生根據(jù)自己的興趣自由選擇項(xiàng)目。(2)結(jié)合項(xiàng)目階段需求進(jìn)行重點(diǎn)和難點(diǎn)的理論講授,同時(shí)結(jié)合項(xiàng)目進(jìn)行練習(xí),邊學(xué)邊練、學(xué)以致用,減少純理論授課的枯燥感覺(jué)。(3)按照軟件能力成熟度集成模型(CapabilityMaturityModelIntegration,CMMI),開(kāi)展軟件工程實(shí)踐。學(xué)生將結(jié)合軟件工程的理論知識(shí)和CMMI項(xiàng)目管理流程,逐步加強(qiáng)系統(tǒng)分析和設(shè)計(jì)建模能力,完成從項(xiàng)目啟動(dòng)到最后驗(yàn)收交付的全過(guò)程。(4)使用任務(wù)管理工具,明確個(gè)人的項(xiàng)目任務(wù)。在任務(wù)管理工具中記錄任務(wù)完成情況,并以任務(wù)完成情況作為個(gè)人的考核。(5)通過(guò)網(wǎng)絡(luò)提供有關(guān)的課件、視頻、知識(shí)庫(kù)等資源,使學(xué)生可以通過(guò)這些渠道學(xué)習(xí)、溫習(xí)課程內(nèi)容,加強(qiáng)對(duì)技術(shù)的掌握,加深對(duì)項(xiàng)目的理解。(6)通過(guò)現(xiàn)場(chǎng)指導(dǎo)老師每天的任務(wù)檢查跟蹤,查看學(xué)生日志,及時(shí)發(fā)現(xiàn)存在的問(wèn)題并予以解決。通過(guò)階段性評(píng)審和總結(jié),使學(xué)到的知識(shí)和技術(shù)得到鞏固。2.3建立多維度的程序設(shè)計(jì)實(shí)訓(xùn)的評(píng)價(jià)方法。鑒于程序設(shè)計(jì)實(shí)訓(xùn)的特點(diǎn),需要改變單一評(píng)價(jià)方法。通過(guò)建立一種多維度的案例教學(xué)評(píng)價(jià)方法,打破學(xué)生一直以來(lái)的應(yīng)試思維。該評(píng)價(jià)方法主要由過(guò)程監(jiān)督及項(xiàng)目評(píng)價(jià)兩個(gè)部分組成。1)過(guò)程監(jiān)督。過(guò)程監(jiān)督主要由出勤情況、日?qǐng)?bào)制度、項(xiàng)目總結(jié)3方面組成。(1)出勤情況。實(shí)訓(xùn)的地點(diǎn)由學(xué)院統(tǒng)一安排,學(xué)生每天需要準(zhǔn)時(shí)到達(dá)實(shí)訓(xùn)教室。學(xué)生的出勤情況直接反映出學(xué)生的學(xué)習(xí)狀態(tài),對(duì)于經(jīng)常遲到、早退以及缺勤的學(xué)生及時(shí)糾正,并將出勤情況計(jì)入最終成績(jī)。(2)日?qǐng)?bào)制度。讓學(xué)生每天將實(shí)訓(xùn)的進(jìn)展情況形成日?qǐng)?bào)的形式,總結(jié)當(dāng)天的進(jìn)展及存在的問(wèn)題,制定第二天的計(jì)劃安排,從日?qǐng)?bào)中發(fā)現(xiàn)學(xué)生的總體進(jìn)展情況。(3)項(xiàng)目總結(jié)。學(xué)生在項(xiàng)目完成后,需進(jìn)行項(xiàng)目總結(jié),評(píng)估實(shí)訓(xùn)成果,并以此收集學(xué)生反饋意見(jiàn)。2)項(xiàng)目評(píng)價(jià)。在完成了整個(gè)實(shí)訓(xùn)后,通過(guò)項(xiàng)目驗(yàn)收,完成項(xiàng)目交付。項(xiàng)目驗(yàn)收包括對(duì)代碼規(guī)模、功能實(shí)現(xiàn)、文檔質(zhì)量等方面的驗(yàn)收。驗(yàn)收的結(jié)果與考核密切相關(guān)。對(duì)學(xué)生的項(xiàng)目主要從如下10個(gè)維度進(jìn)行評(píng)價(jià)。功能:功能完整、準(zhǔn)確,符合應(yīng)用需求;界面:界面設(shè)計(jì)美觀,符合規(guī)范;技術(shù):應(yīng)用最新技術(shù),技術(shù)難度高;創(chuàng)新:是否有創(chuàng)新點(diǎn);演示效果:講解清晰、演示流暢、重點(diǎn)突出;文檔:符合規(guī)范,主要是需求、設(shè)計(jì)、用戶手冊(cè)等文檔;規(guī)模:代碼數(shù)量、數(shù)據(jù)庫(kù)記錄數(shù)量;易用性:軟件易于理解、學(xué)習(xí)和使用,如完善的表單驗(yàn)證等;可靠性:出錯(cuò)率低、容錯(cuò)性強(qiáng)、易于恢復(fù);可維護(hù)性:可適應(yīng)不同場(chǎng)景進(jìn)行靈活設(shè)置,易于識(shí)別錯(cuò)誤和改正等。
3項(xiàng)目驅(qū)動(dòng)的啟發(fā)式程序設(shè)計(jì)實(shí)訓(xùn)實(shí)施效果
將實(shí)訓(xùn)方法應(yīng)用到重慶大學(xué)軟件工程專業(yè)2017級(jí)大一本科生的程序設(shè)計(jì)實(shí)訓(xùn)中,取得了較好的效果。通過(guò)問(wèn)卷調(diào)查的形式,了解了學(xué)生對(duì)實(shí)訓(xùn)效果的主觀評(píng)價(jià)。本次發(fā)出問(wèn)卷189份,收回144份,有效問(wèn)卷133份。1)學(xué)生對(duì)實(shí)訓(xùn)的總體滿意度。學(xué)生對(duì)實(shí)訓(xùn)的總體滿意度如圖1所示。該問(wèn)題是針對(duì)學(xué)生對(duì)實(shí)訓(xùn)情況的總體評(píng)價(jià),評(píng)價(jià)指標(biāo)分為5個(gè)等級(jí):非常滿意、滿意、一般、不滿意、非常不滿意。從圖1中可以看出,“非常滿意”加上“滿意”為78%,說(shuō)明學(xué)生對(duì)本次實(shí)訓(xùn)總體上是認(rèn)可的。2)學(xué)生對(duì)自己編程能力的評(píng)價(jià)(滿分5分)。學(xué)生對(duì)自己編程能力的評(píng)價(jià)如圖2所示。該問(wèn)題旨在通過(guò)量化的方式讓學(xué)生對(duì)自己實(shí)訓(xùn)之前和實(shí)訓(xùn)之后的編程能力進(jìn)行自評(píng),評(píng)價(jià)指標(biāo)由低到高分為1~5分。從圖2(a)中可以看出,在實(shí)訓(xùn)前認(rèn)為自己編程能力只有1分或2分(即編程能力較差)的學(xué)生總共占到了53%。而從圖2(b)中可以看出,實(shí)訓(xùn)后認(rèn)為自己編程能力只有1分或2分的學(xué)生僅占到8%。說(shuō)明大部分認(rèn)為自己編程能力較差的學(xué)生在實(shí)訓(xùn)后編程能力都得到了較大提升。圖2(c)中,反映了學(xué)生編程能力的提升幅度,其中有82%的學(xué)生認(rèn)為通過(guò)實(shí)訓(xùn),自己的編程能力有不同程度的提升。通過(guò)分析具體的數(shù)據(jù),我們發(fā)現(xiàn)在能力提升了2分和3分的學(xué)生中,大多是實(shí)訓(xùn)認(rèn)為自己編程能力只有1分或2分的學(xué)生。說(shuō)明通過(guò)實(shí)訓(xùn),對(duì)于不擅長(zhǎng)編程甚至畏懼編程的學(xué)生,編程能力得到了較大的提升。當(dāng)然從圖2(c)中,同樣可以看出有18%的學(xué)生認(rèn)為通過(guò)實(shí)訓(xùn),自己的編程能力沒(méi)有得到提高。通過(guò)具體數(shù)據(jù)分析,我們發(fā)現(xiàn)這部分學(xué)生大都在實(shí)訓(xùn)前就有4或者5分的自評(píng)分,說(shuō)明他們?cè)趯?shí)訓(xùn)前已經(jīng)擁有了較好編程能力。因此實(shí)訓(xùn)對(duì)于這部分學(xué)生的編程能力提升不明顯。3)學(xué)生對(duì)線上知識(shí)補(bǔ)強(qiáng)的評(píng)價(jià)。學(xué)生對(duì)線上知識(shí)補(bǔ)強(qiáng)的評(píng)價(jià)如圖3所示。該問(wèn)題旨在分析線上知識(shí)補(bǔ)強(qiáng)環(huán)節(jié)對(duì)學(xué)生的幫助有多大,評(píng)價(jià)指標(biāo)同樣分為5個(gè)等級(jí):幫助非常大、幫助比較大、有一定幫助、幫助比較小、沒(méi)有幫助。從圖3中可以看出,87%的學(xué)生認(rèn)為線上知識(shí)補(bǔ)強(qiáng)對(duì)自己有不同程度的幫助。4)學(xué)生對(duì)項(xiàng)目選題的難度評(píng)價(jià)。項(xiàng)目選題難度的評(píng)價(jià)如圖4所示。該問(wèn)題旨在了解學(xué)生對(duì)所做項(xiàng)目的難易度進(jìn)行評(píng)價(jià),評(píng)價(jià)指標(biāo)分為5個(gè)等級(jí):非常難、比較難、適中、簡(jiǎn)單、非常簡(jiǎn)單。該問(wèn)題實(shí)際上存在兩個(gè)影響因素,一個(gè)是項(xiàng)目本身難易度,另一個(gè)則是學(xué)生自身的能力。即使同一個(gè)項(xiàng)目,對(duì)于不同的學(xué)生可能得到不同的評(píng)價(jià)結(jié)果。從圖4中看出,41%的學(xué)生認(rèn)為項(xiàng)目選題具有一定難度,55%的學(xué)生認(rèn)為項(xiàng)目選題難度適中。說(shuō)明項(xiàng)目選題具有較好的區(qū)分度,且學(xué)生可以根據(jù)自身情況,靈活選擇不同難度的項(xiàng)目。5)學(xué)生對(duì)所選項(xiàng)目的主觀評(píng)價(jià)(多選)。學(xué)生對(duì)所選項(xiàng)目的主觀評(píng)價(jià)如圖5所示。該問(wèn)題為多選題,旨在了解學(xué)生對(duì)項(xiàng)目屬性的評(píng)價(jià),一共有4個(gè)選項(xiàng):有趣的、實(shí)用的、創(chuàng)造性的、新穎的。由于選項(xiàng)無(wú)法窮盡,題目中僅列出我們關(guān)心的幾個(gè)選項(xiàng)。從圖5中可以看出,認(rèn)為項(xiàng)目是有趣的學(xué)生多于其他選項(xiàng),說(shuō)明項(xiàng)目的案例設(shè)計(jì)達(dá)到了激發(fā)學(xué)生興趣的目的。同時(shí)也有接近一半的學(xué)生認(rèn)為項(xiàng)目是實(shí)用的。說(shuō)明學(xué)生在選擇項(xiàng)目時(shí)也關(guān)注項(xiàng)目的實(shí)用性。6)學(xué)生對(duì)項(xiàng)目評(píng)分機(jī)制的評(píng)價(jià)。學(xué)生對(duì)項(xiàng)目評(píng)分機(jī)制的評(píng)價(jià)如圖6所示。該問(wèn)題旨在了解學(xué)生對(duì)評(píng)價(jià)機(jī)制的認(rèn)可度,評(píng)價(jià)指標(biāo)分為5個(gè)等級(jí):非常合理、比較合理、一般、不太合理、非常不合理。從圖6中可以看出,91%的學(xué)生對(duì)項(xiàng)目的評(píng)分機(jī)制是認(rèn)可的,對(duì)評(píng)價(jià)機(jī)制不滿意的學(xué)生僅占1%。說(shuō)明多維度、全過(guò)程監(jiān)督的項(xiàng)目評(píng)分機(jī)制能夠有效地對(duì)學(xué)生的知識(shí)、能力、素質(zhì)進(jìn)行有效的評(píng)價(jià)。綜上所述,大部分學(xué)生對(duì)實(shí)訓(xùn)效果感到滿意。大部分學(xué)生都認(rèn)為通過(guò)實(shí)訓(xùn)自身的編程能力以及解決問(wèn)題的能力得到了較大的提高,而且對(duì)編程不再畏懼,反而越來(lái)越感興趣,同時(shí)也十分認(rèn)可項(xiàng)目的評(píng)分機(jī)制,說(shuō)明本項(xiàng)目達(dá)到了預(yù)期的效果。
4結(jié)語(yǔ)
目前軟件工程專業(yè)的學(xué)生在學(xué)習(xí)程序設(shè)計(jì)時(shí),普遍存在注重理論學(xué)習(xí),而實(shí)踐能力不強(qiáng)的問(wèn)題。針對(duì)這一問(wèn)題,許多高校將程序設(shè)計(jì)實(shí)訓(xùn)加入到了軟件工程專業(yè)的培養(yǎng)體系中,以提高學(xué)生編程實(shí)踐能力。結(jié)合重慶大學(xué)軟件工程專業(yè)在程序設(shè)計(jì)實(shí)訓(xùn)中的實(shí)際情況,提出的一個(gè)項(xiàng)目驅(qū)動(dòng)的啟發(fā)式程序設(shè)計(jì)方法,通過(guò)讓學(xué)生獨(dú)立完成一個(gè)真實(shí)的程序設(shè)計(jì)項(xiàng)目來(lái)激發(fā)學(xué)生興趣,從而鍛煉學(xué)生的編程能力。實(shí)訓(xùn)過(guò)程采用模擬企業(yè)環(huán)境的管理方式,并采取多維度的方法對(duì)學(xué)生能力進(jìn)行綜合評(píng)價(jià)。通過(guò)對(duì)學(xué)生進(jìn)行問(wèn)卷調(diào)查分析,該方法受到學(xué)生普遍認(rèn)可,并能有效提高學(xué)生程序設(shè)計(jì)能力。
作者:曾駿 文俊浩 熊慶宇 吳映波 單位:重慶大學(xué)