伍春香+劉斌+李小紅
摘 要:針對目前本科生普遍存在的系統(tǒng)分析能力欠缺、溝通表達能力不足、團隊合作意識不強、文檔素養(yǎng)低等問題,分析本科階段培養(yǎng)目標和軟件行業(yè)人才實際需求,闡述以能力培養(yǎng)為目標的軟件工程教學模式,提出用“能力—培養(yǎng)環(huán)節(jié)”矩陣指導教師落實能力培養(yǎng)的方法,并給出在軟件工程課程中的具體教學實踐。
關(guān)鍵詞:能力培養(yǎng);軟件工程教學;“能力—培養(yǎng)環(huán)節(jié)”矩陣;教學實踐
0 引 言
高等教育的3個主要出口是海外深造、進入工作崗位、國內(nèi)科研院所繼續(xù)學習。從各個渠道反饋的消息得知,各方對高等教育培養(yǎng)出來的學生的滿意度都不是特別高。國外大學教授們反映,中國學生普遍上課發(fā)言少,習慣于被安排,不敢質(zhì)疑權(quán)威,作業(yè)或者課程項目難以提出創(chuàng)新的點子,討論參與度不高;雖然各個行業(yè)都有一部分留學生有了不錯的成就,但相當一部分學生畢業(yè)后的現(xiàn)狀與人們的預(yù)期不一致,即使取得成就的人,也多是局限于專業(yè)技術(shù)崗位,不能在更廣的范圍內(nèi)有所建樹。國內(nèi)企業(yè)界的反饋也不盡如人意,比如華為反饋學生需要再培訓,不能立即進入生產(chǎn)崗位。高校教師們也經(jīng)常提到研究生甚至博士生的科研素質(zhì)低,看不懂論文,不會寫文章,甚至連論文文字敘述、圖表格式、標點符號等都需要老師去修改。因此,大學階段的教育,除了傳授專業(yè)知識,也需要培養(yǎng)學生的能力與素質(zhì)。
1 課程教學應(yīng)以能力培養(yǎng)為目標
每一門課程在專業(yè)課程體系設(shè)置過程中,都有其對應(yīng)的教學目的,比如,軟件工程課程的教學目的是“使學生了解并掌握大型軟件開發(fā),軟件測試、維護與管理的基本原理,從工程化角度培養(yǎng)學生從事軟件開發(fā)、測試、維護與管理的能力”。
課程的教學目的不能簡單理解成“知識傳授”,而應(yīng)是“專業(yè)培養(yǎng)目標”在該課程教學中的具體反映,因此,作為任課教師,在落實課程教學時,應(yīng)該把“課程教學目的”與“專業(yè)培養(yǎng)目標”的關(guān)系考慮在內(nèi),不僅僅講授知識內(nèi)容,也要培養(yǎng)學生的能力和素質(zhì),這樣才能真正體現(xiàn)“專業(yè)培養(yǎng)目標”。在計算機專業(yè)的課程教學中,這一點尤其重要。一方面,計算機科學技術(shù)發(fā)展迅速,使得很多專業(yè)課程涉及的內(nèi)容更新頻率很高,學生畢業(yè)后很快就會面臨新知識,掌握如何學習、運用新知識的方法和能力,對計算機專業(yè)的學生尤其重要。
2 能力及其培養(yǎng)環(huán)節(jié)
2.1 能力及其體現(xiàn)
“能力”是能勝任某項任務(wù)的主觀條件[1],也就是說,能力是完成一項目標或者任務(wù)所體現(xiàn)出來的素質(zhì)。
大學生應(yīng)該具備什么樣的能力?計算機專業(yè)的畢業(yè)生,又該具備什么樣的能力?這應(yīng)與他們畢業(yè)后需要完成的任務(wù)結(jié)合起來考慮。
計算機專業(yè)的畢業(yè)生需要完成的目標或者任務(wù),可能是繼續(xù)研究生學習與深造,也可能是進入工作單位。他們首先面臨的工作目標或任務(wù),是與計算機專業(yè)相關(guān)的。如果一名計算機專業(yè)的學生具備了解決具體專業(yè)問題的素質(zhì),那么,他就具備了勝任專業(yè)問題求解的主觀條件——能力。
作為專業(yè)課的課程教學仍然是以專業(yè)背景下的能力培養(yǎng)為主要目標,即培養(yǎng)學生在解決與專業(yè)相關(guān)的任務(wù)時所需要的素質(zhì)。
2.2 能力培養(yǎng)環(huán)節(jié)矩陣
如何在大學課程的教學中培養(yǎng)學生的專業(yè)能力?
首先,要明確哪些素質(zhì)和能力對學生來說至關(guān)重要。在ACM和IEEE發(fā)布的《計算機科學課程體系規(guī)范2013》(CS2013)[2]有專門的陳述:計算機科學本科生教育應(yīng)該使學生為未來的工作做好全面準備,而不僅僅是向他們傳授技術(shù);而這些素質(zhì)和能力的培養(yǎng)是通過大學階段通識課程的學習經(jīng)歷和專業(yè)課程的教學活動綜合作用達到的。關(guān)于這樣的能力,CS2013也有具體描述:事實上,學生的軟能力(soft skills)(如團隊合作精神、口頭及書面表達溝通能力、時間管理能力、問題解決能力、靈活應(yīng)變能力等)及個人素質(zhì)(如對風險的承受能力、合議共治能力、忍耐力、職業(yè)道德、機會的辨識力、社會責任感、對多元化的理解等)在未來工作中將起到至關(guān)重要的作用;一部分這樣的軟能力和個人素質(zhì)(如忍耐力、時間管理能力、職業(yè)道德、對多元化的理解等)將通過大學的學習生活經(jīng)歷而獲得,而其他部分則需要通過具體的課程教學活動來培養(yǎng)[2]。
其次,要確定大學階段可以通過哪些手段或環(huán)節(jié)實施對上述能力的培養(yǎng)。大學期間,社團活動、業(yè)余科研、導師科研項目、企業(yè)實習等都可以給予學生一定的鍛煉機會;而從教學角度梳理,可以得到這樣一些教學環(huán)節(jié):課堂講授、課堂討論、課后作業(yè)、課外自主學習、個人課程實習、小組課程實踐、課堂報告與畢業(yè)設(shè)計等環(huán)節(jié)。這些教學環(huán)節(jié)側(cè)重點不同,對學生能力培養(yǎng)的作用也不一樣。
將大學階段各種可能給予學生能力鍛煉和素質(zhì)培養(yǎng)的環(huán)節(jié)與其可能培養(yǎng)的能力對應(yīng)起來,得到表1中的各項指標。本課程主要關(guān)注其中的教學環(huán)節(jié),表1中陰影部分不是課程教學所涉及內(nèi)容,不在課程教學考慮范圍之內(nèi)。在各教學環(huán)節(jié)中,畢業(yè)設(shè)計不屬于某一門課程教學的范疇,也不在討論范圍之內(nèi)。
經(jīng)過表1的梳理,教師可以清楚看出哪些環(huán)節(jié)對學生哪些能力的培養(yǎng)有積極作用,只要針對當前學生存在的問題,有的放矢,加強對應(yīng)培養(yǎng)環(huán)節(jié)的內(nèi)容和方法設(shè)計,便可以達到對學生某方面能力和素質(zhì)的培養(yǎng)。
3 基于能力培養(yǎng)的軟件工程教學實踐探索
3.1 以課程實踐帶動能力培養(yǎng)
能力是和實踐結(jié)合在一起的。離開了具體實際問題求解,既不能展現(xiàn)與發(fā)揮人的能力,也不能發(fā)展和鍛煉人的能力。只有將能力的培養(yǎng)和解決具體問題的過程聯(lián)系起來,才可能真正達到鍛煉和培養(yǎng)能力的目的。軟件工程課程按照這一思路著重突出了實踐教學環(huán)節(jié)。
借鑒企業(yè)生產(chǎn)實踐和國外大學課程的教學方法,根據(jù)能力培養(yǎng)需求設(shè)計了一系列實踐教學環(huán)節(jié),如表2所示。在軟件產(chǎn)品生產(chǎn)過程之前,會有組長競選、組長與組員雙向選擇的團隊組建、小組的自由選題3個環(huán)節(jié)。工程化開發(fā)出軟件產(chǎn)品后進行成果展示和課程小結(jié)。在課程實踐過程中,從不同角度培養(yǎng)學生各方面的能力和素質(zhì)。
實踐環(huán)節(jié)與能力培養(yǎng)的對應(yīng)關(guān)系提供了專業(yè)培養(yǎng)目標在實踐教學中的具體對應(yīng)關(guān)系,為教學實踐的實施起到了具體指導作用。
3.2 以能力培養(yǎng)為目標設(shè)計各個教學環(huán)節(jié)
在教學實踐中,軟件工程課程教學利用表2的實踐教學“能力培養(yǎng)環(huán)節(jié)”矩陣,針對當前學生存在的特點,精心設(shè)計了某些環(huán)節(jié),從不同角度采用不同手段解決學生系統(tǒng)分析能力欠缺、溝通表達能力不足、團隊合作意識不強、文檔素養(yǎng)低等問題。
(1) 組長競選帶動管理知識的學習與應(yīng)用。課程采用毛遂自薦和民主選舉的方式確定實踐小組的組長。要求每位同學通過查閱文獻自學“項目經(jīng)理”這個角色的相關(guān)內(nèi)容,包括項目經(jīng)理需要掌握的知識,應(yīng)該具備的能力,需要與哪些人打交道以及職責范圍,在此基礎(chǔ)上,思考“我(不)適合做組長/項目經(jīng)理的理由”并以文字表達。所有認為自己適合做項目組長的同學有1分鐘向全班同學陳述理由,然后全班同學選舉他們認可的項目組長。
這一過程,使每位學生學習項目管理的相關(guān)知識,并實踐了運用這些知識來分析自身的特點以及比較、判斷組長候選人。
(2) 團隊組建體驗真實生存壓力。團隊組建采用雙向選擇。競選成功的組長有權(quán)選擇自己希望招納的組員,其他同學也有權(quán)在所有組長中選擇自己更信服的組長。這樣一場真實的“市場競爭”,讓學生們在推銷自己的過程中體會到了壓力,一定程度上也推動了他們在后續(xù)積極參與課程學習,以針對性地提升自己。
課程教學中,理論課堂采取以小組為單位就座聽課、討論。實踐部分,小組成員以團隊方式完成一個項目的實際開發(fā)。這種全方位的團隊合作,使學生自始至終都意識到團隊的存在,時刻想著以團隊的方式完成所有的學習任務(wù),培養(yǎng)了學生的團隊合作意識。
(3)自主選題提升系統(tǒng)分析與設(shè)計能力。教學不是教師單方面的任務(wù),只有學生參與進來才成其為“教學”。學生參與課程教學是一切教學方法改革的基礎(chǔ)。為此,課程在實踐項目選題上做了改革,采用學生自主選擇感興趣的題目。當可以自己做主選擇做什么的時候,學生的主觀能動性被大大激發(fā),他們自主確定的實踐選題充分展示了什么叫做“創(chuàng)新”。比如,校園快幫、寢室阿拉丁、Miko游戲平臺、資訊集中閱覽器“閱讀者”、背單詞軟件、“買買買”、校園導游咨詢等,當然,教師要在題目的可行性等問題上給予學生小組適當?shù)闹笇А?/p>
在軟件工程的實踐選題改為自主選擇題目后,學生的課程學習投入程度空前高漲,對待開發(fā)系統(tǒng)高度投入,對過程中遇到的問題不愿意回避,必解決之而后快。完整的項目做下來,學生們的系統(tǒng)分析與設(shè)計能力都得到了實質(zhì)性鍛煉和提高。
(4)“示范小組”傳播真實項目經(jīng)驗。由于資源限制,無法讓每個小組都有直接參與實際項目的機會。課程采取了示范小組模式,即讓某小組參與某企業(yè)的實際項目,與企業(yè)的實際開發(fā)團隊并行完成同樣的項目開發(fā),并把完整過程向其他同學匯報。每周,示范小組都有成員去企業(yè)參加業(yè)務(wù)溝通會,課程則定期安排示范小組在課堂上報告他們的進展和體會,示范小組反饋回來的一些在學校不會遇到的問題,讓其他學生體會到課程實踐與真實產(chǎn)品研發(fā)的不同,同時也感受到課程知識對實踐的指導作用。
(5) “錯組結(jié)對”擴大實踐內(nèi)容。在實踐過程中,采用“錯組結(jié)對”的方式,如圖1所示,每個小組將以管理小組的角色管理某個生產(chǎn)小組的開發(fā)活動,讓每位同學在開發(fā)軟件實踐的同時,也體驗到作為管理者應(yīng)該承擔的角色內(nèi)容。
3.3 以自主學習提升學習的有效性
有效教學理論的大規(guī)模教育心理學研究發(fā)現(xiàn):學生通過閱讀的學習效率是10%,通過聽講的學習效率是20%,通過試聽并用的學習效率是30%,采用與他人討論的方式學習效率是70%,采用實踐的方式學習效率是80%,采用教別人的方式學習效率是95%[3]。
課程選擇“教別人”的方式設(shè)置了自主學習部分,即每個小組選擇一個與課程內(nèi)容相關(guān)的選題在課下自學,形成學習報告,并在課堂上展示學習成果,以讓其他同學掌握其所展示的內(nèi)容為評價標準。最近一輪完成的課程教學中,自主學習選題有:敏捷開發(fā)、函數(shù)式編程、軟件開發(fā)社區(qū)、程序設(shè)計語言介紹、需求工程、開源軟件的意義與使用、軟件升級包的制作、基于平臺的開發(fā)、軟件著作權(quán)及其對軟件開發(fā)的指導意義、游戲開發(fā)等內(nèi)容。
這些選題既延伸了課程內(nèi)容,又讓學生在自學工作中,鍛煉了文獻查找與研讀及論文的撰寫。課堂展示環(huán)節(jié)則給了學生一次再創(chuàng)作的體驗,“程序設(shè)計語言介紹”和“需求工程”兩個學習小組甚至將所學內(nèi)容設(shè)計成了小品在課堂上展示,幽默詼諧的表演不僅詮釋了學習內(nèi)容,也展現(xiàn)了小組每位成員的優(yōu)秀風采。這樣“教他人”的方式讓“教”者意氣風發(fā),讓“學”者印象深刻。相信這樣學習到的知識,會讓這些“教”者終生難忘。
3.4 以預(yù)期評測目標引導能力培養(yǎng)
管理學上有句名言:員工只做被考核的事,這句話同樣適用于教學中。學生因為知識體系不完善,對問題的認識存在一定局限性,一定程度上看重分數(shù)是很正常的。合理地把握這樣的學生心理并予以引導是有助于達到教學目標的。
(1)提前發(fā)布文檔標準。課程實踐的文檔評價標準在課程開始初期就發(fā)布給學生,并將“武漢大學本科生畢業(yè)論文(設(shè)計)書寫印制規(guī)范”作為文檔形式規(guī)范和學術(shù)規(guī)范的基本標準。學生在“得高分”的原始目的驅(qū)動下,會按照評價標準中的重要得分點要求的標準去做,看似為了得高分,實際上引導學生遵循文檔規(guī)范,同時也了解了基本學術(shù)論文的撰寫要求,提升了文檔素養(yǎng)。
(2)提前發(fā)布成績評定標準。圖2所示為課程最新一版的成績評定標準。
第一節(jié)課就發(fā)布課程的最終成績評定方法。在課程進行中會分階段發(fā)布課程成績,這可以促使學生及時調(diào)整自己在課程中的學習狀態(tài)和學習目標。在這樣的學習過程中,學生時刻都能知道自己目前已得到的成績,在切身利益相關(guān)的情況去做判斷與選擇,時間管理、風險分析、靈活的計劃調(diào)整等能力得到了直接鍛煉和提升。
4 結(jié) 語
大學教育應(yīng)該為學生一生的發(fā)展奠定扎實基礎(chǔ),大學階段對學生的培養(yǎng)通過每一門具體課程的教學活動來落實,因此,課程教學應(yīng)直接、具體地落實“專業(yè)培養(yǎng)目標”。
軟件工程課程在教學實踐中做了一系列探索,通過“能力培養(yǎng)環(huán)節(jié)”矩陣幫助教師梳理培養(yǎng)不同能力的各個教學環(huán)節(jié),從而針對性地設(shè)計教學環(huán)節(jié)的實施方法,從系統(tǒng)分析能力、溝通表達能力、團隊合作意識、文檔素養(yǎng)等多方面鍛煉和提升了學生的能力和素質(zhì),大大改善了課程的授課效果。當學生以匿名的方式在課程群里發(fā)出圖3所示的個人時間分配比例,并且說出“然后發(fā)現(xiàn)軟工又有用又好玩,花的時間就不在乎了……”,就可以看到作為選修課的軟件工程在學生心目中的印象得到徹底改變。
教學研究成果是教師在教學實踐中探索出的經(jīng)驗性積累,由于沒有規(guī)范性的表達,一直存在推廣的困難。一種有效的教學方法如果不能得到推廣,就無法在更廣的范圍檢驗其成效。在軟件工程領(lǐng)域,軟件開發(fā)過程以框架模型的方式呈現(xiàn),指導了諸多開發(fā)團隊的工程實踐。在下一步的研究中,課程研究將借鑒這種思路,探索教學方法的規(guī)范化表達,以促成更多的教學經(jīng)驗在更大范圍的教學實踐中得到推廣,從而惠及更多師生。
參考文獻:
[1] 中國社會科學院語言研究所詞典編輯室編. 現(xiàn)代漢語詞典(2002年增補本)[M]. 北京: 商務(wù)印書館, 2002.
[2] The Joint Task Force on Computing Curricula Association for Computing Machinery (ACM)&IEEE Computer Society. Computer Science Curricula 2013[EB/OL]. (2013-12-20)[2016-12-20]. http://www.acm.org/education/CS2013-final-report.pdf.
[3] 希爾伯曼. 積極學習: 101種有效教學策略[M]. 陸怡如, 譯. 上海: 華東師范大學出版社, 2005.
(編輯:郭田珍)