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