張 睿,趙 娜,張永梅,潘理虎,趙淑芳,閆耀東
(1.太原科技大學 計算機科學與技術學院,山西 太原 030024;2.北方工業大學 計算機學院,北京 100144)
軟件工程是講授軟件工程的基本原理與方法,用工程的理論來指導計算機軟件開發與維護的一門核心課程,其教學效果直接影響著學生的軟件開發能力與項目管理能力[1-2],與創新型軟件工程人才的培養緊密聯系。由于其知識面廣、理論知識豐富、實踐性強,因此一直是高校教學的重點和難點。
在現有的軟件工程教學中,雖然兼具了理論教學和實踐教學,但是由于實踐教學課時少、考核標準不確定等原因,教學方式往往對理論知識的講解較為側重。課堂教學以教師和教材為中心,運用傳統的“一言堂”模式,學生只是被動地聽講,學習效果不明顯。在課程結束后,雖掌握了部分理論知識,但大多都缺乏軟件工程的基本技能,教學理論與實踐應用相脫節,所學理論知識無法滿足社會需求,在職場競爭中不具優勢。
互鎖的概念來自于計算機總線中的異步通訊方式[3]。“互鎖式”教學模式的提出,將教師和學生比作通訊中的主模塊與從模塊,當教師作為主模塊向學生所屬的從模塊發出互動信號后,應確保學生明確其所提問題。學生根據教師所提問題進行探索和討論,給出相應的回答并接收老師的反饋,從而使教師與學生形成互鎖關系。“互鎖式”教學模式的構建,以問題為導向,以賽項為驅動,以參與式BOPPPS 為主體,從而形成層層互動、層層反饋的教學模型,其模型示意如圖1所示。
(1)BOPPPS 是一種閉環式教學,其重點強調學生的積極參與和反饋。它將教學過程劃分為6 個要素,并根據教學中學生的參與和反饋情況來對后續課程進行調整和優化[4-5]。其6 要素分別為:①導入B(Bridge-in):即教學開始前的引入,以此來激發學生的學習興趣;②目標O(Objective):讓學生明確了解其在課程結束后應取得的學習效果,便于學生進行精確的自我評估;③前測P(Pre-assessment):通過課前摸底幫助教師了解學生的相關知識基礎,從而及時調整課堂節奏;④參與式學習P(Participatory):是該模式的核心要素,強調學生能夠主動參與課堂教學;⑤后測P(Post-assessment):通過課后的測試對教師的授課效果和學生的學習效果進行檢驗;⑥總結S(Summary):幫助學生對自己所學的知識進行回顧總結并使其系統化,進一步促進學生反思自己學到了什么。

