亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Java課程教學(xué)方法探討

        2008-12-31 00:00:00邵奇峰車戰(zhàn)斌
        計(jì)算機(jī)教育 2008年12期

        文章編號(hào):1672-5913(2008)12-0050-03

        摘要:本文分析了Java作為入門教學(xué)語言的相關(guān)爭議,論述了Java教學(xué)中基礎(chǔ)先行的講授方式,強(qiáng)調(diào)了對(duì)象理論在Java語言中的重要性,闡述了Java教學(xué)中易產(chǎn)生的一些誤解及選取企業(yè)真實(shí)項(xiàng)目時(shí)應(yīng)注意的問題。

        關(guān)鍵詞:Java;面向?qū)ο?;GUI

        中圖分類號(hào):G642

        文獻(xiàn)標(biāo)識(shí)碼:B

        2008年1月紐約大學(xué)計(jì)算機(jī)科學(xué)系的兩位退休教授發(fā)表公開文章,反對(duì)將Java作為入門教學(xué)語言,由此引起了有關(guān)Java編程教學(xué)語言的一系列爭議。Java自1995年由Sun公司正式推出,就迅速成為全球最主流與應(yīng)用最廣泛的開發(fā)語言,其跨平臺(tái)的技術(shù)優(yōu)勢為網(wǎng)絡(luò)計(jì)算帶來了劃時(shí)代的變革,從一種編程語言發(fā)展成為全球第一大領(lǐng)先開發(fā)平臺(tái)。因此本世紀(jì)初,美國計(jì)算機(jī)教育界普遍接受Java作為編程入門語言,此后在很短的時(shí)間里,Java迅速成為美國高中和大學(xué)里的首選編程教學(xué)語言,國內(nèi)高校也已開始將Java設(shè)為編程入門課程,并認(rèn)為這是與國際接軌的進(jìn)步標(biāo)志。但是國內(nèi)外企業(yè)在招聘學(xué)生時(shí)反映:大部分學(xué)生技術(shù)方面遠(yuǎn)遠(yuǎn)沒有達(dá)到企業(yè)的要求,實(shí)際項(xiàng)目開發(fā)經(jīng)驗(yàn)缺乏,不能適應(yīng)軟件行業(yè)的發(fā)展,而企業(yè)運(yùn)營緊張,很難讓新員工熟悉崗位。因此如何培養(yǎng)企業(yè)需要的高質(zhì)量Java人才困擾著許多高校Java教師,筆者據(jù)自己多年的Java教學(xué)經(jīng)驗(yàn)對(duì)此做出探討。

        1作為入門教學(xué)語言的爭議及其分析

        紐約大學(xué)計(jì)算機(jī)科學(xué)系的兩位教授認(rèn)為:以Java作為入門教學(xué)語言會(huì)使學(xué)生過早地使用Java類庫和框架,學(xué)生只知道將一些簡單的程序組織到一起,但難于對(duì)所寫的程序形成運(yùn)行時(shí)成本(run-time cost)的概念,因?yàn)樗麄兒茈y知道究竟哪種調(diào)用方法是有效的;真正的程序員應(yīng)該會(huì)用任何語言編程,過早地使用Java使學(xué)生不清楚源程序和硬件間的關(guān)系,不了解指針的意義,將來難以使用C語言編程;還有Java初學(xué)者習(xí)慣于圖形化編程,難于在沒有圖形用戶界面(GUI)的語言上編寫程序[1]。兩位教授的意見非常中肯,但筆者認(rèn)為采取下面這些措施來解決以上問題。

        (1) 讓學(xué)生獨(dú)立實(shí)現(xiàn)部分類庫和閱讀Java標(biāo)準(zhǔn)類庫。學(xué)生過早使用Java框架,長于整合和快速開發(fā),生產(chǎn)效率高,做直接的、有章可循的、非研究性和非創(chuàng)新性的工作比較合適,但這樣的學(xué)生基礎(chǔ)不牢,對(duì)計(jì)算機(jī)系統(tǒng)的理解薄弱,處理細(xì)節(jié)和矛盾的能力不足,缺少自主分析問題、解決問題的知識(shí)、能力和經(jīng)驗(yàn)。因此在Java教學(xué)中教師決不能讓學(xué)生依賴Java框架寫出程序就大功告成,而應(yīng)該讓學(xué)生獨(dú)立實(shí)現(xiàn)部分類庫。教師可先介紹Java框架中相應(yīng)類的接口定義和使用方法,學(xué)生使用后,從用戶的角度有了直觀的認(rèn)識(shí),再讓學(xué)生自己完成具體實(shí)現(xiàn),然后在可用性、靈活性、可擴(kuò)展性和性能上與Java框架中的實(shí)現(xiàn)比較,分析結(jié)果差異,最后再閱讀、研究分析Java框架的具體源代碼實(shí)現(xiàn)。這種讓學(xué)生先當(dāng)用戶,體會(huì)用戶的需求,然后再當(dāng)設(shè)計(jì)者的方案不僅培養(yǎng)了學(xué)生獨(dú)立解決問題的能力,也使其學(xué)習(xí)了Java框架中優(yōu)秀的編程技巧與風(fēng)格。

        (2) 注重Java課程與后續(xù)相關(guān)專業(yè)課程的聯(lián)系。入門教學(xué)語言的選擇是至關(guān)重要的事情,作為大多數(shù)學(xué)生第一種需要認(rèn)真學(xué)習(xí)理解的編程語言,必將成為很多學(xué)生的編程母語在他的思維方式中留下深深的烙印。這個(gè)編程母語要幫助學(xué)生破除計(jì)算機(jī)和軟件的神秘感,建立對(duì)于程序的基本認(rèn)識(shí)和對(duì)計(jì)算機(jī)體系的最初理解。但教師不能希望僅通過一門編程語言的學(xué)習(xí)就使學(xué)生掌握諸多的專業(yè)內(nèi)容,在后續(xù)專業(yè)基礎(chǔ)課和專業(yè)課程的學(xué)習(xí)中,這門編程語言應(yīng)該作為主要工具貫穿始終,幫助學(xué)生認(rèn)識(shí)計(jì)算機(jī)系統(tǒng),掌握算法與數(shù)據(jù)結(jié)構(gòu)技能,熟悉操作系統(tǒng)概念,理解編譯原理知識(shí),理解軟件抽象及軟件設(shè)計(jì)的基本思想,完成一定量的課程及課外項(xiàng)目實(shí)踐,建立正確的軟件開發(fā)實(shí)踐習(xí)慣。不僅如此,教學(xué)語言必須是工業(yè)界的主流語言,否則學(xué)生學(xué)非所用,學(xué)習(xí)動(dòng)力無法保證。Java在教學(xué)上具有其特殊的優(yōu)勢,比如其開發(fā)環(huán)境和工具支持非常成熟,有助于培養(yǎng)學(xué)生正確的編程習(xí)慣;Java是當(dāng)今第一工業(yè)主流語言,標(biāo)準(zhǔn)類庫非常全面,可以迅速地開發(fā)具有實(shí)際用途的程序,有助于激發(fā)和保持學(xué)生的興趣;而在數(shù)據(jù)結(jié)構(gòu)、算法、編譯原理的教學(xué)方面,Java也毫不落于下風(fēng),在軟件抽象設(shè)計(jì)方面,Java還有著明顯的優(yōu)勢;特別是在并行編程的教學(xué)方面,Java concurrent包提供的優(yōu)勢是壓倒性的。

        Java作為入門教學(xué)語言是有諸多可取之處的,關(guān)鍵是教師了解其優(yōu)點(diǎn)與缺點(diǎn)后,教學(xué)中要“揚(yáng)長補(bǔ)短”,也就是在利用其面向?qū)ο蟮膬?yōu)勢前提下,通過補(bǔ)充適當(dāng)內(nèi)容和依靠后續(xù)專業(yè)課來彌補(bǔ)其不足,但沒有必要因?yàn)槠洳恢С种羔樀燃?xì)節(jié)而耿耿于懷。

        2基礎(chǔ)先行的講授方式

        講授Java有三種比較普遍的做法。第一種講法是先講圖形用戶界面,將Java applet和圖形程序設(shè)計(jì)與面向?qū)ο蟪绦蛟O(shè)計(jì)的概念混合講授。第二種講法是先講對(duì)象,一開始就介紹面向?qū)ο蟪绦蛟O(shè)計(jì)(OOP)。第三種講法是先講基礎(chǔ),是一種循序漸進(jìn)的講授方式,首先對(duì)程序設(shè)計(jì)的概念、控制語句、方法和數(shù)組打下堅(jiān)實(shí)的基礎(chǔ),然后介紹面向?qū)ο蟪绦蛟O(shè)計(jì),再講授圖形用戶界面、applet,最后講授異常處理、簡單I/O和其他高級(jí)課題[2]。

        先講圖形用戶界面的做法從GUI和applet開始,似乎能夠引起學(xué)生的興趣,但這需要學(xué)生具備牢固的面向?qū)ο蟪绦蛟O(shè)計(jì)方面的知識(shí),并要求對(duì)Java事件處理模式有很好的理解,所以學(xué)生可能不太容易完全接受。先講對(duì)象的做法,其出發(fā)點(diǎn)是由于Java是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,應(yīng)該首先介紹對(duì)象。但這種想法忽略了基本程序設(shè)計(jì)技巧的重要性,而這種基本技巧是使用任何程序設(shè)計(jì)語言編寫程序都需要的。此外,在學(xué)生完全理解類和對(duì)象并使用它們開發(fā)應(yīng)用程序之前,這種做法勢必混淆靜態(tài)變量與實(shí)例變量、靜態(tài)方法與實(shí)例方法的概念。在學(xué)習(xí)Java的開始階段,由于必須同時(shí)掌握面向?qū)ο蟪绦蛟O(shè)計(jì)和程序設(shè)計(jì)的基本法則,學(xué)生會(huì)感到壓力比較大。這是低年級(jí)學(xué)生不能成功學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計(jì)的普遍原因。

        從本人經(jīng)驗(yàn)以及很多同事的成功經(jīng)驗(yàn)來看,對(duì)很多低年級(jí)學(xué)生來說,學(xué)習(xí)邏輯基礎(chǔ)和基本程序設(shè)計(jì)技巧是一項(xiàng)艱苦的工作。在面向過程程序設(shè)計(jì)中沒有學(xué)好編碼的學(xué)生很難學(xué)好面向?qū)ο蟪绦蛟O(shè)計(jì)。應(yīng)該充分地介紹基本數(shù)據(jù)類型、控制語句、方法和數(shù)組,為學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計(jì)作好準(zhǔn)備。因此,應(yīng)該采用先講基礎(chǔ)的做法,首先按部就班地學(xué)習(xí)所有必備的和重要的基本概念,進(jìn)而學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計(jì),然后用面向?qū)ο蟮乃枷虢⒕哂挟惓L幚怼⒑唵蜪/O和其他高級(jí)功能相關(guān)的GUI應(yīng)用程序和applet。這種方法的好處是,首先講解了面向過程的方法,然后演示面向?qū)ο蠓椒ǖ膬?yōu)越性,學(xué)生可以從中學(xué)到何時(shí)以及如何高效應(yīng)用面向?qū)ο蠓椒ā?/p>

        3強(qiáng)調(diào)對(duì)象理論

        Java語言是純面向?qū)ο笳Z言,對(duì)象是Java語言的核心,對(duì)象理論的理解直接決定了學(xué)生能否真正掌握J(rèn)ava編程。但許多教師對(duì)Java中的對(duì)象理論存在著誤解。

        (1) 輕視對(duì)象理論的講授。很多教師認(rèn)為對(duì)象理論的講授是“軟件工程”和“面向?qū)ο蠓治雠c設(shè)計(jì)”課程的責(zé)任,在Java課程中輕視對(duì)象理論的講授,在簡要介紹了封裝、繼承和多態(tài)的概念后,卻著重于語法細(xì)節(jié)的講解。由于缺乏對(duì)象理論的理解,學(xué)生只會(huì)寫代碼片段,但對(duì)如何根據(jù)用戶需求用對(duì)象理論從零開始構(gòu)造應(yīng)用程序卻一無所知。

        (2) 以過程化的程序設(shè)計(jì)思想寫Java程序。部分教師先前是講授C++語言的,在講授Java后誤認(rèn)為Java與C++只是語法上的差別,由于又受到更早C語言的影響,這些教師原本講授的就是過程化的C++語言,在講授Java時(shí)如果從始至終按照過程化的思想來寫程序就無法充分發(fā)揮Java平臺(tái)對(duì)象特性的優(yōu)點(diǎn)。

        (3) 過份依賴IDE工具。很多教師由于受傳統(tǒng)Windows平臺(tái)IDE工具(VB和Delphi)的影響,在課程的開始就直接采用JBuilder或Eclipse作為開發(fā)工具,在講授GUI有關(guān)內(nèi)容時(shí)則完全依賴IDE工具的可視化特性來構(gòu)造程序。學(xué)生由于將大量精力花在IDE工具的學(xué)習(xí)上而忽略了對(duì)象理論的學(xué)習(xí),開發(fā)出來的程序僅界面具有對(duì)象特性,而后臺(tái)業(yè)務(wù)邏輯毫無對(duì)象特性且與前臺(tái)界面代碼緊密耦合,如此程序的可擴(kuò)展性和可維護(hù)性極差。

        因此在Java課程中應(yīng)加重對(duì)象理論的內(nèi)容,尤其強(qiáng)調(diào)如何根據(jù)用戶需求用對(duì)象理論構(gòu)造應(yīng)用程序,同時(shí)對(duì)每部分理論一定要提供相應(yīng)的Java代碼實(shí)現(xiàn)以加深學(xué)生對(duì)理論的理解;教師自身務(wù)必不要以傳統(tǒng)的過程化的程序設(shè)計(jì)思想來看待Java編程,一定要從面向?qū)ο蟮慕嵌确治鰡栴}和解決問題,如此才能教授學(xué)生寫出真正的面向?qū)ο蟮腏ava應(yīng)用程序;在課程的初期建議選用簡單的文本編輯器作為開發(fā)工具,在課程的后期再引入IDE工具,這樣不至使學(xué)生將注意力集中在開發(fā)工具的學(xué)習(xí)上。

        4練習(xí)企業(yè)真實(shí)項(xiàng)目

        在課程后期,學(xué)生有了一定的Java編程基礎(chǔ),欠缺的主要是實(shí)際的開發(fā)經(jīng)驗(yàn)和全面系統(tǒng)的、深入的掌握J(rèn)ava技術(shù)。解決的方法就是通過企業(yè)真實(shí)項(xiàng)目練習(xí),對(duì)所學(xué)知識(shí)進(jìn)行深化,然后通過項(xiàng)目來獲取實(shí)際開發(fā)的經(jīng)驗(yàn),盡快達(dá)到企業(yè)的實(shí)際要求[3]。選擇項(xiàng)目時(shí)需要注意:

        (1) 選擇企業(yè)真實(shí)項(xiàng)目。項(xiàng)目應(yīng)是實(shí)際的系統(tǒng),或者是實(shí)際系統(tǒng)的簡化和抽象,不能夠是沒有實(shí)戰(zhàn)意義的教學(xué)性或者是純練習(xí)性的項(xiàng)目。否則學(xué)生練習(xí)后還是難以達(dá)到企業(yè)實(shí)際的需要。

        (2) 項(xiàng)目規(guī)模要適當(dāng)。這要根據(jù)項(xiàng)目練習(xí)的階段,練習(xí)的時(shí)間,練習(xí)的目標(biāo)來判斷。不能太大,太大了做不完,也不能太小,太小了沒有意義,達(dá)不到練習(xí)的目的。

        (3) 項(xiàng)目應(yīng)能覆蓋所學(xué)的主要知識(shí)點(diǎn)。學(xué)以致用,學(xué)完的知識(shí)點(diǎn)需要在實(shí)踐中應(yīng)用,才能夠真正理解和掌握。

        (4) 強(qiáng)調(diào)培養(yǎng)學(xué)生的動(dòng)手能力。軟件開發(fā)是一個(gè)動(dòng)手能力要求很高的行業(yè),要求學(xué)生必須能夠獨(dú)立動(dòng)手寫出代碼,寫出的代碼必須能解決實(shí)際的問題。

        有了好的項(xiàng)目還要有好的訓(xùn)練方法,最基本和重要的就是:絕對(duì)要指導(dǎo)學(xué)生親自動(dòng)手做,而不是看和聽,所以盡量不要選擇有現(xiàn)成代碼的項(xiàng)目,演示用的項(xiàng)目也最好不配發(fā)代碼,讓學(xué)生能夠獨(dú)立做出來才是真的掌握。

        5結(jié)束語

        培養(yǎng)真正滿足企業(yè)需求的高質(zhì)量Java編程人才,不能依靠單學(xué)期單門的Java語言課程來實(shí)現(xiàn),它需要多學(xué)期的系列的Java課程(如Java EE和輕量級(jí)框架)的講授才有望達(dá)到,這就要求教師要在更高的、全局的角度來安排教學(xué)內(nèi)容,并能根據(jù)技術(shù)的發(fā)展不斷更新教學(xué)內(nèi)容。

        參考文獻(xiàn)

        [1] Robert B.K. Dewar, Edmond Schonberg. Where Are the Software Engineers of Tomorrow[CP/OL]. http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html.

        [2] Daniel Liang. Java語言程序設(shè)計(jì)(第5版)[M]. 北京:機(jī)械工業(yè)出版社,2006.

        [3] Craig Larman. UML和模式應(yīng)用:面向?qū)ο蠓治雠c設(shè)計(jì)導(dǎo)論[M]. 北京:機(jī)械工業(yè)出版社,2002.

        国内熟女啪啪自拍| 精品蜜桃在线观看一区二区三区| 国产精品一区二区三区四区亚洲| 国产精品无码人妻在线| 人妻少妇被猛烈进入中文字幕| 91视频爱爱| 免费在线观看草逼视频| 国产自国产自愉自愉免费24区| 欧洲熟妇色xxxx欧美老妇多毛图片| 精品一精品国产一级毛片| 免费看男女啪啪的视频网站| 水蜜桃在线观看一区二区| 亚洲成av人片一区二区| 中文字幕人妻中文| 国产一区二区白浆在线观看| 亚洲日韩小电影在线观看| 成人一区二区免费视频| 欧美精品高清在线xxxx| 日本少妇熟女一区二区| 欧美成人aaa片一区国产精品| 无码欧亚熟妇人妻AV在线外遇| 夫妻一起自拍内射小视频| 一区在线视频免费播放 | 精品水蜜桃久久久久久久| 精品囯产成人国产在线观看| 国产三级精品三级在专区中文| 人妻体内射精一区二区三区| 色悠久久久久综合欧美99| 久久久久亚洲AV无码专区一区| 中文字幕av长濑麻美| 人妻丰满熟妇av无码区不卡| 老色鬼永久精品网站| 大香蕉视频在线青青草| 男女性杂交内射妇女bbwxz| 国产精品国产三级农村妇女| 国产日韩精品视频一区二区三区| 插插射啊爱视频日a级| 1000部夫妻午夜免费| 日本一区免费喷水| 久久在一区二区三区视频免费观看| 中文亚洲欧美日韩无线码|