歐陽宏基, 葛萌, 郭新明
(咸陽師范學院 計算機學院, 咸陽 712000)
Java語言自從1995 年問世以來,由于其面向對象、跨平臺、易于上手、內置多線程、適合于網絡應用等顯著特點,迅速受到了企業用戶和開發人員的歡迎[1]。根據TIOBE全球編程語言排行榜統計,Java語言近年來一直占據榜首位置。到目前為止,Java語言已經覆蓋到了桌面應用、企業級Web應用、嵌入式系統、移動互聯網、大數據、云計算等多方面,成為最流行的程序設計語言。在智聯招聘、前程無憂等國內大型招聘網站中對Java 技術人員的需求量年年屢創新高。
各高校計算機相關專業都開設了與Java語言相關的課程,目的是為了培養學生掌握面向對象程序分析、設計能力,能夠從事Java相關的軟件開發、維護、運營等工作。但近年來,畢業生在尋找與Java技術相關的工作中發現學校所學習的Java技術知識與用人單位崗位需求之間還存在不小的差距,主要表現在Java技術知識面窄、基礎知識掌握薄弱、實踐動手能力差、缺乏項目實戰經驗等。
筆者從事了多年與Java技術相關的教學與科研工作,結合咸陽師范學院計算機學院(以下簡稱我院)的具體情況,從課程體系設置、教學方法、考評方式、師資隊伍建設、校企合作等方面提出了相關改進措施,旨在提高學生Java技術工程實踐能力,提高就業質量。
開設的與Java技術相關的課程覆蓋面較窄,課程內容較為單一。例如很多高校只開設了“Java程序設計”單一門課或者“Java程序設計”和“JSP程序設計”這兩門課。“Java程序設計”是Java技術的基礎入門課程,該門課程主要講授Java基本語法、面向對象基本概念、異常處理機制、IO流、GUI程序、集合框架、多線程、JDBC數據庫編程等知識。“JSP程序設計”主要講授HTML語言、HTTP協議、JSP語法等知識。學生掌握這兩門課的知識后,僅僅能完成基本的C/S架構桌面應用和B/S架構的Web應用,在就業時離企業所要求的Java程序員崗位技能還相差甚遠,導致學生就業困難。
傳統的教學方法在理論課程中采用“理論+程序演示”方式,課堂上教師一講到底,學生被動接收,缺乏自主思考時間,學習知識死記硬背[2]。實驗課程中采用“學生自主實驗+教師隨堂指導+上交實驗報告”方式[3],每堂實驗課教師不可能指導到每一位學生。為了獲得平時成績,學生不得不花費較多時間去完成紙質實驗報告的撰寫。當面臨就業時就會發現學校課堂中所學的Java知識太多簡單、淺薄,實際動手能力差,離實際軟件開發還有很大的差距。
近年來進入高校教師專技崗位的人員必須具有博士學位。這些新進入高校的教師在博士研究生階段注重的是學術理論的研究,缺乏完整的軟件企業項目實戰經驗,他們不能從項目流程、項目管理、質量保證、開發技巧等方面給予學生指導。而以前的一些老教師也很少有軟件企業項目的歷練經歷,這一部分教師所教授的內容還是相對傳統的知識體系,不太愿意花費大量的精力去學習Java技術相關的新技術。這就會導致教師授課內容與行業實際需求不符、無法用實際項目經驗支撐理論內容、講不出新意與高度。
目前很多院校的計算機專業都采取了校企合作的辦學模式,通過校企合作來解決學校教學中存在的一些問題,例如教師實踐能力欠缺等。但是目前的校企合作存在一些問題,(1)企業方提供的培訓內容單一,有些內容已過時。在Java技術培訓方面主要集中在JavaEE應用、Android移動端開發這兩個方面,大數據和云計算技術涉及較少。部分培訓內容已不是目前Java開發的主流技術,例如Java EE方向有些培訓還在講Struts1技術。(2)合作形式單一、時間過于集中。主要的合作形式是企業實訓,具體是指企業方就某一個Java技術方向給學生集中授課和實踐指導。實訓時間集中在大三暑假到大四第一學期結束之前的半年時間,這個時間段是每年學生找工作的“黃金時間”,這會導致學生在培訓期間分心去校招投簡歷、面試,錯過一些培訓內容;培訓內容的不完整反過來會影響學生筆試、面試的發揮,兩者之間產生矛盾。(3)培訓內容沒有根據學生基礎情況加以區分。培訓學生的知識儲備深淺不一,但在某一個技術方向上他們所接受培訓的內容卻是相同的。
目前Java技術的就業大致分為Java EE、互聯網移動終端開發、大數據應用等方向。按照由簡到難、循序漸進的方式對Java技術知識點進行全方位覆蓋,制定較全面的Java技術課程體系[4],具體信息如表1所示。
“Java程序設計”主要講述Java SE內容,是所有Java應用方向最基礎的知識。通過該課程的學習要讓學生掌握Java基本語言、面向對象的知識體系和Java高級特性這3大部分內容[5]。“Java程序設計”是Java EE方向的基礎課程,通過該課程讓學生掌握B/S結構應用的特點、9大內置對象的應用等。“Java Web前端設計”是Java EE方向的進階課程,主要講述流行的JavaScript框架的應用,讓學生掌握頁面的布局、各種UI控件的使用、異步請求和數據傳輸格式等知識。“網絡編程”主要講述Java技術在服務器端的具體應用,通過該課程讓學生掌握Java對象序列化、TCP/UDP協議的Socket通信、非阻塞通信、多線程并發框架以及RMI等相關知識。“Android程序設計”是Java技術在互聯網移動端開發的具體應用,通過該課程讓學生掌握Android平臺特點、

