張 力
(山東理工職業(yè)學(xué)院,濟(jì)寧 272000)
JAVA 是一種計(jì)算機(jī)的編程語(yǔ)言,具有效率高、覆蓋面廣、簡(jiǎn)單易用等特點(diǎn),不但可以用來(lái)進(jìn)行桌面程序的開(kāi)發(fā),還可以適用于與互聯(lián)網(wǎng)應(yīng)用的開(kāi)發(fā),在當(dāng)前具有廣泛的應(yīng)用。在我國(guó),隨著計(jì)算機(jī)和互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,JAVA 編程技術(shù)人員需求巨大,相關(guān)專業(yè)的就業(yè)前景很好,很多高校都開(kāi)設(shè)了JAVA 語(yǔ)言相關(guān)課程。
《JAVA 程序設(shè)計(jì)基礎(chǔ)》是計(jì)算機(jī)軟件技術(shù)專業(yè)的一門核心基礎(chǔ)課程。學(xué)生打下穩(wěn)固的JAVA 基礎(chǔ),才能在Java Web 網(wǎng)站建設(shè)、Android 手機(jī)端開(kāi)發(fā)、Hadoop 大數(shù)據(jù)處理等方面有上佳的表現(xiàn)。該課程的培養(yǎng)目標(biāo)旨在讓學(xué)生掌握J(rèn)AVA基本語(yǔ)法知識(shí)、算法、面向?qū)ο笏枷?、GUI、IO 流等,通過(guò)課堂理論和實(shí)踐教學(xué)提高學(xué)生的編程設(shè)計(jì)能力、動(dòng)手能力、創(chuàng)造能力、解決問(wèn)題以及工程應(yīng)用等能力,以滿足公司、企事業(yè)單位對(duì)軟件專業(yè)人才的能力要求。
(1)JAVA 課程的認(rèn)知困境
JAVA 涉及的知識(shí)量大,理論性和實(shí)踐性又很強(qiáng),所以被公認(rèn)為最難學(xué)的編程語(yǔ)言。需要學(xué)習(xí)者具有較好的邏輯思維能力、嚴(yán)謹(jǐn)踏實(shí)的態(tài)度和抽象思維能力。這也是多年來(lái)JAVA 教學(xué)效果不理想的重要原因。
(2)教學(xué)方法有待改進(jìn)和提高
高職高專院校中《JAVA 程序設(shè)計(jì)基礎(chǔ)》課程的教學(xué),雖然采用了目前較為普及項(xiàng)目化教學(xué),但是收效頗微。造成這種現(xiàn)象的主要因素是,采用單一的項(xiàng)目化教學(xué),削弱了學(xué)生對(duì)知識(shí)點(diǎn)的理解和掌握,再加上程序設(shè)計(jì)語(yǔ)言課大都比較枯燥,牽扯到語(yǔ)法、算法等知識(shí),容易學(xué)到后面忘記前面。等到學(xué)期結(jié)束時(shí),項(xiàng)目雖然實(shí)現(xiàn)了,但是學(xué)生一知半解,只能照?qǐng)D索驥,不具備獨(dú)立完成項(xiàng)目的能力。
以上是目前高職高專學(xué)校《JAVA 程序設(shè)計(jì)基礎(chǔ)》課程教學(xué)普遍存在的問(wèn)題,對(duì)這些問(wèn)題不研究解決方案,最終教學(xué)就難以取得預(yù)期目標(biāo),也難以培養(yǎng)具備核心競(jìng)爭(zhēng)力的學(xué)生。
基于該課程教學(xué)方面存在的問(wèn)題,著重采用以下幾種教學(xué)方法,以提高教學(xué)效果。
《JAVA 程序設(shè)計(jì)基礎(chǔ)》的第一堂課非常關(guān)鍵。首先采用演示法,將本學(xué)期要完成的幾個(gè)有意思的項(xiàng)目作品(比如推箱子游戲、貪吃蛇游戲等)展示給學(xué)生,讓學(xué)生自己在機(jī)子上操作。通過(guò)作品演示,學(xué)生們對(duì)學(xué)習(xí)本課程能夠做什么就一清二楚了。接下來(lái)用圖表展示要想實(shí)現(xiàn)這些作品需要學(xué)習(xí)哪些知識(shí)點(diǎn);再用圖片或?qū)嵗故緦W(xué)會(huì)Java,可以從事Android 開(kāi)發(fā),編寫手機(jī)APP;可以學(xué)習(xí)Java Web,建設(shè)動(dòng)態(tài)網(wǎng)站等等。此時(shí)學(xué)生不僅對(duì)本課程有了清晰的認(rèn)識(shí),而且學(xué)習(xí)的積極性也被激發(fā)了出來(lái)。最后給出課程的考核辦法,讓學(xué)生知道怎樣才能在期末取得好的成績(jī)。
學(xué)生第一次接觸面向?qū)ο蟮木幊陶Z(yǔ)言,要想學(xué)好,必須深刻理解面向?qū)ο蟮幕靖拍?,比如類、封裝、繼承、多態(tài)、接口等。講課的時(shí)候,可以采用畫內(nèi)存圖的方法,讓學(xué)生從內(nèi)存的層面理解知識(shí)點(diǎn)。然后再給出適合的案例讓學(xué)生練習(xí),鞏固對(duì)知識(shí)點(diǎn)的理解。如在講解局部變量和成員變量的時(shí)候,以下面一段程序?yàn)槔瑤ьI(lǐng)學(xué)生共同繪制此程序的內(nèi)存圖解,如圖1所示。通過(guò)畫內(nèi)存圖,學(xué)生不僅知道了局部變量和成員變量的異同點(diǎn)是什么,而且知道了為什么會(huì)存在這些異同點(diǎn)。使得學(xué)生對(duì)本知識(shí)點(diǎn)的理解更加深入、透徹,為后面熟練應(yīng)用知識(shí)點(diǎn)打下良好的基礎(chǔ)。
class Circle{
double radius;
public double calCircum(){
double circum=Math.PI*2*radius;
return circum;
}
public double calArea(){
double area=Math.PI*radius*radius;
return area;
}
}
class CircleDemo{
public static void main(String[] args){
Circle circle1=new Circle();
Circle circle2=new Circle();
circle1.radius=3.5d;
circle2.radius=2.7d;
System.out.println(“circle1周長(zhǎng)為:”+circle1.calCircum());
System.out.println(“circle2面積為:”+circle2.area());
}
}
圖1 內(nèi)存圖解
學(xué)生理解了面向?qū)ο蟮幕靖拍钪?,教學(xué)重點(diǎn)就可以轉(zhuǎn)向項(xiàng)目化教學(xué)。通過(guò)實(shí)現(xiàn)計(jì)算器、文本編輯器、推箱子游戲、貪吃蛇游戲四個(gè)項(xiàng)目,綜合運(yùn)用圖形用戶界面、IO 流、事件處理機(jī)制、異常處理等模塊的內(nèi)容。這里以推箱子游戲(狼推羊)為例,進(jìn)行說(shuō)明。推箱子游戲涉及到的主要內(nèi)容有二維數(shù)組、圖形界面設(shè)計(jì)、鍵盤方向鍵的事件處理。教師主要是帶領(lǐng)學(xué)生分析游戲初始界面如何布局?狼推羊走具體有多少種情況?如何記錄狼位置的變化?如何記錄多只羊位置的變化?如何記錄已經(jīng)進(jìn)籠的羊的數(shù)量?邊分析邊實(shí)現(xiàn)。基本功能實(shí)現(xiàn)后,學(xué)生獨(dú)立完成選關(guān)、背景音樂(lè)等附加功能。
好的教學(xué)方法固然重要,但是仍需必要的教學(xué)手段加以輔助,以達(dá)到最好的教學(xué)效果。
編寫程序,最痛苦的莫過(guò)于修改錯(cuò)誤,最幸福的莫過(guò)于成功的修改了錯(cuò)誤。為了幫助學(xué)生更好的解決常見(jiàn)的錯(cuò)誤,可以將這些錯(cuò)誤的講解過(guò)程錄制成微視頻,共享到QQ 群或者微信群,方便學(xué)生下載學(xué)習(xí)。
所謂的授課文檔,即授課的全過(guò)程的描述文檔。包括本堂課所學(xué)知識(shí)點(diǎn)、教學(xué)案例、詳細(xì)的上機(jī)操作步驟、項(xiàng)目分析、涉及到的英文單詞。此文檔主要是幫助學(xué)生回憶課堂內(nèi)容,指導(dǎo)學(xué)生上機(jī)操作。
在教師機(jī)安裝視頻錄制軟件,將教師授課的全過(guò)程錄制成教學(xué)視頻,共享到百度云盤中,方便學(xué)生回看,以便更好的掌握課堂講授內(nèi)容。
第一堂課采用演示法演示本學(xué)期要完成的項(xiàng)目,讓學(xué)生了解了學(xué)習(xí)本門課程能夠做什么,學(xué)好這門課程以后能夠做什么,極大地激發(fā)了他們的學(xué)習(xí)興趣。學(xué)生眼中閃爍著求知的欲望,心中升起了滿滿的期待,正是這份期待支持著他們?cè)谌蘸蟮膶W(xué)習(xí)過(guò)程中闖過(guò)一道道難關(guān)。
由于JAVA 知識(shí)點(diǎn)多且不容易理解,學(xué)生大都一知半解或者知其然而不知其所以然。所以,只能夠照搬照抄,靈活運(yùn)用知識(shí)點(diǎn)解決問(wèn)題的能力有較大的欠缺。采用案例+畫內(nèi)存圖的方法學(xué)習(xí)知識(shí)點(diǎn),能夠幫助學(xué)生從內(nèi)存的層面理解知識(shí)點(diǎn),讓其知其然還要知其所以然。學(xué)生對(duì)知識(shí)點(diǎn)的理解達(dá)到融會(huì)貫通的程度,解決問(wèn)題的時(shí)候,能夠舉一反三,聞一知十。
在學(xué)生對(duì)JAVA 知識(shí)點(diǎn)理解融會(huì)貫通的基礎(chǔ)上,再進(jìn)行項(xiàng)目化練習(xí),不但能夠提高學(xué)生綜合運(yùn)用知識(shí)點(diǎn)解決問(wèn)題的能力,還進(jìn)一步加深了學(xué)生對(duì)知識(shí)點(diǎn)的理解。項(xiàng)目化教學(xué)中涉及到的擴(kuò)展內(nèi)容,需要學(xué)生通過(guò)自學(xué)來(lái)完成,這進(jìn)一步增強(qiáng)了學(xué)生的自學(xué)能力。
采用上面的教學(xué)方法和教學(xué)手段授課后,學(xué)生利用JAVA 編程的興趣濃厚、知識(shí)點(diǎn)掌握扎實(shí)牢固、解決問(wèn)題的能力有了較大的提升、自學(xué)能力大大增強(qiáng)。在遇到問(wèn)題的時(shí)候,學(xué)生能夠通過(guò)查詢網(wǎng)絡(luò)、書籍,快速準(zhǔn)確的找到解決問(wèn)題的辦法;涉及到新的知識(shí)點(diǎn),能夠快速的理解并運(yùn)用。總的來(lái)說(shuō),學(xué)生達(dá)到了自我學(xué)習(xí)、自我提高的階段。