李智峰 段蔓
摘 要:為了提高學生的Java Web開發(fā)能力,結合市場要求,在課程實踐過程中多使用探究式教學法,學生掌握基本知識后,逐漸提出問題,啟發(fā)學生一步步將所學知識應用于實踐中,進一步啟發(fā)學生反思總結;逐步掌握MVC開發(fā)思想探究式教學法的使用,有助于學生夯實基礎,掌握技能,提高開發(fā)水平。
關鍵詞:探究式教學法;Java Web;問題
中圖分類號:TP312.2-4;G642?文章編號:2095-624X(2019)16-0061-03
一、探究式教學法與傳統(tǒng)教學方式比較
通過表1中的對比我們發(fā)現(xiàn),傳統(tǒng)的教學中,教師通過“課堂講授知識點—學生進行課堂演練熟悉知識點—教師講授應用范例”的方式組織教學[1]。學生的理論知識可能掌握得比較好,但是無法運用到實際開發(fā)過程中。為了解決這種問題,各高校都在進行探索,力求解決這一現(xiàn)實問題。探究式教學法是立足學生,通過教師的啟發(fā),學生的自行感知、思索和體驗而主動獲取知識,掌握能力的過程。
Java Web課程在計算機類相關專業(yè)教學中有承前啟后的作用,既作為Java語言程序設計等基礎課程的后續(xù)課程,為學生夯實專業(yè)基礎,進一步掌握專業(yè)技能;又是JavaEE、Andriod開發(fā)課程的前導課程。學好Java Web課程后,可以結合Stucts、Hibernate、MVC等開發(fā)框架進行網(wǎng)頁的前端和后臺開發(fā)工作。
二、Java Web課程教學任務安排
該課程實踐在17軟件班,17軟件班28人,分為四個實訓小組上課。每組七人,為小班授課。每個小組分工明確,分組時適當考慮學生在編程方面的興趣愛好、編程水平、個人性格等因素[2]。小組成員分工見表2。
授課環(huán)境為JDK+Eclipse+SQL Server,實訓課安排為完成項目:學生信息管理系統(tǒng),項目共安排24個課時,為了掌握學生的項目完成程度,每4課時安排一次驗收,檢查學生作業(yè)完成情況。(見表3)
在實訓教學中,注意將探究式教學法引入實訓課堂,以學生為主體,教師引導學生學習,把握學生學習進度,了解學生面對的學習困難,加強與學生的互動,鼓勵學生自己發(fā)現(xiàn)問題,解決問題[3]。
三、探究式教學法在Java Web實訓課程中的具體實施
學生剛剛開始學習了Java Web理論課程和SQL數(shù)據(jù)庫的基礎知識,但是并不能運用到實際的項目開發(fā)當中,本課程在教學上采用三階段教學方式:第一階段,夯實數(shù)據(jù)庫基礎知識;第二階段,提出問題,啟發(fā)學生利用已有知識完成項目功能;第三階段,提出問題,引入MVC分層思想,結合Servlet、Javabean技術改進項目,由教師設計改進部分模塊,鼓勵學生討論并完成完整的項目框架重構[4],修改完成MVC開發(fā)思想的項目代碼。
1.夯實Java Web程序連接數(shù)據(jù)庫基礎知識
學生對Java Web程序連接數(shù)據(jù)庫的知識只停留于書本介紹,教師借由問題的提出,讓學生進行探究式學習,掌握連接數(shù)據(jù)庫的方法并運用到實際的項目開發(fā)中。
2.探究式教學法在部分項目模塊中的使用
探究式教學法的核心是教師提出問題,創(chuàng)設情境。怎樣提問才能讓學生關聯(lián)思維,開拓想象,是教師需要不斷思考的問題。教學中不能一步到位地做出詢問,而使用漸進式的探究法,通過一個一個的連續(xù)問題讓學生能夠循序漸進地掌握知識內(nèi)容,鼓勵學生運用到實踐項目當中。記錄學生的進步并適當鼓勵,再提出問題,激發(fā)學生下一次討論[5]。
比如,在項目中需要完成對學生用戶的刪除這一功能。先提出問題,如何在SQL語句中刪除某一個學生,掌握程度較好的學生可能很快在SQL Server環(huán)境實現(xiàn)代碼,并帶動程度稍差的學生掌握刪除用戶的方法。(見表4)
String sqlString=delete from studentinfomation where(studentName='李四');
教師提出問題,如何將數(shù)據(jù)庫查找和編寫的JSP頁面結合起來,實現(xiàn)由用戶輸入需要刪除的學生姓名。這個問題的解決實際需要分兩步來進行:
第一步學生需要編寫簡單的JSP用戶刪除頁面與用戶交互,需要刪除的學生姓名信息通過文本框獲得。
代碼是 String StudentName=txtName.getText();//txtName是用戶輸入學生姓名的文本框。
第二步通過接口完成對數(shù)據(jù)庫的訪問:(代碼如下)
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection
conn=DriverManager.getConnection(jdbc:sqlserver://127.0.0.1:1433;DatabaseName=db_database01,"sa","123456");
Statement stmt=conn.createStatement();
String Studentname=txtName.getText();
Int r=stmt.executeQuery("delete from student where(studentName='李四')");
If(r>=1){out.println("學生用戶已刪除");}
rs.close();
stmt.close();
conn.close();
學生已經(jīng)在Java程序設計課程中通過JDBC接口訪問過數(shù)據(jù)庫,并編寫簡單的實例。那么這個問題學生解決起來已經(jīng)有了基礎,只需要熟悉接口即可實現(xiàn)。
接下來,結合JSP的部分內(nèi)置對象,教師要求學生舉一反三,完成增加、修改、查詢等操作,完成項目基本代碼的編寫。在驗收學生項目的過程中,組織學生討論。由各項目小組提出在實際編寫過程中遇到的問題和解決方法。出現(xiàn)的問題大部分是代碼冗余量大、結構松散、代碼重用性差等問題。
可喜的是通過實訓課程訓練,學生有了發(fā)現(xiàn)問題并提出問題的思路。有學生在過程性總結中能夠提出增加、刪除、查詢和修改四個頁面都連接數(shù)據(jù)庫,出現(xiàn)了代碼冗余,甚至有學生想到是否能將連接數(shù)據(jù)庫這段代碼封裝在函數(shù)當中。這一過程中教師對學生的思考多做肯定,讓學生自己嘗試改善功能,優(yōu)化代碼。
3.引入MVC框架,實現(xiàn)項目重構
根據(jù)學生在前期項目總結中提出的問題,教師再次提出疑問:為什么要引入MVC開發(fā)思想?對于學生來說,這是全新的開發(fā)理念。先由教師做出解釋,MVC是模型(Model)——視圖(View)——控制器(Controller)的縮寫。它使用業(yè)務邏輯和數(shù)據(jù)顯示分離的方法,是現(xiàn)在流行的軟件開發(fā)模式。以通俗易懂的車間生產(chǎn)為例,講解MVC模式的分工開發(fā)思想。
將MVC模式引入項目開發(fā)過程中,可以使學生掌握現(xiàn)行的軟件開發(fā)規(guī)范,了解軟件的層次與框架理論。
先由教師示范使用MVC改寫學生登錄模塊:
修改javabean,由javabean完成數(shù)據(jù)庫驗證后跳轉到servlet,核心代碼如下:
public class UserBeancl {
private Connection conn = null;
private Statement stmt = null;
private ResultSet rs = null;
public boolean checkuser(String u,String p) {
boolean a=false;
try {
conn=new ConnDb().getConn();
stmt=conn.createStatement();
rs=stmt.executeQuery("select * from usertable where username='"+u+"'and password='"+p+"'");
if(rs.next()) ?{ ? ?a=true;
}catch(Exception e){
e.printStackTrace();
}finally {
close();
}
return a;
}
添加servlet完成跳轉,核心代碼如下:
protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {
// TODO Auto-generated method stub
String u=(String)request.getParameter("username");
String p=(String)request.getParameter("password");
UserBeanclubc=new UserBeancl();
if(ubc.checkUser(u,p)){
request.getSession().setAttribute("name",u);
response.sendRedirect("wel.jsp");
}else
response.sendError(550,"請輸入正確的用戶名和密碼");
}
最后需要在web.xml文件中完成servlet文件的配置。核心配置文件如下:
接受新的學習理念需要一定的時間進行實踐,指導學生在理解的基礎上模仿,完成跳轉模塊代碼后,教師組織學生討論,討論的目的是了解學生是否對修改思路有了進一步的掌握。在討論中注意針對學生的問題進一步夯實分層思想。
基本掌握跳轉模塊后,教師組織各項目小組開展頭腦風暴,啟發(fā)學生是否可以利用這一思路完成刪除、添加等其他模塊的修改。記錄學生提出的好的思想,并要求學生運用到項目開發(fā)中去。由教師幫助學生解決開發(fā)過程中無法解決的問題,完善全部代碼修改,完成項目文檔撰寫。以教學項目為導向,將市場流行的開發(fā)思路提供給學生,提高其開發(fā)水平。
最后,教師組織1—2次討論,總結學生在開發(fā)過程中的問題,再次鞏固MVC開發(fā)思想,理清思路。
四、建設成效
目前,已對2018級、2017級、2016級軟件5個班級采用探究式教學法教授Java Web實訓課,通過實訓課的不斷探索和實踐,學生普遍反映基礎知識掌握更牢固,提高了實踐操作能力,提升了學生的就業(yè)信心。
參考文獻:
[1]孔祥艷,胡繼榮.基于CDIO模式的Android應用編程課教學方法探索[J].電腦編程技巧與維護,2014(4):97.
[2]翟悅,郭楊.項目驅動法運用于《JSP程序設計》課程的研究和實踐[J].價值工程,2014(11):216-217.
[3]李智峰,呂菲,陳亞玲.基于CDIO模式的雙導師制課程改革與實踐研究——以網(wǎng)絡專業(yè)《JSP程序設計》課程為例[J].安徽職業(yè)技術學院學報,2018(1):77-80.
[4]陳小奎.啟發(fā)式教學法在Java課程設計中的實踐與探索[J].長春師范學院學報(自然科學版),2014(2):129-133.
[5]張榮,江寶釧,郭立君,等.《高級語言程序設計》探究式教學設計研究[J].教育教學論壇,2018(16):190-191.
基金項目:安徽省職業(yè)與成人教育學會項目“‘互聯(lián) 網(wǎng)+視閾下基于大數(shù)據(jù)技術的個性化教學平臺建設研究”(AGZ18039)。
作者簡介:李智峰(1984—),女,安徽巢湖人,講師,碩士,研究方向:計算機軟件技術。