張淑麗+姚登舉+車楠
摘要:在軟件工程專業的教學中存在多門開源框架類課程,根據開源框架類課程的特點,針對軟件學院開源框架類課程教學中存在的“理論與實踐脫離、教學內容重復、教學案例在課程之間缺少聯系”的問題,提出了開源框架類課程的整合教學方法,取得了“厚基礎、強實踐、重應用”的教學效果。
關鍵詞:JAVAEE;開源框架;教學方法;軟件工程
中圖分類號:G642.0文獻標識碼:A文章編號:1002-4107(2014)06-0017-02
自從JAVA語言誕生以來,就受到了面向對象編程者的追捧,無疑JAVA是最受歡迎的程序設計語言之一?;贘AVA語言的軟件開發框架也是比較多的,據TIBCO的數據統計,現在基于JAVA的開源框架就有上百種,而且在不同的企業內部,還有自己的開發框架[1]?;贘AVA語言進行軟件項目開發,一般都是基于某一個或幾個框架來進行的。在軟件工程專業中,為了更加貼近項目實踐,培養卓越的軟件工程師,許多軟件學院也相繼開設了一些開源框架類的課程。
一、開源框架類課程的特點
在軟件工程專業的軟件開發技術JAVAEE方向,一般會設置以STRUTS、SPRING和HEBERNATE為基礎的三大框架類的課程:基于MVC的WEB開發、ORM框架原理與應用和輕量級J2EE框架SPRING。在其他的專業方向中還有一些開源框架類課程,例如:Android平臺移動云計算開發、Linux內核與Andriod架構分析與實踐等。開源框架類課程主要具有以下三方面的特點。
(一)具有程序設計語言基礎
框架都是在特定的程序設計語言當中去應用的,基于JAVAEE的開源框架都是以JAVA語言為基礎的,那就要求學生一定要具有扎實的程序設計語言基礎,對于JAVA要有深入的學習。
(二)遵守框架設定的規則
任何一個程序設計語言本身都是非常靈活的,設計者可以根據自己的想法進行程序的設計,但是基于框架進行程序開發,就必須要按照框架所設定的規則進行代碼的編寫。
(三)框架的開源性
因為JAVA是一種開源的程序設計語言,因此基于JAVAEE的軟件開發框架一般也都是開源的,這也就意味著學生在學習的過程中,可以直接閱讀框架的源代碼,當然閱讀框架的完整源代碼是不太可能的,這就需要教師在教學的過程中引導學生選擇性地閱讀一部分,其主要目的是了解框架的設計思想和規范的代碼設計風格。
二、開源框架類課程的教學誤區
框架類課程在高等院校的教學實踐活動當中一直是存在的,從專業基礎課到專業方向課。所謂框架可以理解為某一個程序設計的基礎或者某一種程序設計的原理、一種程序設計的方法、一種程序設計的思想[2]。程序設計語言多種多樣,程序設計的方法也是多樣的,但是在這多種多樣的程序設計當中,總能夠抽取出一些共性來,對于這些共性的東西加以整理,就可以成為一種“框架”,可以在以后的開發當中反復使用。不同的開源框架應采取不同的教學方法,但是在現階段的課程教學當中主要存在以下三個方面的問題。
(一)理論與實踐脫離
開源框架類課程的原理是很重要的,但是原理是抽象的,需要與具體的實際應用相結合,否則學生是很難理解的。但是,由于現在實際教學過程存在的課時不夠、教學環境等方面的原因,在教學過程中學生的實踐是比較少的,造成理論講授與實踐應用之間脫節。
(二)多個框架類課程教學中的內容重復
各式各樣的框架當中也存在一些共同點,這些共同點,在多個框架中出現,實屬正常,體現共同點的重要性。但是作為課程教學,這些共同點如果反復來講解,就會讓學生感覺索然無味,毫無新意,從而產生厭學的情緒,教學效果會大大降低。然而,在現階段的教學活動當中,一般是以一門課程為單位進行教學的,每門課程考慮在本課程內應該完成的教學任務而忽略其他的課程,這就容易造成教學內容的重復。
(三)教學案例在課程之間缺少聯系
對于開源框架類課程,在教學的過程中,一般都會介紹一些小的案例,通過案例讓學生把本課程的知識點貫穿一下。但是在多門課程之間就缺少這樣的一種貫穿,即多個框架都學完了,每個框架都明白,但是把多個框架融合到一起就不會用了。
三、開源框架類課程的整合教學方法
在開源框架類課程的教學當中,要遵守“厚基礎、強實踐、重應用”的基本原則,首先把握這個框架的核心,要把框架的原理介紹清楚,框架的應用價值、能給程序設計帶來什么樣的好處,這一點要讓學生明白,然后再通過具體的框架實例來向學生具體說明框架的好處,要在具體應用當中來體現[3]。這就需要在某一個專業方向中作宏觀把握,對于這些開源框架類的課程作整體規劃,統籌安排。
(一)理論與實踐的整合
軟件工程專業的框架類課程所占的比重是比較大的,包含的科目也比較多,在本課題的研究當中,主要是要以原來的JAVA語言為基礎,把基于JAVA語言的三大框架進行教學方法的整合。在這三大框架當中都有JAVA語言實現的框架實例,首先在JAVA語言的教學過程當中,就要向學生介紹框架的起源——重用技術,如何進行代碼設計,能夠最大限度地提高代碼的重用率,這就涉及在程序設計當中的規則與規范,以及為什么會存在這樣的規則,規則的好處在哪里,為了更好地實現規則,那就要采用框架。然后在介紹每一個框架原理的時候,都要與某一個具體的框架實例相結合,例如在介紹ORM框架原理與應用的時候,就可以采用HEBERNATE或者IBATIS框架實例。
(二)教學方法的整合
要想顯著提升教學效果,首先就應該從教學方法上入手,大學的學習是自主學習,簡單來說就是靠學生自己來學習。但是教師在教學的過程中需要告訴學生應該如何來學習,用什么樣的方法來學習,這就涉及教學方法的問題。在框架類課程當中,一般是強調框架的原理與框架的應用,在課堂的教學當中主要是講解框架的原理,在原理的講解當中可以采用案例教學法或對比教學法,通過具體的案例應用與對比,讓學生真實感受到框架在程序設計當中的好處。
(三)教學內容的整合
教學內容在各個框架的教學當中,都是教學的重點,也是該課程的核心。在各個框架當中,都有自己的核心應用,也都有自己的強勢所在,同時也不可避免地會與其他的課程在內容上有重疊,這就需要在教學內容上有所側重和刪減。以JAVAEE方向的三大框架為例,基于MVC的WEB開發主要就是講解MVC的設計模式的優點以及在應用當中如何進行MVC的分層,當然要結合一個具體的框架,例如可以采用STRUTS2,具體采用哪個框架在教學實踐活動中,要根據現在軟件開發當中哪一個框架應用范圍最廣泛,流行度最好,同時要結合教學的難度和學生的實踐情況來選擇一個框架實例。ORM框架原理與應用主要就是講解對象關系映射?,F在的程序設計通常采用面向對象的程序設計方法,但是數據庫系統現在采用的還是關系型數據庫,所以本課程主要就是講解對象如何向關系型數據中進行映射,具體采用的框架可以是HEBERNATE,當然也可以是ibaits。
(四)教學案例的整合
在每一個框架的講解當中,教師都會通過一個具體的案例來進行本課程的知識點和應用點的整合,往往是能夠把本課程的知識點整合到一個具體的案例當中。但是在多個框架學習完成之后,學生沒有一個框架整體的概念,而且在實際的應用當中,往往也是多個框架整合來應用的,這就需要在多門框架類課程的教學當中,對于教學案例也要進行整合,能夠通過一個案例把多門課程的知識點和應用點在一個大的案例當中貫穿進來,并通過對比,讓學生形成一個整體的概念,加深框架類課程知識點的理解,提高實際的動手能力。
四、課程整合后的教學效果
在哈爾濱理工大學軟件學院軟件工程專業,軟件開發技術JAVAEE方向的學生數量是最多的,學生的學習愿望還是比較高的。通過開源框架類課程整合教學方法的實施,在2010級學生的學習當中,已經明顯提升了學生的學習興趣,學生在學習當中能夠對多個框架進行融會貫通;在實際項目的開發當中,能夠靈活地根據項目的特點進行框架的選擇。通過收集在教學過程的學生反饋,已經明顯地看到整合后教學方法所帶來的教學效果,學生對此教學方法表示歡迎。在下一步的研究探索當中,可以把開源框架類課程整合教學方法推廣到其他的專業方向當中,以此提升軟件學院整體的教學水平和教學效果。
參考文獻:
[1]孟大偉,吳秋鳳,劉勝輝等.“定制式”培養應用型創新人才的探索與實踐[J].中國高教研究,2008,(9).
[2]唐光義,劉勝輝,張淑麗.以工程應用為導向的JAVA教學方法探索[J].計算機教育,2013,(5).
[3]張曉晶,張淑麗,劉勝輝.軟件工程專業校企合作“2+1+1”人才培養模式的研究與實踐[J].黑龍江教育:高教研究與評估,2013,(3).
收稿日期:2013-09-26
作者簡介:張淑麗(1969—),女,黑龍江阿城人,哈爾濱理工大學軟件學院副教授,主要從事軟件工程教育研究。
基金項目:黑龍江省高等教育教學改革專項項目“基于協同創新的軟件學院新型建設模式的研究與實踐”(JGZ201201112);
黑龍江省高等教育教學改革項目“省級試點學院新型內部治理結構的構建”(JG2013010310)