表1 Java技術課程體系
四大組件的應用、多線程應用程序、客戶端與Web服務端通信、訪問SQLite數據庫等知識。“設計模式”是面向對象技術的進階,通過該課程讓學生掌握面向對象設計的基本原則、常見創建型、結構性和行為型模式的組成和應用[6],為理解Java服務器端框架技術奠定基礎。“Java EE輕量級框架應用”是Java EE方向的進階課程,主要講述當前Java EE應用服務器端開發所采用的主流框架技術。“Java大數據應用基礎”是大數據方向的基礎課程,主要講述HDFS分布式存儲基本理論、MapReduce并行計算模型、Hadoop集群的配置以及Hadoop生態圈中一些其他工具的基本應用。
翻轉課堂教學模式突出學生課外自主學習為主、教師課堂答疑為輔的中心地位。教師提前準備好課程的相關教學資料,包括課程大綱、教學進度表、知識點講解視頻、實驗操作視頻、經典案例視頻、習題集等。教師將這些資料上傳到網絡(QQ群、自主學習平臺等),充分利用現代化教學技術,整合現有教學資源,加強課程間聯系,消除課程間重復內容,達到“師生互動、資源共享”的實際效果[7]。學生在課外可以隨時隨地通過自主學習平臺觀看視頻、下載資料、上傳作業、在線互動等方式進行自主學習。教師在課堂中對學生課外學習的疑問進行解答并布置課后任務,學生之間相互交流心得體會。翻轉課堂打破了傳統課堂上教師一講到底、課后學生復習、預習知識的教學模式,師生關系也由主導與服從的關系變為輔助與自主的關系[8]。
Java技術應用型人才突出實踐應用能力。傳統以試卷為主的考核方式往往導致很多學生出現“能通過考試、但不會編程”的情形。因為傳統試卷中的選擇題、填空題、判斷題、程序閱讀填空等都是單一知識點的考查。即便有程序設計這類的主觀題,由于受多種客觀因素的限制,也不能全面反映學生對知識的實踐應用能力。保留傳統考核方式,側重理論知識的考核;加入項目,側重實踐應用能力的考核,兩種考核成績各取50%作為該門課程的最終成績。
由于教師的工程實踐能力很難在校園環境中提升,必須讓教師進入軟件企業進行項目實戰培訓。為了激發教師進入企業鍛煉的熱情并保證培訓的質量,學校方應該制定相關激勵政策,例如薪資正常發放、在職稱晉升和項目申報方面給予傾斜。企業方應該制定完善的培訓內容、目標和考核方式,盡可能讓教師在培訓期間進行崗位和項目組輪換,崗位要覆蓋軟件工程的各個環節,包括需求分析、概要設計、詳細設計、編碼、測試、維護等。重點放在詳細設計、編碼和測試3個環節,項目組長將培訓教師與企業員工一視同仁,為教師布置一定的項目任務,并確保教師按時保質保量交付任務。培訓結束前,企業為教師出具培訓鑒定,并將鑒定結果納入教師當年的績效考核。
另一方面,學校應該聘請一些優秀的軟件企業工程師作為兼職教師進行課程設計、軟件技術講座、畢業設計指導等教學工作。
從授課內容、實踐教學、職業素養培養等幾個方面深化校企合作辦學模式。授課內容方面,企業方培訓應該覆蓋Java技術應用的各個方面,學生選定培訓方向后,根據學生的基礎知識水平分等級,根據等級量身制定培訓內容。實踐教學方面企業應該全方位參與,除了企業實訓外,還應該參與IT行業認知、企業見習、課程設計以及畢業設計。我院自2016年起實施了四年不間斷的分散式校企合作教學計劃[9],其中實踐教學部分的安排如表2所示。

