吳際 孫青
摘 要:復(fù)雜軟件能力培養(yǎng)是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)和軟件工程專業(yè)的一項(xiàng)核心任務(wù),特別是在工程教育認(rèn)證背景下,更加凸顯了其重要性。軟件能力內(nèi)涵豐富,涉及需求、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試和維護(hù)等多維度能力。依托作者團(tuán)隊(duì)所負(fù)責(zé)的本科生“面向?qū)ο笤O(shè)計(jì)與構(gòu)造”課程,對(duì)復(fù)雜軟件能力的內(nèi)涵進(jìn)行了梳理,并提出了一種大小周期相結(jié)合的實(shí)踐教學(xué)方法,其中大周期強(qiáng)調(diào)實(shí)踐作業(yè)間的迭代,小周期強(qiáng)調(diào)一次作業(yè)中的過(guò)程控制。最后,通過(guò)實(shí)際教學(xué)所收集的數(shù)據(jù),對(duì)該教學(xué)方法的應(yīng)用效果進(jìn)行了初步分析。本文所研究的方法適用于軟件開(kāi)發(fā)類課程,同樣也對(duì)工程實(shí)踐類課程具有參考價(jià)值。
關(guān)鍵詞:軟件能力;能力培養(yǎng);實(shí)踐教學(xué)方法;能力度量;軟件開(kāi)發(fā)
一、復(fù)雜軟件能力內(nèi)涵
隨著計(jì)算技術(shù)在人類社會(huì)中應(yīng)用深度和廣度的持續(xù)擴(kuò)大,軟件的重要性日益凸顯,圍繞軟件開(kāi)發(fā)方法與技術(shù)的教育也逐漸成為大學(xué)計(jì)算機(jī)相關(guān)院系的重點(diǎn)關(guān)注內(nèi)容。軟件開(kāi)發(fā)類課程是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)以及軟件工程等相關(guān)專業(yè)本科生教學(xué)體系中的重要組成部分。計(jì)算機(jī)相關(guān)學(xué)科本質(zhì)上具有很強(qiáng)的工程性要求,以解決實(shí)際工程中的問(wèn)題作為重要目標(biāo)[1]。近年來(lái),隨著工程教育及其認(rèn)證的推廣[2],傳統(tǒng)面向知識(shí)點(diǎn)的軟件開(kāi)發(fā)類課程教學(xué)設(shè)計(jì)已經(jīng)不能滿足要求,必須面向能力培養(yǎng)目標(biāo)開(kāi)展實(shí)踐式教學(xué),從而適應(yīng)軟件產(chǎn)業(yè)快速發(fā)展對(duì)新人才的需求。
軟件能力是關(guān)于如何在規(guī)定時(shí)間內(nèi)、按照一定的規(guī)范開(kāi)發(fā)出滿足相關(guān)要求的軟件的能力。相關(guān)要求主要包括軟件需求、設(shè)計(jì)與實(shí)現(xiàn)的要求、運(yùn)行平臺(tái)要求、開(kāi)發(fā)語(yǔ)言和質(zhì)量要求等。本文所討論的則是一種更高形態(tài)的軟件能力,稱之為復(fù)雜軟件能力,即使用工程化方法,開(kāi)發(fā)具有一定復(fù)雜度的高質(zhì)量軟件系統(tǒng)的能力。為什么要強(qiáng)調(diào)工程化方法、復(fù)雜度和高質(zhì)量?其主要原因來(lái)自于軟件已經(jīng)越來(lái)越多地應(yīng)用于國(guó)計(jì)民生關(guān)鍵領(lǐng)域,一旦出現(xiàn)質(zhì)量問(wèn)題,將引起嚴(yán)重甚至災(zāi)難性后果。工程化方法強(qiáng)調(diào)培養(yǎng)學(xué)生綜合分析軟件功能和性能相關(guān)約束的能力,從而能夠綜合考慮相應(yīng)約束給出設(shè)計(jì)方案和實(shí)現(xiàn)代碼,并能使用測(cè)試和推理分析等手段進(jìn)行綜合驗(yàn)證和優(yōu)化。工程問(wèn)題的復(fù)雜度在一定程度上決定了工程化方法實(shí)施的難度和必要性。越是復(fù)雜的工程問(wèn)題,就越需要使用規(guī)范的工程化方法。從教學(xué)角度來(lái)看,工程問(wèn)題復(fù)雜度強(qiáng)調(diào)軟件開(kāi)發(fā)的要求來(lái)自于有一定規(guī)模的真實(shí)系統(tǒng)背景,而且有明確的質(zhì)量和進(jìn)度要求。質(zhì)量決定了一個(gè)軟件的生命力和價(jià)值。如果一個(gè)軟件的質(zhì)量不能滿足,輕則導(dǎo)致無(wú)法滿足用戶的要求,重則導(dǎo)致計(jì)算機(jī)系統(tǒng)甚至更大范圍的系統(tǒng)運(yùn)行失效,進(jìn)而可能導(dǎo)致安全問(wèn)題。因此,如何在開(kāi)發(fā)過(guò)程中通過(guò)技術(shù)手段來(lái)表明或論證所開(kāi)發(fā)軟件滿足相應(yīng)的質(zhì)量要求也是一種重要的能力,對(duì)于培養(yǎng)學(xué)生的質(zhì)量意識(shí)和質(zhì)量控制能力具有重要意義。
本文以復(fù)雜軟件能力培養(yǎng)為目標(biāo),基于其內(nèi)涵分析,提出通過(guò)大小周期的實(shí)踐來(lái)實(shí)現(xiàn)復(fù)雜軟件能力的培養(yǎng),并通過(guò)實(shí)踐教學(xué)過(guò)程中的數(shù)據(jù)收集和跟蹤分析,來(lái)度量學(xué)生的能力形成狀況。
二、問(wèn)題定義
復(fù)雜軟件能力的核心是應(yīng)用工程化方法來(lái)解決帶有實(shí)際工程背景的問(wèn)題。軟件開(kāi)發(fā)類課程的核心目標(biāo)是培養(yǎng)針對(duì)給定要求開(kāi)發(fā)相應(yīng)軟件的能力,其主要手段是通過(guò)具有一定工程背景的實(shí)踐訓(xùn)練。開(kāi)發(fā)要求一般包括軟件需求、設(shè)計(jì)要求、質(zhì)量要求、時(shí)間要求等,而開(kāi)發(fā)涉及開(kāi)發(fā)模式的選擇、開(kāi)發(fā)過(guò)程的控制等。本文所關(guān)注的軟件開(kāi)發(fā)類課程的課程實(shí)踐與目標(biāo)能力之間的關(guān)系如圖1所示。
課程須達(dá)成的目標(biāo)能力可由目標(biāo)能力的達(dá)成度進(jìn)行度量,以課程知識(shí)點(diǎn)與課程實(shí)踐訓(xùn)練為實(shí)現(xiàn)途徑。由于學(xué)生不可避免地存在個(gè)體差異,在課程實(shí)踐訓(xùn)練的設(shè)計(jì)中還需要考慮學(xué)生基礎(chǔ)能力掌握情況以及課程所在學(xué)期的相關(guān)課程設(shè)置情況。
我們強(qiáng)調(diào)如何面向復(fù)雜軟件能力這個(gè)目標(biāo)來(lái)設(shè)計(jì)實(shí)踐教學(xué)方法,包括實(shí)踐訓(xùn)練內(nèi)容及實(shí)踐過(guò)程控制。實(shí)踐訓(xùn)練內(nèi)容通過(guò)覆蓋課程知識(shí)點(diǎn)來(lái)達(dá)成訓(xùn)練目標(biāo),實(shí)踐過(guò)程是完成實(shí)踐訓(xùn)練內(nèi)容的具體活動(dòng)流程。將軟件開(kāi)發(fā)類課程實(shí)踐過(guò)程f定義如下。
輸入:Input={能力目標(biāo)、課程大綱};
輸出:Output={與課程大綱同步的作業(yè)訓(xùn)練設(shè)計(jì)、作業(yè)控制活動(dòng)流程};
約束條件:Constraints={滿足課程大綱與能力目標(biāo)的支撐關(guān)系}。
工程教育專業(yè)認(rèn)證強(qiáng)調(diào)能力的形成性培
養(yǎng)[3],即要求通過(guò)過(guò)程(即系列化的任務(wù)訓(xùn)練)來(lái)逐步讓學(xué)生掌握所教授的方法和技術(shù),從而形成相應(yīng)的能力。從課程大綱以及課程大綱中總結(jié)提煉課程知識(shí)點(diǎn),形成知識(shí)點(diǎn)集合K={k1,…,ki,…,kn}(1≤i≤n)。對(duì)于每個(gè)知識(shí)點(diǎn),可由過(guò)程定義得到相應(yīng)的課程實(shí)踐活動(dòng)序列f={f1,…,fi,…,fn}(1≤i≤n)。依據(jù)前文中對(duì)于軟件能力的內(nèi)涵分析,課程實(shí)踐活動(dòng)fi中設(shè)定的任務(wù)必須滿足工程教育對(duì)于能力培養(yǎng)的要求[4]。首先,實(shí)踐訓(xùn)練需要有明確的功能要求。其次,從能力培養(yǎng)角度看,要給學(xué)生樹(shù)立工程質(zhì)量觀,不滿足質(zhì)量要求的軟件不能作為交付物移交給工程客戶[5]。因而在課程實(shí)踐中要求提交的代碼滿足軟件的質(zhì)量特性,如響應(yīng)時(shí)間、魯棒性等,并且在實(shí)踐完成過(guò)程中強(qiáng)調(diào)設(shè)計(jì)原則、設(shè)計(jì)方法應(yīng)用。另外,規(guī)定時(shí)限是所有工程項(xiàng)目的基本要求,即必須在規(guī)定時(shí)間內(nèi)完成工程項(xiàng)目。培養(yǎng)學(xué)生在規(guī)定時(shí)間內(nèi)的工程設(shè)計(jì)與實(shí)施能力是工程類專業(yè)的一個(gè)核心目標(biāo)。因而在課程實(shí)踐過(guò)程中需要提出時(shí)限性要求。
本文研究依托的“面向?qū)ο笤O(shè)計(jì)與構(gòu)造”課程是北京航空航天大學(xué)計(jì)算機(jī)學(xué)院的本科生學(xué)位核心課程,包括32理論學(xué)時(shí)和16實(shí)驗(yàn)學(xué)時(shí),每年上課學(xué)生人數(shù)不少于250人,安排在二年級(jí)春季學(xué)期,課程在北京航空航天大學(xué)計(jì)算機(jī)學(xué)院面向復(fù)雜軟件能力的體系化課程中扮演著承上啟下的作用(如圖2所示)。
根據(jù)課程的特點(diǎn),從2014年課程開(kāi)始在實(shí)踐環(huán)節(jié)引入作業(yè)的大小周期二維設(shè)計(jì),對(duì)課程整個(gè)實(shí)踐訓(xùn)練過(guò)程進(jìn)行控制。心理學(xué)的研究結(jié)果表明,由于知識(shí)具有結(jié)構(gòu)性特點(diǎn),人的學(xué)習(xí)活動(dòng)一般以知識(shí)點(diǎn)為單位來(lái)組織[6]。課程作業(yè)的大周期設(shè)計(jì)按照課程知識(shí)點(diǎn)模塊來(lái)實(shí)施,以周為單位布置作業(yè)任務(wù)。圍繞每周課程講授的知識(shí)點(diǎn)和之前學(xué)習(xí)的知識(shí)點(diǎn),進(jìn)行增量迭代式訓(xùn)練。這種大周期的設(shè)計(jì)方式符合人的認(rèn)知和學(xué)習(xí)規(guī)律。針對(duì)每一次作業(yè)任務(wù)則實(shí)施小周期微觀控制,以細(xì)粒度的作業(yè)活動(dòng)為單位進(jìn)行過(guò)程控制,使得作業(yè)訓(xùn)練以受控方式來(lái)獲得預(yù)期的能力達(dá)成度。
三、作業(yè)大周期設(shè)計(jì)與控制
課程實(shí)踐的作業(yè)大周期設(shè)計(jì)與控制強(qiáng)調(diào)通過(guò)增量迭代來(lái)強(qiáng)化學(xué)生的能力形成效果?;痉椒ㄊ菍⒄n程實(shí)踐分為4個(gè)周期(如圖3所示),包括進(jìn)階周期、深化周期、精煉周期和貫徹周期。每個(gè)周期包括4個(gè)教學(xué)周,其中前三周為理論課加相應(yīng)的3次開(kāi)發(fā)測(cè)試類訓(xùn)練,最后一周為階段總結(jié)課和相應(yīng)的總結(jié)分析作業(yè)。
進(jìn)階周期的作業(yè)設(shè)計(jì)目標(biāo)是針對(duì)面向?qū)ο蠛诵母拍詈突驹O(shè)計(jì)要求開(kāi)展訓(xùn)練,在案例設(shè)計(jì)上突出對(duì)象與類特征,并進(jìn)一步突出類的職責(zé)分配與協(xié)同,引入層次化抽象,使用繼承或接口來(lái)優(yōu)化設(shè)計(jì)。
在深化周期作業(yè)設(shè)計(jì)中,目標(biāo)是圍繞對(duì)象運(yùn)行機(jī)制、線程對(duì)象交互機(jī)制、線程安全等知識(shí)點(diǎn),通過(guò)運(yùn)動(dòng)量均衡的多電梯調(diào)度案例的多次迭代,訓(xùn)練學(xué)生的設(shè)計(jì)思維從單線程程序向多線程程序轉(zhuǎn)變,從而掌握線程安全的設(shè)計(jì)方法。
在精煉周期作業(yè)設(shè)計(jì)中,目標(biāo)是圍繞規(guī)格化設(shè)計(jì)方法,從方法規(guī)格設(shè)計(jì)、類規(guī)格設(shè)計(jì)以及設(shè)計(jì)原則及檢查方面進(jìn)行訓(xùn)練。本周期的訓(xùn)練以模擬出租車叫車系統(tǒng)為案例進(jìn)行迭代開(kāi)發(fā),培養(yǎng)大規(guī)模并發(fā)多線程的設(shè)計(jì)方法和測(cè)試方法。
貫徹周期作業(yè)設(shè)計(jì)的目標(biāo)是面向高質(zhì)量要求的綜合驗(yàn)證方法及技術(shù)訓(xùn)練,要求學(xué)生針對(duì)前期開(kāi)發(fā)的程序基礎(chǔ)上使用Junit框架開(kāi)展基于規(guī)格的自動(dòng)化測(cè)試,并能夠基于類和方法來(lái)邏輯推理程序的正確性,并使用UML表示設(shè)計(jì)并分析驗(yàn)證。
每個(gè)周期的最后一次作業(yè)都要求學(xué)生撰寫(xiě)總結(jié)分析博客,梳理自己在該周期的作業(yè)訓(xùn)練中的完成情況和心得體會(huì)。大周期的作業(yè)設(shè)計(jì)采用體育比賽中的賽季積分制來(lái)考核學(xué)生實(shí)踐訓(xùn)練成績(jī),針對(duì)在作業(yè)大周期中的得分(包括加分和扣分)累加結(jié)果進(jìn)行排序,最終按照排序相對(duì)位置來(lái)確定最終的課程成績(jī)。
此外,在每個(gè)大周期內(nèi),課程設(shè)計(jì)了與開(kāi)發(fā)測(cè)試作業(yè)同步的實(shí)驗(yàn)訓(xùn)練(4學(xué)時(shí)/周期)。作業(yè)任務(wù)強(qiáng)調(diào)針對(duì)給定需求的設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試,實(shí)驗(yàn)則針對(duì)開(kāi)發(fā)測(cè)試中所需的關(guān)鍵技術(shù)能力進(jìn)行訓(xùn)練,分別設(shè)計(jì)了面向?qū)ο蟪绦虻恼{(diào)試實(shí)驗(yàn)(4學(xué)時(shí))、針對(duì)多線程的觀察與調(diào)試(4學(xué)時(shí))、規(guī)格設(shè)計(jì)和代碼實(shí)現(xiàn)的交叉補(bǔ)全(4學(xué)時(shí))、自動(dòng)化測(cè)試與模型化設(shè)計(jì)(4學(xué)時(shí))。
四、作業(yè)小周期設(shè)計(jì)與控制
軟件能力強(qiáng)調(diào)學(xué)生能夠使用技術(shù)性手段來(lái)說(shuō)明所開(kāi)發(fā)的軟件滿足質(zhì)量要求,包括軟件測(cè)試、評(píng)審、模型檢查和形式化驗(yàn)證等。按照本文的軟件能力定義,學(xué)生不僅需要在規(guī)定時(shí)間內(nèi)提交實(shí)現(xiàn)了相應(yīng)要求的軟件代碼,還要能夠主動(dòng)通過(guò)軟件測(cè)試等手段來(lái)分析說(shuō)明其所提交的軟件代碼滿足質(zhì)量要求。本文所介紹的面向?qū)ο笳n程采用競(jìng)爭(zhēng)性學(xué)習(xí)方法[7-10],圍繞軟件能力來(lái)設(shè)計(jì)和配置競(jìng)爭(zhēng)性任務(wù),針對(duì)每一次競(jìng)爭(zhēng)性任務(wù)實(shí)施小周期控制。作業(yè)小周期設(shè)計(jì)的理念是對(duì)作業(yè)過(guò)程進(jìn)行微觀控制,包括deadline控制、抄襲控制、有效性控制、測(cè)試控制等,從而在細(xì)節(jié)層次上訓(xùn)練學(xué)生的軟件能力。從課程運(yùn)行的實(shí)際效果來(lái)看,緊張有序的小周期控制是確保能力形成效果的有效保障。
如圖4所示,每一個(gè)教學(xué)周理論課授課完畢后,教師發(fā)布作業(yè),并根據(jù)任務(wù)的難度和工作量設(shè)定作業(yè)完成時(shí)限要求。學(xué)生在規(guī)定時(shí)間內(nèi)提交作業(yè),過(guò)期將不能再提交。在作業(yè)提交之后,課程作業(yè)平臺(tái)系統(tǒng)自動(dòng)代碼進(jìn)行相似度檢測(cè),根據(jù)輸入的抄襲控制參數(shù)(即能夠容忍的相似度最大參數(shù))來(lái)發(fā)現(xiàn)作業(yè)抄襲。針對(duì)軟件能力中的開(kāi)發(fā)能力和測(cè)試能力要求,在小周期設(shè)計(jì)中特別注重訓(xùn)練測(cè)試能力,要求每個(gè)同學(xué)都參與測(cè)試中,為此會(huì)給每個(gè)提交了有效作業(yè)的同學(xué)分配測(cè)試任務(wù)。測(cè)試任務(wù)智能分配的重點(diǎn)是平衡性控制,即確保測(cè)試雙方同學(xué)具有相近的能力。軟件開(kāi)發(fā)類課程可以采用兩種類型的測(cè)試——雙盲互測(cè)和透明公測(cè),前者采用競(jìng)爭(zhēng)性方法,讓同學(xué)們?cè)谒峙涞拇a中去發(fā)現(xiàn)盡可能多的缺陷;后者則使用事先設(shè)計(jì)好的公共測(cè)試用例集來(lái)檢查作業(yè)代碼對(duì)要求的整體滿足情況。所謂雙盲,即任何一個(gè)同學(xué)都不知道自己測(cè)試的是哪位同學(xué)提交的程序,同樣也不知道自己的程序在被誰(shuí)測(cè)試。每個(gè)同學(xué)都要在規(guī)定時(shí)間內(nèi)完成測(cè)試并提交測(cè)試所發(fā)現(xiàn)的缺陷,這樣每個(gè)同學(xué)會(huì)收到兩個(gè)記錄,自己程序被發(fā)現(xiàn)的bug(扣分依據(jù))和自己發(fā)現(xiàn)了別人程序的bug(加分依據(jù))。誤報(bào)bug是軟件開(kāi)發(fā)與測(cè)試中的正常現(xiàn)象,需要開(kāi)發(fā)者與測(cè)試者進(jìn)行溝通協(xié)調(diào)。每個(gè)同學(xué)收到被發(fā)現(xiàn)的bug記錄后,需檢查確認(rèn)bug報(bào)告的有效性,如果有誤則可以發(fā)起申訴。要求測(cè)試者和開(kāi)發(fā)者在系統(tǒng)中圍繞bug報(bào)告的有效性進(jìn)行交互協(xié)商,并根據(jù)協(xié)商結(jié)果來(lái)調(diào)整測(cè)試的計(jì)分。
在測(cè)試任務(wù)智能分配環(huán)節(jié),強(qiáng)調(diào)測(cè)試者和開(kāi)發(fā)者具有相近的軟件能力。為了達(dá)到這種平衡性控制效果,需要收集一個(gè)學(xué)生的學(xué)習(xí)行為數(shù)據(jù),并度量學(xué)生的開(kāi)發(fā)能力和測(cè)試能力。主要依據(jù)包括通過(guò)的公共測(cè)試用例情況、互測(cè)中被報(bào)告的bug情況、互測(cè)中發(fā)現(xiàn)別人程序bug的情況、所提交程序的設(shè)計(jì)質(zhì)量等。在此基礎(chǔ)上,可以使用諸如K-means等聚類算法對(duì)開(kāi)發(fā)能力及測(cè)試能力進(jìn)行聚類分析[11-12],從而獲得較為科學(xué)的分組。
五、教學(xué)實(shí)踐效果分析
面向?qū)ο笤O(shè)計(jì)與構(gòu)造課程作為典型的軟件開(kāi)發(fā)類課程,運(yùn)行4年來(lái)取得了良好的教學(xué)效果。學(xué)生們?cè)谡n程開(kāi)始之前大部分對(duì)面向?qū)ο蟾拍詈头椒ǘ疾惶私?,通過(guò)一個(gè)學(xué)期的訓(xùn)練,超過(guò)85%的同學(xué)能夠在一周內(nèi)完成規(guī)模在2 000行以內(nèi)的高質(zhì)量程序設(shè)計(jì)實(shí)現(xiàn),且能夠基于規(guī)格來(lái)論證程序?qū)崿F(xiàn)滿足相應(yīng)的規(guī)格設(shè)計(jì)。
以2017學(xué)年度為例,圖5給出的是作業(yè)完成效果的整體情況。圖5(a)顯示,整體的提交和有效情況都維持在較高的水平,第5次作業(yè)(即深化周期的第一次作業(yè),開(kāi)始引入多線程)的難度有較大的提高,導(dǎo)致有不少同學(xué)未能完成,但之后逐漸得到改善。經(jīng)過(guò)了嚴(yán)格的相似性檢查,抄襲人數(shù)得到了有效控制。圖5(b)顯示,隨著作業(yè)難度增加和功能增多,完成作業(yè)的程序規(guī)模持續(xù)增大,到第11次作業(yè)接近3 000行,但是公共測(cè)試通過(guò)率一直保持在比較穩(wěn)定的水準(zhǔn)。互測(cè)一直在高強(qiáng)度水準(zhǔn)下推進(jìn),這對(duì)于確保代碼的質(zhì)量發(fā)揮著不可替代的作用。
圖6給出的是學(xué)生在公共測(cè)試階段的整體用例通過(guò)情況。圖6(a)顯示,整體的公共測(cè)試通過(guò)率在前四次呈現(xiàn)下降趨勢(shì),從第六次作業(yè)開(kāi)始隨著作業(yè)訓(xùn)練次數(shù)的增加,逐漸增加。其主要原因是前幾次難度逐步提升,但是相當(dāng)一部分同學(xué)在編程語(yǔ)言、開(kāi)發(fā)測(cè)試以及對(duì)課程規(guī)則都尚在學(xué)習(xí)和熟悉過(guò)程中。經(jīng)過(guò)一個(gè)多月的訓(xùn)練,能力得到了穩(wěn)定提升,公共測(cè)試的通過(guò)率也穩(wěn)定提升。由圖6(b)可知,公共測(cè)試用例通過(guò)率超過(guò)95%的人數(shù)占該次作業(yè)有效提交總?cè)藬?shù)的比重,最高是64.7%,最低是28.7%,平均達(dá)到49.8%,這表明一般同學(xué)都取得了非常優(yōu)秀的作業(yè)完成效果。不過(guò)同時(shí)也要看到,每次作業(yè)都有一部分完成效果很不好(0—50%)的同學(xué),雖然人數(shù)很少。從第五次作業(yè)開(kāi)始,通過(guò)率超過(guò)95%的人數(shù)占比逐步提升,說(shuō)明訓(xùn)練設(shè)計(jì)達(dá)到了預(yù)期的目標(biāo)。
為了更好地刻畫(huà)學(xué)生能力的變化,分析作業(yè)的大小周期設(shè)計(jì)以及以面向能力的訓(xùn)練方法帶來(lái)的實(shí)際效果,本文在實(shí)際收集的學(xué)習(xí)行為數(shù)據(jù)基礎(chǔ)上對(duì)開(kāi)發(fā)能力做了統(tǒng)計(jì)分析。根據(jù)每次作業(yè)的成績(jī)對(duì)學(xué)生進(jìn)行分檔,規(guī)則見(jiàn)下表。
由互評(píng)階段扣分情況分布圖(圖7)可以看出,隨著作業(yè)推進(jìn),低分段學(xué)生(第三檔和第四檔)的數(shù)量呈下降趨勢(shì),而高分段的同學(xué)在進(jìn)行第二個(gè)作業(yè)大周期之后,即第一次多線程作業(yè)后,數(shù)量也逐漸升高。由此看來(lái),經(jīng)過(guò)第一個(gè)作業(yè)大周期的作業(yè)訓(xùn)練,學(xué)生們的開(kāi)發(fā)能力不斷提升和進(jìn)步?;陔p盲互測(cè)數(shù)據(jù)和公共測(cè)試數(shù)據(jù)得到了一致的結(jié)論。
六、總結(jié)與展望
實(shí)踐訓(xùn)練是軟件開(kāi)發(fā)類課程中的核心教學(xué)環(huán)節(jié),如何有效圍繞能力培養(yǎng)目標(biāo)設(shè)計(jì)其實(shí)踐教學(xué)一直是一個(gè)關(guān)鍵問(wèn)題和難題。在設(shè)計(jì)實(shí)踐內(nèi)容和控制措施時(shí),必須要考慮多種因素,如能力內(nèi)涵,能力與授課知識(shí)點(diǎn)的關(guān)聯(lián),訓(xùn)練過(guò)程的微觀控制等。本文提出了一種圍繞能力培養(yǎng)目標(biāo)的實(shí)踐設(shè)計(jì)方法,其核心是大小周期相結(jié)合的實(shí)踐設(shè)計(jì)和實(shí)踐過(guò)程控制。本文結(jié)合作者所承擔(dān)的面向?qū)ο笤O(shè)計(jì)與構(gòu)造課程介紹了方法實(shí)踐和效果分析,系統(tǒng)性地梳理和介紹了復(fù)雜軟件能力的內(nèi)涵和支撐的課程群,進(jìn)一步介紹如何從實(shí)踐內(nèi)容、實(shí)踐控制和評(píng)價(jià)等多個(gè)維度來(lái)開(kāi)展課程設(shè)計(jì),以及應(yīng)用大小周期相結(jié)合的實(shí)踐教學(xué)方法所獲得的訓(xùn)練體系。通過(guò)實(shí)際教學(xué)所收集的數(shù)據(jù),對(duì)該教學(xué)方法的應(yīng)用效果進(jìn)行了初步分析。結(jié)果表明作者所提出的大小周期相結(jié)合的實(shí)踐教學(xué)方法取得了顯著的教學(xué)效果,而且能夠在能力培養(yǎng)目標(biāo)上開(kāi)展細(xì)粒度分析。這些分析研究對(duì)于其他學(xué)校的軟件開(kāi)發(fā)類課程的設(shè)計(jì)和優(yōu)化具有參考價(jià)值。
未來(lái),我們擬在其他相關(guān)課程中實(shí)踐和應(yīng)用大小周期相結(jié)合的實(shí)踐訓(xùn)練方法,同時(shí)正在細(xì)粒度的學(xué)習(xí)效果分析,特別是能力形成效果分析方面開(kāi)展進(jìn)一步研究。
參考文獻(xiàn):
[1] 蔣宗禮. 工程專業(yè)認(rèn)證引導(dǎo)高校工程教育改革之路[J]. 工業(yè)和信息化教育,2014(1): 1-5.
[2] 工程教育專業(yè)認(rèn)證標(biāo)準(zhǔn)(試行)[Z]. 2011.
[3] 王昕紅. 美國(guó)工程教育專業(yè)認(rèn)證研究[M]. 西安:西安交通大學(xué)出版社,2011.
[4] 袁慧,于兆勤,秦哲. 新形勢(shì)下培養(yǎng)提高工科學(xué)生工程實(shí)踐能力的認(rèn)識(shí)與實(shí)踐[J]. 高教探索,2007(2): 61-63.
[5] 許學(xué)磊. 軟件工程管理的現(xiàn)狀和創(chuàng)新策略[J]. 微計(jì)算機(jī)信息,2012(5): 50.
[6] 隋光遠(yuǎn). 知識(shí)點(diǎn)認(rèn)知規(guī)律的實(shí)驗(yàn)研究[J]. 心理科學(xué),2003,26(2): 308-311.
[7] Mendiburo M, Williams L, Segedy J, et al. An Investigation of the Effect of Competition on the Way Students Engage in Game-Based Deliberate Practice[C]. 2013.
[8] Hwang G J, Chang S C. Effects of a peer competition‐based mobile learning approach on students' affective domain exhibition in social studies courses[J]. British Journal of Educational Technology. 2016, 47(6): 1217-1231.
[9] Cantador I, Conde J M. EFFECTS OF COMPETITION IN EDUCATION: A CASE STUDY IN AN E-LEARNING ENVIRONMENT[J]. 2010.
[10] Dimenichi B C, Tricomi E. The power of competition: Effects of social motivation on attention, sustained physical effort, and learning[J]. Frontiers in Psychology, 2015, 6: 1282.
[11] Ratnapala I P, Ragel R G, Deegalla S. Students behavioural analysis in an online learning environment using data mining[J]. 2014.
[12] Patel K M A, Thakral P. The best clustering algorithms in data mining[C]. 2016.
[責(zé)任編輯:余大品]