圖1 “互鎖式”教學模式示意圖
(2)PBL((Problem-Based Learning)是以問題為導向,以學生為中心,強調通過小組合作的方式解決問題的一種教學方法[6-7]。在這種教學方法中,學生不再被動地接受知識,而是通過小組協作主動地發現問題、解決問題,真正地將知識內化為自己所有。
(3)賽項驅動是指通過組織學生參加相關的比賽項目活動,來加深學生對所學知識的理解,并提高專業實踐能力,從而進一步通過比賽來促進教學效果的提升,達到“以賽促學”的目的[8]。該教學方法可以有效提升學生的綜合素質,使其創新思維、自主研究和團隊協作的能力得到鍛煉,縮短課程教學與社會需求之間的差距。
目前,BOPPPS、PBL、賽項驅動都是較流行的教學方法,但單一教學方法的使用無法實現現代課堂培養高素質全面發展人才的目標。BOPPPS 幫助教師將課堂進行模塊劃分,使課堂教學更加完整、有序,但其核心要素參與式學習中對于師生之間的互動形式沒有加以限定,問題驅動教學法PBL 在參與式學習中的引入將更加明確課堂參與的形式。兩種教學方法的結合有效提升了課堂教學效果,但在滿足學生課程拓展的需求方面仍有欠缺;而賽項驅動教學加強了課程拓展,但對課堂學習模式沒有明確界定。“互鎖式”教學模式將3 種教學方法進行了有機的結合,使課程教學更加完整,教學過程更具互動性與反饋性。學生成為課堂與項目比賽的主體,教師的角色開始從單獨的講授向組織、引導、點評、答疑的方向轉變,且在指導學生比賽項目的過程中,能夠促進教師進行教學反思,不斷提高其教學能力,實現教學設計的進一步優化,從而培養出理論知識與實踐能力兼具的創新性復合型人才。
在以BOPPPS 為主體引入“互鎖式”教學模式時,不再將其局限于每一堂課的教學當中,而是以章節為基礎,在每一章節的教學活動中對“互鎖式”教學模式加以應用。
1)章節導入是優質教學效果的開端。
章節導入的目的是為了激發學生的學習興趣,良好的章節導入可以迅速建立學生與課堂之間的聯系,使他們知道為什么要進行本章節的學習。章節導入的形式可以是相關的故事、案例,也可以通過回顧之前章節的內容來引出將要學習的內容。如在學習“需求分析”這一章時,教師可以向學生展示一個情景:“當你接到一個軟件開發的任務時,你首先會做些什么?”,通過學生開放式的回答,教師可以自然地引出需求分析的相關內容。
2)章節的學習目標是整個教學內容圍繞的中心。
章節的學習目標介紹要清晰明確,減少“理解”“掌握”等不確定性詞語的使用,通過明確告訴學生在完成章節學習后“會做什么、做到什么程度”幫助學生反思學習效果。如在給出“總體設計”章節的學習目標時,可明確告訴學生在章節學習結束后要明確說出軟件結構優化的7 原則。
3)章節前測有助于教師及時調整教學深度。
章節正式學習前的摸底測驗有助于教師了解學生的知識基礎,以便后續學習內容的開展。章節前測的問題無需太過復雜,可以是一些具有開放性的題目,根據學生的不同回答,教師可以了解不同學生的知識背景,從而及時調整教學方案,如在“實現”章節,教師可通過詢問學生的編程語言基礎來幫助學生選擇最合適的程序設計語言來進行軟件項目的編寫。
4)基于問題導向的參與式學習是整個教學的核心環節。
軟件工程課程的教學目標是培養理論知識扎實、實踐鍛煉完整的高素質專業性人才,因此在以問題為導向的參與式學習中,教師的講授占課堂教學的比例縮小,課堂的大部分時間留給學生自主研究討論,充分發揮學生在教學中的主體性。由于學生很少有機會可以接觸到軟件工程中有關反面經驗的總結,教師可向學生提供一個功能結構并不完善、規模大小適中的教學系統,并將其貫穿于軟件工程教學的全過程。教師根據該不完善的軟件系統提出問題,學生采取逆向思維,分成小組自主學習并進行探索,發現該軟件系統的不足,并運用軟件工程的基本原理來正向完成該教學系統的開發、測試以及維護的全過程。在每一章節的學習結束時,學生需向教師提交軟件開發過程中對應章節內容所產生的文檔文件,各階段的文檔見表1。在課程結束時,各個小組應向教師提交完善后的教學系統,并針對完成的系統進行最終答辯。在此教學過程中,每個學生都參與了課程的學習,成為認知的主體和知識的主動構建者,而教師作為課堂教學的協助者,起引導、啟發和監控教學過程的作用,真正實現從“以教師為中心”向“以學生為中心”的轉變。
5)章節后測是對章節目標的有效反饋。
在章節學習結束之后,可通過后測來對學生的學習效果進行評估。與課后作業相比,章節后測更具及時性與真實性,后測的形式可根據章節的特點來選擇問卷、選擇題、簡答題和問答題等不同形式。其后測問題應與前測問題相呼應,并應通過后測結果來對章節目標進行反饋。如在“可行性研究”章節中,后測問題可選用問答形式,要求學生根據給定的系統寫出問題定義并對系統的可行性進行分析,以檢測學生是否達到學習目標。

