李 強
(湖南師范大學 數(shù)學與計算機科學學院,湖南 長沙 410081)
自2012年以來,大規(guī)模開放在線課程(massive open online course,MOOC)的迅速發(fā)展深刻影響了全世界的高等教育[1]。隨之很快進入了“后MOOC時代”——SPOC(Small Private Online Course,小規(guī)模限制性在線課程)[2]。SPOC使用MOOC的平臺資源和教學手段,限定課程準入條件和學生人數(shù),針對性更強,專業(yè)支持力度更大,可以實現(xiàn)MOOC與學校線下課堂教學的有效融合。MOOC/SPOC將對高等教育的課程教學方法帶來根本性的變革[3]。
軟件工程課程是軟件工程專業(yè)的核心必修課程,由于其兼具較強的理論性和實踐性,一直都是教學的難點[4]。長期以來,IT用人單位常常抱怨大學畢業(yè)生不具備從事軟件行業(yè)工作的基本技能,認為學生在學校里并沒有為將來所從事的軟件開發(fā)、測試等工作打下堅實的基礎。一方面是由于軟件工程具有知識面廣、理論知識豐富、實踐性強的特點;另一方面,目前的教學模式還是以課堂為中心、以教師為中心、以教材為中心,不能適應軟件行業(yè)迅速發(fā)展所帶來的對軟件人才的需求變化。因此,對軟件工程及其相關課程教學進行改革,將是一項十分重要又具有挑戰(zhàn)性的工作。
大多數(shù)高校開設的軟件工程課程通常由軟件工程理論教學和軟件項目實踐兩部分構成,實際執(zhí)行情況是以理論教學為主。從教學結果和學生反饋來看,一方面,大多數(shù)學生把軟件工程學成了一門死記硬背的課程,花大量的時間去記憶一些抽象的知識點以應付理論考試,導致學生缺乏學習積極性并且喪失從事軟件工程相關工作的興趣;另一方面,軟件工程專業(yè)的授課教師很多都缺乏軟件開發(fā)經歷,并且較少涉及與軟件工程學科相關的科研工作,無法具體指導學生的軟件實踐。
MOOC/SPOC提供了優(yōu)質的教學平臺、方法和工具。通過MOOC/SPOC課程,可以實現(xiàn)翻轉課堂和線上線下混合式教學[5],從而將以課堂為中心轉變?yōu)橐哉n下為中心,將以教師為中心轉變?yōu)橐詫W生自主學習為主,將以教材知識點的期末考試為評價主體轉變?yōu)橐云綍r實踐過程評價結合為主。
中國大學從2013年開始MOOC建設,取得了長足的進步,清華大學、北京大學等高校紛紛推出自己的MOOC平臺并上線多門自建課程[6],然而,MOOC的發(fā)展建設也遇到了一些問題。一是課程內容建設成本比較高。一門MOOC課程需要教學設計、錄制教學視頻、設計并實現(xiàn)隨堂測試和自動評分系統(tǒng)、上線運行和維護等大量工作。目前,大多數(shù)國內地方高校由于經費缺乏、師資力量不足等原因,無法像國內外的著名大學那樣在公共平臺開設自己的MOOC/SPOC課程,因此,借鑒使用已有著名MOOC平臺提供的共享優(yōu)質資源為自己的課程教學服務,是大多數(shù)地方高校的合理選擇。二是MOOC平臺缺乏自主控制性。以第三方平臺的MOOC課程為主進行教學,必然照搬該課程的固定模式、流程和內容,授課教師無法根據學生實際的學習基礎和能力水平及所在學校的教學條件進行課程調整。MOOC具有開放性,為了迎合大量不同層次的學習人員,通常會對艱深知識進行表面化和膚淺化解釋。授課教師需要對第三方的MOOC課程進行相應調整,并且需要一個平臺來整合MOOC資源和課堂教學,從而提升混合式教學的質量,因此,如何有效使用MOOC中的優(yōu)質課程資源,將其合理地融入實際教學課程,是目前課程教學改革所面臨的重要問題。
本課程采用的MOOC資源是加州大學伯克利分校在edX平臺上開設的Engineering Software as a Service(ESaaS)課程[7],它是全世界最早的軟件工程MOOC課程,參與人數(shù)眾多并廣受好評。2013年,基于該課程又提出SPOC理念,將MOOC與學校教學進行有機融合[8]。該課程共有12周內容,每周課程包括若干個短時間的教學視頻、隨堂測驗(quiz)和課后作業(yè)(以編程為主,設定提交期限);平臺對學生提交測驗和編程作業(yè)的正確性進行自動驗證并評分。
為了整合MOOC資源和課堂教學,突出軟件工程的實踐教學,本課程采用國防科學技術大學開發(fā)的Trustie平臺[9]。Trustie是一個面向高校的開放式協(xié)同實踐教學平臺,高校教師和學生可以借助該平臺開展在線協(xié)同教學、協(xié)同實踐、社區(qū)協(xié)作等活動。另外,通過在Trustie上設置課程僅對課內成員可見、學生使用課程口令加入課程、不同角色具有不同權限等,限定課程的準入條件和參加課程的學生,可以較好地支撐SPOC的實踐。通過Trustie這種開放式平臺,可以擺脫MOOC平臺的完全控制,將MOOC資源和本地課堂教學進行有效融合,提高課程的靈活性和自主性。
本課程基于edX和Trustie平臺采用翻轉課堂式教學模式,主要過程如下:
(1)教師在Trustie平臺上發(fā)布教學大綱、教學計劃、周教學目標和內容、本周學生線下在edX平臺上學習的視頻部分、教材內容、通知、相關資源等。
(2)學生根據Trustie平臺發(fā)布的信息,課下在edX平臺上了解每周的教學內容和目標,學習教材內容,觀看教學視頻,進行隨堂測驗并檢查學習效果。
(3)學生根據自己的學習情況在Trustie平臺上提交學習和測驗中遇到的問題和難以掌握的內容;教師對這些問題和難點進行收集、歸類和統(tǒng)計。
(4)教師在課堂上講解歸納出的問題和重難點,并和學生一起討論。在教師的指導下進行教師和學生以及學生和學生之間的互動;教師將互動討論的內容進行總結和整理后發(fā)布在Trustie上,以供學生參考復習,進一步鞏固和提高學習成果。
Trustie平臺還設有多種方式和手段支持和加強實踐人員間的協(xié)同合作,如教師、助教和學生使用線上討論區(qū)進行交流,解決學生學習中產生的各類疑問。討論區(qū)具有歸檔功能,學生可以查詢和瀏覽前面學期的討論區(qū)內容,找到自己需要的資料,避免重復提問,從而提高學習效率。
實踐是軟件工程課程的重要組成部分,能鍛煉學生的動手能力,讓學生在“做中學”(learning by doing)模式下掌握實用的軟件工程技能。ESaaS課程基于移動互聯(lián)網和云計算平臺,將Ruby on Rails框架作為開發(fā)環(huán)境,采用敏捷開發(fā)方法,是國內外目前比較前沿的軟件開發(fā)模式。ESaaS課程適合小規(guī)模的團隊以用戶反饋為核心驅動力來迭代開發(fā)軟件項目,讓學生學習掌握版本控制、云平臺部署、行為驅動開發(fā)、測試驅動開發(fā)、結對編程等軟件工程的工具、方法和技能,從而具備一定的軟件開發(fā)水平,以便求職時符合IT企業(yè)的技術和管理要求。
本課程提高了過程考核在總考核成績中的權重,其中過程考核占最終課程成績的比例不低于40%。過程考核包括:①在規(guī)定時間前完成每周的測驗和作業(yè);②在課堂上以開發(fā)小組為單位積極發(fā)言并參與討論;③以小組為單位對所要完成的軟件項目進行講解和演示,交流實踐過程中的經驗。
為了分析實施課程改革的效果,我們分別收集了傳統(tǒng)課程和MOOC/SPOC課程的相關數(shù)據并進行分析,通過對參與改革課程的學生進行問卷調查,了解他們的想法和學習情況。傳統(tǒng)課程的學習人數(shù)為54人,MOOC/SPOC課程的學習人數(shù)為57人,我們對學生的學習時間、工作量和自我評價進行了對比,見表1。可以看出,學生對MOOC/SPOC課程的興趣和參與程度明顯高于傳統(tǒng)課程,所投入的時間和精力也較多。學生編寫了更多的代碼,在一定程度上鍛煉了實踐動手能力。
表1 學生對不同軟件工程課程的投入對比
為了總結經驗,找出不足,我們對參與改革課程的學生進行不記名的書面問卷調查,統(tǒng)計結果見表2。調查表明,學生普遍認為課程教學方法比較新穎,不同于傳統(tǒng)的軟件工程理論講述,學生在軟件實踐中能逐漸對軟件工程的基本理論、方法和工具有所理解,并且對后續(xù)相關課程和實習幫助較大;大多數(shù)學生對課程中涉及的內容持認同態(tài)度,認為其能對自己將來從事軟件行業(yè)工作有所幫助。
此外,學生反映課程學習有一定的難度。一方面,教材和MOOC資源都是英文表述形式,學生在閱讀理解上障礙較大;另一方面,項目的編程作業(yè)多,學生需要在課后花費大量的時間和精力完成。有些學生在其他先修課程中沒有得到足夠訓練,基礎比較薄弱,教師需要循序漸進地對這部分學生進行引導;在項目分組中,將基礎較好和基礎不好的學生混合搭配。項目初期,由基礎好、動手能力強的學生完成主要工作,并指導幫助基礎差的學生,這樣也可以解決助教嚴重缺乏的問題,減輕教師的輔導壓力。
大多數(shù)學生對MOOC/SPOC和翻轉課堂感興趣,學習積極性較高,學習結束后對學習效果也比較滿意,但是在課程實施過程中也出現(xiàn)一些問題和不足,需要進行反思和進一步研究。
1)鼓勵學生自我學習和管理。
MOOC/SPOC課程將更多的學習控制權交給學生,需要學生在課外做更多的工作。學生除了傳統(tǒng)的預習和復習之外,還要觀看教學視頻、進行線上發(fā)言與討論、完成編程作業(yè)等。如果學生不能積極主動配合,那么課程效果就會大打折扣,因此激發(fā)學生的學習興趣和內在的學習動力是課程成功的關鍵。
首先要培養(yǎng)學生的學習成就感,讓他們有信心繼續(xù)進行課程學習。軟件實踐項目的難度開始要相對比較低,讓學生花費較少的精力就可以實現(xiàn)一個能使用的軟件系統(tǒng),如Ruby on Rails框架可以讓學生編寫較少的代碼就能夠運行一個Web應用,展示一些基本頁面和功能,從而讓學生獲得信心和成就感,能夠為了實現(xiàn)更多的功能而主動學習和工作。在軟件開發(fā)中,要注重團隊合作,團隊中的歸屬感有助于學生提高積極性,激發(fā)學習動力。
表2 MOOC/SPOC軟件工程課程問卷調查統(tǒng)計
2)提高教師教學水平。
使用優(yōu)質的MOOC資源支持本地教學,可以減輕教師的負擔。課程實踐表明,采用開放式協(xié)同教學實踐平臺,讓其作為MOOC資源和課堂教學的黏合劑,是一種較好的解決方案,關鍵在于教師要具有MOOC資源的整合能力,讓MOOC資源能較好地與課堂教學融合,線上線下互為補充。教師要與時俱進,突破固有教學理念、模式和機制的束縛,積極跟進和學習MOOC/SPOC,將傳統(tǒng)的以“教”為中心的教學模式逐漸轉變?yōu)橐浴皩W”為中心的教學模式,在教學實踐中不斷探索傳統(tǒng)高校課堂和MOOC的結合方式,把握兩者之間的平衡,因此,教師還需不斷提升水平從而經受考驗。
3)進一步加強交互性,突出個性化學習。
MOOC的特點在于大規(guī)模而產生的低成本、易普及和高效率,但是從另一個角度來看,教師需要和成千上萬的學生交流,這顯然無法實現(xiàn),因而產生難以實現(xiàn)學生個性化學習的問題。SPOC的出現(xiàn)在一定程度上緩解了這個問題。由于對MOOC資源沒有控制權,大多數(shù)高校教師無法在公共的MOOC平臺上實現(xiàn)SPOC。本課程通過第三方開放式平臺來整合MOOC資源以實現(xiàn)SPOC。此外,教師通過開放式平臺可以自主開發(fā)交互式學習資源。在傳統(tǒng)教學模式下,教師一般在批改作業(yè)時才會發(fā)現(xiàn)學生遇到的學習問題,而學生普遍希望遇到學習困難時能立即獲得幫助并克服障礙從而繼續(xù)學習,因此,作業(yè)的自動發(fā)布和評分是交互式課程中非常重要的一部分。軟件工程的大部分課程作業(yè)是編程,教師通常通過手工對編程作業(yè)進行評價,教育資源利用率非常低而且出錯率高。建立共享的編程資源庫和友好的交互環(huán)境,可以讓教師和助教專注教學本身并且及時發(fā)現(xiàn)學生實踐中存在的問題,增強教師與學生互動的實時性和準確性。
MOOC/SPOC的普及和廣泛應用,為軟件工程的教學改革提供了非常好的機遇。教師可以根據本校的實際情況,因地制宜地應用MOOC/SPOC,設計和實施具有自身特色的教學方法,從而優(yōu)化課堂教學效果,提高教學效率和教學質量。
為深化軟件工程專業(yè)課程教學改革,湖南師范大學軟件工程專業(yè)借助著名MOOC平臺edX上的Engineering Software as a Service課程資源[4],以國內的Trustie為在線協(xié)作平臺[5],同時結合學校軟件工程和軟件綜合實踐課程的自身教學特點,探索如何將MOOC/SPOC資源與線下的課堂教學相結合,對建立新型軟件工程課程教學模式和方法進行嘗試和實踐,取得了一定的成效。由于是初次探索和實施,實踐中還存在一些亟待解決的問題和需要改進的地方。針對目前MOOC/SPOC課程的現(xiàn)狀和問題,下一步的工作重點是提高課程的交互性、為學生提供個性化學習服務、提升課程內容的自適應性等。此外,MOOC/SPOC課程改革的空間非常廣闊,這也將大大地激發(fā)教師對課程創(chuàng)新的積極性并促使其不斷探索。
[1]何欽銘. 通過MOOC/SPOC課程推動課程教學方法的根本變革[J]. 計算機教育, 2016(1): 10-11.
[2]康葉欽. 在線教育的“后MOOC時代”: SPOC解析[J]. 清華大學教育研究, 2014(1): 85-93.
[3]徐葳, 賈永政, 阿曼多·??怂? 等. 從MOOC到SPOC:基于加州大學伯克利分校和清華大學MOOC實踐的學術對話[J]. 現(xiàn)代遠程教育研究, 2014(4): 13-22.
[4]劉強, 陳越, 駱斌, 等. “軟件工程”課程教學實施方案[J]. 中國大學教學, 2011(2): 41-44.
[5]何克抗. 從“翻轉課堂”的本質看“翻轉課堂”在我國的未來發(fā)展[J]. 電化教育研究, 2014(7): 5-16.
[6]徐曉飛, 張龍, 奚春雁. 積極應對MOOC浪潮, 推動我國計算機教育改革[J]. 計算機教育, 2016(1): 8-9.
[7]Edx. Agile development using ruby on rails[EB/OL]. [2017-08-20]. https://www.edx.org/course/agile-development-using-ruby-railsuc-berkeleyx-cs169-1x-1.
[8]EECS. Software engineering curriculum technology transfer: Lessons learned from MOOCs and SPOCs[EB/OL]. (2014-03-05)[2017-08-20]. http://www2.eecs.berkeley.edu/Pubs/TechRpts/2014/EECS-2014-17.pdf.
[9]毛新軍, 尹剛, 王懷民. 軟件工程系列課程實踐教學平臺Trustie[J]. 計算機教育, 2014(23): 53-56.