丁智國
(浙江師范大學 數理與信息工程學院,浙江 金華 321004)
翻轉課堂在軟件體系結構課程教學中的實踐
丁智國
(浙江師范大學 數理與信息工程學院,浙江 金華 321004)
隨著IT技術的發展及其在教育領域的廣泛應用,翻轉課堂教學模式在現代教學過程中獲得廣泛的發展應用。文章分析當前軟件體系結構課程的特點和教學現狀,闡述如何以任務驅動為主線,實現課程教學之前、之中和之后的三部曲操作,完成翻轉教學。
翻轉課堂;任務驅動;軟件體系結構;教學改革實踐
隨著IT技術的發展,翻轉課堂(f ipped classroom或inverted classroom)作為一種新興教學模式,在現代教學過程中得到廣泛的研究應用,也被稱為是影響未來課堂教學的重大技術變革。這種教學模式來源于美國的一些中小學,其目的是考慮學生的個性化從而進行針對性教學。傳統教學模式以教師為中心并占據課堂上大部分時間,與之不同的是,翻轉課堂教學以學生為中心,要求學生課前對教師布置的與教學主題相關的資源進行預先學習,學生帶著問題聽課,教師的角色從“教”翻轉為“導”和“答”,學生的角色則從“聽”翻轉為“問”,即教師的主要任務是基于學生學習情況進行引導,進而針對教學內容進行答疑解惑。教師與學生角色的轉換強調學生的主體地位,這種新的教學模式更注重學生學習能力的培養,有助于激發學生的學習積極性。研究和應用結果表明,該種模式能激發學生的學習主動性,具有良好的應用效果[12]。
軟件架構師是軟件項目的總設計師,是培養軟件人才的最高級階段,軟件質量本質上也是由架構決定的,因此軟件體系結構課程在軟件工程專業教學及人才培養中扮演著重要的角色;然而,軟件體系結構的本質特征和教學中存在的問題使得該課程的教學效果一直不太理想[3]。近年來,慕課(MOOCs)的迅猛發展為翻轉課堂教學模式的實施提供了良好的技術支持,筆者借鑒翻轉課堂這種新興教學模式的諸多優點,對軟件體系結構課程教學改革進行思考并作一些探索性的實踐。
軟件體系結構作為軟件工程專業高年級的一門專業選修課,教學目的是讓學生在學完該門課程后,可以從宏觀上了解軟件產品的分析、設計、開發和后期維護。隨著現代軟件規模越來越大,功能越來越復雜,軟件體系結構在大型軟件項目開發中的作用也越來越重要,體系結構的設計作為現代軟件開發中最為重要的一環,設計得是否合理直接關系到軟件開發的成敗,這也對軟件架構師提出更高的要求。軟件體系結構課程的特點如下[45]。
(1)課程內容抽象。軟件體系結構從較高層次上把握和理解復雜軟件的整體結構,其設計原則、技術和方法可以應用在不同的軟件項目中并位于所有具體項目之上,用以指導全體軟件項目,因此課程內容是高度抽象的。
(2)體系結構的作用體現在軟件開發階段的后期。由于軟件開發是從軟件需求分析到運行維護的多個階段,體系結構的設計在這些階段通常反映不出來;設計階段的一個決定,可能要到編碼、測試甚至后續維護才能體現出價值。
(3)軟件體系結構設計是多種因素的綜合體。我們通常說“軟件架構師不是完美主義者,而是現實主義者”。在軟件開發時,軟件中的一些因素通常是相互沖突的,因此,在實際的軟件系統設計中,必須根據具體情況對各種要素進行折中與權衡,最終才能滿足用戶的需求。
軟件體系結構課程的特點使其在教學過程中存在以下很多問題。
(1)學生學習積極性不高。軟件體系結構課程的理論性較強,概念繁多,學生普遍覺得課程內容太抽象,沒有什么實際的東西。理論使得學生對該課程的學習沒有興趣,而學生通常沒有實際的項目開發經驗,因此很難將軟件體系結構的抽象理論和實際聯系起來,導致很多學生對該課程沒有興趣。
(2)學生的項目經驗不足。大多數學生在學習該課程之前沒有項目開發經驗,不能認識到該課程的重要性;而學生的作業和課程實踐通常只局限于小項目,因此他們很難體會到軟件體系結構在軟件開發過程中的指導性作用。
(3)教材內容與課程教學缺乏交互性。目前使用的教材單一、可用性較差且更新緩慢,而實踐教學形式單一且以理論教學為主,課程主要講授軟件體系結構的基礎概念和基本原理,只起到導論的作用,交互性差;此外,課程教學中缺乏體系結構的習題庫和案例庫,學生缺乏實戰演練。
軟件體系結構課程的特點和教學過程中存在的問題,使得傳統教學模式不能較好地勝任該課程的教學。翻轉課堂充分體現以學生學習為中心,和傳統的以教師為中心的課堂教學完全不同,可改善學生只聽不問的被動式學習,使學生敢于提出問題并解決問題,也為不同層次的學生提供更合理的學習方式。筆者近年來一直從事軟件體系結構課程的教學工作,通過應用翻轉課堂教學模式,取得了較好的教學效果。
3.1 翻轉課堂的建設
利用翻轉課堂,我們對傳統教學環節中的各個步驟進行調整并以任務為主線,實現課堂教學之前、之中和之后三部曲的構建,3階段的功能如圖1所示。

