?

開放模式的軟件工程實踐教學探索

2016-11-10 09:03張棟蘇曉強
計算機教育 2016年7期
關鍵詞:教學改革

張棟 蘇曉強

摘要:針對目前部分高校軟件工程實踐授課方式的現狀與不足,介紹開放模式的軟件工程實踐教學的開展方式,提出開放模式下的實踐教學模式,并闡述探索過程,最后通過學生的產出評價分析說明教學效果。

關鍵詞:軟件工程實踐;軟件過程;教學改革;開放模式;構建之法

0.引言

軟件工程與實踐課程,是計算機科學與技術和軟件工程兩個專業的核心課程,與偏計算機理論的其他核心課程不同,軟件工程對于實踐應用有著很高的要求。傳統軟件的工程實踐教學模式重理論輕實踐。由于課程教材與行業發展脫節等原因,導致了學生對軟件工程實踐感到乏味空洞、難以理解。本文借鑒鄒欣在《構建之法》中提倡的“Learning by doing”的教學模式,引入企業助教、開設博客、作業開放點評互動、校際間學生網上交流等方式,在分析面向產出的學生評價基礎上,討論開放模式對于軟件工程專業實踐課程探索的意義。

1.軟件工程傳統教學模式現狀與不足

1)課程教材與業界快速發展實際的脫節。

部分高校采用傳統的軟件工程課程教材,偏向瀑布模式的軟件工程理論教學。雖然任課教師對瀑布模式的應用具有豐富的任課經驗,但軟件工程專業又要求學生能夠掌握現代工具和技術思想。脫節的教材可能會導致學生了解業界現在普遍應用或流行的工具和技術思想時缺少相應的指引,畢業時達不到企業期望。

2)教師缺乏豐富的項目實踐經驗。

部分任課教師由于長期從事教學工作缺乏相關項目的實踐經驗。因此部分教師在授課時,不能提供相應的實踐指導,在驗收學生作品時也無法給出工程實際建議。而學生的項目也大多只是虛擬項目、模擬作品,只能夠用于課程驗收,作品本身卻沒有真實價值。

3)重理論輕實踐。

常規的教學模式更偏重理論,教師會在理論課上詳細講解軟件工程思想,但在實踐課上卻更多的是布置相應任務,無法促進實踐教學相融合。學生往往在理論課上一知半解,在實踐課上又體會不到軟件工程的思想,多數學生對于軟件工程理論課的印象就是一堆需要背誦的概念,而對于實踐課則是趕工完成應付驗收的代碼。.

4)師生單向交流,作業封閉評價。

傳統的軟件工程實踐的學生作業提交和老師驗收點評是封閉的單向傳遞。學生只和教師在有限的機會內互動,這往往會消減學生對于實踐作業的持續熱情。在作業評價方面,傳統教學模式更為封閉,缺少開放的點評及建議,導致學生不重視作業的過程,出現抄襲、應付等情況。

2.開放模式的軟件工程實踐教學

針對傳統軟件工程實踐教學模式的不足,許多高校都在不斷地探索軟件工程教學模式的改革,倡導以學生為中心的“Lea|ming by doing”教學理念,提倡合作式學習團隊方式。在軟件工程中,“Learnjng by doing”教學的—個重要特點是學生以項目為驅動組成團隊進行軟件工程的全過程實踐,并通過團隊的合作式學習提高能力、培養學生的素質。在軟件工程教學改革中,不能在某個點或面上進行,應根據軟件工程用于解決軟件開發項目這一目的出發,通過對具體的項目開發進行講解和實踐,使軟件工程中抽象的概念、原理、技術和方法能具體、生動地呈現給學生。

開放模式的軟件工程實踐教學模式,是借鑒鄒欣在《構建之法》一書中提倡的理念,通過以下方式展開:

1)引入企業助教,協助任課教師開展軟件工程實踐。

企業助教的項目經驗應結合教師的授課經驗,保證理論與實踐都重視的情況下,能夠給予學生所需的幫助,并且能夠引起多數學生對于企業項目的關注度。企業助教帶來的IT行業的新思想、多元觀念、規范編碼、技術分享等,.都對軟件工程實踐帶來助益。同時,開放式平臺的教學模式,有利于企業助教不受時空限制,遠程協助教學,通過在博客中的互動作業點評、Github代碼查驗、即時通訊軟件交流等方式完成。

2)開設博客,作業開放點評。

