日期:2023-01-23 阅读量:0次 所属栏目:学前教育
一、背景
长期以来人们对传统的讲授孤立知识点的教学方式呲之以鼻,而对互动性很强的案例式教学方式倍加推崇。而笔者认为应该辨证的看待问题,片面的强调任何一种教学方式都是不妥当的,而应该把两者结合起来,取长补短。在本文中,笔者就以所教授的“ASP.NET课程”为例介绍一种在软件开发类课程中适用的“点线面式的教学法”,它实际上就是将两者有机结合的一种教学方式。
二、现状
(一)传统的讲授孤立知识点的教学方式
中国传统教育注重灌输式、填鸭式教学,这种传统的讲授孤立知识点的教学方式一直占据了教学中的很大比例,直到现在仍然是绝大多数学校的绝大多数课程所采用的方式。但现在很多教育学者都很快意识到了这种教学方式的诸多弊端,于是大家几乎可以在很多谈论教学方式改革的文章中看到大家对这种教学方式的指责。
的确,这种教学方式存在以下的弊端:
1、单纯是教师的讲授,学生只能被动的接受,这样学生的积极性很难提高,听课效率大打折扣。
2、讲授的都是一些孤立的知识点,学生只会背一些条条框框,应付一些理论考试,不能把这些知识点综合起来做一个实际的项目,从而也就失去了学习的兴趣。
3、讲授中很少有案例,即使有也充其量算是举例,并且这样的举例考虑到突出新知识点的特性往往相当简单,缺乏实际运用的可能性。
所以单纯的讲授孤立知识点的教学方式使得学生掌握了一大堆的理论知识却无处可用或者不知道怎么用,这就好比掌握了成千上万个单词的学生拼不出一句完整的句子来,掌握了各派武学招式的人居然不会打架一样。
(二)互动性很强的案例式教学方式
一直以来,互动性很强的案例式教学方式备受推崇。的确这种教学方式大大调动了学生的积极性,也提高了学生的学习兴趣,增强了学生对真实场景的实战能力。
但是单纯使用案例式教学方式也会存在以下的弊端:
1、如果学生在没有任何前期基础知识的情况下,一开始就接触难度较大的案例是会遇到相当大的阻力的,从而会很快失去信心,失去兴趣的。这就好比对于一个没有单词基础的学生一开始就想阅读一篇难度颇大的英文资料一样。
2、每个案例都有各自的侧重点,不可能涉及到该课程的方方面面。所以,很可能讲的几个案例都重复涉及到了几个知识点,而又共同漏掉了几个知识点。这就好比任何一篇大学英语范文都不可能涵盖大学要求的所有单词一样。
所以,单纯使用案例式教学方式对于没有一点基础知识的学生来说也是行不通的。而且案例的难度、题材选择不当,也是很难完全代替成体系的系统学习的。
三、点线面式的教学方式概述
从前面我们可以看出,单纯的依赖某一种教学方式都不太可取,为什么我们不把两者结合起来呢?并且为了平稳的结合这两个阶段,针对软件开发类课程自身的特点,我们再在这两者之间增加了一个过渡阶段。这就是笔者本文要介绍的点线面式的教学方式。即在教学的初期,全面系统的讲解程序设计中涉及到的各个知识点,即所谓的点;在教学的中期,以讲练结合的方式让学生熟悉程序设计中经常用到的各个组件模块的设计,即所谓的线;在教学的末期,以学生实际参与的方式让学生实际动手开发几个几乎真实的项目案例,即所谓的面。
四、点的教学方式
随着案例式教学的时兴,传统的讲授孤立知识点的教学方式一时间如过街老鼠似的,人人喊打。但事实上,这种教学方法也并非一无是处。传统的讲授课是为了使学生在较短的时间内学到较多的系统的间接知识而采用的一种课型,它使得知识点的体系结构非常明晰,知识的涵盖比较完整,既不会重复也不会遗漏。学生可以在这种教学方式下,静下心来仔细的聆听老师的讲解,老师也可以按照其事先准备的资料有条理的介绍其内容,而不被学生的询问忽然打断思路。但我们在使用这种教学方式的时候也不是全盘照搬,而是加以改进,或是增加一些注意事项。
(一)这种教学方式主要适用在学习该门课程的初期
学生在刚开始接触一门课程的时候,往往兴趣比较浓厚,在短时间内是可以接受这种相对来说较为单调枯燥的讲授式教学的,也基本上能够静下心来聆听老师的讲解。但这种教学方式持续时间不宜过长,也不能放在课程学习的后期,否则学生很难有耐心和兴趣学习下去的。
(二)知识的讲解中仍然需要有实例的支撑
虽然这种教学方式主要集中在理论知识的讲授上,但并不排除在一些较难理解的知识点上运用实例。毕竟抽象的理论知识有具体实例的支撑会让学生更易理解。不过由于为了突出某个新知识点的特性,所举实例往往屏蔽了其他知识点的干扰,变得非常简单,同时也丧失了其实用性。所以,我们必须要在简单和实用上找到一个平衡点,同时还要考虑到趣味性。比如,在讲到随机函数的运用时,可以列举一个猜数字的小游戏。这样既调动了学生的兴趣,又体现了实用性,因为随机函数往往在实际开发中就是运用在带有运气成份的棋牌类游戏中的。
(三)讲解每个知识点的时候要注意介绍其适用的场景
经常有同学这样问我,“我知道这个怎么做,但它有什么用处呢?它拿来做什么的呢?”。这说明学生只知道知识点本身,而不知道其具体在什么情况下使用。那么这样的学习无疑是盲目的,也是很难有兴趣的。所以,我们在讲解每章的知识点的时候必须让学生明确其适用场景。例如,“你想在你建立的注册页面上拦截掉用户的非法输入吗?那让我们一起来学习ASP.NET中的验证控件,它可以帮我们完成这样的功能”;“你想提高别人访问你的网页的速度吗?学了ASP.NET缓存这一章的内容就能帮助你完成这个任务”;“你想把你编好的网页架设成一个网站,被别人真正的访问到吗?学了ASP.NET安装部署这一章之后你就知道该怎么做了。”如果每一章的学习前,学生都明白其所将要学的东西的作用,他就会主动积极的去学了。
(四)知识点的介绍要分清主次和轻重
所有的知识点并不是一个平行对等的关系,有些内容实际中运用多一些,可以分配较多的时间进行详细讲解;而有些内容对刚入门的学生来说实际使用很少,则可以分配较少的时间予以介绍性的讲解。例如,ASP.NET中的常用控件、内置对象以及操作数据库的ADO.NET技术必须加以详细介绍;而ASP.NET页面处理机制、ASP.NET中的WEB服务可以只做简要介绍。
五、线的教学方式
随着软件规模的不断扩大,复杂度不断的增加,软件的模块化开发越来越受到重视。因为对于一个复杂的软件项目,我们将其分成几个简单的模块,再分而治之,可以大大降低开发的难度。同时,不同的软件项目经常用到一些相同的功能模块,如果我们在第一次开发时将其固定完善下来,今后的开发即可重复利用,从而大大提高开发效率。由于模块的独立性,开发人员在开发某个模块时可以不用花费太大的精力去协调其他模块,从而可以集中精力完成任务。这里所谓的模块开发,即为我们教学中的线。对于ASP.NET这门课程来说,有一些经常用到的模块,例如注册登陆模块、购物车模块、上传下载模块、网络硬盘模块。如果我们掌握了这些常用的模块就能比较轻易和快速的搭建一个常用的网站,因为很多网站无非都是这些常用模块的组合。
这种以模块为中心的线的教学方式实际上是从以知识点为中心的点的教学方式到以项目为中心的面的教学方式的一个必要的过渡。在运用线的教学方式的时候也有一些注意事项需要明示:
(一)模块的选择要注意常用性
使用线的教学过程中要注意模块选择的常用性。使用ASP.NET开发网站有一些常用的功能模块。比如很多网站都不是完全针对匿名用户来开放的,所以要用到注册登陆模块;如果是一个电子商务网站,则自然少不了购物车模块;如果还要和网站交互一些资料,则肯定会用到上传下载模块。网站中涉及到的功能模块很多,由于教学时间的关系,所以不可能面面俱到,只能选择一些特别常用的典型模块来介绍。
(二)模块的选择要注意独立性和规模性
教学中选择的模块最好比较独立,这样学生在开发某个模块时可以不用花费太大的精力去协调其他模块,从而可以集中精力完成任务。教学中选择的模块的规模性最好要比较小,这样不至于使得模块太复杂,从而让学生有能力和信心来完成任务。
(三)模块要映射到某个知识点
在模块的讲解中最好结合到之前讲解的知识点上。比如在讲解注册页面的设计时,就很自然的会结合到“ASP.NET中的验证控件”这个知识点。因为对于用户在注册页面中填写的信息必须要加以验证才能提交到服务器端,这时验证控件的使用便成了这个模块设计的关键了。又如在讲解网络硬盘的设计时,就很自然要结合到“ASP.NET中的文件处理”这个知识点。因为网络硬盘中用到的目录和文件需要使用System.IO命名空间中的File类和Directory类,而这些都是在之前的“ASP.NET中的文件处理”知识点的讲解中介绍的。
(四)模块的学习要讲练结合
模块的学习不同于知识点的学习,需要留出时间让学生来动手练习。但是由于学生从知识点忽然跳到模块有个过程,所以老师必要的讲解也是不可少的。因此,模块的学习通常是要讲练结合的,即由之前的老师直接控制信息转变为师生共同控制信息的传递。
六、面的教学方式
项目的开发通常是软件开发类专业学生进到软件公司的最终职责和任务,所以前面对知识点的学习也好,对常用软件模块的熟悉也好,都是为学生能够真正具备项目软件开发能力做准备。这就好比外语系的学生学习单词、组句的最终目的就是要和老外去交流一样。所以,学生在正式进入软件公司之前如果就能具备一些简单的软件项目的开发能力,则会大大加强其应聘企业的竞争力的。这种以项目为中心的教学方式我们称为面的教学方式。在面的教学方式中同样有一些需要注意的环节:
(一)项目的精心选择
项目题目的选择最好涉及学生所熟悉的领域,比如学生学籍管理系统、教务管理系统、家教管理系统等等,这些都是学生比较熟悉的领域,不会出现不熟悉的专业术语,以避免学生将大量的时间花在需求分析中问题领域的熟悉上,从而能集中精力在项目的开发上。项目的规模应该适中,同时具有一定的真实性。虽然这些项目通常是模拟的,但如果过于简单,则没有太大的实际意思,同样也不可能完全真实,这可能使得项目过于复杂,学生的时间、精力和能力都不满足。
(二)项目的学习以学生动手练习为主
在这个阶段的学习肯定要以学生动手练习为主,老师不宜过多的讲解。老师主要起着组织和协调学生的作用,只在项目的开始立项和结束总结时以及开发过程中遇到个别难点时做必要的讲解,其他时间都尽量将主动权交给学生。
(三)项目开发中的分组
对于较大的项目可以对学生进行分组,比如有的做需求的,有的进行数据库设计的,有的编码的,有的测试等等的,这样可锻炼学生在软件项目开发中的团队合作精神。而如果项目比较的小,可以让每一个学生独立的完成从需求到测试的整个过程,以便其熟悉软件项目开发中的各个环节。
(四)项目开发所涉及的知识领域
一个完整的项目开发所涉及到的知识领域是比较宽泛的。比如一个网站项目的开发绝对不是使用一个ASP.NET技术就可以解决的。你可能要在项目的初期使用Rational Rose工具借助UML来建模;然后又可能使用PowerDesigner工具借助ER图来设计数据库;然后又使用VS.NET工具来编码开发,另外如果想使网站更好看一点可能还会用到Photoshop和Flash工具;最后使用NUnit工具来进行测试。所以一个软件项目的开发可以锻炼和提高学生综合运用相关知识来解决问题的能力。
七、结束语
传统的知识点的讲授和单纯的使用案例教学,在诸如以ASP.NET课程为代表的软件开发类课程中都不能起到很好的效果,只有将两者结合起来,并辅之以模块的过渡,形成一个点、线、面全方位的立体教学体系,才能让学生真正从理论走向实践,从研究走向应用,从学校走向企业。
本文链接:http://www.qk112.com/lwfw/jiaoyulunwen/xueqianjiaoyu/215015.html
上一篇:浅谈立体式的英语教学模式