论文部分内容阅读
[摘 要]计算机语言类课程的教学内容会随着信息技术的发展而不断更新,它在教学过程中强调实践性,强调学生操作能力的提高,这就要求其在教学内容、教学方法、教学设备上都要不断更新。针对这种现状,在Java EE教学中进行了教学改革的尝试,将整个教学过程划分为三个大的阶段:夯实基础知识阶段、培养个人实践动手能力的阶段、培养团队合作能力的阶段。改革的成效和不足之处是评价指标体系还不够细化,应该进一步量化,使其能够更精确地反映学生的水平。要积极探索多样化的评价方式,让学生参与到课堂讲授中,鼓励每位学生建立自己的博客。
[关键词]三阶段教学 Java EE 团队合作
[中图分类号] G642.0 [文献标识码] A [文章编号] 2095-3437(2013)17-0111-03
众所周知,计算机语言类课程的教学内容会随着信息技术的发展而不断更新,它在教学过程中强调实践性,强调学生操作能力的提高,这就要求其在教学内容、教学方法、教学设备上都要不断更新。目前大多数教师讲授的方法是要么单纯地灌输给学生一步步怎么做,要么将操作步骤整理成文档发给学生,然后学生照着步骤做一遍记一遍,被动地接受知识,甚至变成了背知识。学生在学习的过程中根本不需要自己动脑思考,教师的“勤快”造成了学生思维上的“懒惰”。学生本应该成为“代码的创造者”,最后却变成了“代码的熟练工”。这种教学方式非常不利于他们今后的发展,如果学生在学习过程中没有培养起良好的思考问题的习惯,对知识的学习仅仅停留在知识表面而不会灵活地运用知识,那么学生就业时就会处处碰壁。因为他们不得不面对一个现实,计算机更新速度快的特点造成了就业时所应聘的岗位很有可能用到的并不是现在所学的技术。另一方面,如果学生仅仅对知识理解得很深入,对知识的来龙去脉一清二楚,但是缺乏实践动手能力,那也称不上是高素质的应用型人才,应聘时仍会碰壁。如果学生对知识的理解很深入并且实践动手能力也很强,应聘时一定会成功吗?也未必。因为软件开发往往是由一个团队合作进行的,所以还需要学生具有一定的团队合作能力。针对这种现状,在Java EE教学中进行了教学改革的尝试,将整个教学过程划分为三个大的阶段:夯实基础知识阶段、培养个人实践动手能力的阶段、培养团队合作能力的阶段。
一、三阶段教学模式
(一)第一阶段:夯实基础知识阶段
在该阶段主要强调学生对基础知识、基本技能的掌握。采取的教学方法及其该阶段着重培养的学生能力如下。
1.教学方法
该阶段在课堂教学中主要借鉴“北大青鸟ACCP培训机构”所提出的3W1H教学方法,第一个“W”是What,即让学生清楚所学的知识点是什么。第二个“W”是Why,在教学过程中,教师应该让学生明白为什么会引入这个新的知识点,它用来解决什么问题,不用的话会怎么样。第三个“W”是Where,即让学生明确这个知识点用在什么地方。“H”是How,即让学生知道如何使用这个知识点。与传统的教学模式相比,3W1H教学法建立在传统教学法的基础上,它既能发挥教师的主导作用,又能体现学生认知的主体作用。在3W1H教学法中,教师通过自身的主导作用,运用3W1H的教学理念对知识点进行划分,并且通过创设相关的情景对学生进行引导,便于学生循序渐进地学习和接受相关的知识。在整个过程中,教师有时处于中心地位,但并非自始至终。学生有时也处于传递—接受学习状态,但更多的时候是在教师的帮助下进行主动的思考和探索。在传统教学中,重要的是让学生去了解所学的知识点,而在3W1H中,最重要的是让学生了解这个知识点“用在哪里”和“怎样运用这个知识点”,并且通过学习到相关的知识后能够举一反三,从而掌握更多相同或相似的知识。这两者之间的区别就在于“认知”和“应用”。
同时在课堂教学中,也会融合像案例教学、启发式教学、任务驱动等多种教学方法,让学生能够真正了解知识的来龙去脉。
2.学生能力培养
该阶段主要培养学生的如下能力。
(1)培养学生知其然并知其所以然的能力。比如讲Struts2中的拦截器,不要单纯地去讲怎么用Struts2拦截器,而是先给学生模拟Struts2中拦截器的实现原理,通过这个过程,学生可以清楚地知道为何官方给出的Struts2工作原理图是先调用拦截器1、拦截器2,再调用Action,调用完了之后再调用拦截器2、拦截器1。通过简单模拟学生会发现原来这个过程是递归调用的过程,这样学生再去使用拦截器的时候,就不是单纯的使用了。通过这种方式逐渐培养出学生知其然并想知其所以然的能力。这些本质不变的东西是非常值得深入研究的,因为很多最新技术的底层都是基于这些本质的东西来实现的。当学生毕业时即使面试公司所用的技术不是其在校所学的技术,但是由于学生在基础学习阶段重视了技术的底层,对新技术也会很快上手。
(2)自主学习的能力。上课课时毕竟有限,不可能将所有问题都给学生讲得一清二楚;另一方面,学生就算在课上将所有内容都听明白了,也不代表这堂课一定就是成功的,如果课堂中能够激发学生课下主动积极地去思考一些问题,这样的课才算是一堂真正的好课,因为教师激发起了学生思考的兴趣。所以教师在课堂中可以故意设计一些问题留给学生课下去思考,比如拦截器是基于Java的动态代理实现的,Java的动态代理是怎么回事,学生可带着这个疑问课下去查找相关的资料。查资料的过程本身就是一个培养自主学习能力的过程,在这个过程中,学生会了解到很多新知识,这能够逐渐地培养学生在众多知识中快速查找到自己所需知识的能力。
(3)查文档的能力。Java EE框架技术基本上是和配置文件打交道,而配置文件并不需要硬背硬记,记不住了查查就清楚了。所以要培养学生快速在文档中查找自己所需内容的能力。
(4)读源码的能力。每个框架都应该教给学生如何去关联源代码。通过读源码,学生能够了解到技术底层,而且可以从中学习编码规范。当然并不是每个学生都会具备这个素质,但还是要尽量鼓励他们去读源码,起码要让学生有这个意识。一开始教师可以带着学生去读一些经典的源码,比如Struts2配置的一个非常重要的过滤器是Struts2PrepareAndExecuteFilter,带着学生去读读这个过滤器的源码,学生一方面会了解到Struts2设计者的思路,另一方面学生也会对Struts2框架的工作原理有更深的理解。 (5)程序调试能力,错误分析能力。以往学生程序一出错,就立刻向教师求救,教师也立马给出解答,学生心中佩服无比。但是长此下去,很容易让学生形成依赖,丧失程序调试能力和错误分析的能力,而这种能力也是至关重要的。因为当学生毕业工作了,在实际开发过程中会遇到各种各样的问题,如果没有一定的程序调试能力和错误分析能力,学生就会变得手足无措。为此在教学中应该要求学生在出现问题时分四步走:第一步一定先根据自己所学的基础知识想一想问题出错的原因,运用设置断点、单步调试、单元测试等调试技巧找出出错的位置;如果第一步没有解决问题,那么进入第二步求救Google;如果仍未解决,进入第三步和同学讨论;最后第四步才是求救教师,和教师进行讨论。
(6)培养团队合作能力。上机往往是多个班同时进行,教师根本就顾不过来。基于这个考虑,在教学初就对班级学生进行分组,出现问题时如果个人解决不了,先组内讨论解决,组内解决不了的教师再集中统一讲解。这个阶段也是团队合作的磨合期,为第三个阶段的顺利进行打下基础。
(二)第二阶段:培养学生个人实践动手能力的阶段
在该阶段,主要强调培养学生个人的综合实践能力,该阶段是在依据教学大纲已经将教学知识点全都传授给学生,学生已经具备了夯实的基础知识,在此基础上,让学生独立根据现有知识储备完成一个项目,比如在Java EE框架这门课中,让学生独立完成一个学生选课系统。围绕此项目教师只进行功能展示,以及涉及的关键知识说明,提出必做功能和扩展功能。必做功能完全利用已学知识完全就可以实现,是对已学知识的实践应用。扩展功能会引导学生该去自学哪些知识,这样能够在很大程度上提高学生的自主学习能力。
在这个阶段,对教师的要求是布置给学生的项目自己一定要做一遍,一定要确定一下项目的难度和工作量,但是一定不能给出学生完成项目的操作步骤。因为一旦给出,就会出现本文一开始所提到的问题,学生会非常依赖于文档,在做的过程中不会主动去思考,而是被动地照着步骤做,照着敲代码。当出现问题时,不是想着如何去调试去纠错,而是对着教师给出的文档一个代码一个代码地对一遍,这样对学生是百害而无一利的。作为教师要给学生充分的鼓励,鼓励他们要相信自己通过第一阶段打下的基础,一定能够完成这个项目。当然如果学生在项目开发中如果遇到了瓶颈,可以适当地给予他们引导,启发其解决思路。
(三)第三阶段:培养学生团队合作能力的阶段
近年来招聘单位在招聘学生时,学生团队合作能力成了招聘时重要的考核内容之一。因此在该阶段,强调培养学生的团队合作能力,做法是让学生分组完成一个完整的项目,教师给出可选题目,学生也可以自拟题目。
在这个阶段,对教师的要求是做好五个引导。引导学生制订项目需求分析和开发计划,包括总体需要完成哪些工作、由谁负责完成、最终结果应该如何、什么时候完成等;引导学生要善于利用各种手段与其他成员充分沟通;引导学生进行团队协助,充分发挥各自的专长;引导各组组长在分配任务前要摸清组员的技能和意愿;引导鼓励团队成员互相及时反馈,帮助解决合作中遇到的问题和分歧。
以上三个阶段自上而下,上一个阶段是下一个阶段的基础,层层递进,最终的目标是使学生成为社会所需要的人才。
三、改革的成效和不足
通过改革不能够保证每个学生都能够成为编程高手,但是实践证明:越来越多的学生喜欢问为什么了;越来越多的学生开始在宿舍里讨论问题了;越来越多的学生体会到了解决问题的成就感了;越来越多的学生感觉到团队合作的重要性了;越来越多的学生自学能力提高了,知道主动去获取新知识了;越来越多的学生参与到教师的项目开发中;越来越多的学生在接项目做了……值得一提的是曹胜欢同学(在google中输入他的名字就可以进入他的博客)在中国最大的计算机交流论坛CSDN上写的博客引起了很大的反响,一度在CSDN推荐博客排名中列居第2位。他在学习框架的过程中更是每上完一次课就会写篇总结,加入自己的分析和理解,形成了框架学习的一系列课程。他的博文被北京的一个项目经理看中,并给他提供了免费培训敏捷开发的机会。在CSDN举办的全国优秀学生博客评选中名列其中(全国只评选出了3名学生)。
不足之处是评价指标体系还不够细化,应该进一步的量化,使其能够更精确地反映学生的水平。另外还应该积极地探索多样化的评价方式,如让学生参与到课堂讲授中,鼓励每位学生建立自己的博客。
[ 参 考 文 献 ]
[1] 蒋丽珠.独具特色的澳大利亚职业技术教育[J].教育与职业,2006(2):14-16.
[2] 祝智庭.教育技术培训教程[M].北京:北京师范大学出版社,2006:20-26.
[3] 杨兴林.地方高校应用型人才培养模式应着力四个转变[J] .扬州大学学报(高教研究版),2011(1) : 3-7.
[责任编辑:刘凤华]
[关键词]三阶段教学 Java EE 团队合作
[中图分类号] G642.0 [文献标识码] A [文章编号] 2095-3437(2013)17-0111-03
众所周知,计算机语言类课程的教学内容会随着信息技术的发展而不断更新,它在教学过程中强调实践性,强调学生操作能力的提高,这就要求其在教学内容、教学方法、教学设备上都要不断更新。目前大多数教师讲授的方法是要么单纯地灌输给学生一步步怎么做,要么将操作步骤整理成文档发给学生,然后学生照着步骤做一遍记一遍,被动地接受知识,甚至变成了背知识。学生在学习的过程中根本不需要自己动脑思考,教师的“勤快”造成了学生思维上的“懒惰”。学生本应该成为“代码的创造者”,最后却变成了“代码的熟练工”。这种教学方式非常不利于他们今后的发展,如果学生在学习过程中没有培养起良好的思考问题的习惯,对知识的学习仅仅停留在知识表面而不会灵活地运用知识,那么学生就业时就会处处碰壁。因为他们不得不面对一个现实,计算机更新速度快的特点造成了就业时所应聘的岗位很有可能用到的并不是现在所学的技术。另一方面,如果学生仅仅对知识理解得很深入,对知识的来龙去脉一清二楚,但是缺乏实践动手能力,那也称不上是高素质的应用型人才,应聘时仍会碰壁。如果学生对知识的理解很深入并且实践动手能力也很强,应聘时一定会成功吗?也未必。因为软件开发往往是由一个团队合作进行的,所以还需要学生具有一定的团队合作能力。针对这种现状,在Java EE教学中进行了教学改革的尝试,将整个教学过程划分为三个大的阶段:夯实基础知识阶段、培养个人实践动手能力的阶段、培养团队合作能力的阶段。
一、三阶段教学模式
(一)第一阶段:夯实基础知识阶段
在该阶段主要强调学生对基础知识、基本技能的掌握。采取的教学方法及其该阶段着重培养的学生能力如下。
1.教学方法
该阶段在课堂教学中主要借鉴“北大青鸟ACCP培训机构”所提出的3W1H教学方法,第一个“W”是What,即让学生清楚所学的知识点是什么。第二个“W”是Why,在教学过程中,教师应该让学生明白为什么会引入这个新的知识点,它用来解决什么问题,不用的话会怎么样。第三个“W”是Where,即让学生明确这个知识点用在什么地方。“H”是How,即让学生知道如何使用这个知识点。与传统的教学模式相比,3W1H教学法建立在传统教学法的基础上,它既能发挥教师的主导作用,又能体现学生认知的主体作用。在3W1H教学法中,教师通过自身的主导作用,运用3W1H的教学理念对知识点进行划分,并且通过创设相关的情景对学生进行引导,便于学生循序渐进地学习和接受相关的知识。在整个过程中,教师有时处于中心地位,但并非自始至终。学生有时也处于传递—接受学习状态,但更多的时候是在教师的帮助下进行主动的思考和探索。在传统教学中,重要的是让学生去了解所学的知识点,而在3W1H中,最重要的是让学生了解这个知识点“用在哪里”和“怎样运用这个知识点”,并且通过学习到相关的知识后能够举一反三,从而掌握更多相同或相似的知识。这两者之间的区别就在于“认知”和“应用”。
同时在课堂教学中,也会融合像案例教学、启发式教学、任务驱动等多种教学方法,让学生能够真正了解知识的来龙去脉。
2.学生能力培养
该阶段主要培养学生的如下能力。
(1)培养学生知其然并知其所以然的能力。比如讲Struts2中的拦截器,不要单纯地去讲怎么用Struts2拦截器,而是先给学生模拟Struts2中拦截器的实现原理,通过这个过程,学生可以清楚地知道为何官方给出的Struts2工作原理图是先调用拦截器1、拦截器2,再调用Action,调用完了之后再调用拦截器2、拦截器1。通过简单模拟学生会发现原来这个过程是递归调用的过程,这样学生再去使用拦截器的时候,就不是单纯的使用了。通过这种方式逐渐培养出学生知其然并想知其所以然的能力。这些本质不变的东西是非常值得深入研究的,因为很多最新技术的底层都是基于这些本质的东西来实现的。当学生毕业时即使面试公司所用的技术不是其在校所学的技术,但是由于学生在基础学习阶段重视了技术的底层,对新技术也会很快上手。
(2)自主学习的能力。上课课时毕竟有限,不可能将所有问题都给学生讲得一清二楚;另一方面,学生就算在课上将所有内容都听明白了,也不代表这堂课一定就是成功的,如果课堂中能够激发学生课下主动积极地去思考一些问题,这样的课才算是一堂真正的好课,因为教师激发起了学生思考的兴趣。所以教师在课堂中可以故意设计一些问题留给学生课下去思考,比如拦截器是基于Java的动态代理实现的,Java的动态代理是怎么回事,学生可带着这个疑问课下去查找相关的资料。查资料的过程本身就是一个培养自主学习能力的过程,在这个过程中,学生会了解到很多新知识,这能够逐渐地培养学生在众多知识中快速查找到自己所需知识的能力。
(3)查文档的能力。Java EE框架技术基本上是和配置文件打交道,而配置文件并不需要硬背硬记,记不住了查查就清楚了。所以要培养学生快速在文档中查找自己所需内容的能力。
(4)读源码的能力。每个框架都应该教给学生如何去关联源代码。通过读源码,学生能够了解到技术底层,而且可以从中学习编码规范。当然并不是每个学生都会具备这个素质,但还是要尽量鼓励他们去读源码,起码要让学生有这个意识。一开始教师可以带着学生去读一些经典的源码,比如Struts2配置的一个非常重要的过滤器是Struts2PrepareAndExecuteFilter,带着学生去读读这个过滤器的源码,学生一方面会了解到Struts2设计者的思路,另一方面学生也会对Struts2框架的工作原理有更深的理解。 (5)程序调试能力,错误分析能力。以往学生程序一出错,就立刻向教师求救,教师也立马给出解答,学生心中佩服无比。但是长此下去,很容易让学生形成依赖,丧失程序调试能力和错误分析的能力,而这种能力也是至关重要的。因为当学生毕业工作了,在实际开发过程中会遇到各种各样的问题,如果没有一定的程序调试能力和错误分析能力,学生就会变得手足无措。为此在教学中应该要求学生在出现问题时分四步走:第一步一定先根据自己所学的基础知识想一想问题出错的原因,运用设置断点、单步调试、单元测试等调试技巧找出出错的位置;如果第一步没有解决问题,那么进入第二步求救Google;如果仍未解决,进入第三步和同学讨论;最后第四步才是求救教师,和教师进行讨论。
(6)培养团队合作能力。上机往往是多个班同时进行,教师根本就顾不过来。基于这个考虑,在教学初就对班级学生进行分组,出现问题时如果个人解决不了,先组内讨论解决,组内解决不了的教师再集中统一讲解。这个阶段也是团队合作的磨合期,为第三个阶段的顺利进行打下基础。
(二)第二阶段:培养学生个人实践动手能力的阶段
在该阶段,主要强调培养学生个人的综合实践能力,该阶段是在依据教学大纲已经将教学知识点全都传授给学生,学生已经具备了夯实的基础知识,在此基础上,让学生独立根据现有知识储备完成一个项目,比如在Java EE框架这门课中,让学生独立完成一个学生选课系统。围绕此项目教师只进行功能展示,以及涉及的关键知识说明,提出必做功能和扩展功能。必做功能完全利用已学知识完全就可以实现,是对已学知识的实践应用。扩展功能会引导学生该去自学哪些知识,这样能够在很大程度上提高学生的自主学习能力。
在这个阶段,对教师的要求是布置给学生的项目自己一定要做一遍,一定要确定一下项目的难度和工作量,但是一定不能给出学生完成项目的操作步骤。因为一旦给出,就会出现本文一开始所提到的问题,学生会非常依赖于文档,在做的过程中不会主动去思考,而是被动地照着步骤做,照着敲代码。当出现问题时,不是想着如何去调试去纠错,而是对着教师给出的文档一个代码一个代码地对一遍,这样对学生是百害而无一利的。作为教师要给学生充分的鼓励,鼓励他们要相信自己通过第一阶段打下的基础,一定能够完成这个项目。当然如果学生在项目开发中如果遇到了瓶颈,可以适当地给予他们引导,启发其解决思路。
(三)第三阶段:培养学生团队合作能力的阶段
近年来招聘单位在招聘学生时,学生团队合作能力成了招聘时重要的考核内容之一。因此在该阶段,强调培养学生的团队合作能力,做法是让学生分组完成一个完整的项目,教师给出可选题目,学生也可以自拟题目。
在这个阶段,对教师的要求是做好五个引导。引导学生制订项目需求分析和开发计划,包括总体需要完成哪些工作、由谁负责完成、最终结果应该如何、什么时候完成等;引导学生要善于利用各种手段与其他成员充分沟通;引导学生进行团队协助,充分发挥各自的专长;引导各组组长在分配任务前要摸清组员的技能和意愿;引导鼓励团队成员互相及时反馈,帮助解决合作中遇到的问题和分歧。
以上三个阶段自上而下,上一个阶段是下一个阶段的基础,层层递进,最终的目标是使学生成为社会所需要的人才。
三、改革的成效和不足
通过改革不能够保证每个学生都能够成为编程高手,但是实践证明:越来越多的学生喜欢问为什么了;越来越多的学生开始在宿舍里讨论问题了;越来越多的学生体会到了解决问题的成就感了;越来越多的学生感觉到团队合作的重要性了;越来越多的学生自学能力提高了,知道主动去获取新知识了;越来越多的学生参与到教师的项目开发中;越来越多的学生在接项目做了……值得一提的是曹胜欢同学(在google中输入他的名字就可以进入他的博客)在中国最大的计算机交流论坛CSDN上写的博客引起了很大的反响,一度在CSDN推荐博客排名中列居第2位。他在学习框架的过程中更是每上完一次课就会写篇总结,加入自己的分析和理解,形成了框架学习的一系列课程。他的博文被北京的一个项目经理看中,并给他提供了免费培训敏捷开发的机会。在CSDN举办的全国优秀学生博客评选中名列其中(全国只评选出了3名学生)。
不足之处是评价指标体系还不够细化,应该进一步的量化,使其能够更精确地反映学生的水平。另外还应该积极地探索多样化的评价方式,如让学生参与到课堂讲授中,鼓励每位学生建立自己的博客。
[ 参 考 文 献 ]
[1] 蒋丽珠.独具特色的澳大利亚职业技术教育[J].教育与职业,2006(2):14-16.
[2] 祝智庭.教育技术培训教程[M].北京:北京师范大学出版社,2006:20-26.
[3] 杨兴林.地方高校应用型人才培养模式应着力四个转变[J] .扬州大学学报(高教研究版),2011(1) : 3-7.
[责任编辑:刘凤华]