表2 校企合作實踐教學計劃安排
通過軟件行業認知和企業見習讓學生對未來工作的環境、過程、應用到的相關知識等有個初步的真實感受。在課程設計中按照真實軟件開發過程分組、分角色組織學生進行,另外要讓學生掌握軟件版本管理工具的使用,理解進度分析、質量分析、客戶交流等活動的作用。企業實訓中的授課內容應該加入由企業方精心選取的Java項目真實案例,將案例的設計與實現過程轉換為對應的知識點,讓學生對Java技術的實際應用有較深入的認識和掌握,這樣可以提高學生的關注度和學習興趣。在課程設計和企業實訓環節還要重點培養學生的交流溝通、時間管理、團隊合作等職業素養。針對畢業設計,企業導師主要從選題、實施過程、技術難點方面予以學生指導。
我院軟件工程系成立了Java技術教學團隊,圍繞課程培養目標負責Java技術課程體系的建設、教學內容的制定、教學方法的改革、項目考核內容的選取等。同時成立了由10多位45歲以下青年教師組成的軟件開發團隊,到目前為止團隊承擔了咸陽師范學院目標考核管理系統、咸陽師范學院招生就業處藝術類考生成績登記系統的研發和設計工作,豐富了項目組成員在Java EE、Android移動端方向的實戰經驗,推進了相關課程教學內容的改進。學院每年選派1-2名青年教師赴上海、西安等地知名軟件企業掛職鍛煉。近兩年來,學生在Java技術就業方面取得了明顯的進步,數據如表3所示。

表3 近兩年Java技術方向就業數據
同時,近3年每年都有5組以上“大學生科研訓練項目”獲得國家級立項資助;2017年1名學生獲得“藍橋杯”程序設計大賽(Java技術組)國家級三等獎。2016年有1組學生獲得陜西省高校“互聯網+”創新創業大賽三等獎。以學生為第一作者在核心期刊發表Java技術相關學術論文6篇。
本文探索并實踐了Java技術應用型人才培養模式,從課程體系設置、教學方法改革、考核方式、師資隊伍建設、校企合作等方面提出了一些改革措施。通過在我院近年來的探索與實踐,有效提高了學生在Java技術方面的就業率和就業質量,為社會培養出了合格的軟件人才。下一步,將在Java大數據方向加強師資培養和校企合作力度,豐富并優化課程內容和課程資源,促進大數據方向的就業率和就業質量。