任成娟
【摘要】? ? 本文首先對Java程序設(shè)計理論教學(xué)內(nèi)容,實(shí)踐教學(xué)內(nèi)容進(jìn)行介紹。然后分析了目前教學(xué)中存在的一些問題并給出了一些意見。顯示了一體化教學(xué)模式在培養(yǎng)自主學(xué)習(xí)能力,激發(fā)學(xué)生學(xué)習(xí)熱情和興趣,培養(yǎng)適合社會需要型人才的必要性。
【關(guān)鍵詞】? ? Java? ? 程序設(shè)計? ? 實(shí)踐教學(xué)
Abstract: This paper first introduces the teaching content of Java programming theory and practice teaching content. Then we analyze some problems existing in current teaching and give some suggestions. The way shows the necessity of the integrated teaching mode in cultivating autonomous learning ability, stimulating students learning enthusiasm and interest, and cultivating talents suitable for the needs of society.
Key words: Java; Program design; The practice teaching
一、介紹
一體化教學(xué)模式是指將理論和實(shí)踐相結(jié)合的一種教學(xué)方法。它的中心思想是理論學(xué)習(xí)與實(shí)踐學(xué)習(xí)相結(jié)合,理論性與實(shí)用性相結(jié)合,學(xué)校課堂教學(xué)與企業(yè)項(xiàng)目實(shí)踐相結(jié)合,符合企業(yè)要求能力與遵循技術(shù)、社會能力相結(jié)合。Java是一種有用的、實(shí)用的面向?qū)ο缶幊陶Z言。由于其高安全性和可移植性,已經(jīng)在許多重要的實(shí)際系統(tǒng)中使用,包括企業(yè)服務(wù)器、智能手機(jī)和嵌入式系統(tǒng)等。因此,在計算機(jī)專業(yè)中Java程序設(shè)計已經(jīng)成為培養(yǎng)專業(yè)Java工程師的一門重要基礎(chǔ)課程[1]。
在Java程序設(shè)計課程中,通常一個或幾個老師按照教學(xué)大綱按照班級為單位同時教授多名學(xué)生。由于學(xué)生需要自己編寫各種Java代碼才能掌握J(rèn)ava知識,所以在實(shí)驗(yàn)課中,通常也由老師來指導(dǎo)Java編程完成布置的任務(wù)[2]。針對如何更好的教授這么課程以及怎么讓學(xué)生學(xué)習(xí)好這門課程以滿足企業(yè),社會的需求,是高校老師必須要深思的問題[3]。
二、Java程序設(shè)計理論教學(xué)學(xué)習(xí)內(nèi)容
1.Java 簡介。Java簡介內(nèi)容大致包含,Java的體系結(jié)構(gòu);與平臺無關(guān)性和垃圾回收的特點(diǎn);JDK開發(fā)環(huán)境和JRE運(yùn)行環(huán)境;Java程序的開發(fā)步驟等。
2.Java的數(shù)據(jù)類型。標(biāo)識符規(guī)則;關(guān)鍵字都要小寫;常量;變量的申明,作用域等;基本數(shù)據(jù)類型分為兩大類:基本數(shù)據(jù)類型和引用數(shù)據(jù)類型。基本數(shù)據(jù)類型分為4類8種:boolen,char,byte,short,int.,long,float,double。引用類型有:class,interface,array 和null。數(shù)組array是引用類型,聲明時要指定元素的類型和維度,數(shù)組里面保存的是引用而不是對象本身;基本數(shù)據(jù)類型之間的轉(zhuǎn)換及其運(yùn)算[4]。
3.運(yùn)算符與流程控制。運(yùn)算符:算術(shù),關(guān)系,賦值,邏輯,位運(yùn)算符。流程控制語句:條件(if, switch),循環(huán)(for, while, do, while),break, continue。 其中,switch只能探測:byte, short, char, int類型的值,直到遇到break停止,建議每個case寫一個break。循環(huán)控制語句掌握執(zhí)行流程。break和continue是控制循環(huán)結(jié)構(gòu)的關(guān)鍵字。
4.面向?qū)ο蠡菊Z法。定義一個類:使用class關(guān)鍵字定義,注意類名大寫;成員屬性,成員屬性不賦值也會有默認(rèn)值;成員方法,實(shí)現(xiàn)算法的獨(dú)立結(jié)構(gòu);構(gòu)造方法沒有任何返回值,名字和類名一樣。構(gòu)造方法的本意是用來初始化對象。實(shí)例化對象,使用new構(gòu)造方法實(shí)例化對象,new在堆中開辟了對象空間并且給屬性賦上默認(rèn)值;調(diào)用構(gòu)造方法,執(zhí)行構(gòu)造方法中的代碼;最后返回對象引用。區(qū)分引用類型與基本數(shù)據(jù)類型,引用類型的變量在內(nèi)存中有兩塊區(qū)域,一塊是引用本身,另一塊是引用所指向的對象;基本數(shù)據(jù)類型在內(nèi)存中只有一塊空間,里面存著值;使用操作符,使用對象名.屬性操作對象的屬性;使用對象名.方法調(diào)用對象的方法;this是指向本身的引用,代表本身[5]。
5.訪問控制。package包的使用,package只能放在代碼第一行;import,導(dǎo)包,java本身提供一些核心類和常用類,可以導(dǎo)入包下所有import java.io.* ??梢詫?dǎo)入具體的一個類import java.io.Reader;繼承,使用extends關(guān)鍵字表示繼承,其中子類繼承父類的所有屬性,子類繼承父類出private外的所有方法,子類對象擁有super引用,表示父類的引用,可以使用super明確的調(diào)用父類的方法和屬性;四個訪問級別,從大到小是public,protected,默認(rèn),private;重載與重寫,重載是一個類重有方法名相同參數(shù)不同的方法,不能根據(jù)方法的返回進(jìn)行重載;重寫是在繼承中,子類將父類的方法重新寫了一遍,重寫的方法與被重寫的方法擁有相同的方法簽名(返回值類型,方法名,參數(shù)列表)。類與對象的初始化過程和垃圾回收機(jī)制[6]。
6.繼承,抽象類,接口。繼承中的構(gòu)造方法,子類的構(gòu)造過程必須調(diào)用基類的構(gòu)造方法,如果沒有,則系統(tǒng)默認(rèn)調(diào)用基類無參數(shù)的構(gòu)造函數(shù);對象的轉(zhuǎn)型,一個基類的引用類型變量可以指向其子類的對象,但是不可以訪問其子類對象新增的成員;抽象類,用abstract修飾的類成為抽象類,抽象方法不能有方法體,抽象類不能被實(shí)例化。static靜態(tài)關(guān)鍵字,靜態(tài)方法中不能訪問非靜態(tài)成員,靜態(tài)成員方法沒有this引用。接口interface,使用implement實(shí)現(xiàn)一個接口,一個類可以實(shí)現(xiàn)多個接口,但只能繼承一個類,接口也可以繼承接口[7]。
7.異常處理和常用類。程序運(yùn)行時出錯,java就拋出異常,程序終止,異常的關(guān)鍵字Exception, try, catch, finally, throw, throws. 常用類lang包不需要導(dǎo)入,object是所有類的根類,string是不可變字符串,類,繼承object。
三、Java程序設(shè)計實(shí)踐教學(xué)內(nèi)容
Java程序設(shè)計是一門實(shí)踐教學(xué)很強(qiáng)的課程,理論作為實(shí)踐的基礎(chǔ),在實(shí)際教學(xué)中,教師通常采用理論結(jié)合實(shí)踐的教學(xué)方式。實(shí)踐課在實(shí)驗(yàn)室講解,這樣可以做到理論與實(shí)踐相結(jié)合,加深對知識點(diǎn)的理解,學(xué)生有問題能及時給予反饋,老師當(dāng)場做出解答。通過實(shí)踐教學(xué),可以培養(yǎng)學(xué)生的創(chuàng)新能力,激發(fā)學(xué)生學(xué)習(xí)興趣使課堂不在枯燥無趣,學(xué)生的缺勤次數(shù)也減少了,并且也增加了學(xué)生與教師的互動次數(shù),增進(jìn)了師生情誼[8]。下面給出了實(shí)踐課的參考內(nèi)容如表1所示。
一學(xué)期Java程序設(shè)計課程結(jié)束后,按照教學(xué)大綱,在期末還有為期一周的課程設(shè)計實(shí)踐課。該課程是由企業(yè)派資深的Java工程師老師到學(xué)校,在實(shí)驗(yàn)室親自指導(dǎo)學(xué)生完成一個與現(xiàn)實(shí)緊密結(jié)合的實(shí)踐項(xiàng)目。
項(xiàng)目中,學(xué)生自由組隊(duì),每天定時組織組內(nèi)、組間的集體討論,把在項(xiàng)目開發(fā)過程中的問題提出來研討和解決。企業(yè)老師將帶領(lǐng)學(xué)生從軟件工程開發(fā)流程開始到算法講解,界面設(shè)計,代碼調(diào)試直至最后提交相關(guān)文檔,一步一步詳細(xì)指導(dǎo)完成。這種實(shí)踐方式能培養(yǎng)學(xué)生對該門課程學(xué)習(xí)的主動性和熱情,可以進(jìn)一步增強(qiáng)對本學(xué)期所學(xué)知識的理解和掌握。同時,通過項(xiàng)目開發(fā)也能讓學(xué)生意識到,創(chuàng)新能力,獨(dú)立學(xué)習(xí)能力,團(tuán)隊(duì)合作的重要性。
四、Java程序設(shè)計一體化的探索與研究
長久以來,受傳統(tǒng)教育模式的影響,Java程序設(shè)計實(shí)踐教學(xué)環(huán)節(jié)在實(shí)際的實(shí)施過程中為發(fā)揮出預(yù)期的效果,如此就導(dǎo)致理論與實(shí)踐的學(xué)習(xí)并沒有相輔相成,學(xué)生學(xué)習(xí)Java程序設(shè)計能力的鍛煉受到阻礙。本文對Java程序設(shè)計課程教學(xué)中存在的一些主要問題進(jìn)行了總結(jié)。
首先,教學(xué)課時不足或者分配不合理,依舊沿用傳統(tǒng)的教學(xué)方法,以理論課時為主,實(shí)踐課時為輔。這樣容易讓理論教學(xué)脫離實(shí)踐應(yīng)用,導(dǎo)致學(xué)生動手實(shí)踐能力差,無法達(dá)到培養(yǎng)程序設(shè)計能力的目的。
其次,教學(xué)方法的偏差,Java程序設(shè)計是一門對實(shí)踐能力有要求的科目。教師如果過于看重理論講授或者過于重視實(shí)踐講授,都講使這門課程的教學(xué)效果大打折扣,使得學(xué)生所學(xué)知識滯后于該行業(yè)現(xiàn)狀,讓學(xué)生就業(yè)受到影響。
最后,教學(xué)模式封閉。根據(jù)Java程序設(shè)計這門課堂的特點(diǎn),傳統(tǒng)意義上的理論與實(shí)踐結(jié)合的教育模式過于單一和封閉,并不能很好的培養(yǎng)與企業(yè)實(shí)踐相結(jié)合的程序設(shè)計人才。
平衡好Java程序設(shè)計教學(xué)一體化教學(xué)方式要考慮的因素很多,比如,教師在整個教學(xué)模式中起到什么樣的作用,怎么平衡理論與實(shí)踐教學(xué)的時間,怎么樣的教學(xué)體系結(jié)構(gòu)才能達(dá)到培養(yǎng)社會性人才的目的等等。以下結(jié)合在實(shí)際教學(xué)中的經(jīng)驗(yàn)給出一些建議。比如,增加課程的總學(xué)時,同時提高實(shí)踐課的課時比例。理論是實(shí)踐的先導(dǎo),實(shí)踐服務(wù)于理論檢驗(yàn)。再者,需要充分依托校企合作,在課程中可以設(shè)置綜合實(shí)驗(yàn)實(shí)踐,實(shí)習(xí)等環(huán)節(jié)來更深入的培養(yǎng)學(xué)生的動手實(shí)踐能力。同時,通過校企合作也可以培養(yǎng)有很強(qiáng)實(shí)踐能力的教師亦有利于教學(xué)。然后,構(gòu)建較好的Java實(shí)踐教學(xué)平臺,這是保障實(shí)踐課程的一個重要基礎(chǔ)條件。再者,教學(xué)方式的多樣性能激發(fā)學(xué)生學(xué)習(xí)的熱情和興趣,線上的MOOC 課堂,線下的翻轉(zhuǎn)課堂等。最后,Java程序設(shè)計教學(xué)應(yīng)該打破傳統(tǒng)的考核方式,側(cè)重于能力技能的考查,理論筆試考核 + 平時作業(yè)+平時實(shí)踐課(項(xiàng)目)考核 +期末上機(jī)綜合考核+加實(shí)習(xí)考核,這樣可以擴(kuò)大實(shí)踐能力在成績中的占比,從而提高實(shí)踐的重要性。
五、結(jié)論
一體化的教學(xué)模式相較于傳統(tǒng)的教學(xué)模式而言,對任課教師的專業(yè)知識和項(xiàng)目實(shí)踐能力要求更高。該模式能培養(yǎng)學(xué)生自我主動學(xué)習(xí)的能力,鍛煉動手實(shí)踐的能力,明確學(xué)習(xí)目的,加深對所學(xué)知識的理解掌握。
參? 考? 文? 獻(xiàn)
[1]劉艷梅.基于“實(shí)踐和創(chuàng)新”能力培養(yǎng)的Java系列課程群教學(xué)研究與改革[J].計算機(jī)教育,2015(14):35-40
[2]姚明,彭志平,李啟銳,等. Java課內(nèi)實(shí)踐教學(xué)改革[J].計算機(jī) 教育,2016(6):151-154
[3]王 璐,彭馨儀,董亞則,等.CDIO 在 Java 課程教學(xué)中的應(yīng)用研究[J].吉林省教育學(xué)院學(xué)報,2012,28(8):57-59
[4]余燁,徐京濤,路強(qiáng),薛峰. 基于OBE的Java程序設(shè)計課程教學(xué)改革[J].計算機(jī)教育.2017.6(2).13-16
[5]許川佩,張民, 張婧. 基于Ajax的J2EE安全應(yīng)用框架[J].計算機(jī)工程,2010,36(4):110-111
[6]張洪斌 Java2高級程序設(shè)計[M] 中科多媒體出版社 2011年11月 85-9
[7]林上杰,林康司編著.JSP2.0 技術(shù)手冊[M].電子工業(yè)出版社,2004.3-6
[8]林信良. spring2.0技術(shù)手冊[M] 電子工業(yè)出版社 2006年6月50-100