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