劉文濤,賈 瑜,董正言,張 琳
(武漢輕工大學(xué) 數(shù)學(xué)與計算機學(xué)院,湖北 武漢430023)
基于Java案例庫的軟件工程專業(yè)實踐教學(xué)研究
劉文濤,賈 瑜,董正言,張 琳
(武漢輕工大學(xué) 數(shù)學(xué)與計算機學(xué)院,湖北 武漢430023)
Java語言使用非常廣泛,在軟件工程專業(yè)的實踐教學(xué)中占有重要地位,為了提高軟件工程專業(yè)學(xué)生的動手能力和工程能力,需要提供一套切實可行的實踐教學(xué)方案。根據(jù)以Java案例為中心的實踐教學(xué)的目的和要求,從案例的選擇、案例的內(nèi)容架構(gòu)、案例的實施方法以及實踐考核評價機制等方面,合理構(gòu)建Java案例庫并運用案例庫進行實踐教學(xué),對培養(yǎng)和提高學(xué)生的編程能力、項目經(jīng)驗、工程技能等方面具有重要意義。
Java;案例庫;軟件工程;實踐教學(xué)
實踐教學(xué)是專業(yè)人才培養(yǎng)的核心組成部分,尤其對于面向產(chǎn)業(yè)需求的應(yīng)用型軟件工程專業(yè)實踐教學(xué)體系,更是顯得舉足輕重。該實踐教學(xué)體系注重對學(xué)生實際動手能力的培養(yǎng),注重項目工程技能的培養(yǎng),其目的是讓學(xué)生在畢業(yè)時能夠達到產(chǎn)業(yè)要求。為了避免產(chǎn)生培養(yǎng)的人才與企業(yè)需求脫鉤的問題,在本科教學(xué)中如何構(gòu)建切實可行的實踐教學(xué)方案,顯得非常有意義[1-2]。實踐教學(xué)環(huán)節(jié)一般包括課程實驗、課程設(shè)計、實習(xí)實訓(xùn)、畢業(yè)設(shè)計等,在每個實踐教學(xué)環(huán)節(jié)都有自己的要求和目的。課程實驗主要是對理論課程的知識點進行實踐和掌握,課程設(shè)計主要是使用綜合項目來對課程總體掌握,熟練運用所學(xué)知識點;實習(xí)實訓(xùn)環(huán)節(jié)主要讓學(xué)生掌握運用所學(xué)各種課程的內(nèi)容到具體的實際項目中,理論應(yīng)用到實踐,提高學(xué)生動手能力;畢業(yè)設(shè)計則考查學(xué)生對所學(xué)知識的綜合運用和專業(yè)能力。在軟件工程專業(yè)的課程體系中,Java語言是一個核心語言,它的應(yīng)用非常廣泛,主要用于WEB應(yīng)用程序和Android移動設(shè)備應(yīng)用程序的開發(fā),這兩個應(yīng)用方向,也是軟件工程專業(yè)學(xué)生比較多的就業(yè)方向。所以選擇Java語言作為對象來建設(shè)案例庫,具有實際意義[3]。
2.1 案例選擇
為了讓學(xué)生在學(xué)習(xí)案例時既能夠容易入手,又能夠讓學(xué)生的實踐能力循序漸進地得到提高,Java案例的選擇要遵循以下規(guī)則:一是必須具有延續(xù)性。所謂延續(xù)性,是指在課程體系中,實踐環(huán)節(jié)的案例內(nèi)容在前續(xù)課程和后續(xù)課程之間能夠自然銜接。如果銜接不好,可能會出現(xiàn)很多問題,例如,在前續(xù)課程和后續(xù)課程中有重疊問題,內(nèi)容重復(fù)。或者后續(xù)課程的實踐內(nèi)容過于復(fù)雜,讓學(xué)生短時間無法接受而影響實踐效果,導(dǎo)致學(xué)生容易氣餒,產(chǎn)生畏懼厭學(xué)情緒。另外,案例的選擇應(yīng)該從簡單到復(fù)雜,循序漸進,通過簡單案例到綜合案例,中間要有銜接,層層遞進,讓學(xué)生在不同的實踐環(huán)節(jié)之間能夠比較自然過渡。二是必須具有代表性。由于軟件工程專業(yè)所涉及的內(nèi)容比較廣泛,而且新的技術(shù)也在不斷發(fā)展,但學(xué)生的精力有限,再加上課時限制,所以對于案例內(nèi)容的取舍就顯得很重要。如果內(nèi)容過于寬泛,沒有重點,沒有代表性,會導(dǎo)致學(xué)生學(xué)了很多,但都沒有學(xué)牢固,不能精通掌握。所以案例的內(nèi)容應(yīng)該精煉,數(shù)量要適當(dāng),應(yīng)該讓學(xué)生以掌握最重要和最基礎(chǔ)的內(nèi)容為主,次要內(nèi)容可以讓學(xué)生在實際的項目中自學(xué)。另外,如果是企業(yè)提供的案例,應(yīng)該具有實際工程背景,可以是企業(yè)實踐項目的子項目。
案例庫的難易程度必須適中,因為學(xué)生的學(xué)習(xí)能力參差不齊,為了滿足大部分同學(xué)的學(xué)習(xí)進度,適中的案例才是有幫助的[4]。另外,為了考慮不同層次,設(shè)計一些具有一定難度的案例庫作為任選題目,讓那些學(xué)習(xí)能力比較強的學(xué)生能夠得到鍛煉和提高。這些案例,需要學(xué)生在已有知識上自學(xué)一些知識才能完成,這樣可以激發(fā)學(xué)習(xí)興趣,鍛煉自學(xué)能力。案例庫的文檔要齊全,參考資料要充分,讓學(xué)生能夠方便查閱相關(guān)文獻。
2.2 案例內(nèi)容架構(gòu)
針對各個實踐環(huán)節(jié),合理組織案例庫,每個實踐環(huán)節(jié)的案例庫不同,每個案例都有自己的適用場合。根據(jù)軟件工程的培養(yǎng)方案和課程體系,其案例庫的內(nèi)容架構(gòu)如圖1所示,從上到下,依次推進。
圖1 Java案例庫的內(nèi)容架構(gòu)
《Java程序設(shè)計》課程是學(xué)生第一次接觸到Java語言,理論課程和實驗課程緊密銜接,注重實踐訓(xùn)練,把理論知識轉(zhuǎn)化為動手實踐能力[5]。其課程實驗的案例庫應(yīng)該簡潔而有針對性,設(shè)計驗證性和綜合性實驗,主要目的是讓學(xué)生對Java的語法和知識點能夠熟練掌握。例如對象和類、繼承、多態(tài)、抽象類、接口、異常等[6]。
《Java程序設(shè)計課程設(shè)計》是學(xué)生在學(xué)完Java語言后的第一次比較綜合性的實踐課程。該課程的目的是讓學(xué)生能夠運用Java設(shè)計一些比較綜合性的應(yīng)用程序,例如Java界面程序,基于Java的信息管理程序,Java小游戲等[7]。讓學(xué)生能綜合靈活運用Java的語法,以便進一步全面掌握J(rèn)ava知識點。
《基于J2EE開發(fā)技術(shù)》課程是運用Java語言開發(fā)WEB應(yīng)用程序,涉及到很多WEB技術(shù),例如JSP、Servlet、JDBC、架構(gòu)技術(shù)等,其實踐的案例應(yīng)該圍繞WEB應(yīng)用開發(fā)而展開,針對WEB開發(fā)的知識點設(shè)計各種案例,例如頁面展示、表單操作、過濾器、數(shù)據(jù)庫操作等。
《移動設(shè)備軟件應(yīng)用與開發(fā)》課程是使用Java語言開發(fā)Android平臺應(yīng)用程序,現(xiàn)在移動應(yīng)用開發(fā)是主流,該課程實踐環(huán)節(jié)的案例側(cè)重移動應(yīng)用,圍繞各種Android技術(shù)而設(shè)計案例,例如組件Widget、布局Layout、多媒體、數(shù)據(jù)庫等。
軟件工程專業(yè)實習(xí)是軟件工程專業(yè)的一個重要實踐環(huán)節(jié),在該環(huán)節(jié)中要求學(xué)生能綜合運用所學(xué)知識,設(shè)計和實現(xiàn)一個完整的項目系統(tǒng)。在設(shè)計的過程中,圍繞軟件工程的標(biāo)準(zhǔn)規(guī)范,從各個環(huán)節(jié)達到綜合運用的目的。該案例應(yīng)該是非常綜合的,從軟件需求、軟件設(shè)計、軟件實現(xiàn)、軟件測試等各個環(huán)節(jié)入手,設(shè)計出典型的案例項目。
除了以上典型的課程外,還有一些課程也會涉及到一些基于Java的案例庫,例如數(shù)據(jù)庫課程、軟件工程學(xué)課程、軟件測試課程等。雖然他們是某個方面的專業(yè)課程,但在他們的實踐環(huán)節(jié)中一部分也會使用到Java。例如在軟件測試課程中,其單元測試可以利用Java開發(fā)中的JU nit案例來實踐。
3.1 校企合作
軟件工程專業(yè)的畢業(yè)生應(yīng)能夠滿足產(chǎn)業(yè)需求,達到行業(yè)相關(guān)實踐標(biāo)準(zhǔn)。為了這個目標(biāo),在實踐教學(xué)環(huán)節(jié)里,需要與企業(yè)緊密合作。在構(gòu)建Java案例庫的時候,有些案例由教師提供,有些案例應(yīng)該由企業(yè)直接提供,或者由教師和企業(yè)共同設(shè)計。
另外,為了讓學(xué)生能直接獲取行業(yè)背景,推薦學(xué)生到企業(yè)進行實踐,讓學(xué)生全程參與Java項目的設(shè)計和開發(fā)工作。在具體項目的實踐中熟悉和掌握開發(fā)Java項目的方法和技術(shù),提高其工程能力,熟悉企業(yè)的軟件工程規(guī)范,積累實際項目經(jīng)驗。既具有企業(yè)實際背景的案例,又具有真實行業(yè)的環(huán)境,可以讓學(xué)生獲得更加直觀和創(chuàng)新的實踐教學(xué),在實踐中驗證、鞏固和升華理論知識,培養(yǎng)工程技能和行業(yè)素質(zhì)。
3.2 雙導(dǎo)師機制
對于基本的Java案例庫的實施,例如Java知識點案例,Web開發(fā)案例等,可以由教師直接操作。但對于軟件工程專業(yè)的綜合實踐實習(xí)環(huán)節(jié),采用雙導(dǎo)師機制。由企業(yè)兼職教師和學(xué)校專業(yè)教師共同制定Java案例,共同參與實踐課程體系的建設(shè)。企業(yè)兼職教師參與實踐課程授課,輔導(dǎo)學(xué)生參與實際項目開發(fā)。除了讓企業(yè)提供兼職教師,學(xué)校也推薦教師到企業(yè)培訓(xùn)和學(xué)習(xí),提升教師的工程實踐能力,與企業(yè)建立長期合作關(guān)系,建立培訓(xùn)學(xué)習(xí)平臺。
3.3 培養(yǎng)自學(xué)能力
案例在實踐教學(xué)運用的過程中,注重對學(xué)生自學(xué)能力的培養(yǎng),教師主要是引導(dǎo)角色,積極指導(dǎo)學(xué)生對案例的學(xué)習(xí)和實現(xiàn)。讓學(xué)生能主動查閱資料,對于一般問題能夠自己解決,教師不能直接給出結(jié)果,而應(yīng)該給問題的解決思路。對于案例的設(shè)計,應(yīng)該給出層次性,包括基礎(chǔ)性案例、綜合性案例和創(chuàng)新性案例。對于創(chuàng)新性案例,不設(shè)置固定方案,鼓勵學(xué)生提出更優(yōu)的解決方案,激發(fā)學(xué)生的學(xué)習(xí)興趣和創(chuàng)造力,提高學(xué)生的自學(xué)能力和解決問題的能力。
4.1 考核指標(biāo)
在以Java案例庫的實踐教學(xué)中,注重考核學(xué)生的動手實踐能力。在考核的過程中,應(yīng)該考查以下幾個方面。
(1)項目質(zhì)量
考核是否按時完成所規(guī)定的任務(wù)要求,是否能達到各項功能模塊要求,工作量是否飽滿等。
(2)動手能力
軟件工程專業(yè)是實踐性很強的學(xué)科,對于學(xué)生動手能力的考核很重要。注意考查學(xué)生是否能夠把理論知識轉(zhuǎn)化為實踐的能力,是否能夠解決實際問題。
(3)創(chuàng)新能力
考查學(xué)生是否能夠提出新的解決方法,是否有較強的自學(xué)能力,是否能夠查閱相關(guān)的文獻資料,是否能夠獨立解決遇到的新問題。
(4)代碼規(guī)范
良好的代碼規(guī)范便于代碼維護、糾錯和移植。在案例庫里設(shè)定代碼編寫規(guī)范,讓學(xué)生嚴(yán)格遵守代碼規(guī)范進行編程,這對于培養(yǎng)良好的編程習(xí)慣很重要。
(5)文檔撰寫
在Java項目開發(fā)中,文檔撰寫是重要環(huán)節(jié)。在項目需求分析、軟件設(shè)計、軟件測試等環(huán)節(jié)都需要嚴(yán)格按照相關(guān)文檔規(guī)范進行撰寫。在考核中,對文檔的格式、內(nèi)容、規(guī)范性等進行嚴(yán)格考核。另外,各種報告內(nèi)容必須豐富嚴(yán)實,具有獨創(chuàng)性,包括實驗報告、課程設(shè)計報告、專業(yè)實習(xí)報告等.
(6)職業(yè)素養(yǎng)
一個好的軟件工程師,需要具備好的職業(yè)素養(yǎng),這其中包括團隊合作能力、溝通能力、態(tài)度紀(jì)律和考勤等。在案例實施過程中,讓學(xué)生參與各種活動環(huán)節(jié),提高其職業(yè)素養(yǎng),例如團隊分工、演示環(huán)節(jié)、現(xiàn)場答辯、小組會議、匯報交流等[8]。
4.2 考核實施
側(cè)重對學(xué)生平時環(huán)節(jié)的評價和考核,每個階段制定一個達標(biāo)的具體指標(biāo),每到達一個階段對指標(biāo)進行評分,避免只注重結(jié)果而不注重過程。在每個環(huán)節(jié)評價之后,及時公開成績,讓學(xué)生知道自己有哪些不足,及時改正并跟進學(xué)習(xí)進度,避免學(xué)生掉隊的情況出現(xiàn)。在考核中引入學(xué)生自評和互評環(huán)節(jié),對自己的項目和別人項目進行評價,調(diào)動學(xué)生參與度和積極性。在企業(yè)實習(xí)的過程中,采用半封閉式管理,由企業(yè)指導(dǎo)教師根據(jù)企業(yè)標(biāo)準(zhǔn)對學(xué)生的成績進行評定,特別是職業(yè)素養(yǎng)方面和實際動手能力的考核。
以Java案例庫為中心的軟件工程實踐,是面向產(chǎn)業(yè)需求培養(yǎng)體系的一個重要環(huán)節(jié)。Java案例庫的建設(shè),是一個不斷積累的過程,隨著行業(yè)新技術(shù)的不斷出現(xiàn),案例庫也會不斷增加或刪減。在實施案例庫的過程中需要密切配合和相互協(xié)調(diào),特別是不同老師之間,不同課程之間,應(yīng)該在教學(xué)大綱這個環(huán)節(jié)就要考慮,在制定培養(yǎng)方案的時候需統(tǒng)籌安排。軟件工程專業(yè)發(fā)展比較快,相關(guān)行業(yè)標(biāo)準(zhǔn)也在飛速發(fā)展,這就需要教師緊密結(jié)合行業(yè)需求,不斷根據(jù)行業(yè)標(biāo)準(zhǔn)建設(shè)案例庫,提高軟件工程專業(yè)的實踐環(huán)節(jié)。
[1] 王新海,王永貴,張海濤.軟件工程專業(yè)工程化實踐教學(xué)研究與實踐[J].遼寧工程技術(shù)大學(xué)學(xué)報(社會科學(xué)版),2010,12(6):657-659.
[2] 韓丹丹,郭紅,姚登舉.基于CDIO軟件工程專業(yè)實踐教學(xué)的研究[J].科技與管理,2014,16(2):66-69.
[3] 朱廣萍,柳益君,葉飛躍,等.基于崗位能力的軟件工程專業(yè)實踐能力培養(yǎng)研究[J].江蘇理工學(xué)院學(xué)報,2014,20(6):86-92.
[4] 王飛雪.Java程序設(shè)計課程的項目化教學(xué)研究[J].電腦與信息技術(shù),2016,24(2):66-67.
[5] 符志強,張紅.Java語言課程案例教學(xué)改革研究[J].現(xiàn)代計算機,2010,10:38-40.
[6] 梁勇(Y. Daniel Liang).Java語言程序設(shè)計(基礎(chǔ)篇)(第10版)[M].戴開宇.北京:機械工業(yè)出版社,2015.
[7] 張廣彬,王小寧,高靜.Java 課程設(shè)計案例精編(第二版) [M].北京:清華大學(xué)出版社,2011.
[8] 沈維政,蘇中濱,趙潔.項目驅(qū)動教學(xué)法在Java語言程序設(shè)計教學(xué)中的應(yīng)用[J].東北農(nóng)業(yè)大學(xué)學(xué)報(社會科學(xué)版),2010,8(2):66-67.
Research on practical teaching of software engineering specialty based on Java case library
LIUWen-tao,JIAYu,DONGZheng-yan,ZHANGlin
(School of Mathematics and Computer Science, Wuhan Polytechnic University, Wuhan 430023, China)
Java language is widely used and it occupies an important position in the software engineering specialty practical teaching.It needs to provide a viable practical teaching plan in order to improve practical abilities and engineering capabilities of students of software engineering specialty.According to the purpose and requirements of practice teaching centered on Java case,some aspects are considered which include case selection,case content architecture,implementation method of case,practice assessment mechanism.Reasonable construction of Java case library and application of case library for practical teaching are of great significance to the practice of students which contain the programming skills,project experience,engineering skills and so on.
Java; case library; software engineering; practical teaching
2016-10-20.
劉文濤(1977-),男,副教授,碩士,E-mail:xkwk@qq.com.
湖北省高等學(xué)校省級教學(xué)研究項目(2015337).
2095-7386(2017)02-0110-04
10.3969/j.issn.2095-7386.2017.02.021
G642
A