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