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