李智峰 段蔓
摘 要:为了提高学生的Java Web开发能力,结合市场要求,在课程实践过程中多使用探究式教学法,学生掌握基本知识后,逐渐提出问题,启发学生一步步将所学知识应用于实践中,进一步启发学生反思总结;逐步掌握MVC开发思想探究式教学法的使用,有助于学生夯实基础,掌握技能,提高开发水平。
关键词:探究式教学法;Java Web;问题
中图分类号:TP312.2-4;G642 文章编号:2095-624X(2019)16-0061-03
一、探究式教学法与传统教学方式比较
通过表1中的对比我们发现,传统的教学中,教师通过“课堂讲授知识点—学生进行课堂演练熟悉知识点—教师讲授应用范例”的方式组织教学[1]。学生的理论知识可能掌握得比较好,但是无法运用到实际开发过程中。为了解决这种问题,各高校都在进行探索,力求解决这一现实问题。探究式教学法是立足学生,通过教师的启发,学生的自行感知、思索和体验而主动获取知识,掌握能力的过程。
Java Web课程在计算机类相关专业教学中有承前启后的作用,既作为Java语言程序设计等基础课程的后续课程,为学生夯实专业基础,进一步掌握专业技能;又是JavaEE、Andriod开发课程的前导课程。学好Java Web课程后,可以结合Stucts、Hibernate、MVC等开发框架进行网页的前端和后台开发工作。
二、Java Web课程教学任务安排
该课程实践在17软件班,17软件班28人,分为四个实训小组上课。每组七人,为小班授课。每个小组分工明确,分组时适当考虑学生在编程方面的兴趣爱好、编程水平、个人性格等因素[2]。小组成员分工见表2。
授课环境为JDK+Eclipse+SQL Server,实训课安排为完成项目:学生信息管理系统,项目共安排24个课时,为了掌握学生的项目完成程度,每4课时安排一次验收,检查学生作业完成情况。(见表3)
在实训教学中,注意将探究式教学法引入实训课堂,以学生为主体,教师引导学生学习,把握学生学习进度,了解学生面对的学习困难,加强与学生的互动,鼓励学生自己发现问题,解决问题[3]。
三、探究式教学法在Java Web实训课程中的具体实施
学生刚刚开始学习了Java Web理论课程和SQL数据库的基础知识,但是并不能运用到实际的项目开发当中,本课程在教学上采用三阶段教学方式:第一阶段,夯实数据库基础知识;第二阶段,提出问题,启发学生利用已有知识完成项目功能;第三阶段,提出问题,引入MVC分层思想,结合Servlet、Javabean技術改进项目,由教师设计改进部分模块,鼓励学生讨论并完成完整的项目框架重构[4],修改完成MVC开发思想的项目代码。
1.夯实Java Web程序连接数据库基础知识
学生对Java Web程序连接数据库的知识只停留于书本介绍,教师借由问题的提出,让学生进行探究式学习,掌握连接数据库的方法并运用到实际的项目开发中。
2.探究式教学法在部分项目模块中的使用
探究式教学法的核心是教师提出问题,创设情境。怎样提问才能让学生关联思维,开拓想象,是教师需要不断思考的问题。教学中不能一步到位地做出询问,而使用渐进式的探究法,通过一个一个的连续问题让学生能够循序渐进地掌握知识内容,鼓励学生运用到实践项目当中。记录学生的进步并适当鼓励,再提出问题,激发学生下一次讨论[5]。
比如,在项目中需要完成对学生用户的删除这一功能。先提出问题,如何在SQL语句中删除某一个学生,掌握程度较好的学生可能很快在SQL Server环境实现代码,并带动程度稍差的学生掌握删除用户的方法。(见表4)
String sqlString=delete from studentinfomation where(studentName='李四');
教师提出问题,如何将数据库查找和编写的JSP页面结合起来,实现由用户输入需要删除的学生姓名。这个问题的解决实际需要分两步来进行:
第一步学生需要编写简单的JSP用户删除页面与用户交互,需要删除的学生姓名信息通过文本框获得。
代码是 String StudentName=txtName.getText();//txtName是用户输入学生姓名的文本框。
第二步通过接口完成对数据库的访问:(代码如下)
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();
学生已经在Java程序设计课程中通过JDBC接口访问过数据库,并编写简单的实例。那么这个问题学生解决起来已经有了基础,只需要熟悉接口即可实现。
接下来,结合JSP的部分内置对象,教师要求学生举一反三,完成增加、修改、查询等操作,完成项目基本代码的编写。在验收学生项目的过程中,组织学生讨论。由各项目小组提出在实际编写过程中遇到的问题和解决方法。出现的问题大部分是代码冗余量大、结构松散、代码重用性差等问题。
可喜的是通过实训课程训练,学生有了发现问题并提出问题的思路。有学生在过程性总结中能够提出增加、删除、查询和修改四个页面都连接数据库,出现了代码冗余,甚至有学生想到是否能将连接数据库这段代码封装在函数当中。这一过程中教师对学生的思考多做肯定,让学生自己尝试改善功能,优化代码。
3.引入MVC框架,实现项目重构
根据学生在前期项目总结中提出的问题,教师再次提出疑问:为什么要引入MVC开发思想?对于学生来说,这是全新的开发理念。先由教师做出解释,MVC是模型(Model)——视图(View)——控制器(Controller)的缩写。它使用业务逻辑和数据显示分离的方法,是现在流行的软件开发模式。以通俗易懂的车间生产为例,讲解MVC模式的分工开发思想。
将MVC模式引入项目开发过程中,可以使学生掌握现行的软件开发规范,了解软件的层次与框架理论。
先由教师示范使用MVC改寫学生登录模块:
修改javabean,由javabean完成数据库验证后跳转到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文件的配置。核心配置文件如下:
接受新的学习理念需要一定的时间进行实践,指导学生在理解的基础上模仿,完成跳转模块代码后,教师组织学生讨论,讨论的目的是了解学生是否对修改思路有了进一步的掌握。在讨论中注意针对学生的问题进一步夯实分层思想。
基本掌握跳转模块后,教师组织各项目小组开展头脑风暴,启发学生是否可以利用这一思路完成删除、添加等其他模块的修改。记录学生提出的好的思想,并要求学生运用到项目开发中去。由教师帮助学生解决开发过程中无法解决的问题,完善全部代码修改,完成项目文档撰写。以教学项目为导向,将市场流行的开发思路提供给学生,提高其开发水平。
最后,教师组织1—2次讨论,总结学生在开发过程中的问题,再次巩固MVC开发思想,理清思路。
四、建设成效
目前,已对2018级、2017级、2016级软件5个班级采用探究式教学法教授Java Web实训课,通过实训课的不断探索和实践,学生普遍反映基础知识掌握更牢固,提高了实践操作能力,提升了学生的就业信心。
参考文献:
[1]孔祥艳,胡继荣.基于CDIO模式的Android应用编程课教学方法探索[J].电脑编程技巧与维护,2014(4):97.
[2]翟悦,郭杨.项目驱动法运用于《JSP程序设计》课程的研究和实践[J].价值工程,2014(11):216-217.
[3]李智峰,吕菲,陈亚玲.基于CDIO模式的双导师制课程改革与实践研究——以网络专业《JSP程序设计》课程为例[J].安徽职业技术学院学报,2018(1):77-80.
[4]陈小奎.启发式教学法在Java课程设计中的实践与探索[J].长春师范学院学报(自然科学版),2014(2):129-133.
[5]张荣,江宝钏,郭立君,等.《高级语言程序设计》探究式教学设计研究[J].教育教学论坛,2018(16):190-191.
基金项目:安徽省职业与成人教育学会项目“‘互联 网+视阈下基于大数据技术的个性化教学平台建设研究”(AGZ18039)。
作者简介:李智峰(1984—),女,安徽巢湖人,讲师,硕士,研究方向:计算机软件技术。