劉詩源 趙海燕 申海偉 胡正坤 王廷梅
(北京聯(lián)合大學應用科技學院 北京 100101)
隨著計算機軟件技術(shù)教育的理念逐漸趨于成熟,對軟件開發(fā)人員的人才培養(yǎng)模式和課程教學模式都有了更加深刻的認識。項目化教學在我國不是新生事物,基于工作過程的行動導向的教學模式逐漸被各高等所院校采納。尤其是近幾年,專業(yè)教材或輔導資料陸續(xù)進行了“項目化”改造,為項目化教學在我國全面推廣奠定了基礎。
北京聯(lián)合大學應用科技學院電子信息系計算機科學與技術(shù)專業(yè)的最重要的培養(yǎng)目標崗位是 WEB開發(fā)工程師,本專業(yè)在2020年為了將教學方式從傳統(tǒng)的記憶性知識為導向轉(zhuǎn)變?yōu)橐皂椖繎媚芰閷?,嘗試性的進行了項目化教學的探索工作,注重提高學生的自學能力和動手能力,培養(yǎng)學生的大國工匠精神,使學生成為具有良好的團隊協(xié)作意識、自學意識和創(chuàng)新意識的高素質(zhì)應用型人才。
該研究中參加項目化教學改革的課程包括《WEB應用設計》《軟件工程》《基于框架的應用開發(fā)》三門專業(yè)課程,以下為各門課程的介紹。
《WEB應用設計》課程的教學內(nèi)容是讓學生掌握WEB應用設計過程中的原型設計、界面設計、架構(gòu)設計、接口設計、數(shù)據(jù)庫設計、開發(fā)流程設計、項目配置設計等環(huán)節(jié)的工作流程和普遍原則。如果不結(jié)合實際的項目,本課程的教學內(nèi)容也只是一些枯燥的記憶性知識,難以引起學生的興趣。
《軟件工程》課程的教學內(nèi)容主要以教師課堂講解工程化的方法(開發(fā)方法)、工具(支持方法的工具)和過程(管理過程),課程內(nèi)容比較抽象、學生因缺乏工程實踐難以理解和接受。
《基于框架的應用開發(fā)》課程的教學內(nèi)容是講解使用框架技術(shù)實現(xiàn)WEB信息系統(tǒng)的原理,并教授一種業(yè)界常用的框架技術(shù),同時圍繞這種框架技術(shù)的相關知識點講解一些小型案例的制作過程。通過課程的學習,學生能夠?qū)W會WEB應用開發(fā)的基本知識點,但是對于企業(yè)實際開發(fā)流程、應用程序設計思想、團隊協(xié)作工具等企業(yè)關注的技能卻完全沒有了解。
項目直接影響著教學效果。首先,項目的確定是根據(jù)教學計劃設計項目內(nèi)容。利用信息化手段對軟件公司的項目內(nèi)容進行調(diào)研,選取其中具有代表性的實戰(zhàn)項目劃分成小項目,結(jié)合歷屆畢業(yè)設計的題目等作為學生所選題目。項目編排要突出其實踐性,按照任務驅(qū)動的思想,從實踐中來,到實踐中去。最后,項目的設計應采用結(jié)構(gòu)化的方法,項目的選擇應循序漸進,難度及標準應與學生的掌握能力保持平衡。
項目化教學中,學習過程為一個人人參與的創(chuàng)造性實踐活動,注重的不是最終結(jié)果,而是完成項目的過程。學生分組完成項目的開發(fā),每位學生除了參與整個項目的開發(fā),也側(cè)重不同的角色,從而感受項目開發(fā)的真實情境。每個角色都有各自所負責的工作,由項目經(jīng)理在開發(fā)平臺上對任務進行發(fā)布,成員領取相應任務,并按照進度在平臺上進行任務完成情況的發(fā)布。學生共同合作,培養(yǎng)大家的團隊合作能力。
項目教學法的重點在學習過程,而不是項目完成的結(jié)果。傳統(tǒng)的教學評估方法與項目教學的評估方法有較大的差別。項目評價采用學生互評、老師評價相結(jié)合的方式,以學生在整個項目完成中起到的作用和遇到困難時找到解決辦法來綜合評定成績。在交流過程中教師應重點關注學生本人自評以及小組成員間的互評,注重對學生的項目完成情況作出總結(jié)性評價,幫助學生發(fā)現(xiàn)項目過程中出現(xiàn)的錯誤和不足并盡快完善。
從通過分析各課程教學現(xiàn)狀可知,教學效果不如預期的原因在于學生缺乏軟件開發(fā)的經(jīng)驗,難以理解與體會到學習課程知識的意義。項目化教學方法能夠為這種情況提供解決方案,就是制造學生開發(fā)項目的環(huán)境,模擬企業(yè)軟件開發(fā)工作崗位任務,改變學生的角色,學生按照職業(yè)崗位的要求將課程知識應用于軟件項目的設計與開發(fā)過程中,體驗崗位工作并完成項目的開發(fā),整個開發(fā)的過程也是收獲知識、提升職業(yè)能力的過程。
基本的設計思路是以培養(yǎng)職業(yè)能力為核心,提高學生職業(yè)綜合素養(yǎng)為目標,基于職業(yè)崗位任務的項目化教學融合課程內(nèi)容與企業(yè)工作任務,突出課程的職業(yè)性、實踐性和開放性的特點。本次實踐根據(jù)職業(yè)崗位工作任務,結(jié)合信息化教學手段、方法,參照企業(yè)軟件開發(fā)流程,任課教師在研讀教材的基礎上將課程內(nèi)容按照項目進行重構(gòu)與知識點的序化,并設計學習任務。
本次項目化教學改革首先是選取合適的項目,以軟件開發(fā)流程為主線,圍繞企業(yè)級項目開發(fā)的各個階段,實現(xiàn)教師與學生在教學與學習過程中角色的轉(zhuǎn)變,使學生身臨其境,在角色體驗過程中激發(fā)學生求知欲,充分發(fā)揮學生的學習自主性,體現(xiàn)職業(yè)適應力和職業(yè)遷移力結(jié)合的職業(yè)能力培養(yǎng)。實踐證明,這是一種成效顯著的教學改革方法。以下為教學活動的各個階段:
(1)選擇項目:利用大數(shù)據(jù)技術(shù)對網(wǎng)絡公司所開發(fā)的經(jīng)典項目進行調(diào)研,并結(jié)合從歷年畢業(yè)設計題目中選取合適的題目,依次作為學生的實訓項目,要求每個項目能將理論知識和實踐技能結(jié)合在一起,具有綜合性,項目實施需要學習新知識、技能,解決過去未遇到的實際問題。本次教學活動共選擇了42個題目作為備選,并為每個題目完善了項目任務書。
(2)發(fā)布任務:教師通過項目開發(fā)平臺把項目任務書分發(fā)給學生,讓學生自由分組并領取任務及所對應的項目經(jīng)理賬號,最終在與教師協(xié)商之后確定各組成員和角色。為了模擬實際的開發(fā)工作流程,每個學生會在項目過程中擔當不同的角色,使得學生需要通過共同合作來完成項目。整個開發(fā)過程培養(yǎng)了大家的團隊合作能力,不僅有益于學生特長的發(fā)揮,而且有助于學生的責任感和協(xié)作精神的形成,體驗到個人與集體共同成長的快樂。
(3)需求分析:教師在《軟件工程》課堂上講授做需求訪談、需求分析的過程和要點,學生就各自模塊形成需求訪談表,由產(chǎn)品經(jīng)理匯總并訪問客戶,形成訪談記錄。所有的功能文檔、會議記錄等都需要有專門負責該角色的學生在開發(fā)平臺上進行上傳。學生再按照所學知識,建立需求分析模型和相關圖表如數(shù)據(jù)流圖、用例圖、流程圖等,形成需求分析說明書。在需求分析說明書的基礎上,學生提取各模塊的功能點,完成各功能點的功能描述,最后匯總為需求規(guī)格說明書。
(4)原型設計:教師在《軟件工程》課堂上講授使用Azure等工具做系統(tǒng)原則設計的過程和要點,學生就各自模塊設計各模塊的原型頁面,由產(chǎn)品經(jīng)理設計首頁、菜單等將各模塊結(jié)合在一起形成系統(tǒng)原型。在《WEB應用設計》課堂上,各組演示系統(tǒng)原型,由教師對系統(tǒng)原型進行審評,指出其中的問題,并要求學生完善需求分析說明書、需求規(guī)格說明書、系統(tǒng)原型等各重要文檔。完善需求的過程,也是學生加深對系統(tǒng)理解的過程。
(5)測試案例設計:教師在《軟件工程》課堂上講授軟件測試的過程和要點,以及測試案例的書寫規(guī)范。學生根據(jù)所學知識完成各模塊的功能測試案例,并在《WEB應用設計》課堂上通過開發(fā)平臺完成測試案例審評,包括小組自評和互評。通過審評環(huán)節(jié),學生將明確系統(tǒng)將要達成的質(zhì)量標準。
(6)界面設計階段:教師在《基于框架的應用開發(fā)》課堂上講授界面設計的設計要點和所需工具。學生運用所學知識將系統(tǒng)原型轉(zhuǎn)化為靜態(tài)頁面。
(7)接口設計階段:教師在《WEB應用設計》課堂上講授軟件接口設計的過程和要點。學生運用所學知識確定前后端接口和各模塊間接口,并完成系統(tǒng)接口設計說明書。在《WEB應用設計》課堂上教師將和學生一起完成接口設計審評。通過審評環(huán)節(jié),學生將明確各模塊的接口功能。
(8)數(shù)據(jù)庫設計階段:教師在《WEB應用設計》課堂上講授數(shù)據(jù)庫設計的過程和要點。學生運用所學知識完成各模塊的表及字段,并組合成系統(tǒng)ER圖,完成數(shù)據(jù)庫設計說明書,最終生成數(shù)據(jù)庫。
(9)架構(gòu)設計階段:在《軟件工程》課堂上,教師講授如何做軟件的架構(gòu)設計和關于設計模式方面的知識。學生需將之前所完成的各項設計工作綜合在一起形成系統(tǒng)簡要設計說明書。
(10)代碼設計階段:教師在《基于框架的應用開發(fā)》課上講授如何使用框架技術(shù)做前后端程序編寫,在《軟件工程》講授面向?qū)ο蟮拇a設計思路、軟件開發(fā)流程和代碼的編碼規(guī)范。學生按照所學知識完成各模塊的代碼結(jié)構(gòu),同時給代碼寫注釋。此階段項目組需完成系統(tǒng)詳細設計說明書,并在《WEB應用設計》課堂上和教師一起完成詳細設計審評。
(11)代碼填充階段:學生完成代碼、實現(xiàn)功能,并進行單元測試。
(12)功能測試階段:各組的測試工程師按照功能測試案例對系統(tǒng)進行測試,并向產(chǎn)品經(jīng)理報告測試結(jié)果;產(chǎn)品經(jīng)理督促代碼開發(fā)者修改bug。
(13)系統(tǒng)驗收階段:各項目組向老師提交并演示系統(tǒng),同時提交所有項目文檔和會議記錄。各項目組對其他項目組的系統(tǒng)進行交叉測試,尋找是否有bug。
三門課程并行進行,具體課程內(nèi)容安排如下表1所示:

