探究式教学法在Java Web实训课程中的实践与探索

2019-10-18 09:20李智峰段蔓
求知导刊 2019年16期
关键词:探究式教学法问题

李智峰 段蔓

摘 要:为了提高学生的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文件的配置。核心配置文件如下:

HelloServlet

com.lzf.servlet.HelloServlet

HelloServlet

/hello/hello

接受新的学习理念需要一定的时间进行实践,指导学生在理解的基础上模仿,完成跳转模块代码后,教师组织学生讨论,讨论的目的是了解学生是否对修改思路有了进一步的掌握。在讨论中注意针对学生的问题进一步夯实分层思想。

基本掌握跳转模块后,教师组织各项目小组开展头脑风暴,启发学生是否可以利用这一思路完成删除、添加等其他模块的修改。记录学生提出的好的思想,并要求学生运用到项目开发中去。由教师帮助学生解决开发过程中无法解决的问题,完善全部代码修改,完成项目文档撰写。以教学项目为导向,将市场流行的开发思路提供给学生,提高其开发水平。

最后,教师组织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—),女,安徽巢湖人,讲师,硕士,研究方向:计算机软件技术。

猜你喜欢
探究式教学法问题
探究式教学法在技工院校武术教学中的应用
演员出“问题”,电影怎么办(聊天室)
韩媒称中俄冷对朝鲜“问题”货船
“问题”干部“回炉”再造