摘要:分析應用型本科院校軟件工程專業人才培養的特點,以Java程序設計作為改革示范課程,提出體現工程教育特色和素質培養的教學改革方案。
關鍵詞:Java語言;教學改革;實踐環節;職業素養;人才培養
0 引言
應用型本科院校培養應用型、技術型人才,在建設高等教育強國的進程中發揮著不可或缺的作用,也形成了獨特的鮮明特征:以服務地方或行業經濟發展為宗旨,以培養應用型人才為目標,以應用科學研究為特色,以產學研深度合作為途徑。因此,錯位競爭、特色發展、服務區域經濟是應用型本科院校的根本發展路徑,而人才培養的創新是其改革的突破點。
軟件工程專業是研究運用工程化方法構建和維護有效、實用、高質量軟件的學科,如何將軟件專業的工程教育特色融入到專業課程教學過程,是應用型本科院校在程序設計類課程的教學改革中必須考慮的問題。
Java是流行的網絡程序設計語言,具有面向對象、可移植、多線程、分布式等特點,在各類高校中被列為計算機和軟件專業教學體系中的主干課程。該課程對于培養學生的邏輯思維能力、編程技能、自學能力、分析解決問題能力都有著重要作用,并對Android平臺移動應用程序開發、JavaEE框架技術、Web前端開發技術等后續課程的開設起到鋪墊作用。
因此,以Java程序設計作為改革示范課程,從教學理念和教學目標人手明確課程定位,從內容層次、教學方法、實踐環節、職業素養、程序競賽、考核方式等方面,構建全方位立體教學系統,將工程教育和素質培養融入到基礎教學過程中,提高教學質量和效率,并為學生將來從事Java平臺相關軟件產品的設計與開發奠定堅實的基礎。
1 課程定位
1.1 教學理念
在軟件工程專業現有的課程體系中,入門的程序設計語言是c++。由于Java語言的許多基本語法與C++一致,所以學生在學習Java的過程中會感覺相對輕松。因此,Java程序設計重要的是讓學生理解和掌握面向對象程序設計,理解其作為一門和計算機交流的“語言”,如何讓計算機實現所需要的功能,而不是局限于基本語法或者編程細節中。
1.2 教學目標
通過理論授課、實驗、實訓項目等教學環節,學生將全面了解Java語言的功能特色,掌握它的基本語法和面向對象的編程思想,理解并運用Java的應用技術實施網絡編程和數據庫操作,最終能夠獨立完成面向對象的程序設計與開發。由于Java平臺的開發具有連續性特點,本課程的學習將為后續系列課程的開設打下堅實基礎。Java程序設計的具體教學目標概括為如下3個方面。
(1)知識目標。立足于基本語法,先由淺入深地介紹一些過程式的內容,在具備一定語法的基礎上深入講解面向對象的思想,初步探討面向對象的基本原則和設計模式,最后講解實用程序設計。
(2)技能目標。要求學生熟練地使用JDK 6.0及以上開發工具包在集成開發環境Eclipse平臺上進行Java程序的編輯、編譯、調試和運行。
(3)能力目標。全面培養學生的面向對象程序設計能力、良好的編程習慣、閱讀API文檔的能力、語言表達能力、團隊意識與合作精神。
2 構建全方位立體教學系統
2.1 教學內容和方法
Java程序設計作為一個系統的課程體系,包括64學時授課和2個教學周(折合32學時)的課程設計,其中課內實驗24學時。
授課內容歸納成11個單元,循序漸進地劃分為3個層次。首先介紹過程式的內容,包括基本數據類型、枚舉和數組、運算符、表達式和語句;其次在具備一定語法的基礎上,深入講解面向對象的封裝、繼承和多態特性在Java語言中的體現;最后介紹實用程序設計及其API。教學內容的層次劃分使知識具有很好的連貫性,適合學生按部就班的學習。
針對上述3個內容層次,要分別采用不同的教學方法。第1層次的基礎部分采用比較教學法,通過和C++語言的類比使學生迅速掌握語法;第2層次的面向對象部分采用實例教學法、演示教學法,由簡到繁便于學生理解面向對象的概念和特征;第3層次的實用程序設計部分則采用探究法,結合JavaDoc文檔,從每個知識點的類層次結構講起,在認識了總體結構以后再結合實例理解每個類的具體功能。比如在介紹輸入/輸出流時,首先通過與學生的現有知識進行對比,說明Java I/O工作原理;然后從文件類人手,分別講解字節流和字符流。以字節流為例:首先介紹InputStream和OutputStream類的特征;然后依次講解二者的子類,諸如文件流、過濾流、對象流、字節數組流、序列流、管道流的功能;最后以程序實例演示基于進程流構造I/O流實現對內存、文件和管道中數據的訪問。字符流工作原理的講解方式同上。
教材以中文為主,建議對Java平臺感興趣和學有余力的學生閱讀英文版教材,從設計模式的角度深入理解Java語言的編程思想。
2.2 豐富的案例教學
對每一章節用心創作相關素材和程序實例,并優化課件。在講解特定概念和方法時,通過類比生活中學生熟悉的概念,進行饒有趣味和深入淺出的實例教學。例如在講解面向對象的難點——抽象類和接口的概念時,編寫了動物抽象類和寵物接口,然后定義具體的蜘蛛、魚、貓、狗等動物類來擴展抽象類,而魚、貓和狗通常又具有寵物的特點,因此還要實現寵物接口。學生在測試程序中通過聲明不同類型的對象,在運行時觀察它們所表現出來的不同行為,從而深刻理解封裝、繼承和多態特性的內涵,并且能夠比較抽象類和接口的區別。
2.3 重視實踐環節設計
針對11個內容單元,設計對應的實驗環節,讓學生及時對授課內容進行練習從而掌握。實驗內容共設置9項,每項實驗又具有關聯性,因此統合成3個項目。項目1是銀行賬戶管理程序,主要練習Java基本語法、類與對象、異常處理機制、輸入/輸出流、泛型與集合框架等知識點;項目2是簡易聊天室程序,主要練習Java Swing圖形用戶界面和Socket網絡編程等知識點;項目3是圖書信息管理程序,主要運用Java Swing繪制界面并使用JDBC訪問數據庫。在課程設計環節,設計和布置兩個實訓項目,主題分別是俄羅斯方塊和猜數字游戲,寓教于樂,激發學生興趣。學生在學習相關知識點之后,根據實驗要求不斷補齊功能,并在學期末完成任選其一的實訓項目,最終都會完成4個完整的作品,既能提高動手能力、增強自信心,還能提升專業認同感和成就感。
2.4 職業素養的提升
從教學的角度看,軟件工程學科發展速度非???,教師只能將核心基礎知識和當前的實用技術傳授給學生。因此,如何培養學生持續學習的能力和運用知識解決實際問題的能力是每個教師面臨的重要課題。針對每個教學環節,需要融入一些通識教育的元素,具體體現在:(1)培養學生良好的編程習慣,寫好代碼注釋、查閱JavaDoc文檔、編寫項目文檔說明;(2)程序出錯時及時查看日志,分析異常堆棧信息定位錯誤源頭;(3)遇到難題不能解決時,可以利用Google、百度等搜索引擎查閱信息,培養學生獨立分析、調查和解決問題的能力;(4)要求學生經常登錄CSDN等專家博客,關注行業發展趨勢,借鑒前輩們的經驗。久而久之,學生的職業素養在潛移默化中得到提升,并使之成為一種學習習慣沿襲到以后各項技術的學習過程中。同時,通過教師指導下的實踐活動和項目組成員的互動,全面提升學生的實踐能力、團結協作能力。
2.5 構建師生互動平臺
通過各種方式建立互動平臺和溝通機制,加強師生間交流。
(1)在授課中,通過提問和討論來調動學生的參與感和熱情。
(2)建立班級QQ群,進行實時交流和答疑。
(3)構建網絡教學平臺,并于2012年通過年度評審。學生可以在平臺上提問或相互回答,教師主要負責回答其他同學回答不上來的問題。另外,網絡平臺還實現了作業批改、文檔共享、通知發布和教學內容存檔。
2.6 以程序設計競賽推動課程教學
以程序設計類課程為基礎,以競賽型創新實踐基地為依托,為學生參加各類程序設計競賽構建專業平臺。目前,已組織和參加了校級程序設計大賽、“藍橋杯”全國軟件專業人才設計和創業大賽。競賽團隊的選拔一方面由任課教師在教學過程中發現有潛質的學生;另一方面,則通過計算機協會的宣傳,吸引更多學生參與進來。進入競賽團隊的學生,分成C/C++和Java兩個方向。除了課堂教學和指導教師的深化培訓以外,還會根據競賽的最新要求展開針對性訓練。
目前,學生已經在“藍橋杯”全國軟件專業人才設計大賽Java本科組的比賽中榮獲江蘇省一等獎2人次,二等獎3人次,三等獎4人次;全國總決賽三等獎1人次,共計10個獎項,并且憑借基于Java平臺構建的參賽作品“虛擬解剖系統”榮獲第四屆“藍橋杯”軟件專業人才創業團隊賽全國選拔賽三等獎。
2.7 注重過程考核
依據教學環節,考核方式分成課程考核和項目考核。
課程考核從3個方面進行:
(1)注重過程考核,考核過程貫穿于整個課程教學中。通過實驗項目的現場完成情況,考察學生的知識掌握程度、應用能力和程序開發能力,占總成績的40%。
(2)理論考試成績,占總成績的50%。
(3)平時成績占總成績的10%,強調出勤情況、課堂紀律、課堂表現和作業完成情況。
項目考核則通過成果展示、演講等方式,結合實訓期間學生表現出來的動手能力、獨立分析解決問題的能力以及總結報告和答辯水平進行綜合考評??己吮壤缦拢?/p>
(1)項目代碼的可用性、完整性、實用性以及規范性,占總成績的40%。
(2)項目期間展現的動手能力和團結協作意識,占總成績的20%。
(3)項目報告和答辯情況,占總成績的20%。
(4)超出任務要求的創新精神,占總成績的20%。
3 結語
經過3年的探索和實踐,我們已經形成了以Java程序設計為基礎的Java系列課程群。教學模式改革的探索與實踐對提高課堂教學質量和效率具有重要作用。已經畢業的近300名畢業生正服務于張家港地方經濟,服務于江蘇省信息化建設,服務于長三角地區的現代化發展。這不僅推進了校區在本專業領域的知名度,也為校企合作打下了一定的基礎。
作為應用型本科院校,明確科學定位與加強內涵建設是學校在發展機遇期所面臨的首要問題。今后的工作中,在實現軟件工程專業人才培養基本要求的基礎上,著重于對學生實踐能力和項目開發能力的培養[4]。在專業教學過程中,尤其是程序設計類基礎課程的教學中,重視與企業需求對接,繼續體現工程教育特色,使學生積累豐富的項目經驗,具備較好的職業素養,為其今后的就業和繼續深造奠定良好的基礎。
參考文獻:
[1]上海電機學院高等技術教育研究所.創新人才培養模式,不斷提升地方應用型本科院校服務區域經濟發展的能力[EB/OL].[2011-10-13].http:∥gaojs.sdju.edu.cn/default.php?mod=article&do=detail&tid=85.
[2]金智勇,葉時平,梁方.基于案例分析的Java程序設計教改研究[J].福建電腦,2009(4):203-204.
[3]儲岳中,秦鋒,劉宏申.c語言程序設計理論與實踐一體化教學的幾點實踐[J].計算機教育,2012(12):22-25.
[4]劉海燕,王雅軒.高校對日軟件外包Javaweb項目開發人才培養[J].計算機教育,2012(10):107-110.
(編輯:郭田珍)