王 玉,王 鵬
(吉林大學 應用技術學院,長春 130012)
探索提高高職院校軟件技術專業的實踐能力的培養方式具有重要的研究意義和實踐價值。筆者已經從事近十年的軟件技術職業教育工作,深知工學結合的專業課程建設與改革對培養學生動手實踐能力的重要意義。軟件技術專業課程教學強調培養學生的實踐動手能力,而以問題為導向的PBL教學法能夠極大激發學生的學習興趣,帶動學生自主學習。尤其是對于軟件技術專業的課程來說,大部分的課程都是通過項目化教學方式進行的,強調團隊合作,能夠鍛煉學生的溝通表達能力。因而,對.NET企業級應用開發系列課程進行以問題為導向的課程建設與改革具有重要的應用價值和實際意義。
為此,筆者基于PBL理念對我院軟件技術專業的.NET核心系列課程進行課程建設與改革,以問題為導向進行課程整體設計與課程標準設計。運用PBL模式和項目驅動模式,在課程內容中以真實項目為依據設計學習問題或項目任務,引導學生帶著問題主動學習,在應用知識解決實際問題或項目任務的過程中,培養其自主學習能力及團隊合作能力。
PBL(Problem-Based learning) 即以問題為導向的教學法[1],目前已成為國際上較流行的一種教學方法。國內眾多學者對PBL教學法進行了研究,并將該教學方法引入到各自的教學中來。與傳統的以學科為基礎的教學法有很大不同,PBL強調以學生的主動學習為主,而不是傳統教學中的以教師講授為主[3]。從這點來看,PBL教學法尤其適用于高職學生教育,對學生的學習積極性要求較高,高職學生對理論學習的興趣較低,設法將PBL教學法引入高職課堂,能夠激發學生的學習主動性,學生成為課堂的主角,教師成為課堂的引導者,師生之間相互配合,共同完成課程教學任務。這樣不僅僅能夠達到教育學生掌握科學知識的目的,還能夠鍛煉學生的自學能力,而自學能力又是高等教育中至關重要的一個環節。
基于PBL的課程設計還要結合具體的課程特點,不同類型的課程,其課程設計思路與措施不盡相同[4]。高職教育有其自身的獨特性質,對于問題的設計要結合高職學生的特點,問題難度要適中,要結合實際問題,便于學生的理解和學習。本文旨在討論如何結合PBL模式對.NET企業級應用開發系列課程進行課程設計與改革,體現出學生在教學中的主體體位,進而實現PBL從問題設計到問題解決的新平臺。
通過對我省軟件行業及市場分析,結合我院軟件技術專業往屆畢業生的走訪調研,我院在軟件技術專業2015年修訂的人才培養方案中,將.NET企業級應用開發系列課程列為我院軟件技術專業核心專業課程。.NET平臺是微軟推出的集成開發環境,核心組件包括.net framework以及基本類庫。該平臺上的C#語言支持面向對象思想,使用靈活,在系統建設、虛擬現實等領域應用廣泛。為此,我院的軟件技術專業職業核心能力包括具有主流軟件(Java和.NET平臺)基本編程的技能和具有開發基于B/S或C/S架構的企業應用軟件的能力。
.NET企業級應用開發系列課程是高職軟件技術專業學生必須要掌握的專業核心課程,課程讓學生體驗團隊合作開發軟件項目,使學生全面了解軟件項目實施中的愿景、需求、開發、測試、用戶體驗和發布管理的組織管理和運作方式。在教學實施過程中“教”的方面盡快跟上經濟的發展,縮短職業教育與職業需求的差距,以快速、主動的自適應變化取代傳統的被動變化的教育方式,真正使高等職業教育在國民經濟發展中發揮應有的作用。
為了將PBL教學法引入到.NET系列課程的課堂中,需要對課程的整體設計進行結構優化,通過項目式教學、案例教學等方式對課程標準、課程整體設計、課程實驗教學等進一步補充與完善。力求在課程教學中通過問題引入、分析問題、探討解決方案、團隊合作解決問題的方式,鍛煉學生利用所學知識解決實際問題的能力。項目教學法在.NET企業級應用開發系列課程中尤為適用,而項目的設計就可以結合生活中的實際問題,比如開發聊天系統、計算器、備忘錄等,學生對問題較為熟悉,但未曾從開發者的角度出發看待過這樣的問題,學生初次解決此類問題時會覺得既熟悉又陌生,甚至不知道該如何入手解決這樣的問題,極大地激發了學生的學習興趣。通過分組的形式,小組成員共同分析問題,研究制定解決方案,在這個過程中又鍛煉了學生的溝通表達能力與團隊合作能力。而解決問題的具體方法又都回歸到了課堂知識的學習和理解上來,學生就會自覺地進行學習,通過網絡、課本和老師尋求解決方法,進而達到學習知識和技術的目的。學生在整個過程中也會體會到學習的快樂,增強學生的自信心。
我院軟件技術專業課程設置以Java和.NET為技術主線開展,而.NET企業級應用開發又包括C#程序設計、動態網站開發asp.net、.NET企業級應用開發等系列課程,同時單開企業級項目開發實訓、中小型Web項目開發實訓等實踐課程。該系列課程通過基于PBL模式的課程建設與改革后,課程教學模式采用“教師課前提出問題—學生查找資料并動手實踐—分組討論—教師總結”的方式進行。.NET技術由微軟公司提供技術支持,這方面的網絡資源十分豐富,學生完全可以利用課余時間進行自主學習,教師設計出帶有趣味性的問題,學生帶著問題去查閱文獻和資料,會有很大的收獲。
以.NET企業級應用開發這樣的專業核心課程為例,筆者制定了完備的課程標準與課程整體設計、實驗項目卡等教學資源。同時,利用吉林大學課程中心網站(cc.jlu.edu.cn)構建本門課程的課程網站,提供網上課件下載、作業提交、分組討論等功能。通過前期所開設的基礎課程,學生在進行該門課程之前已經具備了基本的C#編程能力,對Web系統的基本組成、工作原理以及與傳統的C/S軟件架構的區別也都基本熟悉。通過.NET企業級應用開發課程,學生能夠通過具體的項目開發整合所學知識,真正地鍛煉通過所學知識解決實際問題的能力。
對于問題設計,筆者在教學中引入了與學生密切相關的網上考試系統。在這個問題中,學生既是用戶又是開發人員,一方面要考慮什么樣的功能適用于學生,另一方面還要考慮通過哪些技術可以實現這些功能。教師在這個問題又扮演著“導演”的角色,教師也是這個問題的主要用戶,對學生給出的需求有一票否決權。因此學生要學會與教師(客戶)溝通,充分了解實際需求。項目開發完成以后,教師和學生又都成為了測試人員,可以對該問題的解決方案作出評價,這里包括教師的評價和分組之間的互評。通過項目開發,每個學生都通過解決實際問題學會了發現問題、分析問題、解決問題的方法。
基于對課程內在邏輯的分析,使用自頂向下的設計,較好地實現從問題到教學目標的映射。該門課程包括3個項目,共計60學時,其中圍繞如何開發網上在線考試系統,可將該門課程的教學內容分為需求分析、系統總體設計、后臺與前臺功能實現及系統測試與發布等4個階段。
第1個階段,網上考試系統需求分析。網上考試系統共包含3個角色,分別是學生、教師和管理員,由于學生對于考試非常熟悉,所以這樣的系統對于學生來說較為適合。在該階段,需要強調學生的自主學習,或者稱為獨立學習。學生通過教材閱讀、互聯網資料查找、學院教師與教務管理人員的直接溝通等方式獨立進行該階段的學習任務。有條件的學生可以通過多媒體、互聯網等途徑學習,充分利用自己手中的教育資源。該階段可以以項目策劃書的方式作為成果進行驗收。
第2個階段,網上考試系統總體設計。根據前一階段的需求分析和設計方案,擬采用分組學習,又稱為合作探究的方式。以小組為單位,由組長負責。小組成員之間互相交流,共同研討。該階段通常包括系統概要設計、詳細設計和數據庫設計等內容。該階段可以以項目總體設計書、系統功能模塊圖、系統用例圖等作為成果進行驗收。
第3個階段,系統后臺與前臺功能實現。各小組分工明確,通力配合,按照總體設計思路進行系統各功能模塊的編碼實現。在這個過程中,各小組都會遇到各種各樣的實際問題,各小組可以通過討論的方式解決問題。在該階段,教師的輔助作用得以體現,教師應進行重難點講解,同時整理并匯總各小組提出的問題,選擇學生疑問較多的三到五個問題,作為本節課講解的重點內容。該階段可以以程序代、系統功能展示等作為成果進行驗收。
第4個階段,系統測試與發布。該階段的工作可通過“小組互測”的方式進行,在一個相對獨立的環境下運行系統單元,觀測和記錄運行結果,并對結果進行獨立評價。小組成員對其他組員給出的測試結果進行驗證和修改,組員共同實施系統部署與發布。本階段最主要的工作就是進行項目總結與資料整理,可以通過項目總結報告的形式進行驗收。
通過開發“信息發布系統”,學生可以達到以下的學習目標及能力:①學生可以進一步熟練使用標準控件和驗證控件進行頁面的設計與制作;②進一步理解ASP.NET的頁面代碼模型以及Web站點的類型,動態網站開發asp.net課程中對頁面代碼模型的原理進行過介紹,但難于理解,學生通過具體的項目開發,能夠真正理解該原理的作用;③進一步掌握ADO.NET模型,不僅僅是掌握Connection對象、Command對象等基本概念,更應該理解離線模式數據訪問與連線模式數據訪問的特點和應用場景。應該不只局限于追求功能上的實現,也應該同時考慮系統性能、優化問題以及安全問題;④理解Session模型,課上對該模型的講解較為難于理解,而在該項目的開發中,管理員角色需要在不同的系統功能頁面之間切換,管理員信息的存儲正是通過Session模型實現的,這對學生理解該模型已經何時使用該模型具有重要作用。
通過“網上選課系統”,學生在前一個系統開發的基礎上,重點可以掌握ASP.NET的三層架構設計原理及方法。對三層架構的理解,需要具體項目的支持,學生只有在開發多個項目案例之后,才會對三層架構的巨大作用有所理解,而課上的時間有限,先讓學生實現一個不采用三層架構的系統,然后再讓學生修改這個系統,用三層架構來實現,從而讓學生能夠比較出來該模型的優勢。另外,學生可以進一步熟練使用網站導航等服務器控件,同時理解ASP.NET標準服務器控件、HTML控件和HTML服務器控件之間的區別和聯系。
最后,通過“網上考試系統”,學生學習可以進入到能力進階,在掌握基本知識的前提下,進一步了解Ajax技術、三個系統的整合方法、系統的部署與維護等等。從軟件項目管理的角度對系統進行自我評價。在整個學習過程中,學生既是用戶,又是程序員、測試員和項目經理,對學生的能力和素質要求極高,可以真正鍛煉和考察學生的綜合素質。
計算機行業發展迅速,隨之而來對計算機教育教學的發展提出了更高的要求,這不僅僅體現在對學生的學習能力、溝通能力和綜合能力要求上,也體現在對教師對課程的設計、教學內容的調整、教學方法的改革上。另外,計算機教學與其他學科的教學還有一個特殊的要求,現代高速發展的信息社會對計算機專業學生的自學能力要求極高,教師在教學過程中應該切實提高學生的自學能力。
筆者以吉林大學2017年度本科教學改革研究項目為依托,主要研究如何將PBL教學法應用到.NET企業級應用開發系列課程的教學過程中,以及如何針對高職教育教學的特點,對PBL教學法進行適當的改革以期達到更好的教學效果。通過前期項目組所做的具體工作,PBL教學法能夠激發學生的學習興趣,提升學習主動性,為軟件技術專業以能力為本位的教育思想提供了一條值得推廣的經驗途徑。
軟件開發具有非常大的可操作性,建設以問題為導向的軟件技術專業核心課程,就是從被動式的教與學轉化為團隊協作式的學習,教師轉變為“導師”,對學生予以引導和指導;同時,引用真實的軟件項目案例,強化學生的動手實踐環節,培養學生的動手能力,為學生進入工作崗位做好準備,從而實現真正意義上的職業能力的培養。