摘要:在互聯(lián)網(wǎng)時代,JAVA語言由于具有語言先進(jìn)、跨平臺等諸多優(yōu)點(diǎn),成為許多編程語言的首選語言。為了解決Java語言課程教學(xué)現(xiàn)狀極其弊端,提出項(xiàng)目教學(xué)法及其在教學(xué)中的具體實(shí)施過程,并指出應(yīng)用項(xiàng)目教學(xué)法的注意事項(xiàng)。
關(guān)鍵詞:項(xiàng)目教學(xué)法;Java程序設(shè)計
中圖分類號:TP312.2-4 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9599 (2012) 23-0000-02
在網(wǎng)絡(luò)盛行的今天,IT人才特別是具有Java技術(shù)的高級編程人才特別緊缺。Java語言是眾多計算機(jī)編程語言的首選語言,是目前最流行的編程語言。目前各高校都開設(shè)了Java語言課程。那么,Java語言具有哪些特點(diǎn)呢?
1 Java語言特點(diǎn)
簡而言之,Java是一種簡單的,面向?qū)ο蟮?,分布式的,解釋型的,健壯安全的,結(jié)構(gòu)中立的,可移植的,性能優(yōu)異、多線程的動態(tài)語言。
Java語言類似于C++,但摒棄了其中容易引發(fā)程序出錯之處,并提供了豐富的類庫;Java語言面向?qū)ο?,支持靜態(tài)和動態(tài)代碼繼承和重用;Java動態(tài)訪問Internet等復(fù)雜分布環(huán)境的網(wǎng)絡(luò)對象,如同訪問本地文件系統(tǒng);Java的類型檢查、操縱內(nèi)存、真數(shù)組、Null指針檢測數(shù)組邊界,方便檢查程序編譯運(yùn)行中的錯誤,有效的縮短了開發(fā)周期;Java源程序可編譯成byte-code代碼,與機(jī)器無關(guān),可在任何Java系統(tǒng)機(jī)或Java虛擬機(jī)運(yùn)行,也可編譯成J-Code代碼,能在任何Java虛擬機(jī)運(yùn)行;Java安全性強(qiáng),內(nèi)存不允許非法操作;Java解釋器多線程、高性能,具有優(yōu)良的的交互性能和實(shí)時控制性能;Java允許程序動態(tài)裝入類,更新其變量和方法而不影響現(xiàn)存代碼;Java程序標(biāo)準(zhǔn)字符Unicode能在不同語言平臺編寫和執(zhí)行。
由于Java語言課程知識點(diǎn)多、技術(shù)復(fù)雜、實(shí)踐教學(xué)效果不好等諸多因素,各高校都在積極探索Java教學(xué)改革的新思路,探索更好的教學(xué)方法和手段。
2 Java語言課程教學(xué)現(xiàn)狀
目前在Java語言課程教學(xué)中存在以下問題:
2.1 教學(xué)方法傳統(tǒng)單一,不能適應(yīng)Java實(shí)踐需要
目前很多教師還在沿用傳統(tǒng)的教學(xué)方法,圍繞教材和大綱,以教師授課為主,學(xué)生聽課為輔。教師根據(jù)教材和大綱,逐一講解各知識點(diǎn),并通過一些例題和上機(jī)運(yùn)行程序加以驗(yàn)證,學(xué)生通過上機(jī)操作練習(xí)并編寫簡單常用算法,對所學(xué)知識點(diǎn)進(jìn)行理解吸收。學(xué)習(xí)Java語言需要加強(qiáng)實(shí)踐,而傳統(tǒng)教學(xué)方法忽視了學(xué)生的學(xué)習(xí)主體地位,影響學(xué)生學(xué)習(xí)的積極性、自主性和創(chuàng)造性。
2.2 對課程整體認(rèn)識不夠,學(xué)生缺乏學(xué)習(xí)興趣
Java作為行業(yè)首選編程語言,學(xué)生是有足夠的學(xué)習(xí)熱情的。然而很多學(xué)生誤以為Java只是C++的向上封裝,以為有了C或C++語言基礎(chǔ),就可以輕松學(xué)會,因而重視度不夠。隨著學(xué)習(xí)內(nèi)容不斷加深,各類環(huán)境配置、類庫、OOP、設(shè)計模式、整體架構(gòu)等,枯燥而繁多,學(xué)習(xí)逐漸困難,產(chǎn)生畏難心理,缺乏實(shí)際成果激勵,將嚴(yán)重影響后續(xù)內(nèi)容的學(xué)習(xí)興趣。
2.3 學(xué)生被動接受知識,缺乏綜合實(shí)踐能力
傳統(tǒng)教學(xué)方法,學(xué)生作為知識的被動受體,知識點(diǎn)基本都掌握的很好,能單獨(dú)編寫一些簡單的孤立的算法。然而,各個知識點(diǎn)之間缺乏關(guān)聯(lián),不會綜合運(yùn)用。在面對復(fù)雜的實(shí)際的完整項(xiàng)目時,則不知如何下手,軟件工程的整體設(shè)計更是無從談起。
2.4 考核形式單一易過,學(xué)生不重視實(shí)踐操作
傳統(tǒng)編程語言課程的考核主要是筆試,學(xué)生只要掌握課本中的知識,臨考前認(rèn)真復(fù)習(xí)知識點(diǎn)和例題等常用算法就能順利通過考試,因而產(chǎn)生不重視實(shí)踐操作的錯誤傾向。
這些問題其根本原因是學(xué)生缺乏持續(xù)的學(xué)習(xí)動力,因而需要探索新的教學(xué)方法和手段去激發(fā)學(xué)習(xí)興趣,提升學(xué)習(xí)動力。通過幾年的教學(xué)實(shí)踐發(fā)現(xiàn)項(xiàng)目教學(xué)法是比較有效的教學(xué)方法。
3 項(xiàng)目教學(xué)法
項(xiàng)目教學(xué)法,是一種建構(gòu)主義學(xué)習(xí)理論的探究式學(xué)習(xí),即在真實(shí)情境中,在教師指導(dǎo)下,學(xué)生對學(xué)習(xí)內(nèi)容進(jìn)行自主探究,廣泛交流,通過各種疑難問題的不斷解決,去完成相應(yīng)知識的意義建構(gòu)。教師通過引導(dǎo)學(xué)生實(shí)施完成一個實(shí)際項(xiàng)目的全部過程,把理論知識有機(jī)的結(jié)合到實(shí)踐教學(xué)中,充分發(fā)掘?qū)W生的創(chuàng)造潛能,學(xué)生主動動手解決實(shí)際問題,去體會成功的快樂,能力不斷得到承認(rèn)和自我肯定,反復(fù)強(qiáng)化其學(xué)習(xí)信心,從而增強(qiáng)學(xué)習(xí)動力。Java語言課程項(xiàng)目教學(xué)通過教師引導(dǎo)學(xué)生參與實(shí)際項(xiàng)目,分析項(xiàng)目需求、總體設(shè)計、開發(fā)制作、測試和維護(hù)等,培養(yǎng)學(xué)生發(fā)現(xiàn)、分析、解決問題及協(xié)同合作等綜合能力,提升學(xué)生的專業(yè)水平和職業(yè)素養(yǎng)。
4 項(xiàng)目教學(xué)法的具體實(shí)施
通過教學(xué)實(shí)踐,總結(jié)Java語言課程項(xiàng)目教學(xué)法主要有一下幾個過程,如圖所示:
4.1 確定項(xiàng)目與設(shè)計目標(biāo)
在Java語言課程整個教學(xué)過程中,根據(jù)教學(xué)內(nèi)容選擇不同項(xiàng)目,由簡入難,先選取一個學(xué)生比較熟悉且與實(shí)際聯(lián)系緊密的項(xiàng)目,如學(xué)生成績管理系統(tǒng),逐漸過度選擇一些與程序員職業(yè)崗位有關(guān)的項(xiàng)目。選擇項(xiàng)目要有典型性和啟發(fā)性,與教學(xué)內(nèi)容相符合,達(dá)到教學(xué)目標(biāo)。以學(xué)生成績管理系統(tǒng)為例,首先教師需要給學(xué)生提出項(xiàng)目的設(shè)計要求,具體功能,最終能達(dá)到的目標(biāo),教師通過展示相同或類似案例,介紹其主要功能、實(shí)現(xiàn)過程及注意事項(xiàng)等,讓學(xué)生初步了解項(xiàng)目設(shè)計過程及最終完成效果,激發(fā)學(xué)生設(shè)計創(chuàng)新和動手操作的興趣,有計劃有步驟的去開發(fā)設(shè)計完成自己的項(xiàng)目任務(wù)。
4.2 任務(wù)分工與相互協(xié)作
根據(jù)軟件系統(tǒng)工程思想,將項(xiàng)目分解成幾個功能模塊,并以此為依據(jù)確定小組人數(shù),將全班劃分為幾個小組,同時完成相同或類似的項(xiàng)目。培養(yǎng)小組間的競爭精神和小組成員間的協(xié)調(diào)溝通能力和團(tuán)隊(duì)合作精神。確定各小組組長,組長在老師指導(dǎo)下組織本小組全體成員完成項(xiàng)目整個開發(fā)過程。需求分析階段,組長組織小組成員討論分析,給出項(xiàng)目具體設(shè)計方案,分解功能模塊和實(shí)施開發(fā)步驟,安排各成員具體任務(wù)分工,實(shí)現(xiàn)獨(dú)立模塊功能,最后整合為一,共同完成整個項(xiàng)目的開發(fā)。成員間合理搭配、能力互補(bǔ)相互協(xié)作。小組成員也可以換崗或輪崗,分別承擔(dān)和體會各階段的前期設(shè)計、編寫代碼和后期測試任務(wù)。
4.3 知識點(diǎn)組織及相關(guān)知識銜接
在Java語言項(xiàng)目教學(xué)中,教師需要對相關(guān)知識點(diǎn)進(jìn)行靈活的組織和安排,根據(jù)知識點(diǎn)的難易、實(shí)用性、與項(xiàng)目的關(guān)系等,進(jìn)行有選擇地講解。前期有c++等相關(guān)課程基礎(chǔ)的知識點(diǎn),只需講解其差異部分,如OOP思想、語法等。另外,數(shù)據(jù)庫以及其他相關(guān)擴(kuò)展知識,如網(wǎng)絡(luò)編程、系統(tǒng)架構(gòu)的設(shè)計等,可以根據(jù)項(xiàng)目設(shè)計的實(shí)際需要,以及學(xué)生的能力水平,將其有選擇的穿插到課堂教學(xué)和項(xiàng)目教學(xué)實(shí)踐中,使其能跟項(xiàng)目開發(fā)設(shè)計所需要的知識有效的銜接起來。
4.4 過程指導(dǎo)及點(diǎn)評糾錯
在項(xiàng)目開發(fā)實(shí)施過程中,小組成員依靠其自身能力和成員間協(xié)作,通過查閱資料、自主學(xué)習(xí)、咨詢討論等多種方式,獨(dú)立解決問題;教師則幕后全程指導(dǎo),了解并協(xié)調(diào)各功能模塊進(jìn)展。教師需要提供多種方式給以技術(shù)指導(dǎo)、答疑解惑,對設(shè)計開發(fā)過程中所涉及的較深知識點(diǎn)進(jìn)行介紹和引導(dǎo),在關(guān)鍵階段進(jìn)行適當(dāng)?shù)狞c(diǎn)評,對項(xiàng)目進(jìn)展順利的小組和同學(xué)加以肯定,出現(xiàn)偏差及時糾正。
4.5 單項(xiàng)評價與綜合評價
課程結(jié)束,教師和學(xué)生要對Java語言理論知識和項(xiàng)目實(shí)踐做好檢查與評價,包括:A、單元知識點(diǎn)的單項(xiàng)評價和整個課程理論與實(shí)踐的綜合評價;B、對每個項(xiàng)目作出模塊單項(xiàng)評價和項(xiàng)目綜合評價;C、根據(jù)項(xiàng)目執(zhí)行過程和結(jié)果做好成員單項(xiàng)評價和小組綜合評價;D、每個項(xiàng)目的單項(xiàng)評價和所有項(xiàng)目的綜合評價。其中項(xiàng)目評價過程如下:首先學(xué)生對項(xiàng)目實(shí)踐自我表現(xiàn)進(jìn)行總結(jié),包括前期準(zhǔn)備、過程設(shè)計、后期測試、所遇問題、解決方法、最終結(jié)果,所承擔(dān)模塊運(yùn)行情況等;其次小組組長對其成員分工與表現(xiàn)、團(tuán)隊(duì)協(xié)作、項(xiàng)目設(shè)計開發(fā)測試全過程做綜合點(diǎn)評;最后教師總結(jié)并指導(dǎo)學(xué)生分組撰寫項(xiàng)目實(shí)踐報告。教師依據(jù)各組成員表現(xiàn)、所負(fù)責(zé)功能模塊難易、完成情況、貢獻(xiàn)等多種因素做好綜合評價,給出單項(xiàng)實(shí)踐成績。單項(xiàng)實(shí)踐成績平均得到實(shí)踐總成績,配合期末筆試成績,構(gòu)成Java課程總成績。
5 Java語言項(xiàng)目教學(xué)法注意事項(xiàng)
5.1 項(xiàng)目教學(xué)師生新要求
Java語言課程項(xiàng)目教學(xué)的教師除了要有專業(yè)理論知識、還要有足夠的專業(yè)技能,熟悉Java項(xiàng)目開發(fā)流程,有項(xiàng)目開發(fā)所必備的綜合能力,找到能覆蓋學(xué)生所學(xué)知識點(diǎn)的合適項(xiàng)目,才能更好的組織Java語言課程項(xiàng)目教學(xué)。學(xué)生不能只是被動地接受教師講課內(nèi)容,必須主動學(xué)習(xí)、思考、設(shè)計,發(fā)現(xiàn)問題,想方設(shè)法解決問題,總結(jié)收獲與不足,提高綜合實(shí)踐能力,同時也鍛煉了語言表達(dá)能力和溝通協(xié)作能力,加深了同學(xué)間的友誼和師生間的理解。
5.2 項(xiàng)目選取與教學(xué)內(nèi)容相符
選擇項(xiàng)目是Java語言教學(xué)的關(guān)鍵。太簡單的項(xiàng)目不能達(dá)到教學(xué)目的,太難的項(xiàng)目將很難進(jìn)行下去,只有選擇合適的項(xiàng)目才能達(dá)到更好的教學(xué)效果。首先,所選項(xiàng)目必須符合Java語言相應(yīng)單元的知識點(diǎn),并充分考慮學(xué)生的前期知識基礎(chǔ),能覆蓋學(xué)生所學(xué)大部分知識點(diǎn),并有一定的創(chuàng)新空間。選擇項(xiàng)目難易適中,促使學(xué)生能靈活運(yùn)用所學(xué)知識并發(fā)現(xiàn)新的知識和技能需求,探索解決具有一定難度的實(shí)際問題。
5.3 項(xiàng)目教學(xué)不能替代傳統(tǒng)教學(xué)
項(xiàng)目教學(xué)具有明顯優(yōu)勢,但不能完全替代傳統(tǒng)教學(xué),應(yīng)將二者有機(jī)結(jié)合,取長補(bǔ)短。課堂教學(xué)應(yīng)以誘導(dǎo)啟發(fā)式對主要知識點(diǎn)適當(dāng)講解,逐步引出項(xiàng)目教學(xué)。此外,還有許多其他教學(xué)方法,有利于學(xué)生知識與技能的全面培養(yǎng)。因此,教師應(yīng)根據(jù)教學(xué)內(nèi)容不同,選擇相應(yīng)的教學(xué)方法,以取得最佳教學(xué)效果。
Java語言課程項(xiàng)目教學(xué)法實(shí)施以來,教學(xué)效果有了明顯提高。學(xué)生掌握了Java理論知識,熟悉了Java項(xiàng)目設(shè)計的開發(fā)流程,激發(fā)了學(xué)習(xí)興趣,鍛煉了實(shí)踐能力、問題解決能力、團(tuán)隊(duì)溝通協(xié)作等綜合能力,提高了專業(yè)技能,也培養(yǎng)了職業(yè)素養(yǎng),使其更符合社會職位需要。
參考文獻(xiàn):
[1]CSDN.NET. Java語言主要特點(diǎn)有哪些?[DB/OL].http://blog.csdn.net/zjrbiancheng/article/details/6007275.2010-11-13
[2]湯海蓉,李錫輝.基于項(xiàng)目驅(qū)動的JAVA程序設(shè)計教學(xué)改革[J].教育與職業(yè).2012(6):140-142.
[3]胡尊美.基于目標(biāo)項(xiàng)目驅(qū)動式的JAVA課程教學(xué)改革[J].電腦知識與技術(shù).2009,5(35):10005-10013.
[作者簡介]
葛麗萍(1970-)女,遼寧營口人,營口職業(yè)技術(shù)學(xué)院副教授,主要從事多媒體教學(xué)與研究。