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

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