采用博客的方式來完成作業的提交和點評,讓學生能通過網絡平臺,分享自己的成果,接受來自IT業內專業人員的檢視、點評及指導建議,同時還能讓學生參考優秀作業,反思自己作業的不足,鍛煉和培養學生持續寫作的能力。

3)采用階段作業,個人、結隊、團隊項目循序漸進。

軟件工程是一門強調實踐能力的課程,而實踐能力只能不斷地通過完成實踐作業來積累。軟件工程實踐課程的作業模式決定著學生是否具有很好的培養實踐能力。傳統的教學模式只要求學生期末上交作品,上課時匯報進展,但學生往往都會有拖延癥經常出現期末趕工的情況。

讓學生在充足作業訓練量的基礎上,保持每周一定量的實踐工作?!稑嫿ㄖā分芯吞峁┝舜罅康木毩?,在實際教學中,個人、結隊、團隊作業可以依次進行,也可以交叉執行,采用每周作業具體化,保證學生每周都有具體任務。

4)基于真實、有價值用戶的項目驅動。

項目驅動教學法的主要特點是“以項目為主線、教師為主導、學生為主體、注重實踐”。讓學生通過開發實際項目來加深對軟件生命周期理論及各個階段的理解。傳統的軟件工程實踐教學模式往往會出現學生團隊既充當客戶角色又充當開發者角色,自己給自己提需求,自己開發的情況。這種虛擬項目、虛擬作品大多只能提高學生編程開發的能力,達不到學生學習軟件開發不同周期不同需求的學習目的?;谡鎸?、有價值用戶的項目驅動則能很好地彌補這個問題,讓學生團隊自主地跟客戶打交道,了解如何引導需求、分析及整理客戶需求以及最終得到的客戶驗收??蛻舨辉偈抢蠋熁蛘邔W生團隊,而是真實的客戶,所需要的產品不再是學生團隊自己想當然的產品,這種模式能夠更有效的讓學生體驗軟件開發生命周期中的各個階段,培養學生自主學習、分析問題、解決問題的能力。

5)基于文檔的項目評價、驗收。

傳統的軟件工程實踐教學模式的驗收注重學生團隊最終開發出的軟件產品,這往往導致學生最終提交一個可以編譯運行的系統,而出現“重程序、輕文檔”的現象。文檔是軟件產品的組成部分,是一種交流的工具,是開發與管理的依據,也是評審的內容。在軟件開發前需要用相應的文檔來記錄以及規定軟件產品的各功能定義,客戶的需求整理等;在開發過程中則需要有相應文檔來定義團隊間的規范;在開發完成產品交付客戶時需要有相應的使用說明文檔等??梢?,文檔貫穿著軟件開發的整個生命周期。

基于博客文檔的項目評價、驗收可以提高學生對于文檔的重視程度,培養學生的文檔能力。

6)結合團隊分工、開發流程的分數評價體系。

傳統的軟件工程實踐教學模式,由于課時緊張或其他原因,往往會產生“重技術、輕管理”,“重個人,輕團隊”的現象。事實上,軟件項目的成功開發,離不開團隊協作,離不開團隊負責人的管理能力。

基于開發平臺的軟件工程教學模式采用結合團隊分工及團隊開發流程進行打分,團隊的開發模式,PM的管理將占據最終成績的一部分,讓學生體驗團隊管理的經歷,培養學生規范團隊、調整及安排隊員的工作以及合理安排時間進行軟件開發等能力。

3.開放模式的實踐教學模式探索

鄒欣在《構建之法》一書中倡導的軟件工程實踐教學模式已經在部分高校推行,并取得顯著成果。福州大學于2015年在數學與計算機科學學院中首次開設以“Learning by doing”為教學理念,基于開放模式的軟件工程實踐教學模式的課程,實施的對象為計算機類本科生。它的目的在于探索開放模式的實踐教學對軟件工程實踐課程的意義,并與傳統教學模式作比較。

在這次的探索實踐中,借鑒鄒欣在《構建之法》中關于課程安排的建議,并根據實際情況進行調整,最終要求參與實踐課的學生要分別經歷個人、結隊以及團隊3次項目。其中,團隊項目要求發布Alpha版本以及Beta版本產品,并邀請真實用戶進行試用及反饋,同時通過要求團隊使用代碼Github托管、版本控制工具、持續兩周的每日會議以及燃盡圖等方式,最大程度上讓學生體驗企業實際項目的開發過程。在評分方面由企業助教嚴格評分,并設立截止日期,未完成的學生則倒扣成績。最終建立一個公正、及時、有效的評價機制。