圖1 翻轉課堂三部曲功能
構建翻轉課堂三部曲的工作比較復雜,需要分教師和學生兩個角色分階段完成。教師在每個階段之前都需要作充分的準備。在課程教學之前,教師須基于教學任務,開展課前教學設計,包括根據課堂教學內容進行知識點劃分和歸納,總結核心教學點并制作教學視頻或者教學PPT,搜集和教學內容相關的背景素材,基于教學內容給學生布置一定的學習任務,完成教學內容布置和目標制訂、教學素材和視頻上傳、在線答疑等。需要注意的是,課前教學設計的主要目的是讓學生大致對講解的教學內容有所了解,能使其對所學內容不至于太陌生,減少學生自學的壓力,因此課前素材的制作要簡練,如視頻不能太長,以知識點為劃分依據,每個視頻8~15min左右。教學過程中,教師需要針對教學內容進行引導性講解并針對學生的提問開展課堂討論;課后進行教學內容的總結分析、批改作業、在線答疑等。學生須在課前認真學習教師提供的素材,完成一定數量的作業測試;在課堂上積極參與討論,在課后完成作業并對教學內容進行反思總結,通過強化實踐練習對教學知識點加深鞏固。
3.2 基于翻轉課堂的體系結構課程設計
實際上,翻轉課堂的實施是一項系統化的工程,并非錄制幾個視頻、準備點材料讓學生課前學習就能稱為翻轉課堂。教師需要基于翻轉課程的思想,對課程知識體系結構,課堂學時分配,課堂學生的人數(小組確定),課堂翻轉程度,課堂互動方式,課程考核評價標準,課前、課間和課后的教學內容安排,知識點測試等課程教學中涉及的一切內容作出統籌安排,實現各個環節的相互補充。
1)教學內容的重新組織。
考慮到翻轉課堂形式和軟件體系結構課程的特點,教師需要對教學內容進行歸納整理。由于該課程基本理論多、知識點多且應用廣泛,我們可以把課程內容分為以下4部分進行組織:①基礎理論,包括體系結構概述、風格、描述、動態軟件體系結構和Web服務體系結構;②方法技術,包括UML建模的方法、技術等;③上機操作,針對具體的系統進行分析并建立模型;④應用,討論基于體系結構的軟件開發方法。
在教學內容的選擇方面,需要添加一些引起學生興趣的素材。例如,在講解軟件體系結構風格時,課程教學內容包括管道/過濾器風格、層次風格、MVC風格、C/S、B/S風格、混合風格、面向對象風格、事件驅動風格及新型軟件體系結構風格,可以結合具體的應用實例進行講解,如使用高級語言編輯器作為管道/過濾器風格的典型案例進行教學、使用操作系統作為層次風格的主要案例進行教學以及使用學校教務管理平臺作為B/S風格的典型案例進行教學,能取得較好的教學效果。此外,為了拓展學生的視野,可以引入一些在軟件工程領域有突出貢獻的大學所應用的軟件架構課程,如卡內基·梅隆大學軟件工程研究所(SEI)的軟件架構實踐、軟件架構評估、RUP軟件開發過程和架構模式的課程相關資料。
課程資源應該盡可能微型化并及時更新,這樣可以使學生在任何形態下學習,如“一個概念為一個資源,一個案例為一個資源”的方式。資源也應該分類,如分為自主學習類和課堂講解類,自主學習類包括一些簡單的知識點、操作、案例等,這部分知識點只需要由學生自主學習,而不需要再占用寶貴的課堂時間進行詳細講解;課堂講解部分包括一些較難的知識點以及教師覺得學生可能容易出現問題的教學點,在學生自主學習的基礎上,教師可在課堂上對該部分內容進行講解和討論。
在線討論的問題設置要有針對性和開放性,上述兩類素材中的內容要讓學生學習后既能有一定的成就感,又產生對學習新知識點的渴求,因此視頻的錄制使學生看了視頻后不至于還是完全弄不清楚。這一點在實際應用中很難把握,教師可以通過問題設置,驅動學生進一步探索;為了適應學生提問較少的情況,教師還可以通過設置小測驗考核學生的預習情況。
需要注意的是,在教學過程中,雖然翻轉課堂以學生提問為主,但是教師作為教學主線的引導作用仍是關鍵。教師可根據布置的教學任務和測驗結果進行提問,對課前的知識進行重點講解。通過預習,學生通常能掌握50%~60%的教學內容,剩余內容則需要教師利用課堂教學時間進行重點闡述,加深學生的理解;此外,教師還可以采取多種方式,如小組之間進行討論,羅列的問題應由簡單到復雜,以調動學生討論的積極性。這個步驟較難操作,教師可以采用一定的激勵機制,如對積極參加討論并陳述自己觀點的學生給予加分,并將這個分數作為該門課程最終成績中平時分的一部分。
2)考核方式的改革。
軟件體系結構課程不但要求學生掌握體系結構的一些抽象定義、風格等基礎理論知識,還需要考核學生熟練應用課程知識的能力。傳統卷面筆試的單一考核方式不能真正反映學生的學習效果,因此,應該建立多元化的考核機制。我們通過翻轉課堂教學模式改革,對應于教學過程的三部曲,對考核方式也進行相應改革。新的考核方式見表1。
在上述課程考核方式中,項目答辯大作業包括一些具體項目的文檔報告,大作業采取答辯講解形式進行考核,答辯學生根據作業答辯內容,制作PPT并在規定的時間內完成??紤]到時間的限制,我們采用申請優秀的學生必須參加答辯,而隨機抽查其余學生作業的方式。此外,對于上述各種打分環節,為了體現公平性,可以在教師評分為主的前提下,在打分過程中隨機抽取5位非主體講解小組的學生進行打分,按照加權平均法給出最終成績。需要注意的是,考慮到在該門課程學習中,這種考核方式對一些基礎理論的理解和記憶也至關重要,因此新的考核方式也沒有完全拋棄傳統的卷面考核(占30%),全面考核軟件體系結構的基礎理論知識,如通過名詞解釋、簡答、判斷等傳統題型對一些概念進行考核。

