崔霄+陳明+胡春暉

摘要:高校軟件學院基于項目驅動教學方法中存在的實踐性偏弱、項目實訓中文檔過多、項目與軟件工程完整的課程體系的關聯不足等問題,探索極限編程理論在項目驅動沉浸式教學模式的應用。沉浸式教學方法是一種貫穿軟件工程專業課程教學全過程、基于極限編程理論的教學法。采用極限編程理論,可以使學生避開枯燥的軟件工程文檔,避免學生因看不到前期成果而失去興趣。而沉浸式教學則可以將課程知識點分散在完整項目的各個子項目中,從而提高學生學習效率。
關鍵詞:極限編程;沉浸式教學;項目驅動;軟件工程
一、引言
高校工科計算機軟件專業的本科教學人才培養目標是:培養出具有一定工程實踐能力的高端技能型人才。國內高校軟件學院蓬勃發展,其發展方向主要是加強校企聯合,并積極推進基于項目案例的軟件工程專業教學實踐。然而,從企業反饋的情況來看,軟件學院畢業的學生,其知識和能力與企業的實際需求還存在一定的落差。
二、當前項目驅動教學模式分析
(一)項目驅動教學模式
項目驅動教學(Project Based Teaching) 模式是一種建立在建構主義教學理論基礎之上的教學方法,同時也是CDIO(Conceive、Implement、Design、Operate,即構思、設計、實現、運行)理念所倡導的教學模式。與傳統教學方式不同,項目驅動教學模式要求以學生為中心,培養學生的積極性、主動性和創新精神,教師在整個教學過程中,主要起組織和指導的作用。從根本上將傳統課堂上教師“滿堂灌”的教學方式,轉變為以學生自主學習、獨立分析問題、解決問題為主導的教學方式。
(二)當前項目驅動教學存在的問題
當前,基于項目驅動案例教學主要存在以下問題:第一,重文檔而輕結果,項目實施過程中文檔過多,學生在冗長、枯燥的項目文檔編寫過程中,逐漸失去學習樂趣和學習主動性;第二,弱實踐而重理論,隨著計算機軟件技術的發展,教學實踐項目脫離應用背景,學生雖然能夠理解并基本掌握課程理論知識,但是,在工程實踐中遇到實際問題時卻無處下手;第三,知識點孤立而不系統,軟件工程是計算機科學與技術方向的一級學科,需要有相互關聯的課程體系來支撐。學生在學習過程中,由于無法建立計算機軟件工程專業的整體聯系,對不同課程間的關聯理解不夠深入。因此,由于輕視軟件工程、算法設計等理論指導性課程,重視具體的程序設計類,造成學生學習缺乏整體感和層次感。
(三)基于極限編程理論的沉浸式教學模式
針對以上問題,需要不同的解決方案。針對問題一,采用基于極限編程的沉浸式項目驅動教學模式,以最快的速度讓學生看到項目實施結果,減少前期文檔工作量,提高學習興趣;針對問題二,采用基于企業實際生產環境部署的項目案例進行教學,理論與實踐相結合;針對問題三,筆者提出沉浸式教學,即課程進度嵌入子項目中,當課程結束時子項目完成,當多門相關課程結束則完整項目完成。可以讓學生在學習理論知識的同時,知道如何靈活運用這些理論知識來解決具體的工程問題。
筆者提出的基于極限編程的沉浸式項目驅動教學模式,可以貫穿軟件工程專業學生的不同課程知識,讓學生建立起系統、整體的知識結構體系。
三、基于極限編程理論的沉浸式教學模式
(一)項目驅動教學
項目驅動是以學生為中心,教師結合項目案例講解課程知識,引導學生完成具體項目案例的教學模式。基于項目驅動的教學模式,可以把完整項目劃分成若干個子項目,每個子項目都與這個項目有著密切的關聯,把課程相關的知識點融入到這些子項目中,在項目迭代開發的過程中,加深學生對課程知識的理解,提高實踐動手能力。
(二)沉浸式教學
沉浸式教學,即在語言類教學中,將學生“浸泡”在目的語言環境中。筆者借用了“沉浸式”的概念,讓軟件工程專業的學生在學習中始終“沉浸”在一個具體的項目工程中。學生在課程學習之初、學習過程中和學習結束后,始終貫穿著以下幾個問題:本課程在項目開發過程中能做什么,能解決什么問題等,通過本課程在項目開發過程中的位置,理解本課程在實際中能解決什么工程問題,從整體上把握軟件工程專業體系結構。
沉浸式教學通常運用在語言類、文學類專業課程教學方式中,在這些學科中已經有了大量的研究成果和實踐應用,在計算機專業本科主干理論課中卻很少采用。
筆者提出的沉浸式教學基本思路是貫穿課程教學始終,從課程學習的初期開始進行沉浸式教學。教學過程可以劃分為三種類型:早期浸入式、中期浸入式和晚期浸入式。一般而言,早期浸入式是在本課程開始時,從實際項目中的應用開始導入課程的基本概念,闡述項目開發遇到的問題和本課程所能解決的問題;中期浸入式是指在教學過程中,以問題驅動模式來逐漸講解課程章節內容,并逐次解決項目中遇到的問題;晚期浸入式是指在課程結束時對項目的總結和課程的復習相結合,使學生對本課程建立起相對完整的概念,解決學生對知識應用缺乏整體感的問題。
(三)極限編程
Kent Beck在1996 年提出極限編程( Extreme Programming,簡稱XP)的概念,極限編程是一種靈巧、重結果而輕文檔的軟件開發方法。XP將任務、系統細分為可以在較短周期解決的一個個子任務、子模塊,并且強調測試、代碼質量和及早發現問題。它將復雜的開發過程分解為一個個相對比較簡單的小周期,提高了項目開發的靈活性。
傳統的軟件開發工程項目實施過程中,一般都遵循“可行性分析,系統設計、詳細設計、項目編碼、系統測試”等一系列步驟,由于最終實現需要長時間分析、建立文檔,而前期的文檔類工作冗長、枯燥,學生的積極性逐漸降低并失去主動性。XP 這種“短周期,常發布”的開發方式,能在較短時間內做出系統原型,使得學生很快看到項目開發的“成果”,從而提高學習積極性,進而主動產生學習、開發、完善項目的興趣。
四、基于極限編程的項目驅動沉浸式教學模式分析
(一)項目案例的選擇
一個完整、基于實際應用的項目案例,首先應該基于企業實際需求,其次,應盡可能涵蓋軟件工程專業學科課程體系。項目案例選取,應遵循如下原則:
第一,系統性:項目內容應基本涵蓋軟件工程課程的絕大部分知識點。
第二,實用性:選擇的項目應有一定的綜合性、實踐性,即項目選擇應基于實際應用的項目。
第三,漸進性:項目選擇在實施過程中,應該符合軟件工程基本流程,從易到難,逐次推進,項目完成應能看到具體的效果。
(二)項目案例與軟件工程學科群的知識映射
一個符合項目案例選擇系統性原則的項目案例,應該在項目實施的不同階段,涵蓋軟件工程教學課程體系的大部分重要知識點。以企業ERP系統為例,企業實施ERP系統,需要將企業資源,如用戶、客戶、外協商、供貨商、日程、業務、出入庫、賬務、車間制作、員工信息、業務溝通和基礎信息等,進行統一管理,系統分別實現客戶端、管理端和移動端。
研究所示的企業ERP對應傳統項目驅動的教學方法,分為需求分析、概要和詳細設計、系統實現、系統測試等。基于極限編程的項目驅動沉浸式教學模型,則省略前期文檔階段,直接開始項目分析和實施,表格說明一個具體的企業ERP項目案例與軟件工程教學課程體系的知識映射關系,本表省略了項目實施部分階段,如系統測試階段。
(三)貫穿項目周期的沉浸式教學
根據表格所示,在項目實施的每個階段,都需要軟件工程不同課程的相關知識,因此,可以將完整的項目分解為多個子項目,子項目可繼續細化,每一個子項目或更進一步細化的子項目,對應軟件工程同一門課程,或不同課程中的不同知識點。因此,這種教學模式,可以貫穿軟件工程專業的大部分科目,不同科目,可以通過選擇其中的一個子項目來進行教學、演示和實訓。
教學過程中將學生分組實施具體的子項目,引導學生一步步分析項目,弄清在完成項目的過程中,哪些可以運用已有知識解決,哪些是未知的并提出問題,充分調動學生的好奇心和學習積極性。
當學生完成本課程體系中的大部分課程時,整個項目也順利完成。由于具體課程教學需要較為全面的子項目,因此系統基于實際應用的完整項目選擇尤其重要。
五、結論
實施基于極限編程理論下的項目驅動、沉浸式教學模型,通過選取貫穿全課程體系的、基于企業實際應用的完整項目案例,用極限編程的思想,忽略部分細節,減少項目文檔工作量,可以讓學生聚焦主要問題,迅速得到項目實施的結果。
通過建立課程群知識點與項目之間的映射關系,把完整項目分解成不同的子項目,建立不同的子目標。通過講解、演示每一個子目標的具體知識點,可以促進學生從學習知識向提高能力上轉化,發揮學生創造潛能,從而提高學生學習主動性,培養出更符合社會需求的軟件工程類人才。
參考文獻:
[1]徐雅斌,周維真,施運梅,等.項目驅動教學模式的研究與實踐[J].遼寧工業大學學報(社會科學),2011,(3).
[2]蔡琴,張凱.項目驅動教學模式在軟件工程教學中的應用[J].實驗科學與技術,2014,(4).
[3]殷海明,魏遠旺.極限編程和項目驅動相結合的軟件工程教學方法探究[J].新余學院學報, 2012,(3).
[4]唐成華,張瑞霞,張凈.基于認知曲線的項目案例實踐教學法研究[J].實驗科學與技術, 2016,(6).
[5]蘇統華,李全龍,涂志瑩,等.校企共建模式的創新實驗課程建設體系[J].計算機教育, 2017,(8).