□歐陽(yáng)桂秀
Java語(yǔ)言程序設(shè)計(jì)是計(jì)算機(jī)軟件技術(shù)、網(wǎng)絡(luò)技術(shù)、移動(dòng)應(yīng)用開(kāi)發(fā)等專業(yè)開(kāi)設(shè)的一門專業(yè)必修課。學(xué)習(xí)該課程的目的是使學(xué)生掌握面向?qū)ο蟮木幊趟枷牒途幊谭椒?,具備編寫?jiǎn)單的面向?qū)ο蟪绦虻哪芰?。Java課程為后續(xù)課程JSP、Android手機(jī)程序設(shè)計(jì)打下重要基礎(chǔ)。本文主要研究提高學(xué)生面向?qū)ο蟪绦虻慕虒W(xué)方法,以切實(shí)提高學(xué)生編寫面向?qū)ο蟪绦虻哪芰Α?/p>
課堂教學(xué)仍然以教師講授為主,以教師為中心教學(xué),學(xué)生是被動(dòng)學(xué)習(xí),學(xué)生更多時(shí)候是把書上的例題輸入驗(yàn)證,獨(dú)立完成課后編程題比較困難。教學(xué)效果不好。
多數(shù)高職院校在大一第一學(xué)期開(kāi)設(shè)了《C語(yǔ)言程序設(shè)計(jì)》課程,學(xué)生有了面向過(guò)程的編程思維模式。雖然Java語(yǔ)言的數(shù)據(jù)類型、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)的語(yǔ)法和C語(yǔ)言基本相同,但是在學(xué)習(xí)Java面向?qū)ο蟪绦蛟O(shè)計(jì)時(shí),需要改變思維模式,由面向過(guò)程的編程思維模式轉(zhuǎn)變?yōu)槊嫦驅(qū)ο蟮木幊趟季S模式。
考核方式,期末考試成績(jī)占主要部分,有的學(xué)校還是筆試,在紙上答題。考核題型還是傳統(tǒng)的選擇題、判斷題、閱讀程序題、編程題,編程題只占考試題型的20%左右,無(wú)法通過(guò)考試的編程題來(lái)判斷一個(gè)學(xué)生真正的編程能力如何。
(一)啟發(fā)式教學(xué)法的好處。讓學(xué)生從最簡(jiǎn)單的實(shí)際案例入手,理解Java面向?qū)ο蟪绦蛟O(shè)計(jì)的語(yǔ)法結(jié)構(gòu)。在教學(xué)過(guò)程中,以學(xué)生為中心,進(jìn)行啟發(fā)式教學(xué),啟發(fā)學(xué)生的編程思想,給學(xué)生營(yíng)造一個(gè)主動(dòng)學(xué)習(xí)的環(huán)境。
(二)啟發(fā)式教學(xué)法在Java教學(xué)中的應(yīng)用。在學(xué)生學(xué)習(xí)面向?qū)ο蟪绦驎r(shí),教師重點(diǎn)講解類、對(duì)象、繼承和接口的知識(shí)點(diǎn)。在講解類的聲明的語(yǔ)法時(shí),強(qiáng)調(diào)類的聲明包括成員變量、構(gòu)造方法和成員方法。然后,讓學(xué)生動(dòng)手編程。
教師先給出矩形類的編程題目“矩形有長(zhǎng)寬屬性,成員方法完成的功能是計(jì)算矩形的面積”,讓學(xué)生嘗試編程。此時(shí),大部分同學(xué)只知道類的聲明的理論知識(shí),不知道怎樣編寫實(shí)際的程序,需要教師的引導(dǎo)和啟發(fā)。教師給出部分程序,讓學(xué)生模仿已有程序,完成整個(gè)程序,創(chuàng)建矩形類。
矩形的部分程序如下:
public class Rectangle {
/*
Rectangle類的私有成員變量有:
a:double型,代表長(zhǎng)。
b:double型,代表寬。
*/
private double a;
//添加代碼,聲明成員變量b
//Rectangle( ):構(gòu)造方法。默認(rèn)的a、b的值分別是6和5。
public Rectangle( )
{
a=6;
//添加代碼,b的默認(rèn)值是5
}
//Rectangle(double length,double width):分別用兩個(gè)形式參數(shù)len、width對(duì)成員變量a、b進(jìn)行初始化。
public Rectangle(double length,double width)
{ a=length;
//添加代碼,用形式參數(shù)width對(duì)成員變量b進(jìn)行初始化。
}
public double area( )//公有成員方法:計(jì)算矩形的面積
{ return a*b; }
public void display( )//公有成員方法:輸出矩形的長(zhǎng)、寬和面積。
{
System.out.println(“長(zhǎng)=”+a);
//添加代碼,輸出矩形的寬
System.out.println(“面積=”+area( ));
}
}
成員變量,教師已經(jīng)給出怎樣定義“長(zhǎng)”這個(gè)成員變量,啟發(fā)學(xué)生完成定義“寬”這個(gè)成員變量。帶參數(shù)的構(gòu)造方法,教師給出的代碼是把形式參數(shù)length賦值給成員變量a,啟發(fā)學(xué)生利用形式參數(shù)width對(duì)成員變量b進(jìn)行初始化。公有成員方法display( ),輸出了長(zhǎng)的具體值,啟發(fā)學(xué)生輸出寬的具體值。最終,學(xué)生在教師的啟發(fā)下,完成了整個(gè)程序,創(chuàng)建了矩形類。
接著,教師介紹聲明和創(chuàng)建對(duì)象的語(yǔ)法。講解測(cè)試類中怎樣聲明創(chuàng)建矩形類的對(duì)象。此時(shí),教師給出測(cè)試類的完整程序,讓學(xué)生運(yùn)行該測(cè)試類。
測(cè)試類如下:
public class UseRect {
public static void main(String[] args) {
//創(chuàng)建Rectangle類的對(duì)象,并調(diào)用定義的成員方法。
Rectangle r=new Rectangle(9,5);
r.display( );
}
}
學(xué)生在補(bǔ)充完成矩形類之后,運(yùn)行測(cè)試類,看到了運(yùn)行結(jié)果,有了成就感。啟發(fā)式教學(xué)法激發(fā)了學(xué)生的學(xué)習(xí)興趣。教師趁熱打鐵,要求學(xué)生在測(cè)試類中聲明和創(chuàng)建矩形類的其它對(duì)象,調(diào)用成員方法,計(jì)算這些新矩形的面積。教師說(shuō)明矩形類是我們頭腦中想象的矩形,它有長(zhǎng)、寬屬性;每一個(gè)矩形類的對(duì)象,就是實(shí)際在紙上可以畫出來(lái)的具體的矩形,由于長(zhǎng)和寬不同,矩形的面積不同。
學(xué)生通過(guò)完成矩形類的題目,感性地理解了類的聲明、對(duì)象的創(chuàng)建的語(yǔ)法格式,進(jìn)一步理解了面向?qū)ο蟮木幊趟枷搿?/p>
在此基礎(chǔ)上,進(jìn)一步拓展思路,讓學(xué)生模仿矩形類,編寫圓類。矩形類有長(zhǎng)和寬屬性,可以聲明為成員變量。啟發(fā)學(xué)生,圓有什么靜態(tài)特征可以聲明為成員變量?矩形類,計(jì)算矩形的面積作為成員方法。啟發(fā)學(xué)生,圓類,成員方法的功能是什么?學(xué)生模仿已有類(矩形類),寫一個(gè)新的類(圓類)。讓學(xué)生循序漸進(jìn)地掌握聲明類、創(chuàng)建對(duì)象、調(diào)用成員方法等面向?qū)ο蟪绦蛟O(shè)計(jì)的基本編程方法。加強(qiáng)學(xué)生“從無(wú)到有,由淺入深”的學(xué)習(xí)體驗(yàn),增強(qiáng)學(xué)生的編程信心,提高學(xué)生的編程能力。
接下來(lái),給出同一類的題目:(1)梯形、三角形、正方形類,計(jì)算面積;(2)長(zhǎng)方體、圓柱體、球體類,計(jì)算體積。學(xué)生分別選擇(1)、(2)中至少一題,完成編程。把題目要求放在藍(lán)墨云班課的活動(dòng)里,讓學(xué)生在課余時(shí)間完成編程。
以上,通過(guò)編寫矩形類、圓類等同一類型的平面幾何圖形類、立體幾何圖形類,學(xué)生熟練掌握了這種同一類型的類的編程。另外,讓學(xué)生課余時(shí)間編寫一個(gè)自定義的類,該類有成員變量、構(gòu)造方法、成員方法。這個(gè)自定義的類,不能與之前講過(guò)的例題、習(xí)題相同。這是一道發(fā)散思維的題,沒(méi)有唯一答案,學(xué)生可以自由發(fā)揮,提高了學(xué)生的創(chuàng)造力。
編程,由簡(jiǎn)單到復(fù)雜,由易到難,循序漸進(jìn)地提高了學(xué)生的編程能力,培養(yǎng)了學(xué)生主動(dòng)學(xué)習(xí)能力。
提高學(xué)生調(diào)試程序的能力。學(xué)生編程,經(jīng)常會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤,面對(duì)英文出錯(cuò)信息,學(xué)生往往束手無(wú)措,這時(shí)教師應(yīng)該給予講解,說(shuō)明英文出錯(cuò)信息的中文大意、關(guān)鍵詞以及出現(xiàn)錯(cuò)誤的原因,教給學(xué)生調(diào)試程序的方法。這樣,學(xué)生能較快地排除錯(cuò)誤,使程序盡快順利運(yùn)行,也增強(qiáng)了學(xué)生的編程信心。學(xué)生對(duì)遇到的編程錯(cuò)誤進(jìn)行總結(jié),以后遇到類似的編程錯(cuò)誤,就能很快解決,提高學(xué)生自主學(xué)習(xí)的能力。
理論實(shí)踐一體化教學(xué),課堂教學(xué)與實(shí)踐教學(xué)全部在機(jī)房完成,邊講邊練,學(xué)生一人一機(jī),增加了學(xué)生的編程時(shí)間,下課之前學(xué)生通過(guò)電子教室提交這次課的編程題以及運(yùn)行結(jié)果的截圖,提高機(jī)房的教學(xué)質(zhì)量。
增加課余時(shí)間的編程訓(xùn)練。在藍(lán)墨云班課上添加活動(dòng),活動(dòng)的內(nèi)容是每章補(bǔ)充的編程題,讓學(xué)生在課余時(shí)間完成,設(shè)置活動(dòng)截止時(shí)間,增加學(xué)生的編程緊迫感,使每個(gè)學(xué)生都能參與到編程實(shí)踐中來(lái)。進(jìn)一步提高學(xué)生的編程能力。
改變期末考試的考核形式,由筆試改為上機(jī)考試,上機(jī)考試題型是程序填空題和編程題??荚嚦煽?jī),期末成績(jī)占總成績(jī)的60%,平時(shí)上機(jī)、網(wǎng)上云班課活動(dòng)的編程題完成情況占總成績(jī)的40%。學(xué)生看到課程主要考核的是編程能力,自然會(huì)在平時(shí)有意識(shí)地加強(qiáng)編程能力的訓(xùn)練。
教師要善于抓住學(xué)生學(xué)習(xí)的特點(diǎn),合理安排教學(xué)內(nèi)容,循序漸進(jìn),逐步提高學(xué)生的編程水平。“理論與實(shí)踐相結(jié)合”、“課內(nèi)與課外相結(jié)合”,通過(guò)由易到難、多種途徑的編程訓(xùn)練,學(xué)生的編程能力得到很大提高,學(xué)生逐漸培養(yǎng)起自主學(xué)習(xí)的能力。