表1 學習過程的文檔提交
6)章節總結是將知識系統化的重要環節。
章節總結是一個歸納整理的環節,在這一教學過程中,教師可再次強調本章節的重點,并引導學生梳理知識點,將所學知識串聯起來,自主構建章節知識體系框架,從而實現知識的系統化。
7)賽項驅動是提高學生綜合素質的有效手段。
賽項驅動貫穿于軟件工程教學的全過程,在課程開始之際,教師向學生介紹“互聯網+”大學生創新創業大賽,使學生對該賽程有大致的了解。在學習過程中,學生根據時間節點每4~6 人組成一個項目小組準備比賽,有任何問題都可與教師進行及時溝通,且該比賽提交作品時間恰好與軟件工程課程結束時間相對應,在完善教師所給軟件系統的同時,學生將獨立完成另一個軟件系統的開發與維護,有效進行課堂的拓展,學生的專業實踐技能通過比賽得到進一步的提高,從“大致了解”向“嫻熟掌握”轉變,以此達到項目驅動的教學效果。
以第5 章“總體設計”為例,以BOPPPS 為主體的“互鎖式”章節教學具體過程見表2。
在“互鎖式”教學模式下,課程的考核方式發生轉變,既要考查學生的基礎知識,又要考查學生的創新能力、實踐能力以及團隊合作能力,因此,在新的考核設計中,期末考試成績的權重縮小,過程性考核成為考核的主體部分。考核以百分制計算,各評價指標所占比例如圖所示2。其中,課程軟件系統開發結果的考核包括系統完整度、可用性、界面效果和測試質量;比賽項目成果的考核包括項目創新程度、小組合作能力以及最終名次。

表2 “互鎖式”章節教學實例(總體設計授課時長:6 學時)

圖2 各評價指標占比
將太原科技大學2017 級軟件工程專業采用“互鎖式”教學模式授課的70 名學生與2017 級計算機科學與技術專業未采用“互鎖式”教學模式授課的76 名學生進行比較,其《軟件工程》課程的成績分布區間如圖3 所示。
從圖3 中可以看出,2017 級軟件工程專業的學生課程成績超過半數分布在[80,90]區間內,其課程成績的良好率高于計算機科學與技術專業的學生,且全部學生成績合格,同時90 分以上人數占比高于計算機科學與技術專業的學生,“互鎖式”教學模式取得了顯著的教學效果。此外,2017 級軟件工程專業同學在互聯網+創新創業大賽中表現優異。“智行——交叉路口智能交通指揮系統”與“募音網”分別獲山西省互聯網+創新創業大賽創意組的二等獎和三等獎。“藥膳指南”“識—稱”一體化智能冰箱獲太原科技大學第四屆互聯網+創新創業大賽創意組一等獎;“WL 超級實驗室”“鮮品live”“智慧飲水系統”“廢舊書管理處理系統”獲二等獎;“微型巡邏小車”、網絡寵物寄養中心——“愛寵平臺”獲優秀獎。部分學生在比賽之余進行了課程的其他拓展,在教師指導下以第一作者撰寫論文1 篇,參與省級大學生創新創業項目1 項,校級大學生創新創業項目1 項。

圖3 軟件工程專業與計算機科學與技術專業學生課程成績分布
為了更加客觀地了解學生對于課程的主觀感受,在軟件工程課程結束后,分別向兩專業的學生發放調查問卷,采用不記名的方式讓學生對軟件工程課程的學習進行評價。在問卷回收后,利用EpiData3.1 軟件進行數據錄入,SPSS23.0 軟件進行統計分析。卡方檢驗作為一種常用的計數資料的統計方法,用于推斷兩個構成比是否有差異[9],針對問卷結果的定性資料,采用卡方檢驗,分別判斷7 個測量指標在兩組之間有無統計學差異。設定檢驗水平α=0.05,其問卷測量指標及統計結果見表3。
結果顯示,軟件工程專業的學生對于課程在激發學習興趣、發揮學習主動性、提高創新能力、實踐能力、團隊合作能力、知識認知程度及文檔編寫能力等方面的認知均高于計算機科學與技術專業的學生,且該差異具有統計學意義(P<0.05),表明了學生對“互鎖式”教學模式的認可。
教師與學生之間的及時互動是影響教學質量的一個關鍵性因素。基于“互鎖式”教學模式的提出,將BOPPPS、PBL、賽項驅動等多種教學方法有機結合起來,使師生在每一階段的教學過程中都有互動與反饋,解決了師生之間缺乏有效溝通、學生課堂缺乏積極參與的問題。“互鎖式”教學模式的實踐表明,該模式是有效的,學生的積極性、創造性、團隊合作能力、動手實踐能力均得到了鍛煉和提升,教學質量明顯提高,可為需要同時兼顧理論與實踐教學的課程提供參考。

表3 調查問卷及統計結果