Java Web课程项目驱动式教学中的几点思考
2017-10-21王崟陆莉莉
王崟 陆莉莉
摘要:现在JavaWeb课程广泛采用项目驱动式教学,项目驱动式教学跟传统教学相比,优势是可以强化技能训练,提高学生动手能力和学习兴趣。缺点是弱化了理论知识和基本知识点语法之后,学生基础不够牢固,虽然能按照书本开发,却未必真正理解,很难举一反三。该文列举了Java web传统教学和项目式教学的优缺点,讨论了教学实施方法和改进措施。
关键词:Java web课程;项目驱动式教学
中图分类号:G642 文献标识码:A 文章编号:1009-3044(2017)18-0140-02
1概述
现在很多Java web课程都使用项目式驱动教材,整个课程以一个项目贯穿始终,教学中老师带领学生完成项目,并在其中穿插知识点的讲解。课程结束时学生可以完成一个网站的开发,目标成果会激励学生学习,整个过程学生也不会觉得枯燥。本人通过教学经验,浅谈JavaWeb项目式教学中的几点探索和思考。
2 Java Web传统教学的优缺点
Java web传统教学采用的是知识点的讲解和实验相结合的形式。基本授课内容和顺序通常是servlet基础、过滤器和监听器、维护会话、JSP基本语法、JSP隐含对象、JavaBean等。授课过程中使用小例题做讲解,每章再安排综合性的实验。传统式教学的优缺点如下:
优点:
(1)学生的理论和语法基础较好。课程将每个知识点都进行了仔细的讲解,并辅助以小例子,学生对每一种技术的基本使用语法掌握的比较牢固。
(2)授课内容循序渐进,每个知识点从理论、语法介绍,到基础小例题,再到综合一些的实验题,由浅入深,学生学习和理解起来比较容易。
缺点:
(1)学生的学习缺乏目标。虽然学生对于网站并不陌生,每个章节也都有自己的学习目标。但是,学生在学习时还是不能把握某个具体的知识点或者技术在网站开发中所处的地位,特别是使用场景。而缺乏目标的结果就是学习的动力不足。
(2)知识点分开学习,知识点之间的关联性介绍不足,综合性训练时往往不知如何下手。学生语法掌握了,但是却难以应用到实际项目中,动手能力锻炼不足。
3 Java web项目式教学的优缺点
Javaweb项目式教学往往采用一个完整的网站案例,老师带领学生分析网站的功能需求,完成网站的开发,在开发过程中穿插相应知识点和技术的介绍。课程比较常见的网站案例是购物网站,通课程通常需要完成商品的展示和搜索,用户的注册和登录,商品加入购物车,购物车中删除和修改数量,结账和订单查询。项目式教学的优缺点如下:
优点:
(1)学习目标明确,学生学习兴趣浓,完成时很有成就感。课程每一阶段都完成一个网站功能,学生在学习的过程中,可以体验到课程每个技术的在开发中所处的地位和使用场景。
(2)课程以动手开发为主,讲授为辅,全程学生一直动手开发。很少出现传统教学中,因为不想听课而无事可做的现象
(3)可以锻炼学生的网站调试能力。网站的开发需要静态页面、JavaScript、Java、服务端动态页面等多种技术的支撑。在开发过程中,需要使用多种调试手段和技术,这都是对学生调试能力的锻炼。这一点,传统教学的小例子和实验题很难做到。
缺点:
(1)项目式教学存在的一个大问题是弱化了理论、语法和基础。学生一直在老师和教材的指导下进行开发,做出了作品,但很可能抄对了,却对自己写的代码完全不理解。此外,学生很可能只学会了技术的一种使用方法,而不能举一反三,如果换一个项目,仍然不能独立开发。
(2)合适的教材不多,项目选取和模块切割难度比较大,需要花费很多精力把实际的网站进行精简,以适应于教学。项目开发时的顺序很难和知识点的渐进顺序一致,模块也很难精準覆盖到每一个知识点。教学时既要考虑到模块的开发顺序,也要考虑到知识点和技术的难度渐进,教学时的难度比传统教学要大。
4教学实施和改进措施
4.1保留传统教学的知识点和基本例题
在授课时依然坚持一些传统教学的授课内容和顺序,课程还是以知识点展开,先把知识点讲透,辅助一些帮助学生理解的例题和小练习题,在必备知识完整的情况下切入相应的模块开发。确保学生在开发模块之前,对这一模块所需的技术有充分的熟悉。目前,项目式Java web开发课程的理论授课顺序为:
(1)服务器原理和HTTP协议
这部分教学内容包括web服务器原理,浏览器原理,HTYP协议,tomcat的使用,web网站的部署。教学中学生需要完成“模拟web服务器”,“查看HTTP请求和响应”,“使用Tomcat发布web应用”三个小练习。
(2)servlet入门
这部分教学内容包括Servlet的作用,Servlet的生命周期,创建和访问servlet,Servlet的配置,在servlet中获得客户端请求,向客户端发送响应。教学中,学生需要完成“Servlet生命周期演示”,“用servlet实现商品的模糊查询”两个练习。
(3)JSP技术基础
这部分教学内容包括JSP工作原理,JSP指令、JSP声明、Java程序片段、Java表达式、JSP注释,静态包含include和动态包含include。教学中,学生需完成“在JSP页面动态生成表格”练习。
(4)JSP技术进阶
这部分教学内容包括会话机制,隐藏对象,请求转发和重定向,JavaBean。教学中,学生需完成“创建Cookie”,“理解ses-sion”,“请求转发forward”,“四种对象的作用范围”,“使用Java-Bean”5个练习。
4.2在知识点学习中穿插项目模块开发endprint
在知识点讲解和练习累积到一定程度的时候,穿插目前所学知识点可支撑的模块开发,开发过程除了用到的技术之外,如果涉及某些算法和数据结构还需要向学生解释清楚,力求让学生明白网站功能的实现过程。项目主要模块的切入点和功能如下:
(1)“商品展示起步”模块,此模块在学习过JSP基本语法后切入,学生完成商城所有商品的展示。
(2)“统一网站风格”模块,此模块在前一模块完成后,并且讲解完静态包含和动态包含之后切入,让学生使用include将首页分成四个主要区域。
(3)“特价和新品展示”和“商品搜索”模块在统一网站风格后切入,展示商城新品和特价商品,以及按照商品名称对商品进行模糊查询,这两个模块需要介绍分页算法。
(4)“用户登录”、“退出登录”模块,此模块在学习过会话机制、cookie技术、session之后切入。
(5)“用户注册基本版”模块,该模块页面仅包含用户名、密码和确认密码,完成基本的用户注册。此模块在学习完JSP中的隐含对象,四种对象的作用范围,请求转发和重定向之后切人。
(6)“用户注册完整版”模块,该模块页面不仅包含用户名、密码和确认密码,还需要输入用户其它信息。由于表单项较多,该模块将使用JavaBean技术,在学习完JavaBean技术之后切入,学生只需要增加表单项,并且在注册基本版的基础上修改代码即可。
至此,Java web的主要知识点都已经学习完毕,之后学生需要完成“购物车”和“结账”功能。
最后两个功能是“查看订单”和“查看订单明细”,这两个功能采用MVC模式,使用servlet和JSP页面相结合的方式实现。
4.3提供适合学生的开发文档
项目式教学中,学生很难独立寫出全部代码,由于代码量较大,老师也不可能带着学生一行一行写,因此就需要提供开发文档。开发初期可以给出较完整的实现过程和实现代码,帮助学生尽快入门。随着开发的深入,只需给出部分代码,甚至挖一些“坑”让学生独立填。功能比较类似的模块,例如多种商品展示模块,可以给出一个模块的实现过程,而让学生模仿写出另外几个。这样,学生既有文档可以参考,又可以锻炼自己的独立解决问题的能力。
4.4布置附加功能和加强过程化考核
由于项目式开发课程的大部分时间都留给了学生编写和调试程序,而学生的编程能力差异较大,想要全班以同样的进度开发很困难。为了解决这一问题,主要采用下面手段:
(1)设置时间节点,加强过程化考核
设置主要模块完成的时间节点,到时间就检查进度,并进行答辩,督促学生按时完成开发。这样,即便有些学生课上无法完成也会在课后花时间。而且增加了答辩环节后,较好地抑制了抄袭现象。
(2)布置附加功能,平衡进度
有些能力较强的学生做的进度较快,为了让这些学生完成任务后能够进一步提高,也为了平衡全班的进度,可以布置一些附加功能,并且此部分功能不提供代码支持,让学生自行完成。本课程中有“找回密码”、“会员信息修改”、“其他方式实现购物车”、“基于struts2的管理员登录”功能给学有余力的同学自行完成。
4.5加强页面调试训练
学生都有Java语言基础,知道如何调试Java应用程序。现在进行网站开发,页面的调试技能是必需的,课程的教学过程中需要加强服务端页面的调试,以及在浏览器进行HTML页面和JavaScript代码调试。必须让学生知道哪些代码用Java开发环境进行调试,哪些需要在浏览器中进行调试,在出现问题时引导学生自行进行调试,解决问题。
5结束语
Java Web课程是软件技术专业中是一门十分重要的课程。本文探讨了Java web课程项目驱动式教学的实施和改进措施,以及教学中常见的问题和解决方法。endprint