摘 要:文章主要介紹了基于Oracle公司開源項(xiàng)目下Java語言課程的整體課程體系的設(shè)計(jì),旨在原有基礎(chǔ)上進(jìn)一步提高教學(xué)質(zhì)量和效果,更好地把理論和實(shí)踐有機(jī)地結(jié)合起來,以滿足當(dāng)前產(chǎn)業(yè)發(fā)展對創(chuàng)新型工程人才的需求。該課程體系改革的主要內(nèi)容有新型關(guān)聯(lián)一體化課程設(shè)置、分層次分角色集成化課程教學(xué)方法、結(jié)合開源項(xiàng)目開發(fā)并演示軟件產(chǎn)品和新型考核方法的建立。自2012年初實(shí)施以來,該課程體系的實(shí)踐得到了師生的認(rèn)可,激發(fā)了學(xué)生的興趣,在實(shí)踐中取得了較好的成效。
關(guān)鍵詞:開源項(xiàng)目 課程體系 課程設(shè)置
中圖分類號(hào):G642.0 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1004-4914(2013)03-145-02
一、引言
Java技術(shù)的開源社區(qū)產(chǎn)生了許多有價(jià)值的開源項(xiàng)目,并且培養(yǎng)了一大批優(yōu)秀的大師級編程專家。開源項(xiàng)目有利于學(xué)生動(dòng)手能力和合作精神的培養(yǎng)。開源項(xiàng)目采用“集體開發(fā)”、“合作創(chuàng)新”和“技術(shù)共享”的模式,通過來自底層志愿者的自下而上創(chuàng)新體系進(jìn)行軟件的開發(fā)。針對軟件工程專業(yè)的學(xué)生將來選擇IT行業(yè)就業(yè),編程能力、團(tuán)隊(duì)協(xié)作能力、項(xiàng)目分析能力等尤為重要。為此,基于開源項(xiàng)目下要完善《Java語言程序設(shè)計(jì)》課程的整體課程體系的設(shè)計(jì),可以在原有基礎(chǔ)上進(jìn)一步提高教學(xué)質(zhì)量和效果,更好的把理論和實(shí)踐有機(jī)的結(jié)合起來,以滿足當(dāng)前產(chǎn)業(yè)發(fā)展對創(chuàng)新型工程人才的需求。
《Java語言程序設(shè)計(jì)》課程是我校計(jì)算機(jī)軟件工程專業(yè)的一門專業(yè)基礎(chǔ)課程,該課程的教學(xué)目標(biāo)是讓學(xué)生掌握面向?qū)ο蟮木幊趟枷?,并能夠?dú)立完成項(xiàng)目的開發(fā),但以往的教學(xué)實(shí)踐表明,很多學(xué)生學(xué)完課程后并不能很好的應(yīng)用到實(shí)際產(chǎn)品項(xiàng)目的開發(fā)中。要達(dá)到預(yù)期教學(xué)目標(biāo),提高學(xué)生的實(shí)踐應(yīng)用能力,結(jié)合開源項(xiàng)目完善《Java語言程序設(shè)計(jì)》課程體系的設(shè)計(jì)應(yīng)該是改革的途徑之一。
二、應(yīng)用價(jià)值
Oracle公司推出的Java的開源社區(qū)是最活躍的社區(qū),這些社區(qū)產(chǎn)生了很多有價(jià)值的開源項(xiàng)目,像企業(yè)開發(fā)項(xiàng)目流行的Apache Tomcat Server、ant、Eclipse、JBoss、Struts等,在Java技術(shù)中采用開源項(xiàng)目按照軟件工程思想把某一項(xiàng)目展開并貫穿于整個(gè)Java課程體系及教學(xué)中,可以切實(shí)的讓學(xué)生看到學(xué)習(xí)Java語言課程究竟可以實(shí)現(xiàn)什么,項(xiàng)目打包后的運(yùn)行效果是什么,如何去開發(fā)一個(gè)企業(yè)的真實(shí)項(xiàng)目,更好地應(yīng)用啟發(fā)式教學(xué)讓學(xué)生明確自己的位置。
將開源項(xiàng)目應(yīng)用于教學(xué),最早是起源于美國,后盛行于德國,尤其更適合于軟件學(xué)院。自從龔敏博士從國外帶回一大堆Linux等開源項(xiàng)目軟件之后,中國便吹響了開源運(yùn)動(dòng)的號(hào)角,最MXwA/UCVwc/dDGhonGD4utWK/EBpzy+mF2L0OcETSWw=初由David建立了中國的知名Linux站點(diǎn)Linux form。
近年來,伴隨開源運(yùn)動(dòng)在中國的推進(jìn),開源社區(qū)也取得很大發(fā)展。開源社區(qū)的建設(shè)對促進(jìn)中國開源事業(yè)與國際接軌具有深遠(yuǎn)影響,有利于進(jìn)一步推進(jìn)與國際開源社區(qū)的交流合作,了解并學(xué)習(xí)國際前沿開源技術(shù)和開源理念,跟蹤國際開源發(fā)展最新動(dòng)態(tài)。將開源項(xiàng)目所具備的“集體開發(fā)、合作創(chuàng)新、對等評估”,以及“源碼公開、使用自由、資源整合、信息共享”特征于一體的創(chuàng)新體系融入Java課程體系的改革在基于工作過程的課程改革背景下優(yōu)勢突出。
針對2011級軟件工程專業(yè)學(xué)生,將開源項(xiàng)目用于Java課程體系中,可以讓學(xué)生切實(shí)從一開始就受到開源思想的熏陶,順應(yīng)當(dāng)前軟件行業(yè)開源軟件將逐漸流行的趨勢。按照這種方法改善Java課程體系,學(xué)生在教學(xué)活動(dòng)中參與程度高,整體效果好,提高學(xué)生動(dòng)手編程能力、增強(qiáng)團(tuán)隊(duì)合作意識(shí)、提高學(xué)生的創(chuàng)新能力,縮短校企合作的距離,畢業(yè)生在就業(yè)時(shí)進(jìn)入企業(yè)能快速適應(yīng)團(tuán)隊(duì)項(xiàng)目的開發(fā)與協(xié)作,并正確定位自己的角色。
三、開源項(xiàng)目下新型課程體系
《Java語言程序設(shè)計(jì)》課程的授課活動(dòng)要在開源項(xiàng)目下建立新型的課程體系,目標(biāo)對象有兩個(gè):授課教師和學(xué)生,前提是授課教師必須了解并掌握開源項(xiàng)目,并轉(zhuǎn)變授課習(xí)慣性的思想和觀念,其次,在整個(gè)教學(xué)活動(dòng)中將開源項(xiàng)目的設(shè)計(jì)思想、精神靈活地灌輸給學(xué)生。該課程體系改革的主要研究內(nèi)容有四方面:新型關(guān)聯(lián)一體化課程設(shè)置、分層次分角色集成化課程教學(xué)方法、結(jié)合開源項(xiàng)目開發(fā)并演示軟件產(chǎn)品和新型考核方法的建立。Java課程體系改革主要目標(biāo)就是實(shí)現(xiàn)以有利于學(xué)生就業(yè)為導(dǎo)向的教學(xué)模式。
在2012年開學(xué)初,對于2011級軟件工程專業(yè)Java方向?qū)W生開展了為期一周的關(guān)于Java課程體系相關(guān)課程設(shè)置,如何結(jié)合開源項(xiàng)目開發(fā)軟件,如何真正地與企業(yè)真實(shí)項(xiàng)目接軌。為了加強(qiáng)教師的軟件項(xiàng)目開發(fā)能力,學(xué)院也采取了派教師去企業(yè)界工作、培訓(xùn)學(xué)習(xí)有關(guān)Android游戲編程等課程,與企業(yè)界的工程師合作開發(fā)項(xiàng)目等措施,教學(xué)效果較好。
1.新型關(guān)聯(lián)一體化課程設(shè)置。在傳統(tǒng)的教學(xué)方法中,各門課程按學(xué)科內(nèi)容幾乎是獨(dú)立的,課程之間很少關(guān)聯(lián),而新型的CDIO方法是按照工程項(xiàng)目的整個(gè)生命周期來組織教、學(xué)、做的,這就要求將相關(guān)課程關(guān)聯(lián),來解決實(shí)際的綜合問題。如要開發(fā)一個(gè)購物車網(wǎng)站,前臺(tái)可以采用Java語言和JSP語言,后臺(tái)可以采用MySQL數(shù)據(jù)庫,而教師在講授過程中就要將三門課程相關(guān)聯(lián),在利用JSP語言編寫客戶端網(wǎng)頁時(shí)如需插入JavaScript腳本元素,要使用Java語言來編寫代碼,如果要倒入數(shù)據(jù),就要連接后臺(tái)MySQL數(shù)據(jù)庫。通過關(guān)聯(lián)化課程的設(shè)置,學(xué)生能夠利用最少的時(shí)間完成基礎(chǔ)層次或高層次的項(xiàng)目。
2.分層次分角色集成化課程教學(xué)方法。對于同一門課程,不同的學(xué)生的愛好程度不同。如對于“Java語言”課程,可能有的學(xué)生非常喜歡,自己在課余的時(shí)間就會(huì)抽出更多的時(shí)間來學(xué)習(xí)或參加一些相關(guān)的實(shí)踐項(xiàng)目來提升自己,而有的學(xué)生可能是處于中間狀態(tài),不喜歡也不討厭,那他可能更重視的是課程的成績,還有的學(xué)生可能根本就不喜歡這門課程,他對自己的要求是只要考試及格就可以,平時(shí)也不會(huì)認(rèn)真去學(xué)。因此,教師可以通過測試學(xué)生對課程的愛好程度,根據(jù)它對學(xué)生分層次教學(xué)。如針對上述情況可劃分為三個(gè)層次:
(1)建立課外學(xué)習(xí)小組教學(xué)。對于那些對課程有濃厚興趣的學(xué)生,教師可以組織學(xué)生分成小組,以團(tuán)隊(duì)的形式參與教師、學(xué)?;蚱髽I(yè)的科研項(xiàng)目活動(dòng),從而提高學(xué)生的創(chuàng)新能力。
(2)課外輔助教學(xué)。針對中間狀態(tài)的學(xué)生,可以利用實(shí)驗(yàn)設(shè)備輔助教學(xué),使學(xué)生更多地參與到“設(shè)計(jì)-制作”實(shí)踐項(xiàng)目活動(dòng)中,這也是CDIO方法對于每個(gè)學(xué)生基本要求。
(3)課堂啟發(fā)式教學(xué)。多數(shù)教師公認(rèn)的最好的教學(xué)方法就是啟發(fā)式教學(xué),也可以結(jié)合其他教學(xué)方法,如探討式教學(xué)等,這種方法更有助于激發(fā)學(xué)生的興趣。
在企業(yè)界,學(xué)生除了應(yīng)具備專業(yè)知識(shí)外,還應(yīng)具有團(tuán)隊(duì)協(xié)作能力、人際溝通能力、綜合素質(zhì)能力和系統(tǒng)建造能力等,所以,要通過集成化教學(xué)方法,使學(xué)生同時(shí)獲得知識(shí)和能力。
3.結(jié)合開源項(xiàng)目開發(fā)并演示軟件產(chǎn)品。開源項(xiàng)目就是Open Source Project,對于Java來說,上apache網(wǎng)站上可以找到很多這樣的程序,他們遵守GPL, Apache, Berkeley等稍有差別的開源協(xié)議,但大體意思都是可以自己修改代碼用于自己的程序的,包括商業(yè)用途。這類程序一般通用性的比較多,比如服務(wù)器、數(shù)據(jù)庫、瀏覽器、論壇、博客等等,缺點(diǎn)是維護(hù)起來對技術(shù)要求比較高。在Java課程教學(xué)中要結(jié)合開源項(xiàng)目開發(fā)的具體軟件產(chǎn)品如電子商務(wù)網(wǎng)站、新聞系統(tǒng)、手機(jī)游戲開發(fā)等等吸引學(xué)生的眼球,讓學(xué)生切實(shí)喜歡并自覺主動(dòng)參與項(xiàng)目的開發(fā)。讓學(xué)生選擇合適的開源項(xiàng)目如銷售電子產(chǎn)品的電子商務(wù)網(wǎng)站,采用熟悉的開發(fā)環(huán)境如Eclipse、Tomcat和MySQL等安裝開源項(xiàng)目,教師帶領(lǐng)學(xué)生從開源項(xiàng)目的需求分析著手,分析網(wǎng)站的總體設(shè)計(jì)包括幾個(gè)大模塊,如管理員模塊、登陸模塊、訂單模塊、購物車模塊等,然后還原數(shù)據(jù)庫表,在訪問數(shù)據(jù)時(shí),如何實(shí)現(xiàn)添加、查找、修改、刪除等操作,前臺(tái)與后臺(tái)每個(gè)模塊的設(shè)計(jì),最終網(wǎng)站的調(diào)試,出現(xiàn)401或500錯(cuò)誤時(shí)應(yīng)如何修改程序代碼,對于該開源項(xiàng)目如何進(jìn)行擴(kuò)充,結(jié)合Java、JSP、JavaScript、MVC模式及框架等已教授的內(nèi)容擴(kuò)充,以小組形式完善項(xiàng)目開發(fā),讓每個(gè)學(xué)生都能夠真正參與項(xiàng)目的開發(fā),運(yùn)行并演示最終開發(fā)的軟件作品,使學(xué)生親自體驗(yàn)真實(shí)的軟件產(chǎn)品從“構(gòu)思—設(shè)計(jì)—實(shí)現(xiàn)—運(yùn)作”的全過程。
4.新型考核方法。對于計(jì)算機(jī)專業(yè)語言類課程的考核方法,傳統(tǒng)采用一般是筆試成績(70%)和平時(shí)成績(30%),其中,平時(shí)成績主要包括學(xué)生平時(shí)表現(xiàn)和實(shí)驗(yàn)兩部分。這種考核方式忽視了學(xué)生實(shí)踐能力的培養(yǎng),導(dǎo)致學(xué)生的動(dòng)手編程能力較差。以美國MIT學(xué)院為例,它側(cè)重強(qiáng)調(diào)的是學(xué)生課程實(shí)踐能力和解決問題能力,以課程項(xiàng)目和課程作業(yè)為主要考核指標(biāo)。CDIO理念重視在理論和實(shí)踐中要選擇一個(gè)最優(yōu)的平衡點(diǎn),才能達(dá)到預(yù)期的教學(xué)目標(biāo),使學(xué)生所學(xué)的知識(shí)能夠真正的學(xué)有所用。新型的考核方法主要涵蓋三方面。
(1)單元性測驗(yàn)。對于《Java語言》這門課程從內(nèi)容深度上總體可分為:基礎(chǔ)篇、應(yīng)用篇、提高篇三部分,每學(xué)完一部分做一次單元性測驗(yàn)。單元性測驗(yàn)可以將本部分內(nèi)容和前續(xù)內(nèi)容結(jié)合起來解決一些綜合性的問題。測驗(yàn)試題的難度可根據(jù)學(xué)生的層次而定,內(nèi)容要接近學(xué)生的生活,如學(xué)生可以獨(dú)立編寫俄羅斯方塊游戲或?qū)W生信息管理系統(tǒng)等,此部分成績占期末總成績的30%。
(2)團(tuán)隊(duì)項(xiàng)目開發(fā)測驗(yàn)。根據(jù)班級人數(shù)分成不同的團(tuán)隊(duì),每個(gè)團(tuán)隊(duì)選擇一名成員為小組組長。對于軟件工程11級-3班的學(xué)生總數(shù)25人,劃分成5個(gè)小組,每個(gè)小組5人,根據(jù)小組成員興趣、能力等不同分配不同的任務(wù),如頁面美工設(shè)計(jì)、創(chuàng)建數(shù)據(jù)表、編碼調(diào)試等,根據(jù)項(xiàng)目開發(fā)完成情況給予不同的評分,該部分占學(xué)生期末總成績的50%。
(3)綜合創(chuàng)新性測驗(yàn)。綜合創(chuàng)新性測驗(yàn)主要由教師根據(jù)學(xué)生特點(diǎn)給定一些具體的開源項(xiàng)目,學(xué)生要對給定開源項(xiàng)目進(jìn)行擴(kuò)充,并最終撰寫成文檔,提交源代碼文件。這部分成績占期末總成績的20%。
如學(xué)生在開課期間曾參加過學(xué)校或企業(yè)的真實(shí)的科研項(xiàng)目,可免于參加綜合創(chuàng)新性測驗(yàn)。此考核方法在2012年實(shí)施時(shí)效果較好,一個(gè)軟件工程11級-3班的學(xué)生共25人,其中有5人成績在60~70分之間,7人成績在70~80分之間,10人成績在80~90分之間,3人成績在90~100分之間。因?yàn)椤禞ava語言》課程基礎(chǔ)打得好,所以學(xué)生在后期學(xué)習(xí)Hibernate技術(shù)、Struts技術(shù)等課程時(shí)很容易接受。
四、總結(jié)
通過一個(gè)學(xué)期基于開源項(xiàng)目下課程體系的改革與實(shí)踐,《Java語言程序設(shè)計(jì)》課程取得了良好的教學(xué)效果,這種授課方式的優(yōu)勢是以案例項(xiàng)目展開教學(xué)激發(fā)了學(xué)生的興趣,且提升了教師的任教水平和要求。學(xué)生已基本適應(yīng),它將理論與實(shí)踐有機(jī)的結(jié)合在一起,學(xué)生在獲得知識(shí)的同時(shí),也具備了相應(yīng)的能力,這也正實(shí)現(xiàn)了開源項(xiàng)目下課程體系改革的目標(biāo),滿足了企業(yè)界對創(chuàng)新型工程人才的需求,同時(shí)也更好地實(shí)現(xiàn)了以就業(yè)為導(dǎo)向的教學(xué)目標(biāo)。但是課程體系的改革,是一個(gè)長期的、綜合性的工作,若想取得綜合的教學(xué)效果,還需要進(jìn)一步的研究與探索。
[基金項(xiàng)目:黑龍江科技學(xué)院教學(xué)研究項(xiàng)目“基于Oracle公司開源項(xiàng)目的《Java語言程序設(shè)計(jì)》課程體系的改革與實(shí)踐”]
參考文獻(xiàn):
1.李堅(jiān)強(qiáng).基于CDIO模式的嵌入式系統(tǒng)教學(xué)研究與探討.計(jì)算機(jī)教育,2010(12)
2.潘武玲.改進(jìn)我國研究教育質(zhì)量評價(jià)指標(biāo)體系之思考[J].高等教育研究學(xué)報(bào),2011(3)
3.馬曉梅;韓娜;張劍飛.CDIO理念下Java語言課程的設(shè)計(jì)與探討.高教論壇,2010(12)
(作者單位:黑龍江科技學(xué)院計(jì)算機(jī)學(xué)院 黑龍江哈爾濱 150027)
(責(zé)編:賈偉)