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