謝中科 鄧澤林
摘? 要: Java課程群是軟件工程專業(yè)核心方向課程之一,其教學效果直接關系到軟件工程專業(yè)學生的知識結構、復雜問題分析、建模和工程項目實踐能力。針對傳統(tǒng)Java系列課程教學的問題,本文提出了將Java系列課程融合為課程群,建設教師團隊,并基于教師團隊進行全局教學內容的設計與優(yōu)化,引導學生深入學習Java相關核心技術,并利用工程項目來夯實學生的理論基礎、強化學生的動手實踐能力。實踐結果表明:Java課程群教學改革措施很好地改善了學生的知識結構和實踐能力,說明了所提改革措施具有實際意義和參考價值。
關鍵詞: 軟件工程;Java語言;課程群;項目實踐
中圖分類號: TP311.52,G642.0? ? 文獻標識碼: A? ? DOI:10.3969/j.issn.1003-6970.2020.10.078
本文著錄格式:謝中科,鄧澤林. 軟件工程專業(yè)Java課程群教學與實踐改革研究[J]. 軟件,2020,41(10):298300+320
【Abstract】: Java course group is one of the core courses of software engineering specialty. Its teaching effect is directly related to the knowledge structure, complex problem analysis, modeling and engineering project practice ability of software engineering students. Aiming at the problems of traditional java series courses teaching, this paper proposes to integrate java series courses into curriculum group, build a teacher team, and design and optimize the overall teaching content based on the teacher team, guide students to learn java related core technologies, and use engineering projects to consolidate students' theoretical foundation and strengthen students' practical ability. The practical results show that the reform measures of java course group can improve the knowledge structure and practical ability of students, which shows that the reform measures have practical significance and reference value.
【Key words】: Software engineering; Java language; Course group; Project practice
0? 引言
軟件工程是一個理論與實踐相結合的學科,特別注重學生的專業(yè)實踐能力培養(yǎng)。該專業(yè)的畢業(yè)生必須具備實際軟件項目工程開發(fā)的實踐能力和素質。軟件工程專業(yè)的課程體系中軟件開發(fā)工具的教學和實踐是保證該專業(yè)學生質量的重要環(huán)節(jié),其中Java課程群的教學與實踐同企業(yè)對Java工程師的需求相適應,是學生重要的就業(yè)方向,因此,Java課程群是軟件工程專業(yè)培養(yǎng)方案中的重要方向課程。
文獻[1]提出以企業(yè)需求為導向的Java語言教學改革,通過課堂理論教學環(huán)節(jié)、實踐環(huán)節(jié)的教學改革及考核方法改革,強化了學生的學習興趣培養(yǎng)、提升了教學效果,使得畢業(yè)生綜合素質能夠達到企業(yè)對Java軟件工程師的用人需求;文獻[2]就如何提高高校Java語言教學效果進行了探討,結合多年教學經歷對傳統(tǒng)Java教學存在的問題進行了分析,并提出了一系列措施來培養(yǎng)學生對具體問題的分析能力和程序設計能力;文獻[3]就Java程序設計語言的特點,將Java語言的教學內容劃分為框架型知識部分和功能型知識部分,闡述對這兩部分知識的教學方式、內容組織和學生學習過程管理等方面進行有益的探索。文獻[4]針對企業(yè)對Java工程師的需要,分析了應用型本科大學如何在培養(yǎng)Java工程師教學過程中的存在的問題,對Java課程群教學內容進行了結構設計,優(yōu)化課程設置方案,明確了應用型Java工程師培養(yǎng)的教學目標。文獻[5]意識到在Java課程群教學過程中引入雙語教學可以培養(yǎng)學生自覺學習新技術的意識,提升學生獨立應用新技術的能力。文獻[6]設計了基于Java EE技術的 Java課程群網(wǎng)絡教學平臺。依托Java課程群研究成果,將Java課程群課程之間的關聯(lián)關系,資源存儲共享做出了詳細說明,能夠實現(xiàn)教師在線指導、在線答疑、學生在線學習等功能。
雖然Java課程群的教學得到了廣大的教學研究人員的關注,并采取了多種措施進行了改革,但Java課程群的教學依然存在一些問題,如課程之間銜接,實踐教學與企業(yè)工程師之間的協(xié)同的問題,需要進一步深入改革,提高教學效率。
1? 教學中的問題
(1)Java課程群教師之間缺乏足夠的交流,傳統(tǒng)的教學以教師個體為主體,教師主要關注自己負責課程的教學,而不從整體上考慮如何改善Java課程群的教學效果;
(2)傳統(tǒng)的Java課程教學在課程內容上教師各自處理,銜接不夠緊密,沒有從課程群全局上進行教學內容的設計,特別是教學案例的設計,使得教學環(huán)節(jié)上難以進行深入的教學,造成學生的知識深度和知識結構存在缺陷,難以滿足企業(yè)的用人需求;
(3)傳統(tǒng)的Java課程教學在項目設置上有較大的同質性,不同階段的項目具有相似的功能,與實際軟件開發(fā)過程有較大的差距,無法有效地提高學生的動手實踐能力;
(4)傳統(tǒng)的課程項目的開發(fā)以學生個體為主,并不涉及團隊開發(fā)、項目管理等能力的培養(yǎng),使得培養(yǎng)的學生的團隊協(xié)作和項目管理能力與企業(yè)的實際用人需求有一定的差距。
2? 實踐教學改革措施
2.1? 建立Java課程群教學團隊,密切教師之間的交流,提高整體教學能力
Java課程群的教學工作在教學團隊的交流和參與下進行,教學團隊的建設和活動主要包括團隊組建、團隊備課與授課和團隊成員能力提升等環(huán)節(jié)。
(1)建立教學團隊
在培養(yǎng)方案制定過程中,確定Java課程群的系列課程,課程群的負責人根據(jù)課程要求組織課程群的教學團隊。課程群教學團隊共同制定每門課程的教學大綱,處理先修課程與后繼課程的關系,討論課程之間的銜接關系,制定教學大綱和教學計劃。團隊成員明確自身在團隊中角色和作用,根據(jù)實際教學要求進行學習、培養(yǎng)和提高。
(2)團隊備課與授課
團隊成員明確自己的角色和任務,根據(jù)教學大綱,參與課程群教學內容的準備、建設和案例制作。團隊負責人組織團隊成員定期進行教學交流,對重點、難點內容,安排上課教師在上課前示范講解,團隊成員對示范教師教學方式、授課形式、使用的案例集體討論,達成統(tǒng)一方案。團隊成員之間,通過持續(xù)有效的交流,對課程群中的每門課程有比較深入的研究,內容熟悉、深度和難度掌握得當,使得教師能夠針對每門課程的內容進行精心設計,課程之間合理銜接,學生學業(yè)逐步提高,進階迅速。
(3)教師提升
Java課程群的教學內容和教學實驗內容隨著軟件技術的創(chuàng)新而變化,在Java實踐項目中,現(xiàn)有的項目案例隨著新技術、新應用的出現(xiàn)而具有較大的變化,為了滿足企業(yè)對軟件工程人才的需求,組織團隊成員學習Java的新知識、新技術、參加教學會議,使團隊成員要跟上軟件技術的進步,提升教師個人能力和水平。
2.2? 以團隊為依托設計教學內容和教學案例,密切課程之間的關聯(lián)關系
為了保證Java課程群教學活動的有效開展,團隊負責人組織教師集體制定課程群中每門課程的教學內容和實驗案例。Java課程群主要有三門課程:《Java語言程序設計》、《Java高級編程》、《Java框架技術》組成,構成了Java課程群三個教學階段。
(1)《Java語言程序設計》階段
作為Java課程群第一階段的課程,主要學習Java語言基礎知識,面向對象編程技術,培養(yǎng)計算思維,為后續(xù)課程做準備,如多線程、反射、設計模式等。
(2)《Java高級編程》階段
本階段以Web技術開發(fā)為基礎講解重要組件的編程實現(xiàn),如利用反射、模板模式和動態(tài)代理模式實現(xiàn)表單封裝組件、JDBCTemplate組件、分頁組件等。
(3)《Java框架技術》階段
本階段主要講解企業(yè)級Java開發(fā)技術,主要是講解Struts、Spring和Hibernate三個框架的使用。其創(chuàng)新點在于通過利用《Java高級編程》階段學習的組件編程技術來模擬實現(xiàn)框架主要功能。
從這個教學大綱的設計來看,《Java語言程序設計》部分有很多內容和案例是為《Java高級編程》和《Java框架技術》服務的、而《Java高級編程》中的主要組件的編寫是為《Java框架技術》服務的。由此可見,基于團隊制定的教學大綱在課程內容方面的合理銜接,將Java課程群的系列課程進行整合,教學內容安排合理有序,減少教學內容的重復和知識漏洞,提高了教學效率,有利于學生快速進階、改善學生的知識結構、提高學生的針對復雜問題的分析能力和設計能力,達到了提高學生編程素質,滿足企業(yè)用人需求的目的。
2.3? 以企業(yè)級項目驅動實踐環(huán)節(jié),保障學生動手能力
對于每門課程,設計的項目與該階段的內容和實驗要求相匹配,對激發(fā)學生的學習興趣、深入理解和掌握相關知識點,強化學生編程思維和編程能力是至關重要的。
(1)《Java語言程序設計》階段
本階段主要內容涉及Java語言的基礎知識,理解和掌握相應的知識點,有助于理解Java面向對象的編程思想,對Java后續(xù)課程的學習至關重要。這一階段是Java基礎知識的學習,內容多且復雜,而且受知識結構的限制,適宜做一些小規(guī)模的項目,為此考慮將這些知識點綜合運用,實施一個有意義游戲項目案例。
開發(fā)游戲項目需要的知識點有:
面向對象分析:將游戲中的角色作為對象進行分析,形成抽象類、接口和具體類,以及這些類之間的繼承、關聯(lián)、依賴等關系;
GUI界面編程:將游戲對象以圖形的方式在界面上加以顯示;
多線程編程:為了使游戲對象能夠在界面上移動,需要使用后臺刷新線程不停刷新界面;
集合:為了維護大量的游戲對象,需要使用集合類來支持游戲;
設計模式:當飛機碰到不同的令牌時,發(fā)射方式會發(fā)生改變,此時可以應用策略模式;
反射機制:對于游戲的每一關,我們可以將關口的行為配置在文件中,并使用反射機制加載關口的行為;
網(wǎng)絡編程(可選):設計一個能在局域網(wǎng)內供玩家使用的網(wǎng)絡版本的游戲。
通過游戲項目的開發(fā),學生通過GUI設計程序運行界面,可以使游戲中對象的運行狀態(tài)在程序運行界面上顯示,直觀地了解程序的運行過程;而且通過游戲開發(fā),將課程中學到的知識應用游戲程序的開發(fā)過程中,可以提高學生的程序設計興趣;更重要的是,通過游戲案例程序,為學生深入理解和應用這些知識點提供了一個良好的平臺。
(2)《Java高級編程》階段
本階段主要內容涉及可復用Java組件的開發(fā),因此,實踐項目的案例設計與考查側重于Java組件的編程。這一階段的項目案例是《網(wǎng)上商城》,學生具有購物平臺進行購物的經歷,這對學生直觀地了解《網(wǎng)上商城》項目的需求有益。
項目涉及的知識點有:
JSP/Servlet:Web應用的基礎在于JSP/Servlet,通過開發(fā)Web項目可以熟悉這種請求/響應的開發(fā)模式;
表單封裝組件:對于用戶提交的表單,通過迭代可以獲得字段的名稱和值,然后通過反射的方式動態(tài)構建對象并進行屬性注入,完成表單對象的自動封裝;
分頁組件:對于不同的頁面,可能都需要使用分頁邏輯,利用JavaBean來封裝分頁邏輯,不同的頁面僅通過應用簡單的標簽即可完成分頁任務,無需重復開發(fā);
數(shù)據(jù)訪問組件:通過利用JDBC、數(shù)據(jù)庫元數(shù)據(jù)(Metadata)以及反射技術完成數(shù)據(jù)庫表格數(shù)據(jù)行到內存對象的直接封裝,形成功能強大的數(shù)據(jù)訪問組件。對于不同的表格操作,可以重復使用該組件,不必重復開發(fā);
《網(wǎng)上商城》項目的開發(fā)過程中,需要引導學生進行項目的需求分析,掌握《網(wǎng)上商城》的數(shù)據(jù)需求和功能需求,從軟件工程的思想實施項目開發(fā),在項目實施的過程中運用組件技術,不僅可以使學生能深入地理解和掌握Java編程思想,而且可以加快軟件項目的開發(fā)。考查項目時,不僅需要查看項目能否正常運行、功能是否符合要求、界面是否美觀等因素,還需要了解學生在實施過程中是否應用了Java組件技術,因為組件技術的運用,有助于提高學生的抽象思維能力以及項目的開發(fā)效率。
(3)《Java框架技術》階段
本階段主要內容是框架技術的使用,需要設計大型的企業(yè)級開發(fā)項目,主要訓練和考核學生的軟件項目需求分析、系統(tǒng)設計等能力,并訓練學生的團隊開發(fā)能力,以企業(yè)的要求對學生進行培養(yǎng),彌合大學教育與企業(yè)需求之間的鴻溝。本階段的項目案例為《網(wǎng)絡輿情分析系統(tǒng)》,指導學生分組按軟件工程原理對項目實施開發(fā),對項目進行需求分析、總體設計、詳細設計和編碼實現(xiàn),提高學生對應對復雜問題的系統(tǒng)分析能力、設計能力。
項目涉及的知識點有:
需求分析:理解網(wǎng)絡輿情分析的需求背景,進行軟件需求分析、系統(tǒng)分析、系統(tǒng)設計等環(huán)節(jié),形成需求文檔和分析文檔;
網(wǎng)絡數(shù)據(jù)抓取:編寫網(wǎng)絡爬蟲軟件,進行網(wǎng)絡數(shù)據(jù)的抓取和解析,并將獲取的數(shù)據(jù)插入數(shù)據(jù)庫供后續(xù)的數(shù)據(jù)分析;
利用SSH框架技術進行網(wǎng)絡輿情分析業(yè)務平臺的開發(fā)。
經過第二、三階段課程的學習和實踐,使學生深入理解和掌握框架的原理,而經過第三階段項目的開發(fā)則能使學生能熟練掌握復雜問題的分析能力和設計能力、在編碼實現(xiàn)過程中熟練運用框架技術,從而滿足企業(yè)對軟件開發(fā)人員的要求。
2.4? 項目管理與項目質量評估
隨著Java課程群教學內容的進階,相應的階段項目的難度和規(guī)模也越來越大,使得單個的學生難以在規(guī)定的時間內完成指定的任務,因此,《網(wǎng)上商城》和《網(wǎng)絡輿情分析》這兩個項目需要進行團隊協(xié)作開發(fā)。在團隊協(xié)作開發(fā)的過程中,需要團隊成員對項目開發(fā)過程進行有效的管理,保證項目開發(fā)的進度和質量。主要步驟如下:
(1)團隊的組建。為每個組安排3~4人組建項目開發(fā)團隊,每個團隊需要一個開發(fā)能力較強的同學為組長,負責帶領整個團隊進行項目開發(fā);
(2)團隊開發(fā)環(huán)境的熟悉。團隊成員之間在不同的開發(fā)階段,使用相關的軟件開發(fā)工具進行交流,對問題的分析和理解達成一致;同時,團隊成員需要熟悉團隊開發(fā)環(huán)境,主要是MyEclipse提供的CVS開發(fā)環(huán)境,每個成員需要掌握團隊編程的方法、步驟等要點。組長負責構建項目開發(fā)架構,并將項目提交至CVS服務器。團隊成員通過網(wǎng)絡連接至CVS服務器,并將項目遷出之本地。此時,團隊成員將通過不同的終端開發(fā)同一個版本的軟件項目;
(3)開發(fā)任務的分析。開發(fā)團隊在組長的領導下對項目需求進行分析,掌握項目的功能模塊和大致的工作量;
(4)開發(fā)任務的分解。項目組長可以根據(jù)項目的模塊將開發(fā)任務劃分并指定人員完成,使團隊成員能在并發(fā)的環(huán)境下進行軟件開發(fā),加快軟件開發(fā)速度;
(5)項目進度控制。每個成員每周需要提交項目進度報告給組長,組長需要掌握每個成員的完成情況進行進度控制、人員調配等工作,保證項目的各個環(huán)節(jié)能夠有序地進行。
項目質量主要通過答辯的形式進行評估。每個階段項目完成后,統(tǒng)一進行項目答辯。負責Java課程群教學的教師出席項目答辯,對項目的完成質量進行打分,包括項目外觀、用戶體驗、核心代碼、數(shù)據(jù)庫設計等部分進行評估,并與學生進行交流,了解項目開發(fā)過程、解決方案進行了解,最終形成綜合評分。
3? 結論
為了提高軟件工程專業(yè)Java課程群教學效果,本文提出了Java語言教學的課程群建設與教學的思路。通過建設教學團隊、基于教學團隊進行教學內容設計,深度融合Java基礎、Java高級編程、Java框架技術等不同階段的內容,夯實學生的Java基礎知識,并通過項目的實施來提高學生的動手實踐能力。通過近幾年的探索與改進,學生的Java語言的學習效果得到了顯著的提升,特別是動手實踐能力得到了明顯的加強,學生開發(fā)的軟件作品得到了許多競賽的獎勵和用人單位的認可,體現(xiàn)了教學改革良好的效果。
參考文獻
[1]鄧澤林, 謝中科, 胡寧靜. 以企業(yè)需求為導向的Java程序設計教學改革探討[J]. 中國電力教育, 2010(28): 114-116.
[2]龍艷彬, 張學東, 王亞偉, 等. Java教學改革探討[J]. 課程教育研究, 2013, 9: 136-137.
[3]呂延慶, 范剛龍, 宋振芳. 基于教學內容的Java教學模式改革[J]. 計算機教育, 2015, 2: 48-51.
[4]喻曉. 應用型本科面向培養(yǎng)軟件工程師的Java課程群教學研究[J]. 電腦知識與技術, 2014, 10(9): 4518-4520.
[5]任東, 馬凱, 李碧濤. Java課程群雙語教學研究[J]. 教育教學論壇, 2014, 8: 109-111.
[6]趙彥. 基于Java EE技術的Java課程群網(wǎng)絡教學平臺的設計與實現(xiàn)[J]. 安陽師范學院學報, 2014, 2: 43-48.