林永意,卜言彬
(南京傳媒學院,江蘇 南京 211172)
隨著現代信息技術的迅猛發展,計算機類專業學生的就業門檻也在日益提高。然而,傳統的理論課程難以滿足學生日益增長的技術需求。因此,基于就業導向的實踐性課程在計算機類專業的教育中越發重要[1]。
“Java軟件項目開發實訓”是一門實踐性課程,通過實際項目的開發,培養學生的軟件開發能力和團隊合作能力。然而,傳統的實訓課程在教學內容和方法上存在一些問題,如課程學時少內容多、學生個體差異性較大等[2]。因此,本文探討基于就業導向的“Java軟件項目開發實訓”課程的改革與實踐,以提高學生的就業競爭力和實踐能力。
“Java軟件項目開發實訓”課程歷時5天,共計40課時,但該課程涵蓋的知識點非常豐富,包括Java基礎知識、面向對象編程、Java核心類庫、數據庫、Web開發、前端開發、框架與工具、軟件開發流程、項目管理與團隊合作等方面的知識。僅靠傳統的教學方式,學生很難在有限的時間內學會以上知識點。老師不得不采取“滿堂灌”的授課方式,以完成教學任務[3]。在這種被動學習的教學方式下,學生缺乏主動性和參與度,學習興趣降低,創造力和自主學習的能力受到限制,對知識的理解也不盡如人意。授課教師疲于上課,疏于對學生的指導和交流[3]。
傳統的“Java軟件項目開發實訓”課程注重理論知識的講解和傳授,而實踐環節相對較少。這意味著學生在實訓課上進行聽課、筆記和討論的時間相對較長,而進行實際操作和實踐訓練的時間相對較少[4]。理論知識的傳授可以為學生提供所需的基礎知識,但實踐操作的匱乏將會導致學生對所學知識的理解和應用不足[5]。實踐是鞏固和應用理論知識的重要手段,只有實踐才能讓學生真正理解和掌握所學內容。
“Java軟件項目開發實訓”課程開設在大三上學期期末,主動性強的學生已經學習了本實訓所需的知識,并且具有良好的編程基礎,他們需要的是理論知識的拓展和實踐能力的提升[2]。但很多學生只接觸過本實訓所需知識的一部分,還需要進一步加強理論知識學習,并且實踐能力也有待提高[6]。還有少部分學生專業基礎比較薄弱,需要系統地學習本課程所需的理論知識,并在此基礎上多實踐多練習。
實訓課程的選題堅持以學生為中心,關注學生的需求和興趣,讓他們能夠參與其中并獲得實際的學習收益。選題與學生的專業方向和未來職業發展相關,優質的課題可以提升他們的專業能力和職業競爭力。選題同時遵循循序漸進的原則,根據學生的學習進度和能力水平進行分層次、分階段的設計。初級水平的學生可以完成課題中60%~80%的基礎部分,他們通過本次實訓夯實專業基礎。中級水平的學生完成課題100%的內容,他們解決問題的能力得以提高。高級水平的學生在完成課題的基礎上,對課題進行拓展優化,以挑戰他們的能力極限。
本次實訓課程選擇“基于SpringBoot的用戶管理系統”作為課題。首先,該課題實用性強,用戶管理系統是很多實際項目的必備功能之一,幾乎所有的Web應用程序都需要進行用戶注冊、登錄和權限管理。一個實際的用戶管理系統的開發,可以讓學生更好地理解和掌握Java開發的基本技術和流程。其次,該課題技術廣泛,SpringBoot是目前Java開發中常用的框架。應用SpringBoot可以快速搭建一個穩定高效的Web應用程序。再次,該項目是一個綜合性項目,涉及多個功能模塊的設計和開發,包括用戶注冊、登錄、信息管理、權限管理等。最后,該項目具有強烈的就業導向,用戶管理系統是企業常見的需求之一,掌握這個項目的開發技術可以提高學生的就業競爭力。很多企業在招聘時,會優先考慮有實際項目經驗的候選人,通過完成該系統的開發,學生可以在簡歷中添加自己的項目經驗,增加就業機會。
傳統的實訓課程一般基于模塊劃分角色,老師依據系統功能模塊,將完整的項目劃分成若干子模塊,每位學生完成其中一部分。然而本次實訓課程基于常見的軟件開發流程和團隊合作模式進行角色劃分,常見的角色包括:系統分析師、系統設計師、軟件開發工程師、軟件測試工程師、運維工程師、項目經理。
系統分析師和系統設計師對從業人員的專業能力、工作經驗、溝通能力、團隊合作能力及自身綜合素質要求比較高,薪資水平也相對較高,屬于進階崗位。軟件開發工程師的市場需求較大,該崗位大致可分為前端開發工程師、后端開發工程師、移動端開發工程師等[1]。軟件開發工程師需要很強的學習和實踐能力、較好的問題理解和解決能力、團隊合作能力等。軟件測試工程師主要負責設計測試用例、執行測試、記錄測試結果、分析和報告缺陷、與開發團隊合作解決問題等。從業人員需要扎實的軟件測試理論和技術,熟悉各種測試方法和工具,準確分析和評估軟件質量,并提出修改意見。運維工程師主要負責維護,對專業知識要求相對較低,比較適合專業知識不扎實但又想從事本行業工作的學生,其薪資待遇也相對較低。項目經理負責整個項目的管理,包括項目的設計、資源的分配、進度的控制、風險的管理等,從業者需要具備良好的組織協調能力和扎實的專業知識。
教師對每種崗位的招聘條件、薪資待遇、工作內容、職業發展等情況進行介紹,學生基于自身專業能力、興趣愛好和對未來就業崗位的了解,選擇此次實訓的角色。本次實訓設置6名學生為一組,其中項目經理1人、開發和測試工程師各2人、文檔/運維工程師1人。本次實訓可以讓學生提前了解社會需求,審視自身差距,從而明確學習目標,提高學習興趣和動力。
教師應轉變現有的教學模式,把課堂的主角交給學生,提高學生學習的主動性。本次實訓主要采用項目/案例驅動法和小組討論法混合的教學方式,旨在結合實際項目和案例,讓學生在小組中進行深入的討論與合作。老師在課堂上講解實訓項目所需的基礎知識和實訓案例的分析,并分解任務,再根據學生反饋的問題進行答疑、指導和點評。學生通過參與項目和解決實際案例,將理論知識有機地應用于實際情境,從而提高了解決問題和創新思維的能力。同時,通過小組討論與合作,學生能夠提高溝通技能、團隊協作能力以及批判性思維水平。
本次實訓選取“基于SpringBoot的用戶管理系統”作為教學案例,項目的后端技術棧采用SpringBoot和MyBatis框架,前端技術棧使用Thymleaf、Jquery、Boostrap等Web技術,數據庫使用MySQL關系數據庫。SpringBoot和MyBaits分別為創建Spring應用程序和框架以及操作數據庫的持久框架,兩者組合使用,可方便開發人員進行數據庫操作。Thymleaf、Jquery、Boostrap分別為生成動態HTML頁面的服務器端模板引擎、簡化JavaSeript編程的庫、構建響應式和移動端優先的Web頁面前端框架,這些技術的組合使用使得開發人員可以更快速、高效地構建現代化的Web應用程序。MySQL是一種開源的關系型數據庫管理系統,其具有高性能、可擴展性和安全性等特點,廣泛應用于Web應用程序和企業級應用程序的數據庫解決方案。
在本次實訓中,項目經理負責整個項目和團隊的管理以及實訓結束后各種資料的收集匯總;2名開發人員負責系統代碼的撰寫,具體分工由項目經理決定,實訓結束后向項目經理提交項目源代碼;2名測試工程師負責軟件系統測試,具體分工聽從項目經理的安排,實訓結束后向項目經理提交測試腳本;文檔/運維工程師負責撰寫設計文檔、程序發布腳本和程序運行腳本,實訓完成后將文檔和腳本提交給項目經理。
實訓結束不安排考試,而是以組為單位以結課作業的形式進行考核。結課作業包括Java軟件項目開發實訓匯報PPT、Word版實訓報告、項目源代碼、測試腳本、部署腳本。每位學生都需要進行結課匯報,用PPT的形式介紹自己在本小組內擔任的角色和承擔的工作,每組成員在項目經理的帶領下,依次上臺展示。
在本次實訓中,學生們都能合作完成整個項目,部分小組超額完成任務指標,對系統進行了優化。實訓激發了學生們對未來就業的思考,通過實際項目的鍛煉,學生們能更真實地看到職業領域的機遇和挑戰,明確了自己的職業方向和發展目標。
通過本次Java軟件項目開發實訓,學生們不僅對未來職業有了初步了解,還掌握了一定的實際操作技能,并且提升了團隊合作、溝通協調和解決問題的能力。學生們可以依據市場需求,結合自身興趣愛好和能力選擇適合自己的就業方向。
由于時間有限,本次實訓也存在一些不足,如沒有教授敏捷開發等現代管理方法、沒有使用Git的版本控制工具等。未來的實訓考慮進入敏捷開發的理念,包括迭代開發、用戶故事、持續集成等,以更好地模擬真實的項目管理場景。同時,未來的實訓考慮在項目中引入Git,要求學生使用Git進行代碼管理,從而培養他們在團隊中的協作能力。
希望本文的研究能夠為計算機類專業的教育提供一種有效的實踐教學模式,提升學生的綜合能力和就業能力。同時,也希望能夠為其他相關領域的課程改革和實踐教學提供一些借鑒和啟示。通過對基于就業導向的“Java軟件項目開發實訓”課程改革與實踐的研究,我們可以更好地理解如何將理論與實踐相結合,培養學生的實際工作能力和解決問題的能力。這對于計算機類專業的學生而言,是一次寶貴的學習和成長機遇。