表1:項目化教學課程內(nèi)容安排
所有環(huán)節(jié)所產(chǎn)生的文檔、代碼等都需要在開發(fā)平臺上上傳,教師可以看到每個小組上傳的所有內(nèi)容,對項目不同階段的完成時間、完成程度等可以隨時進行考量,并以客戶的身份隨時對項目內(nèi)容進行修正。
項目化教學需要把各項目的所有實踐環(huán)節(jié)進行組合設計,把思想、理論、資源調(diào)配到各項目中,把關注點聚焦到解決問題上,把評價標準著力到能力提升上。教研組堅持以學生為中心、成果為導向、過程為抓手、項目為載體,實現(xiàn)“做中學、學中做,教中練、練中教”、以賽促學、促練、促教,教學相長,最終形成項目化育人環(huán)境,達成應用型人才培養(yǎng)目標。具體到本次探索實踐中,學生的能力素質(zhì)是主要的評分標準,主要包括綜合設計能力、文檔寫作能力、代碼寫作能力、團隊協(xié)作能力、組織管理能力和責任心、紀律素質(zhì)。
《WEB應用設計》的團隊成績由在各次審評活動中所得分數(shù)相加而成,而個人成績則由團隊成員間互評得到,體現(xiàn)了學生的綜合設計能力和團隊協(xié)作能力;
《軟件工程》課程的團隊成績由整個項目組的各文檔的所得分數(shù)相加而成,而個人成績則由文檔中個人任務得完成質(zhì)量和完成時間決定,體現(xiàn)了學生的文檔寫作能力;
《基于框架的應用開發(fā)》課程的團隊成績由整個系統(tǒng)的完成程度及在系統(tǒng)驗收階段被檢測出的 bug數(shù)目和程度決定,而個人成績由各自負責的部分的代碼風格、設計思路、書寫規(guī)范程度以及bug數(shù)目和程度決定,體現(xiàn)了學生的代碼寫作能力和責任心。
在各項目組都有四位學生擔任了特殊角色,他們的工作體現(xiàn)了其組織管理能力。在本次實踐中,教師會根據(jù)他們的特殊任務的完成程度和質(zhì)量給予加分或者減分。
信息化項目教學的應用實踐表明,結(jié)合信息化相關教學手段,采用項目化教學強調(diào)培養(yǎng)學生實踐能力為目標,將學科知識融入項目中,以選取的項目作為載體,將項目分解為各個任務,實現(xiàn)理論和實踐相結(jié)合,教學過程中以任務驅(qū)動,學生通過團隊協(xié)作在完成任務的過程中鍛煉自己的分析思考解決問題能力、培養(yǎng)團隊協(xié)作精神與提高團隊溝通能力。課堂教學不再枯燥無味、擺脫理論灌輸,充分發(fā)揮學生的學習自主性,促使學生從學習者到職業(yè)人的角色變換,突出學生職業(yè)能力的培養(yǎng)。