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