姜 瑛,丁家滿
(昆明理工大學(xué) 信息工程與自動化學(xué)院,云南 昆明 650500)
基于軟件復(fù)用的計(jì)算機(jī)類專業(yè)綜合課程設(shè)計(jì)教學(xué)實(shí)踐與分析
姜 瑛,丁家滿
(昆明理工大學(xué) 信息工程與自動化學(xué)院,云南 昆明 650500)
針對計(jì)算機(jī)類專業(yè)本科教學(xué)中綜合課程設(shè)計(jì)教學(xué)效果不理想的普遍問題,分析學(xué)生難以應(yīng)用已學(xué)知識完成項(xiàng)目實(shí)踐的原因,闡述軟件復(fù)用驅(qū)動的課程設(shè)計(jì)教學(xué)方式在計(jì)算機(jī)類專業(yè)綜合課程設(shè)計(jì)中的實(shí)踐,分析存在的問題并提出相關(guān)改進(jìn)措施。
計(jì)算機(jī)類專業(yè);綜合課程設(shè)計(jì);軟件復(fù)用;實(shí)踐
當(dāng)前,社會發(fā)展急需計(jì)算機(jī)類專業(yè)人才,對此類人才實(shí)踐能力的要求不斷提高。在計(jì)算機(jī)類專業(yè)教學(xué)的目標(biāo)中,除了使學(xué)生能夠掌握相關(guān)的專業(yè)基礎(chǔ)知識外,還要著重培養(yǎng)學(xué)生的工程應(yīng)用能力。作為計(jì)算機(jī)類專業(yè)實(shí)踐教學(xué)環(huán)節(jié)的重要組成部分,綜合課程設(shè)計(jì)的核心目標(biāo)是培養(yǎng)學(xué)生對知識的綜合應(yīng)用能力和實(shí)際動手能力,即完成多門專業(yè)課程的學(xué)習(xí)后,以小項(xiàng)目的形式開展實(shí)踐教學(xué)。
綜合性、系統(tǒng)性、創(chuàng)新性是綜合課程設(shè)計(jì)的特點(diǎn),目的是針對特定的需求,讓學(xué)生能夠綜合應(yīng)用硬件、軟件、網(wǎng)絡(luò)、數(shù)據(jù)庫、通信等方面的專業(yè)知識,提出相應(yīng)的解決方案,并進(jìn)行工程化和規(guī)范化的實(shí)施。通過綜合課程設(shè)計(jì),使學(xué)生能夠進(jìn)一步領(lǐng)會和鞏固已修專業(yè)核心課程的知識,并提高其綜合應(yīng)用能力、動手實(shí)踐能力、自主創(chuàng)新能力及協(xié)作能力,為大四畢業(yè)設(shè)計(jì)及以后的工程實(shí)踐奠定基礎(chǔ)。
文獻(xiàn)[1]提出基于網(wǎng)絡(luò)技術(shù)的綜合課程設(shè)計(jì)新型探究型學(xué)習(xí)環(huán)境,以及以學(xué)生探究學(xué)習(xí)為主和教師引導(dǎo)為輔的新型教學(xué)活動;文獻(xiàn)[2]設(shè)計(jì)了計(jì)算機(jī)綜合課程設(shè)計(jì)實(shí)驗(yàn)平臺,并構(gòu)建了一套符合計(jì)算機(jī)綜合課程設(shè)計(jì)的運(yùn)行管理機(jī)制。此外,還出現(xiàn)了基于CDIO的課程設(shè)計(jì)實(shí)踐[3]、基于課程群的計(jì)算機(jī)專業(yè)課程設(shè)計(jì)探索與實(shí)踐[4]、基于集中形式的課程設(shè)計(jì)[5]等探索。
筆者在連續(xù)幾屆的教學(xué)過程中發(fā)現(xiàn),計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的數(shù)據(jù)庫、軟件工程課程設(shè)計(jì)的基本理論知識,大部分學(xué)生雖然能夠掌握,卻未能很好地進(jìn)行綜合課程實(shí)踐。體現(xiàn)出來的問題主要包括:①在實(shí)踐環(huán)節(jié)動手能力偏低,面對實(shí)踐要求不知道該如何入手;②無法較好地將理論聯(lián)系實(shí)際。針對以上問題,可以采用復(fù)用驅(qū)動的軟件工程課程設(shè)計(jì)教學(xué)方式[6]。
軟件復(fù)用是在軟件開發(fā)中避免重復(fù)勞動的解決方案,其出發(fā)點(diǎn)是應(yīng)用系統(tǒng)的開發(fā)不再采用一切“從零開始”的模式,而是以已有的工作為基礎(chǔ),充分利用過去應(yīng)用系統(tǒng)開發(fā)中積累的知識和經(jīng)驗(yàn),如需求分析結(jié)果、設(shè)計(jì)方案、源代碼、測試計(jì)劃及測試案例等,從而將開發(fā)的重點(diǎn)集中于應(yīng)用的特有構(gòu)成成分[7]?;谲浖?fù)用的思想,筆者設(shè)置了軟件工程課程設(shè)計(jì)的實(shí)踐原則,包括明確復(fù)用思想、鼓勵(lì)成果共享、增加討論交流,希望通過復(fù)用驅(qū)動的實(shí)踐,讓學(xué)生學(xué)會基于復(fù)用的軟件共享和協(xié)同開發(fā)。筆者通過相應(yīng)的教學(xué)輔助手段,在計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的數(shù)據(jù)庫、軟件工程課程設(shè)計(jì)中進(jìn)行了實(shí)踐,并取得了一定效果[6]。
2.1 實(shí)踐方式
物聯(lián)網(wǎng)工程專業(yè)的物聯(lián)網(wǎng)綜合課程設(shè)計(jì)課程的整個(gè)過程以學(xué)生為主、教師為輔,實(shí)踐過程如圖1所示。
圖1 物聯(lián)網(wǎng)綜合課程設(shè)計(jì)課程的實(shí)踐過程
實(shí)踐過程主要包括6個(gè)環(huán)節(jié)。
(1)理解軟件復(fù)用。學(xué)生在軟件工程課程的理論教學(xué)中學(xué)習(xí)軟件復(fù)用的思想及途徑。在綜合課程設(shè)計(jì)的第1節(jié)課上,教師說明課程設(shè)計(jì)要達(dá)到的目標(biāo),并介紹系統(tǒng)需求分析、設(shè)計(jì)、實(shí)現(xiàn)及測試各階段可能產(chǎn)生的軟件復(fù)用成果及復(fù)用方式,引導(dǎo)學(xué)生理解分析和設(shè)計(jì)模型的重要性,特別強(qiáng)調(diào)編碼應(yīng)從原有的照搬代碼轉(zhuǎn)變?yōu)槔斫獯a、改進(jìn)代碼、新建代碼。
(2)分組選題。以往的綜合課程設(shè)計(jì)通常設(shè)定2~3人組成項(xiàng)目組完成相應(yīng)的項(xiàng)目,帶來的問題是動手能力差的學(xué)生在畏難情緒的驅(qū)使下選擇加入項(xiàng)目組,而部分學(xué)生在團(tuán)隊(duì)開發(fā)中又不愿意參與協(xié)作,導(dǎo)致動手能力和協(xié)同能力沒有得到有效的鍛煉。因此,本次綜合課程設(shè)計(jì)建議學(xué)生自由分組,大于2人的小組將在選題后對每個(gè)成員的工作量進(jìn)行考核。為了讓每個(gè)學(xué)生都能在綜合課程設(shè)計(jì)中得到鍛煉和提高,教師在選題和實(shí)現(xiàn)方式上未做限制,鼓勵(lì)學(xué)生根據(jù)自己的特長選擇熟練的開發(fā)平臺和感興趣的內(nèi)容。此外,建議在選題時(shí)就考慮軟件復(fù)用,但不能侵犯知識產(chǎn)權(quán)。提示學(xué)生有3種軟件復(fù)用的途徑:開源平臺(如http://www.oschina.net/)、自己已有的項(xiàng)目、其他同學(xué)的項(xiàng)目,其中最后一類復(fù)用需征得其他同學(xué)許可。
(3)項(xiàng)目開發(fā)。學(xué)生可選擇一種開發(fā)模型,如快速原型模型或敏捷模型完成項(xiàng)目開發(fā)。
(4)文檔撰寫。文檔是系統(tǒng)工程實(shí)踐中的重要內(nèi)容[8],但學(xué)生通常更關(guān)注可運(yùn)行的系統(tǒng)。為了讓學(xué)生進(jìn)一步體會實(shí)踐的工程化和規(guī)范化,課程增加了文檔撰寫的訓(xùn)練。通過在綜合課程設(shè)計(jì)中的示例講解,讓學(xué)生理解需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測試各階段文檔撰寫的規(guī)范和要求,并將文檔質(zhì)量作為綜合課程設(shè)計(jì)成績評價(jià)的內(nèi)容之一。
(5)過程管理。在60學(xué)時(shí)的綜合課程設(shè)計(jì)中,教師繼續(xù)在需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測試等階段結(jié)束時(shí)進(jìn)行項(xiàng)目組的檢查和匯報(bào),項(xiàng)目組需要說明可供復(fù)用的成果及復(fù)用其他成果的效果,實(shí)現(xiàn)了“班級項(xiàng)目管理”,即任課教師作為班級中各項(xiàng)目組的負(fù)責(zé)人參與到項(xiàng)目的管理過程中,確保項(xiàng)目組成員各司其職、項(xiàng)目順利進(jìn)行。此外,針對階段檢查中發(fā)現(xiàn)的問題,增加了開發(fā)過程中的問題跟蹤及解決環(huán)節(jié),以此訓(xùn)練學(xué)生解決問題及協(xié)作交流的實(shí)踐能力。課程設(shè)計(jì)結(jié)束時(shí)由各項(xiàng)目組演示系統(tǒng),總結(jié)、交流開發(fā)中存在的問題及相關(guān)收獲。通過以上措施,帶動項(xiàng)目組內(nèi)和項(xiàng)目組間的討論交流,并通過交流加強(qiáng)學(xué)生的團(tuán)隊(duì)精神和協(xié)作能力。
(6)分級評價(jià)。為了開展有針對性的教學(xué),避免學(xué)生的學(xué)習(xí)效果出現(xiàn)兩極分化,使得每個(gè)學(xué)生都能投入到綜合課程設(shè)計(jì)中并有所收獲,同時(shí)培養(yǎng)學(xué)生的創(chuàng)新意識,激發(fā)學(xué)生的積極性和創(chuàng)造性,筆者制定了復(fù)用分級評價(jià)的原則。即以軟件復(fù)用為基礎(chǔ),按照完全復(fù)用、修改后復(fù)用、復(fù)用后創(chuàng)新、完全創(chuàng)新4個(gè)層次對學(xué)生的項(xiàng)目完成情況進(jìn)行評價(jià),對應(yīng)及格、中、良、優(yōu)4類成績,評價(jià)中包括成果的復(fù)用次數(shù)、可復(fù)用程度、創(chuàng)新性、項(xiàng)目的完成時(shí)間和質(zhì)量等因素。
2.2 實(shí)踐結(jié)果
在3周的時(shí)間里,共22名學(xué)生采用2.1中的實(shí)踐方式進(jìn)行了物聯(lián)網(wǎng)綜合課程設(shè)計(jì)實(shí)踐。學(xué)生綜合應(yīng)用以往所學(xué)的專業(yè)知識完成了一個(gè)項(xiàng)目的需求分析、設(shè)計(jì)、實(shí)現(xiàn)與測試,共分為20個(gè)單人組和1個(gè)2人組,21個(gè)項(xiàng)目組或多或少都進(jìn)行了軟件復(fù)用。由于目前智能終端比較流行,全班約有50%的學(xué)生選擇了Android開發(fā)項(xiàng)目。下面從復(fù)用來源、復(fù)用對象、復(fù)用方式、項(xiàng)目結(jié)果等4個(gè)方面對本次綜合課程設(shè)計(jì)實(shí)踐進(jìn)行說明。2.2.1復(fù)用來源
各小組選擇復(fù)用對象的來源主要是開源網(wǎng)站和自己以前做過的項(xiàng)目,有1個(gè)小組的項(xiàng)目中還同時(shí)涉及了兩種以上復(fù)用來源,具體情況見表1。2.2.2復(fù)用對象
表1 復(fù)用來源
在復(fù)用時(shí)大多數(shù)項(xiàng)目組進(jìn)行了代碼復(fù)用,僅有1個(gè)小組實(shí)現(xiàn)了設(shè)計(jì)復(fù)用,對已有的類圖和順序圖進(jìn)行了復(fù)用,情況見表2。2.2.3復(fù)用方式
表2 復(fù)用對象
從是否修改復(fù)用對象來看,21個(gè)項(xiàng)目組采用的各類復(fù)用方式可以總結(jié)為3種,即完全復(fù)用、修改后復(fù)用、復(fù)用后創(chuàng)新,具體情況見表3。
表3 復(fù)用方式
本次課程設(shè)計(jì)選題上有一定共性,例如有7個(gè)小組選擇了APP游戲(拼圖、坦克大戰(zhàn)、俄羅斯方塊、出氣筒)或桌面游戲(2048、連連看、黑白棋),有4個(gè)小組選擇了信息管理類項(xiàng)目(圖書管理、學(xué)生信息管理、商品庫存管理、醫(yī)院預(yù)約掛號信息管理)。在各組匯報(bào)需求后,教師明確提出鼓勵(lì)組間復(fù)用,但學(xué)生沒有深入分析各類項(xiàng)目需求的共性,本次綜合課程設(shè)計(jì)中沒有實(shí)現(xiàn)小組間復(fù)用。
2.2.4項(xiàng)目結(jié)果
在最后的項(xiàng)目匯報(bào)中,有12個(gè)小組的系統(tǒng)可以正常運(yùn)行;6個(gè)小組的系統(tǒng)可以運(yùn)行,但存在較明顯的錯(cuò)誤;3個(gè)小組的系統(tǒng)沒有完全實(shí)現(xiàn),不能進(jìn)行演示。
通過與系統(tǒng)沒有完全實(shí)現(xiàn)的3個(gè)小組進(jìn)行交流,主要原因是學(xué)生的前期基礎(chǔ)較差,在理解代碼后,對程序調(diào)試中遇到的問題需要花大量時(shí)間去解決,導(dǎo)致只實(shí)現(xiàn)了部分功能,不能進(jìn)行完整系統(tǒng)的演示。
目前,昆明理工大學(xué)已將軟件復(fù)用思想應(yīng)用在計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的數(shù)據(jù)庫、軟件工程課程設(shè)計(jì)及物聯(lián)網(wǎng)工程專業(yè)的物聯(lián)網(wǎng)綜合課程設(shè)計(jì)的教學(xué)實(shí)踐中。結(jié)果表明,學(xué)生學(xué)習(xí)的主動性和積極性有所提高,動手和實(shí)踐能力得到了一定鍛煉,特別是對動手能力差的學(xué)生,基于軟件復(fù)用的方法可以從一定程度上幫助其克服畏難情緒。
通過分析計(jì)算機(jī)類專業(yè)綜合課程設(shè)計(jì)實(shí)踐中的復(fù)用,筆者發(fā)現(xiàn)大多數(shù)小組進(jìn)行的軟件復(fù)用包括:修改復(fù)用代碼中的錯(cuò)誤使其可以運(yùn)行、修改復(fù)用對象的界面、增加或刪除復(fù)用對象的功能等。學(xué)生大多傾向在復(fù)用對象的基礎(chǔ)上增加一些界面和功能方面的個(gè)性化的內(nèi)容,但整個(gè)項(xiàng)目的目標(biāo)和主要內(nèi)容仍然受限于復(fù)用對象,未能體現(xiàn)學(xué)生自己的想法,缺少創(chuàng)新性和創(chuàng)造性。因此,學(xué)生的實(shí)際動手能力雖然得到了鍛煉,但其獨(dú)立分析問題和解決問題的能力并沒有太大提高。此外,大多數(shù)小組主要是復(fù)用代碼,沒有實(shí)現(xiàn)分析模型和設(shè)計(jì)模型的復(fù)用,后期又出現(xiàn)了基于代碼建立或修改分析模型和設(shè)計(jì)模型的情況,未能較好地理解需求分析、設(shè)計(jì)、實(shí)現(xiàn)各階段的目標(biāo)和要求。
為了進(jìn)一步改進(jìn)實(shí)踐教學(xué)質(zhì)量,激發(fā)學(xué)生的創(chuàng)新思維和創(chuàng)新意識,使其掌握思考問題、解決問題的方法,提高學(xué)生的創(chuàng)新能力和實(shí)踐能力,筆者考慮從以下幾個(gè)方面改進(jìn)綜合課程設(shè)計(jì)教學(xué):①進(jìn)一步細(xì)化并改進(jìn)現(xiàn)有成績評價(jià)方式,調(diào)動學(xué)生的主動性和積極性;②進(jìn)一步完善綜合課程設(shè)計(jì)的教學(xué)實(shí)踐平臺,通過實(shí)踐在需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測試等各階段的成果管理、項(xiàng)目進(jìn)度管理和數(shù)據(jù)管理等功能,為教學(xué)提供資源共享和復(fù)用支持;③了解每個(gè)學(xué)生的實(shí)際情況,從選題階段開始進(jìn)行有針對性地引導(dǎo),讓動手能力差的學(xué)生克服畏難情緒,通過軟件復(fù)用鍛煉其理解系統(tǒng)和修改系統(tǒng)的能力;④鼓勵(lì)有想法的學(xué)生進(jìn)行創(chuàng)新實(shí)踐,提升其分析問題和解決問題的能力,努力達(dá)到讓所有學(xué)生的實(shí)踐能力都得到提升的預(yù)期目標(biāo)。
實(shí)踐表明,基于軟件復(fù)用的計(jì)算機(jī)類專業(yè)綜合課程設(shè)計(jì)教學(xué)方式在一定程度上改進(jìn)了教學(xué)效果,提高了學(xué)生的學(xué)習(xí)積極性和動手實(shí)踐能力,但仍然存在一些問題。筆者將繼續(xù)改進(jìn)成績評價(jià)方式、完善教學(xué)實(shí)踐平臺,以學(xué)生為中心,通過綜合課程設(shè)計(jì)鍛煉學(xué)生理解問題、分析問題和解決問題的能力,鼓勵(lì)并激發(fā)學(xué)生的創(chuàng)新意識。
[1] 申杰. 計(jì)算機(jī)專業(yè)綜合課程設(shè)計(jì)的探索與實(shí)踐[J]. 計(jì)算機(jī)教育. 2010(6): 66-68, 82.
[2] 吳強(qiáng), 楊全勝, 王曉蔚. 計(jì)算機(jī)綜合課程設(shè)計(jì)實(shí)驗(yàn)平臺建設(shè)及應(yīng)用[J]. 實(shí)驗(yàn)技術(shù)與管理.2009, 26(10): 101-103.
[3] 李春英, 湯志康. CDIO模式下的軟件工程課程設(shè)計(jì)實(shí)踐[J]. 實(shí)驗(yàn)技術(shù)與管理. 2011, 28(6): 173-174, 178.
[4] 李竹林, 王文發(fā), 許淳. 基于課程群的計(jì)算機(jī)專業(yè)課程設(shè)計(jì)探索與實(shí)踐[J]. 電子設(shè)計(jì)工程. 2013, 21(20): 7-9.
[5] 王榮海, 曾玉珠, 廖作斌. 基于集中形式的軟件工程課程設(shè)計(jì)[J]. 計(jì)算機(jī)教育. 2010(17): 96-98.
[6] 姜瑛, 丁家滿.復(fù)用驅(qū)動的軟件工程課程設(shè)計(jì)教學(xué)方式探索[J]. 計(jì)算機(jī)工程. 2013(Z): 22-24.
[7] 楊芙清, 梅宏, 李克勤. 軟件復(fù)用與軟件構(gòu)件技術(shù)[J].電子學(xué)報(bào), 1999, 27(2): 68-75.
[8] 楊珂, 雷開彬, 楊玉涵. 軟件工程專業(yè)學(xué)生的文檔能力培養(yǎng)[J]. 計(jì)算機(jī)教育, 2014(10): 8-11,15.
(編輯: 史志偉 )
1672-5913(2017)02-0054-04
G642
昆明理工大學(xué)教育教學(xué)改革與研究課題(NO. YB201419)。
姜瑛,女,教授,研究方向?yàn)檐浖|(zhì)量保證與測試、云計(jì)算、大數(shù)據(jù)分析、軟件工程,jy_910@163.com。