表1 課程考核方式
通過實施上述教學改革,軟件體系結構課程的教學效果得到明顯改善。一些枯燥的基礎理論和術語在具體的實例引導下變得容易理解;教師在教學過程中,也不局限于教學大綱內容按部就班地講解,而是將整個教學內容統籌劃分;教學過程中,我們也能及時得到學生的反饋;考核方式的改革在一定程度上也激發了學生的學習主動性。
翻轉課堂是對傳統教學模式的改革和創新,是一種教學觀念的改變,這種課堂教學模式的推廣應用勢必會對未來的課程教學產生深刻影響。筆者在分析軟件體系結構課程教學的特點和面臨的問題之后,借鑒翻轉課堂教學模式的優點開展課程改革,提高了學生的學習積極性并獲得良好的教學效果。在教學改革中我們也發現,由于課程的特點,并不是所有的教學內容都適合翻轉課堂教學模式,因此在實際教學過程中,翻轉課堂教學模式應該與傳統教學方式相輔相成,靈活應用以更好地開展教學活動。此外,雖然翻轉課堂教學模式自提出以來就受到國內外的廣泛認可,但是在實際應用過程中還有很多問題亟待解決,我們也將繼續關注該教學模式的應用。
[1] 周群. 計算機應用型人才培養翻轉課堂教學模式研究[J]. 大學教育, 2016(3): 150-152.
[2] 張金磊, 王穎, 張寶輝. 翻轉課堂教學模式研究[J]. 遠程教育雜志, 2012, 30(4): 46-51.
[3] 陳長清. 軟件體系結構課程教學探討[J]. 計算機教育, 2008(22): 134-136.
[4] 朱鵬程, 管致錦. 基于能力本位的“軟件體系結構”實踐教學環節[J]. 計算機教育, 2011(17): 39-42.
[5] 劉靖, 周建濤.“做中學”理念在軟件體系結構課程教學中的應用實踐[J]. 計算機教育, 2013(22): 88-93.
(編輯: 宋文婷 )
1672-5913(2017)03-0068-04
G642
浙江師范大學2016年研究生重點課程建設、教育教學改革和教學案例建設項目(26)。
丁智國,男,講師,研究方向為軟件體系結構、軟件質量與測試等,dzg_jsj@zjnu.cn。