趙淑芳 王江帆 潘理虎 陳立潮

摘 ?要:翻轉課堂是對傳統教學模式的改革和創新,通過分析軟件工程的教學特點和翻轉課堂的優勢,針對軟件工程課程存在的內容抽象,實踐性強、教學方法單一問題,提出基于“翻轉課堂”的教學改革方法,從課堂教學,實驗教學等環節闡述具體的改革內容,有效提高了學生自主學習的能力,同時采取項目案例教學為主線的模式提高了學生的實踐能力,激發了學生的學習興趣。
關鍵詞:翻轉課堂;軟件工程;項目案例
中圖分類號:TP311.5 ? ? 文獻標識碼:A
Abstract:Flipped classroom is the reform and innovation of the traditional teaching model.By analyzing the teaching characteristics of software engineering and the advantage of the flipped classroom,aiming at the problems of software engineering course,such as abstract contents,strong practicality and single teaching method,this paper puts forward a teaching reform method based on the flipped classroom,and expounds the specific reform content from the links of classroom teaching and experimental teaching,which improves the self-learning abilities of students,enhances the practical abilities of students with project case teaching and arouses the learning interest of students.
Keywords:flipped classroom;software engineering;project cases
1 ? 引言(Introduction)
翻轉課堂作為一種新興的教學模式,不斷強調學生的主體地位,推動著國內外教學模式的改革創新,引起了學者的廣泛關注[1]。傳統的教學模式,不能因材施教,不能順勢引導學生發散思維,讓學生自己去思考問題的謎底,反而讓學生都去接受教學大綱的“標準答案”,這樣會讓學生疏于思考,缺乏自己的思維,不能開拓學生的創造性思維[2]。這樣就達不到啟發學生獨立思考的目的,挫傷學生的創新性思考的能力;傳統的教學模式是在課堂上進行知識的傳授,而知識的內化則在課堂外完成。翻轉課堂是學生在課外自主完成知識的學習,在課堂進行提問,完成知識的內化[3]。翻轉課堂增加了師生之間的互動,使教師可以更好地“對癥下藥”,讓學生能夠及時掌握知識,從而加深學生對所學知識的理解及應用;在這種教學模式下,學生可以隨時隨地觀看視頻學習,掌握學習進度,不必像在傳統的教學模式下進行緊張的填鴨式的學習,使學生掌握了大部分主動權。軟件工程是一門理論抽象、工程性強、操作性強、重實踐性的學科[4],這就使得學生難以及時掌握所學知識,采用翻轉課堂的教學模式正好可以彌補傳統課堂在軟件工程課程中存在的缺陷,所以將翻轉課堂應用于軟件工程課程中就顯得尤為重要。
2 ?軟件工程的特點及教學中存在的問題(The characteristics of software engineering and the problems in teaching)
《軟件工程》是軟件工程專業的一門重要的專業基礎課。這門課程強調用工程的思想、概念、原理、技術和方法來設計開發和維護軟件;要求學生了解結構化思想、掌握敏捷開發等軟件開發技術,掌握面向對象的軟件需求分析、設計及實現的一般方法,為今后更好地學習和從事軟件工程領域的工作打下良好的基礎[5,6]。該課程的特點及教學中存在主要問題:
(1)課程內容抽象實踐性強,教學方法單一
軟件工程這門課程的內容比較抽象,有較強的實踐性。目前該課程大部分都是由教師講授理論知識,學生填鴨式學習。但是這些理論知識并不是空洞的理論,它是從實踐中總結出來的或是前人不斷總結摸索出來的,內容比較抽象,不易理解,教師僅講授理論知識點學生難以理解,而且內容比較枯燥,容易使學生產生厭學心理,打擊學生學習的積極性,這對軟件工程課程的教學內容及教學模式提出了新的要求。
(2)前序課程依賴程度高
軟件工程的前序課程包括C++程序設計、算法與數據結構、數據庫原理等,由于學生對前序課程知識的掌握程度不同,積累程度不同,學生的基礎也參差不齊,這就給該課程的教學帶來一定的難度。在課堂講授的過程中,需要對用到的前序課程的知識點進行復習,否則可能導致本部分內容有一部分同學不能理解或理解不到位,甚至對后續內容的學習造成更大影響。
(3)項目案例缺乏完整性和實用性
有的教師在選取教學案例時偏離學生實際,即使花費大量的時間講授了一些案例,由于學生平時缺少實際項目的開發經驗,也很難理解軟件開發的全過程。有的教師所選案例規模較小,如簡單的學生成績查詢系統等,在學生看來,可能不需要完全遵循軟件工程的設計過程,也能做得較好,軟件的可用性也不差,這就導致學生不能更好地建立系統完整的軟件工程概念體系,缺乏對所學知識的整體認識。
(4)學生項目開發經驗不足,學習積極性不高
軟件工程是一門理論性與實踐性較強的綜合性課程,如教師只注重理論課程的教學,忽視了學生自主學習能動性的發揮,學生缺乏對實際項目案例的設計開發,缺乏對所學知識的整體認識。對于剛剛講過的知識,抽取其中一部分進行提問,學生常常回答不上來,這說明學生沒有將知識內化,一學期下來,學生可能感覺只學會了幾個概念原理,對于如何去使用這些原理根本不清楚,挫傷了學生的積極性。
3 ?軟件工程翻轉課堂教學模式(Flipped classroom teaching model for software engineering)
3.1 ? 課堂教學模式
基于翻轉課堂的軟件工程課程教學采取以項目案例為主線的教學模式,整個教學過程由項目案例為導向,以一個具有一定規模完整的軟件開發項目貫穿于整個課程教學過程的始終[7]。軟件工程課程翻轉課堂教學模型主要由課前在線理論學習、課堂講授及訓練、課后總結鞏固三個相輔相成的過程所組成,其模型如圖1所示。
(1)課前在線理論學習
課前理論學習是課堂講授及師生互動的基礎,學生在這一階段將學習基本的概念原理性的知識點,教師根據教學大綱、教學進度、章節特征安排教學活動,并錄制視頻上傳到網絡教學平臺,要求學生提前觀看并完成習題。
學生按照老師布置的任務,根據自己的實際情況自主學習。教師可以在視頻中間或末尾穿插一些習題,讓學生可以在看視頻的過程中完成習題,讓他們了解自己的學習情況,增強互動性。如果習題完成效果不好,學生可以反復多次觀看視頻,在每個章節最后教師可以對本章知識進行匯總并給出一套有深度的課后習題讓學生完成,當學生完成課后習題后,網絡教學平臺將學生的完成情況反映給學生,學生肯定會產生很多疑問,然后學生自己整理自己的問題,這些問題學生既可以在課堂上跟老師、同學討論,也可以在平臺上與教師交流溝通。
(2)課堂講授及訓練
翻轉課堂的目的在于通過靈活多樣化組織課堂活動把知識內化最大化[8]。對于軟件工程這門課程,教師應該圍繞項目案例軟件定義、軟件開發、軟件維護三個時期八個階段設計教學活動,在課堂上,根據每個章節內容的特點,教師可以選擇演示項目進展、討論案例、答疑等不同的教學形式[9],教師可以從以下三方面完成課堂講授知識的內化。
a.課前學習情況測試。教師根據學生課前觀看視頻情況、課后習題完成情況,以及學生提出的問題初步掌握學生的學習情況;然后教師選取一些具有代表性的問題,對學生進行提問,查看學生觀看視頻效果,或者教師可以根據平臺反饋的學生學習情況及課程內容設計出一些新的習題問題,上課時檢驗學生掌握知識的情況;學生也可以提出自己目前的問題,由老師或學生進行答疑;最后教師根據課堂的反饋總結需要重點講解的知識。
b.知識講解。教師根據課程教學大綱,簡單的對所有內容進行串講,然后根據課堂反饋對重難點知識進行詳細講解[10],對于一些操作性強的問題教師可以邊演示邊講解。首先,導入案例,這要求教師將準備好的項目案例作為教學材料,通過展示一個具體的項目或一個現實生活中的例子將學生帶入到課堂中[11]。例如,在圖書管理系統中,可以通過學生自己平時在圖案書館的借、還書情況,讓學生提前知道這個系統是干什么用的,有哪些主要的功能,開發這個系統需要什么工具等一系列問題,先讓學生對這個系統有一個感性認識,然后再演示項目,理論聯系實際,讓學生更好地理解所學知識。
c.項目練習。通過理論知識的學習,學生對所學知識有了基本了解,接下來最重要的就是實踐。教師可以將學生按角色分組,每組3-4人,保證每個組既有學習能力強的也有學習能力一般的。然后讓每個組完成一個小項目進行實戰,進一步理解知識,在完成項目過程中老師可以適當給每組提示、指導,使學生能較熟練地把理論知識應用于實踐中。
(3)課后總結與鞏固
課后學生重新思考課堂中遇到的問題,對老師在課堂上提到的重要知識點進行總結,也可以回看視頻加深對知識點的理解[12]。針對復雜問題,給出可行的開發方案和開發計劃,具有設計滿足特定需求的中小型軟件系統和大型系統的獨立子系統的能力;具有獨立撰寫軟件項目實施過程所需的可行性研究、項目計劃、需求分析、系統設計、系統測試等報告文檔的能力。
3.2 ? 實驗教學
由于軟件工程是一門實踐性很強的課程,所以我們在教學的過程中更加注重實踐教學環節的安排與設計。為了使學生更好地掌握理論知識,同時又能較好的把理論應用到實踐中,每個階段我們都配備了相應的實驗環節,實驗教學與課堂教學保持同步進行,更好地激發了學生的學習興趣,鞏固了所學的理論知識,除此之外我們還安排了相應的課程設計。在實踐教學環節,要求學生能嚴格按照軟件工程的設計思想獨立完成各自的任務,并堅持階段評審的原則,最大限度的發現軟件設計過程中的缺點、錯誤,保證軟件的可用性、可靠性。
教學方法上,以培養學生自主創新和獨立思考為目標,以項目案例驅動為主題,組織學生以團隊的形式參與到實際項目開發的整個過程中,將復雜抽象的理論知識融入實驗環節中,使學生能熟練掌握軟件工程的整個開發流程。根據項目案例的實際需要對學生進行分組,確定各自的角色,各組通過實地調研或查資料確定具有一定規模的開發項目,或參與教師的科研項目,然后選取各自熟練的開發方法按照軟件工程的思想對其功能逐一進行設計、編碼、測試等工作,要求每個階段都有相應的文檔資料直至提交最終軟件產品。
最后,我們采用小組的形式進行答辯。每組選派一名代表進行答辯,能夠通過各種形式清晰表達和回應客戶的要求,具備基本的軟件工程項目管理學知識,其他成員可以進行補充說明。每組自述5分鐘,教師提問10分鐘,各位教師可以針對每個同學在其項目中所擔任的角色進行提問,根據回答問題及項目演示情況進行評分,然后算出平均分,并將其成績計入期末總成績。
通過幾年的改革與實踐,學生的實踐能力得到了有效的提高。對于掌握較好的同學在學習的同時就能參與到一些公司的項目研發中。
4 ? 考核方法改革(Reform of assessment methods )
軟件工程課程既要求學生掌握一些設計原理、設計方法等理論知識,又要求學生能夠分析設計和開發軟件,建立和使用合適的軟件項目管理和質量保證體系,提升軟件的質量。同時要求學生具有在多學科環境中組織并管理軟件項目實踐的計劃和預算、協調組織任務、合理調配資源,提升項目組的工作質量和效率的能力。鑒于此,傳統單一的卷面考核形式不能真正全面客觀的反映學生實際學習效果,因此,我們采用多元化的考核機制[13,14]。在翻轉課堂模式下,老師可以根據課堂情況、作業完成情況以及實踐環節等多方面作為考核依據,最終客觀地給出學生的期末成績,在這種模式下可以很好地培養學生的創造性思維,激發學生的學習興趣。
翻轉課堂軟件工程課程考核分為兩大部分:形成性考核和總結性考核。形成性考核分為課前在線預習、課堂討論、課后作業三部分,總結性考核分為實驗報告、項目答辯和期末考試。具體的考核形式如表1所示。
5 ? 結論(Conclusion)
翻轉課堂為軟件工程教學模式提供了一種新的教學方法,把翻轉課堂教學模式應用到軟件工程的課堂教學和實驗教學中有效提高了學生自主學習的能力,同時采用項目案例教學的模式提高了學生的實踐能力,激發了學生的學習興趣。通過讓學生參與教師實際科研項目的研發,使學生能真正把所學的理論原理性的知識應用到實際項目的開發過程中,熟練掌握項目開發的流程,更好地調動了學生的學習積極性和主動性。
參考文獻(References)
[1] Sidik Soleman,Astushi Fujii.Toward plagiarism detection using citation networks[C].Twelfth International Conference on Digital Information Management.IEEE,2017:12-14.
[2] Ullah Farhan,Wang Junfeng,Farhan Muhammad,et al.? ? Plagiarism detection in students' programming assignments basedon semantics:multimedia e-learning based smart assessment methodology[J].Multimedia Tools & Applications,2018(2):1-18.
[3] Aaron,S.,Jonathan,B.Flip Your Students' Learning[J].Educational Leadership,2013,70(6):16-20.
[4] 楊鑫,趙雪松.翻轉課堂教學模式下教師角色重構及實現路徑[J].當代教育與文化,2018,10(06):29-35.
[5] 馮偉.基于翻轉課堂的計算機網絡課程建設[J].無線互聯科技,2017(3):38-39.
[6] 龐敏.軟件工程專業“翻轉課堂”云計算教學平臺分析[J].數字通信界,2018(09):246;241.
[7] 周春良.軟件工程課程項目案例式翻轉課堂設計[J].計算機產品與流通,2018(09):145.
[8] 曾明星,周清平,蔡國民,等.軟件開發類課程翻轉課堂教學模式研究[J].實驗室研究與探索,2014,33(02):203-209.
[9] 張金磊,王穎,張寶輝.翻轉課堂教學模式研究[J].遠程教育雜志,2012(4):46-51.
[10] 鄧娜,葉志偉,阮鷗,等.“721”人才培養模式下軟件工程翻轉課堂教學模式初探[J].教育教學論壇,2016(42):184-185.
[11] 曹薇.翻轉課堂教學模式在高職軟件開發類課程中的應用[J].電腦知識與技術,2014,10(28):6707-6709.
[12] 潘家輝,曾碧卿.“翻轉課堂”下軟件工程專業的課堂教學研究與實踐[J].當代教育實踐與教學研究,2015(6):204-205.
[13] 丁智國.翻轉課堂在軟件體系結構課程教學中的實踐[J].計算機教育,2017(3):68-71.
[14] 高雪瑤,張春祥.基于翻轉課堂的計算機圖形學教學模式研究[J].計算機教育,2017(01):113-116.
作者簡介:
趙淑芳(1978-),女,碩士,副教授.研究領域:軟件工程,軟件測試,圖像處理.
王江帆(1997-),女,碩士生.研究領域:軟件工程.
潘理虎(1974-),男,博士,副教授.研究領域:軟件工程,文本處理與模式識別.
陳立潮(1961-),男,博士,教授.研究領域:軟件工程,圖像處理與模式識別.