Java程序設計教學(xué)
Java程序設計教學(xué)【1】

摘 要:為了提高學(xué)生Java編程能力,實(shí)現培養創(chuàng )新人才的目標,分析了Java程序設計教學(xué)的內容和重點(diǎn),并闡述了如何提高Java教學(xué)質(zhì)量的一些觀(guān)點(diǎn)。
這些教學(xué)思想和方法經(jīng)Java教學(xué)實(shí)踐運用,取得了良好的效果。
關(guān)鍵詞:Java 教學(xué)方法 程序設計
面向對象程序設計是目前程序設計的主流,是軟件開(kāi)發(fā)人員必須掌握的一項基本的技術(shù)。
Java是一種典型的面向對象的程序設計語(yǔ)言,已在學(xué)術(shù)界、產(chǎn)業(yè)界得到廣泛應用。
如何培養和激發(fā)學(xué)生學(xué)習興趣、想象力、創(chuàng )造力和創(chuàng )新能力,更好地進(jìn)行Java程序設計的教學(xué),如何培養能夠適應當今社會(huì )發(fā)展需要、具有良好整體素質(zhì)的Java程序設計人才是很多教師都在思考的問(wèn)題。
1 Java教學(xué)的定位與內容
根據教學(xué)研究型大學(xué)的實(shí)際情況,我們的目標是培養具有創(chuàng )新精神和實(shí)踐能力的高素質(zhì)應用型人才。
Java教學(xué)實(shí)現的最終目標是培養合格的軟件工程師,相關(guān)的教學(xué)就應該圍繞這一目標而設計。
Java的教學(xué)內容一般說(shuō)來(lái)包含如下部分:Java語(yǔ)言基礎;Java面向對象的程序設計;輸入輸出流及文件操作;Applet和圖形用戶(hù)界面(GUI);Java的多線(xiàn)程機制;Java網(wǎng)絡(luò )編程基礎;Java與數據庫技術(shù)[1]。
從課程內容看,Java內容多,知識點(diǎn)散,沒(méi)有一條明確的主線(xiàn)。
與傳統的面向過(guò)程編程語(yǔ)言相比,面向對象教學(xué)本身有一定難度。
面向對象編程語(yǔ)言提出很多新概念如繼承、多態(tài)、異常等,這些都需要學(xué)生用心體會(huì )和掌握。
2 Java教學(xué)的重點(diǎn)
Java安排在C++程序設計語(yǔ)言之后開(kāi)設,學(xué)生已經(jīng)有一定的程序基礎。
很多學(xué)生受面向過(guò)程設計思想的影響,首先進(jìn)行函數算法等細節設計,然后把所有的函數都放入到一個(gè)類(lèi)中,所有的函數都是靜態(tài)函數,程序雖然有一個(gè)類(lèi),但是忽略了類(lèi)的設計,沒(méi)有體現面向對象的設計思想[2]。
因此,教學(xué)的重點(diǎn)是側重于面向對象的思想和方法的培養,深刻理解Java的核心思想。
只有掌握了普遍的規律與核心思想,才能把握Java技術(shù)發(fā)展的新趨勢,學(xué)生才具備可持續發(fā)展的能力。
3 提高Java教學(xué)質(zhì)量的途徑
3.1 明確課程學(xué)習目標
學(xué)習不能總是空中樓閣的感覺(jué),要讓學(xué)生明晰目標,并找到前進(jìn)的途徑。
學(xué)習Java程序設計這門(mén)課的最終目標是成為Java軟件工程師。
學(xué)生了解了Java軟件工程師的社會(huì )需求,明確了作為Java軟件工程師應該具備的技能。
這樣,學(xué)生在學(xué)習過(guò)程中,有了方向,有了目標,也就有了動(dòng)力。
學(xué)習Java的總體路線(xiàn)是:Java語(yǔ)言基礎→J2SE高級特性→JSP&Servlet→J2EE構架技術(shù)[3]。
而Java程序設計是成為Java軟件工程師的入門(mén)條件,這門(mén)課程的學(xué)習只是其中的第一步。
通過(guò)本學(xué)期的學(xué)習,具體要實(shí)現的課程目標是要重點(diǎn)掌握Java語(yǔ)法以及面向對象編程的思想和方法。
3.2 精選教學(xué)內容、強調知識點(diǎn)的關(guān)聯(lián)性
我們平常選擇教學(xué)內容時(shí),把一些不常用到的知識點(diǎn)進(jìn)行省略,(如帶有標號之類(lèi)的跳轉語(yǔ)句和比較繁雜的表達式運算規則、位運算等等),此方法的運用可以節省課時(shí)的同時(shí)最大程度的指引和輔導學(xué)生編寫(xiě)簡(jiǎn)單、可讀性好的程序代碼。
我們通過(guò)多年的教學(xué)經(jīng)驗,認為Java程序設計課程的核心內容包含以下三方面:(1)Java語(yǔ)言基礎;(2)Java語(yǔ)言的新特性;(3)授課時(shí),把介紹JDK類(lèi)庫的常用類(lèi)以穿插的方式融入到上述內容中。
在講解面向對象的基礎知識點(diǎn)時(shí),我們采用的是一個(gè)信息分類(lèi)的例子來(lái)做說(shuō)明,而這類(lèi)情況學(xué)生在現實(shí)生活中會(huì )經(jīng)常碰到,理解比較容易。
比如,現在要把一大類(lèi)的光盤(pán)進(jìn)行分類(lèi),首先我們要抽象出 VCD及CD的共性來(lái)得出一個(gè)基本的類(lèi)Item,在此基礎上可以對它進(jìn)行繼承得出一個(gè)子類(lèi)CD,很形象。
3.3 將面向對象程序的架構內容融入教學(xué)過(guò)程
為了提高學(xué)生對面向對象的理解,在教學(xué)過(guò)程中加入面向對象程序的架構內容,并對程序架構設計中常見(jiàn)的一些原則進(jìn)行分析總結。
假如你是個(gè)建筑工程師,那么你在建造樓房的時(shí)候,你會(huì )先搭建好整個(gè)樓房的骨骼,然后往里面嵌入磚頭,最后才是裝修。
做Java系統也是這樣,先從整體上把握并設計系統,這就是架構。
我們通過(guò)這些淺顯的比喻力爭使學(xué)生領(lǐng)悟架構的內涵。
而程序架構設計中的原則實(shí)質(zhì)其實(shí)就是如何分類(lèi)組織我們編寫(xiě)的代碼,就像一個(gè)好書(shū)架的圖書(shū)分類(lèi),讓各種類(lèi)型的書(shū)籍都能分類(lèi)擺放,便于瀏覽和查找。
3.4 項目貫穿,以線(xiàn)帶點(diǎn)
借鑒了案例教學(xué)和任務(wù)驅動(dòng)式教學(xué)的一些做法,教師在教學(xué)中將一個(gè)小項目“圖書(shū)管理系統”的實(shí)現貫穿于整個(gè)教學(xué)過(guò)程之中。
所謂“以線(xiàn)帶點(diǎn)”是以問(wèn)題和實(shí)際項目為主線(xiàn),貫穿各個(gè)分散的Java知識點(diǎn),完成Java知識點(diǎn)的脈絡(luò )化[5]。
實(shí)現是分階段進(jìn)行的,在學(xué)習Java基礎知識后,讓學(xué)生完成對圖書(shū)數據的增加、刪除、修改、查找操作等操作。
將數據放在數組中,沒(méi)有圖形界面。
而在學(xué)習完輸入輸出后,這時(shí),數據則要求存放在文本文件中,讓學(xué)生從文本文件中讀取數據,將每條記錄封裝成對象進(jìn)行各種操作后,再將其存入文本文件。
學(xué)習完圖形用戶(hù)界面后,再讓學(xué)生加入友好的圖形界面。
最后,在講授數據庫程序設計時(shí),將數據由文件存放改為在數據庫中存放,采用JDBC驅動(dòng)程序訪(fǎng)問(wèn)數據庫。
每學(xué)習一部分內容,就對圖書(shū)管理系統的版本進(jìn)行改進(jìn),改進(jìn)的過(guò)程就是不斷完善的過(guò)程,也是學(xué)生不斷學(xué)習和提高動(dòng)手能力的過(guò)程,從而把單純的知識傳授轉變?yōu)閷W(xué)生動(dòng)手能力的培養和提高。
3.5 滲透軟件設計模式思想,提高學(xué)生的可持續發(fā)展能力
設計模式是前人總結的一些經(jīng)驗和良好的設計范式。
把握良好的設計模式能夠理清程序的骨架,使程序變得更清晰。
要讓學(xué)生在畢業(yè)后具備可持續發(fā)展能力,我們更應該注重學(xué)生的編程思維和思想,提高學(xué)生的問(wèn)題解決能力。
為了讓學(xué)生能更好地理解面向對象的設計思想,雖然教材中沒(méi)有軟件設計模式的相關(guān)內容,考慮到學(xué)生將來(lái)的發(fā)展,在相關(guān)章節進(jìn)行穿插講解軟件設計模式思想。
通過(guò)這些Java語(yǔ)言的設計模式,來(lái)理解面向對象編程的強大功能以及相對于結構化語(yǔ)言的優(yōu)越性。
對于一個(gè)具體問(wèn)題,教師用基本的面向對象設計方法與引入設計模式后的程序進(jìn)行對比講解,詳細分析每種方法的設計過(guò)程。
在教師的啟發(fā)下,學(xué)生比較兩種方法在出發(fā)點(diǎn)、設計思想和最終結果的差別,領(lǐng)悟出面向對象程序設計的優(yōu)勢以及引入設計模式后的革新等。
最后,告訴學(xué)生任何模式都只是工具,而作為程序員的職責,就是在自己的工作中正確使用這些工具。
3.6 舉辦講座,開(kāi)拓視野,提高學(xué)生對面向對象和算法的理解
只有通過(guò)編寫(xiě)高效率的算法才能使得一個(gè)實(shí)用軟件得到開(kāi)發(fā)。
因而在Java教學(xué)中,算法的設計是非常重要的。
但是由于課堂時(shí)間的限制,就不能占用較多的課時(shí)去彌補學(xué)生在算法方面的不足和缺陷。
所以,我們用講座的形式拓展學(xué)生在算法方面的能力,這樣將非常有助于學(xué)生創(chuàng )新能力的培養。
我們在講座中針對約瑟夫環(huán)問(wèn)題用三種方法分別予以實(shí)現。
約瑟夫環(huán)問(wèn)題是指有n個(gè)人圍成一圈,按順時(shí)針?lè )较蚓幪?到n。
圈中從1到m報數,凡是到m的人先退出,下一個(gè)人接著(zhù)從1開(kāi)始報數,計算這n個(gè)人的出圈順序[7]。
針對這個(gè)問(wèn)題,分別用靜態(tài)數組算法、arrayList動(dòng)態(tài)數組算法和循環(huán)鏈表算法予以實(shí)現,并對這個(gè)三種算法的運算時(shí)間進(jìn)行比較。
通過(guò)比較,得到的結果是,在數據量不大的情況下,采用靜態(tài)數組、動(dòng)態(tài)數組、循環(huán)鏈表運行約瑟夫環(huán)的時(shí)間差別不大。
而隨著(zhù)數據量的不斷增大,編寫(xiě)循環(huán)鏈表代碼顯示出的時(shí)間優(yōu)勢對程序員來(lái)說(shuō)更為可貴。
最后,從約瑟夫環(huán)問(wèn)題的本質(zhì)上來(lái)看,這是一個(gè)典型的遞歸問(wèn)題。
除求解遞歸問(wèn)題的通用方法外,最佳的方案是利用基數m到基數10的替換來(lái)求解。
另外,循環(huán)鏈表及動(dòng)態(tài)數組能夠增加學(xué)生對面向對象概念的思考,從而把相同的算法推廣到相似的問(wèn)題中,達到舉一反三的效果。
4 結語(yǔ)
由于社會(huì )需求的日益變化,計算機緊跟其后迅猛發(fā)展。
由于這一變化,促使我們更要不斷的更新我們的教學(xué)方法和教學(xué)手段。
在Java教學(xué)中我們通過(guò)不斷的研究是實(shí)際的操作,取得了豐碩的教研成果。
這樣就使得我們在提升專(zhuān)業(yè)教學(xué)的方面有了一定的起發(fā),而且促進(jìn)了學(xué)生理論水平和實(shí)踐能力的提高。
參考文獻
[1] 姚明,彭志平,李奇銳.教學(xué)型本科院校計算機專(zhuān)業(yè)Java教學(xué)之我見(jiàn)[J].計算機教育,2011(4):51-55.
[2] 楊瑞龍,朱征宇,朱慶生.引入軟件設計模式的面向對象程序設計教學(xué)方法[J]. 計算機教育,2012(10):97-100.
[3] 陳濤.Java程序設計教學(xué)思想與方法的探討[J].電腦知識與技術(shù),2011(10): 2446-2447,2450.
[4] 葉恒舟.Java程序設計教學(xué)探討[J].科技信息,2007(1):23-25.
[5] 李瑞生.Java教學(xué)中學(xué)生實(shí)踐和創(chuàng )新能力的培養[J].計算機教育,2011(18): 12-15.
[6] 王永紅.約瑟夫環(huán)經(jīng)典問(wèn)題的幾種算法比較[J].現代計算機,2008(1):36-37,54.
[7] Ronald L.Graham, Donald E. Knuth, and Oren Patashnik.Concrete Mathematics[Z].Addison-Wesley,second edition,1994.
JAVA程序設計教學(xué)方法【2】
【摘要】通過(guò)分析Java程序設計教學(xué)中存在的問(wèn)題,從理論教學(xué)、實(shí)踐教學(xué)、課后學(xué)習三方面,對Java程序設計課程教學(xué)方法進(jìn)行探討,重點(diǎn)挖掘各環(huán)節中能激發(fā)學(xué)生學(xué)習興趣的方法。
【關(guān)鍵詞】Java 程序設計教學(xué) 學(xué)習興趣 理論教學(xué) 實(shí)踐教學(xué)
一、引言
Java是由美國Sun Microsystems公司Java面向對象程序設計語(yǔ)言和Java平臺的總稱(chēng)。
Java編程語(yǔ)言采用面向對象技術(shù),具有結構中立、可移植性強、支持分布式、支持多線(xiàn)程等特點(diǎn)。
目前,Java語(yǔ)言已成為全世界最為流行的編程語(yǔ)言之一,很多院校把Java程序設計作為程序設計的入門(mén)語(yǔ)言[1]。
二、Java程序設計教學(xué)中存在的問(wèn)題
在傳統的教學(xué)過(guò)程中,教師一般會(huì )根據教材知識點(diǎn)和課時(shí)做好教學(xué)進(jìn)度表,規劃好整個(gè)教學(xué)計劃。
由于Java語(yǔ)言知識點(diǎn)多,大部分教師會(huì )覺(jué)得課時(shí)不夠用,因此會(huì )出現趕課時(shí)、趕進(jìn)度的現象。
授課過(guò)程多為首先對知識點(diǎn)進(jìn)行講解,然后根據知識點(diǎn)演示、分析程序。
學(xué)生通常只是跟隨教師的思路被動(dòng)接受,缺少主動(dòng)對知識點(diǎn)思考的機會(huì )。
通常課程結束時(shí),大部分學(xué)生無(wú)法掌握好Java語(yǔ)言的基本框架,無(wú)法很好的應用Java語(yǔ)言來(lái)解決實(shí)際編程問(wèn)題,無(wú)法在已有知識結構的基礎上進(jìn)一步深入學(xué)習Java以及與其相關(guān)的知識[2]。
而產(chǎn)生這些問(wèn)題原因可以歸納如下:
1.教學(xué)過(guò)程以教為主,缺少教與學(xué)的互動(dòng)。
由于知識點(diǎn)多,極易形成以教師為中心,學(xué)生被動(dòng)接受知識的課堂模式,學(xué)生對課程興趣不大、課堂聽(tīng)得不認真、課后不愿花時(shí)間學(xué)習,學(xué)習效果不理想。
2.教學(xué)效果過(guò)度強調理論課程,缺乏理論與實(shí)踐課程的互促。
實(shí)踐課程能夠加強學(xué)生對知識點(diǎn)的理解、提高學(xué)生學(xué)習興趣、提高學(xué)生運用知識解決問(wèn)題的能力。
然而在實(shí)際教學(xué)過(guò)程中,教師對實(shí)踐課程的重視度不夠,沒(méi)有發(fā)揮出實(shí)踐課程的作用。
三、教學(xué)方法探討
教學(xué)的最終目的是為了讓學(xué)生學(xué)到知識,提高能力。
就Java程序設計這門(mén)課程而言,教師應著(zhù)重培養學(xué)生三方面的能力。
、倥囵B學(xué)生掌握Java語(yǔ)言的整體框架、基本語(yǔ)法等基礎知識;②培養學(xué)生應用知識解決實(shí)際編程問(wèn)題的能力;③培養學(xué)生在已有知識的基礎上進(jìn)一步提升和學(xué)習的能力。
本文把Java程序設計教學(xué)分為理論教學(xué)、實(shí)踐教學(xué)、課后學(xué)習三部分,從這三方面探討Java程序設計中可以更加“有效”教學(xué)的方法。
1.理論教學(xué)。
理論教學(xué)是傳輸知識的重要環(huán)節,但內容卻是非常抽象的。
如果一味采取“填鴨式”方法往學(xué)生腦中灌輸知識,就很難激發(fā)學(xué)生的學(xué)習熱情,更別提掌握、運用知識點(diǎn)。
因此理論教學(xué)方法顯得尤為重要。
1)案例法激發(fā)興趣。
在授課過(guò)程中,加入適當的案例可以幫助學(xué)生理解知識,讓學(xué)生懂得如何運用知識。
介紹一些典型案例時(shí)要把握難易程度,注重學(xué)生的參與,確保學(xué)生能夠自己動(dòng)手驗證。
2)多媒體展示知識。
以點(diǎn)帶面,注重知識的整體把握,突出重點(diǎn),分析難點(diǎn)。
借助多媒體的輔助作用,導入與課程內容相關(guān)的圖片、視頻、音頻等,將枯燥的知識更生動(dòng)靈活的展現給學(xué)生。
3)閱讀教材梳理知識。
在多媒體展示的同時(shí),還需要通過(guò)閱讀教材,加深學(xué)生對知識的理解。
同時(shí)要求學(xué)生在教材的適當位置做好筆記,有助于學(xué)生更好的吸收消化知識。
2.實(shí)踐教學(xué)。
JAVA程序設計是一門(mén)理論與實(shí)踐并重的課程,課堂授課只能讓學(xué)生掌握基礎理論知識。
動(dòng)手編程能力的提高必須通過(guò)大量的實(shí)際上機操作。
實(shí)踐教學(xué)過(guò)程中我們應該做到以下兩點(diǎn)。
1)認真設計實(shí)驗項目。
實(shí)驗可分為驗證、設計和綜合三種類(lèi)型,實(shí)驗項目設置應遵循“由易到難”的原則。
驗證型實(shí)驗。
驗證型實(shí)驗可直接讓學(xué)生對例程進(jìn)行抄寫(xiě)并編譯運行。
在驗證型實(shí)驗中,最好能給出一些問(wèn)題,讓學(xué)生對程序進(jìn)行一些修改,讓學(xué)生估計修改后程序的運行結果,并通過(guò)編譯運行來(lái)驗證自己的猜測。
設計型實(shí)驗。
設計型實(shí)驗可以采用教材上面的編程習題,在實(shí)驗課中,我們應該盡量挑選一些簡(jiǎn)單的習題,使得能夠學(xué)生在實(shí)驗課中順利的完成,以保證他們的學(xué)習信心,激發(fā)他們的學(xué)習興趣。
綜合型實(shí)驗。
綜合型實(shí)驗一般設計時(shí)間較長(cháng),需要運用的知識點(diǎn)較多,適合在學(xué)期后期開(kāi)展。
對于Java程序設計,一般的綜合型實(shí)驗都會(huì )結合數據庫來(lái)實(shí)現一些簡(jiǎn)單的信息管理系統。
學(xué)生需要對用戶(hù)界面編程、事件處理機制、數據庫操作等方面的知識掌握到一定的程度,才有可能完成這樣一個(gè)項目。
在設計此類(lèi)項目時(shí),也可以考慮直接改進(jìn)書(shū)本中的綜合例程。
2)狠抓實(shí)驗環(huán)節。
學(xué)生實(shí)驗過(guò)程中,要鼓勵學(xué)生,嚴格要求學(xué)生,盡可能的做到每個(gè)簡(jiǎn)單實(shí)驗都能人人過(guò)關(guān),讓學(xué)生得到獲得知識、取得成功的成就感。
3.課后學(xué)習。
大學(xué)課堂教學(xué)信息量大,想在課堂上把所學(xué)的知識完全掌握是很困難的。
對于編程語(yǔ)言,不但要通過(guò)課后復習來(lái)深入理解理論知識,還要通過(guò)編寫(xiě)大量程序提高動(dòng)手能力。
為了保證學(xué)生愿意花時(shí)間來(lái)學(xué)習,我們可以從以下幾方面著(zhù)手。
1)課堂教學(xué)以普及知識培養興趣為主。
在理論教學(xué)中詳解案例、在實(shí)踐教學(xué)中由易到難的實(shí)驗安排,都是為了提高學(xué)生學(xué)習的信心,激發(fā)學(xué)生的的學(xué)習興趣。
2)布置課后作業(yè)。
對于Java程序設計,課后習題應該要包括理論習題和編程習題。
理論習題可以幫助學(xué)生理解理論知識,發(fā)現知識誤區;編程習題可以提高學(xué)生的動(dòng)手能力,通過(guò)成功實(shí)現習題算法,更能激發(fā)學(xué)生的學(xué)習興趣。
3)普及一些進(jìn)階的方向。
Java程序設計是Java的基礎課程,講述的是Java最基礎的框架和知識。
除了這些基本知識,我們還可以介紹一些Java的學(xué)習路線(xiàn),介紹一些Java EE和Java ME的知識[3]。
四、結語(yǔ)
通過(guò)總結Java程序設計教學(xué)中遇到的一些問(wèn)題,從理論教學(xué)、實(shí)踐教學(xué)、課后學(xué)習三方面深入挖掘Java程序設計教學(xué)的有效性。
授人以魚(yú),不如授之以漁,教學(xué)過(guò)程中我們應該極力激發(fā)學(xué)生的學(xué)習興趣,引導學(xué)生主動(dòng)學(xué)習、認真思考、融會(huì )貫通、提升能力。
參考文獻:
[1]皮德常. Java簡(jiǎn)明教程[M](第三版). 北京: 清華大學(xué)出版社,2011.
[2]李瑞生. Java 程序設計課程教學(xué)中遇到的問(wèn)題和對策.計算機教育, 2010(22)119-122.
[3]顧和明. Java 程序設計教學(xué)改革與實(shí)踐. 福建電腦, 2009(7): 192-193.
【Java程序設計教學(xué)】相關(guān)文章:
程序設計心得11-29
java課程總結心得 java實(shí)驗總結與心得12-03
程序設計心得15篇07-03
java實(shí)習心得12-07
java實(shí)驗心得12-19
java培訓心得09-03
java個(gè)人總結07-20
java實(shí)訓總結 大學(xué)java實(shí)訓總結05-25
程序設計心得體會(huì )11-15
java自我介紹11-13