摘要:針對(duì)目前本科的Java語(yǔ)言課程實(shí)踐教學(xué)中存在的不足,提出改革實(shí)踐教學(xué)的內(nèi)容、開(kāi)放式實(shí)驗(yàn)室建設(shè)、考核制度的轉(zhuǎn)變等措施。同時(shí)還闡述了課程組教師自主研發(fā)的Java語(yǔ)言上機(jī)實(shí)驗(yàn)平臺(tái),它在改善Java語(yǔ)言的實(shí)踐教學(xué),激發(fā)學(xué)生學(xué)習(xí)興趣,適應(yīng)創(chuàng)新人才培養(yǎng)需要等方面發(fā)揮了良好作用。
關(guān)鍵詞:Java語(yǔ)言;實(shí)踐教學(xué);激發(fā)教育;開(kāi)放式實(shí)驗(yàn)室
Java語(yǔ)言課程是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)必修的一門(mén)專業(yè)課,我們的教學(xué)目標(biāo)是培養(yǎng)學(xué)生的軟件開(kāi)發(fā)能力,教學(xué)思路是由淺入深、理論與實(shí)踐相結(jié)合,激發(fā)學(xué)生的學(xué)習(xí)興趣,培養(yǎng)學(xué)生的分析能力、實(shí)際動(dòng)手能力、創(chuàng)新能力和社會(huì)競(jìng)爭(zhēng)力。Java語(yǔ)言的教學(xué)不同于數(shù)學(xué)和自然科學(xué)學(xué)科,它更強(qiáng)調(diào)動(dòng)手和實(shí)踐,更強(qiáng)調(diào)解決工程問(wèn)題,實(shí)踐課程應(yīng)突出基本技能和動(dòng)手能力的訓(xùn)練、團(tuán)隊(duì)合作能力訓(xùn)練。因此,改革Java語(yǔ)言的實(shí)踐教學(xué)勢(shì)在必行。
1改革實(shí)踐教學(xué)內(nèi)容
實(shí)踐教學(xué)是Java語(yǔ)言課程必不可少的環(huán)節(jié),是培養(yǎng)學(xué)生上機(jī)動(dòng)手操作能力、知識(shí)綜合運(yùn)用能力的必需環(huán)節(jié)。實(shí)踐教學(xué)的質(zhì)量直接影響學(xué)生的工程實(shí)踐能力和就業(yè)機(jī)會(huì),有足夠理由讓教師精心設(shè)計(jì)實(shí)踐教學(xué)的內(nèi)容,改進(jìn)實(shí)踐教學(xué)。我校從2002年開(kāi)始,在本科教學(xué)中開(kāi)設(shè)Java語(yǔ)言課程,多年來(lái)一直在探索實(shí)踐教學(xué)改革,并取得了一些成果,我們主要從以下幾個(gè)方面進(jìn)行實(shí)踐教學(xué)內(nèi)容改革。
1.1調(diào)整理論教學(xué)內(nèi)容
Java語(yǔ)言課程[1]一般包括Java程序設(shè)計(jì)語(yǔ)言基礎(chǔ)、Java高級(jí)程序設(shè)計(jì)兩個(gè)部分。該課程的重點(diǎn)是Java語(yǔ)言的面向?qū)ο笾姓Z(yǔ)言基礎(chǔ)、類與對(duì)象、繼承與多態(tài)、多線程、文件、數(shù)據(jù)庫(kù)編程,課程的難點(diǎn)在于線程程序設(shè)計(jì)、數(shù)據(jù)庫(kù)訪問(wèn)程序設(shè)計(jì)和網(wǎng)絡(luò)編程。在教學(xué)過(guò)程中,先導(dǎo)課“C++程序設(shè)計(jì)”中基本語(yǔ)法結(jié)構(gòu)、面向?qū)ο蟮囊话愀拍詈驮砼c本課程的學(xué)習(xí)進(jìn)行對(duì)比,加深教學(xué)效果,節(jié)省學(xué)時(shí),主要以案例的方式進(jìn)行教學(xué)。通過(guò)與C++課程的對(duì)比,來(lái)展示Java語(yǔ)言的特性和基本語(yǔ)法格式,使學(xué)生體會(huì)到學(xué)習(xí)Java語(yǔ)言的必要性,激發(fā)學(xué)習(xí)興趣。對(duì)于Java語(yǔ)言中的GUI圖像用戶界面部分的知識(shí)以項(xiàng)目教學(xué)方式進(jìn)行,不作為教學(xué)的主要內(nèi)容,因?yàn)閷?shí)際開(kāi)發(fā)中,多數(shù)編寫(xiě)的是基于B/S結(jié)構(gòu)的Web應(yīng)用程序。
Java語(yǔ)言課程學(xué)時(shí)調(diào)整前后如表1所示,在總學(xué)時(shí)不變的情況下,適當(dāng)增加實(shí)驗(yàn)課時(shí)。同時(shí)理論教師在程序代碼講授方式上,有三種方式:幻燈片講解、課堂上打開(kāi)開(kāi)發(fā)工具一邊編寫(xiě)代碼一邊講解、將編好的代碼導(dǎo)入開(kāi)發(fā)工具講解。這三種方式有各自的優(yōu)缺點(diǎn),在教學(xué)中為了激發(fā)學(xué)生的興趣,盡量將要解決的問(wèn)題現(xiàn)場(chǎng)編寫(xiě)代碼,讓學(xué)生體會(huì)理論的實(shí)現(xiàn)過(guò)程;如果處理的問(wèn)題較復(fù)雜,教師在課前用幾個(gè)小時(shí)編寫(xiě)好代碼,課堂上邊講解邊演示運(yùn)行過(guò)程,將關(guān)鍵的知識(shí)點(diǎn)總結(jié),盡量用實(shí)例解決實(shí)際問(wèn)題。
1.2構(gòu)建實(shí)踐教學(xué)體系
Java語(yǔ)言教學(xué)實(shí)踐必須形成體系[2],學(xué)生能力的培養(yǎng)是漸進(jìn)的。從2006年開(kāi)始,我們對(duì)培養(yǎng)應(yīng)用型本科計(jì)算機(jī)專業(yè)人才培養(yǎng)方案進(jìn)行了調(diào)整,以Java語(yǔ)言為例,對(duì)實(shí)踐教學(xué)體系進(jìn)行改革,其中實(shí)踐教學(xué)內(nèi)容是構(gòu)建實(shí)踐教學(xué)體系的一個(gè)方面,實(shí)驗(yàn)題目的選擇非常關(guān)鍵,我們選擇具有實(shí)際意義的題目,而不是簡(jiǎn)單的輸入輸出處理,從工程的角度,讓學(xué)生解決實(shí)際的問(wèn)題,題目主要來(lái)源于教師的科研項(xiàng)目。實(shí)驗(yàn)教學(xué)內(nèi)容如表2所示。
近年來(lái),實(shí)踐教學(xué)體系的構(gòu)建也日漸成熟,我們結(jié)合學(xué)校的實(shí)際情況結(jié)合區(qū)域經(jīng)濟(jì)和發(fā)展前景,以及社會(huì)對(duì)計(jì)算機(jī)人才的需求,以培養(yǎng)學(xué)生的“創(chuàng)新能力”、“實(shí)踐動(dòng)手能力”、“團(tuán)隊(duì)合作能力”為出發(fā)點(diǎn),將實(shí)驗(yàn)課程分為三個(gè)階段:驗(yàn)證性實(shí)驗(yàn)階段、設(shè)計(jì)性實(shí)驗(yàn)階段和綜合性實(shí)驗(yàn)階段,使三者相互聯(lián)系、緊密結(jié)合,在安排上由淺入深,逐步與實(shí)際應(yīng)用接軌[3],如圖1所示。我們從2007年開(kāi)始,為學(xué)生提供更好的實(shí)驗(yàn)環(huán)境,學(xué)院開(kāi)始進(jìn)行開(kāi)放式實(shí)驗(yàn)室建設(shè),使學(xué)生有更多的動(dòng)手機(jī)會(huì),激發(fā)其強(qiáng)烈的求知欲,給學(xué)生足夠的探索空間和創(chuàng)造能力。
1) 驗(yàn)證性實(shí)驗(yàn)。
驗(yàn)證性實(shí)驗(yàn)是教師編寫(xiě)實(shí)驗(yàn)指導(dǎo)書(shū),按照應(yīng)學(xué)習(xí)的知識(shí)點(diǎn),有步驟的實(shí)驗(yàn),學(xué)生負(fù)責(zé)驗(yàn)證實(shí)驗(yàn)結(jié)果或者填寫(xiě)簡(jiǎn)單的語(yǔ)句將程序調(diào)試通過(guò)。例如,學(xué)會(huì)安裝使用JDK環(huán)境和MyEclipse開(kāi)發(fā)環(huán)境、編寫(xiě)簡(jiǎn)單類及對(duì)象、IP地址的讀取與轉(zhuǎn)換、文件的讀寫(xiě)操作等,通過(guò)此階段的實(shí)驗(yàn),讓學(xué)生了解基本的原理、概念、知識(shí)點(diǎn),培養(yǎng)學(xué)生的基本實(shí)驗(yàn)?zāi)芰Γ詮?qiáng)化基本知識(shí)。Java語(yǔ)言課程的實(shí)驗(yàn)課24學(xué)時(shí),驗(yàn)證性實(shí)驗(yàn)占用4~6學(xué)時(shí)為宜,如果時(shí)間不夠,讓學(xué)生在課外實(shí)驗(yàn)中完成。
2) 設(shè)計(jì)性實(shí)驗(yàn)。
設(shè)計(jì)性實(shí)驗(yàn)是由教師給定項(xiàng)目的題目和需求,學(xué)生根據(jù)學(xué)習(xí)的理論知識(shí)來(lái)設(shè)計(jì)算法、編寫(xiě)代碼、測(cè)試、編寫(xiě)實(shí)驗(yàn)報(bào)告的過(guò)程。學(xué)生對(duì)項(xiàng)目的需求進(jìn)一步分析,建立需求模型,編寫(xiě)算法,最后編寫(xiě)Java程序?qū)崿F(xiàn),培養(yǎng)學(xué)生的動(dòng)手能力,知識(shí)的綜合能力,嚴(yán)謹(jǐn)?shù)闹螌W(xué)作風(fēng)。在整個(gè)實(shí)驗(yàn)過(guò)程中分組進(jìn)行,學(xué)生以每組5~6人,分模塊完成,培養(yǎng)學(xué)生的團(tuán)隊(duì)合作精神。另外,我校每年組織學(xué)生除參加ACM大賽外,還可以讓學(xué)生以團(tuán)隊(duì)合作的方式積極參加每年一次的學(xué)校組織的“大學(xué)生挑戰(zhàn)杯程序設(shè)計(jì)大賽”及全國(guó)的“大學(xué)生挑戰(zhàn)杯”課外學(xué)術(shù)科技作品競(jìng)賽等。在學(xué)時(shí)安排方面,設(shè)計(jì)性實(shí)驗(yàn)10學(xué)時(shí),要求教師給出用到的理論及技術(shù)難點(diǎn)的解決方案。
3) 綜合性實(shí)驗(yàn)。
綜合性試驗(yàn)是教師給定項(xiàng)目的可選題目,這些題目主要來(lái)源于教師的科研項(xiàng)目和前沿的領(lǐng)域技術(shù),解決目前急需解決的問(wèn)題,并且以Java語(yǔ)言為開(kāi)發(fā)語(yǔ)言,綜合運(yùn)用與本課程相關(guān)的課程知識(shí),比如:數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫(kù)原理、算法設(shè)計(jì)與分析、軟件工程及人工智能等相關(guān)學(xué)科的知識(shí),來(lái)解決問(wèn)題。培養(yǎng)學(xué)生的軟件工程能力,獨(dú)立進(jìn)行需求獲取、需求分析、規(guī)格說(shuō)明、編寫(xiě)代碼及測(cè)試,并編寫(xiě)相應(yīng)的文檔。通過(guò)綜合性試驗(yàn)再結(jié)合我校的開(kāi)放式實(shí)驗(yàn)室題目,讓學(xué)生體會(huì)到軟件公司中開(kāi)發(fā)項(xiàng)目的流程,這對(duì)教師的要求較高,較難的模塊要給學(xué)生攻關(guān)性的指導(dǎo),幫助學(xué)生進(jìn)行需求的可行性分析等。綜合性試驗(yàn)10學(xué)時(shí),再根據(jù)項(xiàng)目的規(guī)模增加學(xué)時(shí),也可以結(jié)合后續(xù)的課程設(shè)計(jì),完成最終的成果。
4) 課程設(shè)計(jì)。
本課程的課程設(shè)計(jì)為2周,教師針對(duì)性的選取5~8個(gè)項(xiàng)目,以分組的方式,獨(dú)立完成。在綜合性實(shí)驗(yàn)階段的大型項(xiàng)目可以在課程設(shè)計(jì)階段繼續(xù)完成,并結(jié)合開(kāi)放式實(shí)驗(yàn)室開(kāi)發(fā)項(xiàng)目,在教師的指導(dǎo)下,學(xué)生以團(tuán)隊(duì)的方式獨(dú)立完成整個(gè)項(xiàng)目的需求分析、系統(tǒng)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測(cè)試、編寫(xiě)文檔的過(guò)程,即按軟件工程的要求,完成課程設(shè)計(jì)的目的。最后,一天各組演示開(kāi)發(fā)的系統(tǒng)并制作答辯短片或幻燈片,根據(jù)打分情況排名。
1.3建立項(xiàng)目案例庫(kù)
國(guó)內(nèi)很多教師在計(jì)算機(jī)專業(yè)課程的教學(xué)中提出“案例教學(xué)和項(xiàng)目教學(xué)”,關(guān)于案例庫(kù)的建立常被忽略,如何建立案例庫(kù)這一教學(xué)中非常重要的資源,我們將Roger Schank提出“基于案例推理技術(shù)(CBR技術(shù))”應(yīng)用在教學(xué)中。在實(shí)踐教學(xué)中,我們開(kāi)發(fā)的項(xiàng)目案例庫(kù)軟件系統(tǒng),本系統(tǒng)的主要功能是將Java語(yǔ)言課程實(shí)踐中的項(xiàng)目存儲(chǔ)在案例庫(kù)中,定期對(duì)案例庫(kù)維護(hù)包括修改項(xiàng)目案例、增加新的案例、刪除陳舊的案例。將公司中的真實(shí)項(xiàng)目有選擇地存入案例庫(kù),學(xué)生開(kāi)發(fā)的案例、教師的科研項(xiàng)目等都存入案例庫(kù),以此來(lái)豐富教學(xué)資源,這非常有助于實(shí)踐教學(xué),實(shí)踐證明,案例庫(kù)的開(kāi)發(fā)提高了實(shí)踐教學(xué)的質(zhì)量和效率。
2開(kāi)放式實(shí)驗(yàn)室建設(shè)
隨著國(guó)家對(duì)高等教育投入的增加,我校結(jié)合自身的情況,加大對(duì)計(jì)算機(jī)專業(yè)設(shè)備的投入力度,從2007年開(kāi)始,信息技術(shù)學(xué)院新增了網(wǎng)絡(luò)實(shí)驗(yàn)室、程序設(shè)計(jì)基礎(chǔ)實(shí)驗(yàn)室、硬件實(shí)驗(yàn)室,學(xué)院為了提高學(xué)生的動(dòng)手能力,相繼開(kāi)放了上述的實(shí)驗(yàn)室,各門(mén)課程的教師根據(jù)課程需要向院里提出申請(qǐng),統(tǒng)一安排實(shí)驗(yàn)室的開(kāi)放計(jì)劃。Java課程組的教師根據(jù)實(shí)踐課程的情況,成功的編寫(xiě)了一套實(shí)驗(yàn)室開(kāi)放計(jì)劃并得到院里的認(rèn)可,我們主要從實(shí)驗(yàn)室開(kāi)放管理模式、開(kāi)放式實(shí)驗(yàn)題目的選擇、對(duì)教師的要求幾個(gè)方面深入研究,提出合理的實(shí)踐教學(xué)方案,并取得較好的效果。
2.1開(kāi)放實(shí)驗(yàn)室管理模式
針對(duì)實(shí)踐教學(xué)的具體情況,開(kāi)放式實(shí)驗(yàn)室的管理模式采用半開(kāi)放或全開(kāi)放實(shí)驗(yàn)教學(xué)形式的多元化管理。對(duì)于驗(yàn)證性試驗(yàn)采用規(guī)定開(kāi)放時(shí)間,設(shè)計(jì)性實(shí)驗(yàn)和綜合性試驗(yàn)采用全開(kāi)放式實(shí)驗(yàn)時(shí)間,有組織、有計(jì)劃的讓學(xué)生獨(dú)立、自主、團(tuán)隊(duì)的方式進(jìn)行實(shí)驗(yàn),課程組教師輪流值班的形式,跟蹤實(shí)驗(yàn)的全程,而不是學(xué)生放任自流,是讓學(xué)生在相對(duì)寬松的環(huán)境下工作,激發(fā)學(xué)生自主學(xué)習(xí)的能力,培養(yǎng)創(chuàng)造能力、團(tuán)隊(duì)合作能力和創(chuàng)新能力。
2.2開(kāi)放式實(shí)驗(yàn)題目設(shè)計(jì)
開(kāi)放式實(shí)驗(yàn)題目的選擇是多元的,我院規(guī)定每學(xué)期帶課程設(shè)計(jì)的教師必須給出5~10個(gè)實(shí)踐教學(xué)題目,結(jié)合教師的科研和案例庫(kù)中的題目,在Java語(yǔ)言實(shí)踐教學(xué)中,將多方面來(lái)源的題目作為學(xué)生的開(kāi)放式實(shí)驗(yàn)題目,學(xué)生可以自由組合、自由選題,當(dāng)然主講教師還要最終把關(guān),如題目的重復(fù)率、難度、分組的合理性等方面做細(xì)微的調(diào)整。
我校作為農(nóng)業(yè)院校,交叉學(xué)科的體現(xiàn)更加明顯,農(nóng)業(yè)專家系統(tǒng)的開(kāi)發(fā)應(yīng)用到農(nóng)學(xué)等其他專業(yè),這也為計(jì)算機(jī)專業(yè)學(xué)生提供更多的機(jī)會(huì)幫助其他專業(yè)開(kāi)發(fā)應(yīng)用軟件,并且跨專業(yè)的學(xué)生團(tuán)隊(duì)合作也非常多,學(xué)生的專業(yè)能力明顯提高。
2.3實(shí)驗(yàn)平臺(tái)的開(kāi)發(fā)
作為Java語(yǔ)言課程教師,深深體會(huì)到學(xué)生軟件開(kāi)發(fā)能力的培養(yǎng)的重要性,為此,開(kāi)發(fā)了“基于B/S結(jié)構(gòu)的Java語(yǔ)言上機(jī)實(shí)驗(yàn)平臺(tái)”的功能圖,如圖2所示。本課程實(shí)踐教學(xué)平臺(tái)的搭建可以輔助教學(xué),為實(shí)驗(yàn)室運(yùn)行服務(wù)提供高效、嚴(yán)格的管理,還可以全面提升實(shí)驗(yàn)室教學(xué)功能和開(kāi)發(fā)程度,為其他課程的實(shí)驗(yàn)教學(xué)提供參考。
3改革考核制度
Java語(yǔ)言是實(shí)踐性很強(qiáng)的課程,原來(lái)的考核方式為:課程成績(jī)=理論考試(占總分70%)+實(shí)驗(yàn)成績(jī)(占總分30%)。
其中,實(shí)驗(yàn)成績(jī)包括平時(shí)出勤10%、實(shí)驗(yàn)完成質(zhì)量10%、課堂表現(xiàn)5%和課后作業(yè)5%。很明顯,重理論輕實(shí)踐,這使學(xué)生對(duì)實(shí)踐環(huán)節(jié)不夠重視,因此應(yīng)加大實(shí)踐考核的比重,激勵(lì)學(xué)生的學(xué)習(xí)熱情,培養(yǎng)學(xué)生的動(dòng)手能力。對(duì)課程成績(jī)?cè)u(píng)定如下方式:
課程成績(jī)=理論考試(占總分40%)+平時(shí)實(shí)驗(yàn)成績(jī) (占總分30%)+上機(jī)考試(占總分30%)。
其中,平時(shí)實(shí)驗(yàn)成績(jī)包括驗(yàn)證性實(shí)驗(yàn)5%、設(shè)計(jì)性實(shí)驗(yàn)10%和綜合性實(shí)驗(yàn)成績(jī)15%;上機(jī)考試要求時(shí)間為2小時(shí),獨(dú)立完成教師給定的題目,根據(jù)學(xué)生的算法設(shè)計(jì)的科學(xué)性、創(chuàng)新性、代碼的質(zhì)量、測(cè)試數(shù)據(jù)的驗(yàn)證、軟件文檔編寫(xiě)等方面綜合給出評(píng)價(jià)。
改革后的考核方式更強(qiáng)調(diào)實(shí)踐的重要性,采用以實(shí)踐為導(dǎo)向的考核方式[4],激發(fā)學(xué)生的學(xué)習(xí)興趣,培養(yǎng)其動(dòng)手能力,對(duì)本課程的學(xué)習(xí)重點(diǎn)更加突出。
4結(jié)語(yǔ)
在Java語(yǔ)言的教學(xué)中,我們雖然取得初步的成果,但還要不斷地實(shí)踐,探索建設(shè)產(chǎn)學(xué)研相結(jié)合的教學(xué)模式,激發(fā)學(xué)生的學(xué)習(xí)興趣,考慮Java課程群的建設(shè),以適應(yīng)IT企業(yè)對(duì)Java工程師的要求。教師還要在教學(xué)中積極思考與探索,使教學(xué)與科研相結(jié)合,深入企業(yè),了解計(jì)算機(jī)學(xué)科的前沿領(lǐng)域。
參考文獻(xiàn):
[1]