表1為本次軟件工程實踐課程的計劃安排表,但實際教學中由于法定長假、其他課程實習等原因,個人項目穿插于結隊項目和團隊項目期間,保證了學生每周都有一定量的作業。

同時不提倡學生提前選擇組隊對象,模擬企業的真實開發團隊很少可以自主選擇。團隊人數限制在4-5人,較少規模的團隊便于學生自主管理和掌控。

團隊分工方面強制性要求所有成員必須參與編程,一旦發現獨干現象將給予零分。傳統的教學模式中常會出現學生“打醬油、抱大腿”現象,為了避免或者盡量減少該種現象發生,強制性要求學生使用Github托管團隊項目,每個人的貢獻日志記錄,提交代碼塊均可以查看。

本次實踐中,結合具體的一個用戶“痛點”項目,給學生提供一個真實的客戶需求。教師安排學生與主要用戶會面,會面期間由學生與客戶自主談話,讓學生體驗如何引導客戶需求,以及如何理解客戶的需求。過后對學生表現稍作點評,之后讓學生自主發揮。

最終驗收時要求學生邀請客戶進行試用、反饋、改進、使用,并選擇完成較好的團隊產品,投入實際上線使用,讓學生繼續體驗軟件維護過程。

4.學生的產出評價分析

這種“Learning by doing”的教學模式,可以激發出多數學生的興趣與熱情。許多學生反映“從沒想過在學生時代還能經歷一次如此正規的開發過程”。事實上,學生缺少的是一個能夠發揮他們熱情與興趣的平臺。在理論課上講授相應軟件工程思想時,常常也有學生表示感慨,比如講授團隊管理及分工方面的知識點時,多個項目經理忍不住在課上各抒己見。這是一種可以把理論與實踐結合在一起的教學模式,能夠讓學生通過實踐去消化、應用理論課上學習的思想。反過來,也可以通過理論課上講授的思想去反思自己實踐上的行為。

在課程結束時,對學生進行問卷調查,收集反饋信息,整理、分析學生學完軟件工程課程后的收獲。問卷主要內容應為調查學生評價每周花在該課程上的時間和在該項目上編寫的代碼量,同時讓學生對自己的軟件工程各種技能能力進行自我評估。

表2是參與該次“Leaning by doing”教學模式下的學生的反饋、總結。

未參與實踐課的學生多數表示,對于開發軟件的概念更多的是停留在敲代碼上,至于其他團隊管理、分工、文檔等方面都不夠重視。參與實踐課的學生多數反映,按照實踐課程要求進行的軟件開發,花在代碼上的時間反而比花在文檔,團隊開會、管理、分工上還要少。收集到的反饋數據也表明,采用新教學模式下的學生更愿意花費更多的時間在該課程上,多數學生反映這種教學模式比較有興趣,更能讓學生自主投入進去。

表3是2014年以傳統教學模式進行授課的軟件工程實踐課程的學生問卷調查的匯總和2015年以基于開放模式的軟件工程實踐教學模式進行授課的學生問卷調查匯總。

傳統教學模式下往往會出現“重個人,輕團隊”“重技術,輕管理”“重理論,輕實踐”等現象,學生們經常會以為軟件開發就等同于編程,因此導致了學生在實踐過程中只注重編程能力,而忽略了團隊的管理、協作等方面。表中數據也顯示,采用“Learing by doing”教學理念,基于開放模式的軟件工程教學模式下的學生,在項目管理、代碼復審以及軟件工程工具的使用上的能力提升都很顯著。

5.結語

實踐表明,開放模式的軟件工程實踐教學模式相比傳統教學模式更能引起學生學習的興趣,也能更好地彌補傳統教學模式中的不足之處?!癓earing by doing”的教學理念,強調理論與實踐的結合,培養學生快速入手,自主學習的能力。下一步,將計劃在計算機專業的實踐課程中運用這種教學模式,盡可能讓學生從大一時就能適應以“Learing by doing”為教學理念。

猜你喜歡
教學改革
完全學分制下選課管理的思考與實踐
金工實習教育對工科院校創客教育影響分析
新形勢下小學語文教學方法研究
譯林版英語教材的人文特點研究
當前農村學校實施“新教育實驗”的研究
構建和改進現代化學校美育工作體系研究
中職學?!吧菊n堂”的調查研究與實踐
高校三維動畫課程教學方法研究
基于人才培養的技工學校德育實效性研究
現代信息技術在高職數學教學改革中的應用研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合