论文部分内容阅读
摘 要:设计模式是高等院校计算机相关专业的一门专业基础课。对于初学设计模式的学生来说,设计模式课难度大、内容多,实践性较强。针对设计模式教与学中存在的问题,本文从教学计划、教学内容、教学方式和考核模式4个方面进行分析探究。
关键词:设计模式;教学方法;教学内容;教学方式;考核模式
设计模式作为计算机专业的核心专业课程之一,既具有很强的理论性,又具有很强的实践性。这门课的开设一般在大三下学期或者大四上学期,需要学生有很强的专业知识基础。通过这门课的学习,学生能够对软件编程环节的分析和设计有更好的把握,因此教师有必要深入研究该课程的教学难点,为更好地调动学生的学习积极性,提高教学效率服务。
一、设计模式教学过程中存在的问题
1. 学生无法深入理解各种具体模式
目前一般院校所开设的设计模式课程,其涉及的知识深度、广度有限。学生对知识的把握受限于教材罗列的模式。学生把书本中列举的模式照搬至实验环节,对相关程序进行编写、编译和调试,较难使学生独立地思考某一模式存在的意义和对应的应用场景,更谈不上知识拓展。如果模式的应用场景发生了变化,教材中没有相应的具体模式可以借鉴应用,学生就会茫然无措,胡编一气,写出来的程序经常需要大修大改。究其原因,学生的学习是被动式的,课堂上教师极少启发学生独立思考,列举的例子机械生涩,不能充分发挥学生的主动性和积极性,导致学生所学知识比较僵化。
2. 学生对前导课程的学习不够深入
各种面向对象编程的语言(如C#,C++,JAVA)及数据结构、数据库是学习设计模式课程的重要基础。但是笔者通过多年的教学实践发现,学生的编程基础参差不齐,有的学生反馈“像听天书”,很多专升本到计算机相关专业的学生甚至没有学过面向对象的编程语言。这些基础较差的学生,通过短时间的设计模式课程学习,只能对基本语法、应用场景有大概了解,无法深入理解原型模式、桥接模式、模板方法、享元模式、职责链模式等较复杂模式的精髓,这给设计模式的学习带来了困难。设计模式课本中与这些内容相关的案例,学生很难把握,只能被动地接受概念,无法进行实际应用。这也是学生学习设计模式通常会遇到的问题。
3. 教学模式单一,不能实现从设计模式理论到实际应用的过渡
当前设计模式教学大多采用多媒体教学为主、上机实践为辅的方式,理论课与上机课不在同一个教室。理论课教学虽然能将一些抽象、枯燥的学习内容形象化,但对于程序具体应用模式不同所产生的效果的差异很难描述出来。学生通过理论课想搞清楚某一种模式对应的应用场景较为困难。另外,即使学生能够在课上理解,但因为不能立即上机验证,学生动手的热情就会慢慢消退。
二、创新设计模式的教学方法
1. 明确模式的应用场景
计算机专业的高年级学生通常已经具备对主干课程知识点重要与否的基本判断能力,但在学习之初仍然存在对相关课程的陌生感。为了让学生更加重视设计模式这门课程,提高学习积极性,教师需要先向学生强调该课程在软件开发课程体系中的重要地位和意义。教师还要编制合理的教案,教案要短小、精炼、具体。教学案例难度适中,太复杂的模式实例,学生经过实践编程后得不到预期结果,会有挫败感。通过对模式的具体编程,学生能够加深认识,对知识点有更准确的理解。
对每个章节,面对不同的模式,学生会有很多问题,如每种模式类型之间有什么关联?为什么编程前最好先想好应用哪种模式,然后带着问题再下手编程?在授课前,教师就应该让学生了解设计模式的规范和标准,不能为了应用而应用。只有学生知道所学知识的作用后,才能学以致用。教师最好能够结合自己的项目经验,在课堂上对每一种模式进行剖析,加深学生的印象。也许有一天学生会忘了某一种模式的具体知识,可是只要遇到相关问题他还能想起教师曾经讲过的案例,那么他完全可以在工作中二次学习,重新掌握相关知识,解决相关问题。
2. 引入“启发、讨论式”课堂教学理念
传统的“填鸭式”教学方式很难让学生产生浓厚的兴趣。学生一般只记住一些浅显的知识,并不适合学习设计模式这种需要理论和实践高度结合的课程。在教学实践中,很多学生反映课堂上当时确实听懂了老师所讲授的知识点,但一到自己编程总是没有思路。这是因为学习是一个循序渐进的过程,所以教师在课堂上除了注重自己的“讲”,还要注重学生的“听”。教师不要一味地“讲”,可以通过提问、讨论的形式,引导学生思考,培养他们分析和解决问题的能力。
最理想的学习方式是通过软件实际工程案例不断引导他们思考,从而使他们积累大量的实践知识。授课教师要对所讲的知识点非常熟悉,能够随时随地在各个知识点间穿插引导,以精彩的讲解引发学生的讨论兴趣。学生在理解了各个知识点之间的关联后,再动手时就会水到渠成,学生在整个思考过程中也会理解为什么和怎么做,在真正理解的基础上掌握知识。
3. 上机实验的环节以引导为主
以原型模式一章为例,它涉及深拷贝、浅拷贝,而其实质就是C++中拷贝构造函数的书写。如果上机实验课中教师能够将其结合起来,会让学生对以前学过的知识有种恍然大悟的感觉,有利于激发他们的兴趣。
同时,上机课一定要摒弃那种教师讲授代码、学生模仿实现的方式,要采取学生自悟为主的形式,让学生有足够的发挥空间。教师千万不要具体到语法的每一个细节,或者直接帮学生调程序,那样学生没有成就感,教师完全可以指出学生的问题所在,让学生自己解决。通过几节课的兴趣提升,大多数学生都能够做完教师布置的作业,實现对知识的理解。
4. 采取灵活多样的考试方式
现在大多数考试形式相对死板,有些学生经过考前的突击死记硬背,依然能够拿到高分。设计模式课实践性非常强,仅仅凭理论考试很难考查学生的学习效果。经过几年的教学,笔者认为,可以采取理论与上机编程相结合的考试模式,比如正式的期末理论考试前,布置一次大作业,让学生利用课余时间独立完成,然后由任课教师批改,得出实践环节的分数。最后再组织一次理论考试,理论考试也尽量灵活,比如所出的题目尽量贴近工程实践,设置的编程题目不要求一定采用某一种编程语言等。
设计模式在计算机基础课程中有着举足轻重的作用,教学内容较为抽象。为了解决该问题,教师需要在教学内容安排、实验、考试形式等环节不断调整、改革,不断提高学生的动手能力。今后的教学实践中,教师要不断深入探索相关的教学方法,不断提高设计模式的教学水平,让学生能够应用相关模式迅速、准确地解决实际问题,学以致用。
参考文献:
[1]刘伟.C#设计模式[M].北京:清华大学出版社,2013.
[2]李文锦.源代码中设计模式实例的抽取及验证方法研究[J].计算机应用研究,2012,29(11):4199-4205.
[3]谢志英.关于计算机编程语言之间融合教学的研究[J].计算机工程与科学,2014(36):212-215.
基金项目:本文受防灾科技学院院级教育研究与教学改革项目(JY2015B09)、防灾科技学院精品建设课程基金(JPJS2016011)以及团队建设项目(JT201504)的资助。
关键词:设计模式;教学方法;教学内容;教学方式;考核模式
设计模式作为计算机专业的核心专业课程之一,既具有很强的理论性,又具有很强的实践性。这门课的开设一般在大三下学期或者大四上学期,需要学生有很强的专业知识基础。通过这门课的学习,学生能够对软件编程环节的分析和设计有更好的把握,因此教师有必要深入研究该课程的教学难点,为更好地调动学生的学习积极性,提高教学效率服务。
一、设计模式教学过程中存在的问题
1. 学生无法深入理解各种具体模式
目前一般院校所开设的设计模式课程,其涉及的知识深度、广度有限。学生对知识的把握受限于教材罗列的模式。学生把书本中列举的模式照搬至实验环节,对相关程序进行编写、编译和调试,较难使学生独立地思考某一模式存在的意义和对应的应用场景,更谈不上知识拓展。如果模式的应用场景发生了变化,教材中没有相应的具体模式可以借鉴应用,学生就会茫然无措,胡编一气,写出来的程序经常需要大修大改。究其原因,学生的学习是被动式的,课堂上教师极少启发学生独立思考,列举的例子机械生涩,不能充分发挥学生的主动性和积极性,导致学生所学知识比较僵化。
2. 学生对前导课程的学习不够深入
各种面向对象编程的语言(如C#,C++,JAVA)及数据结构、数据库是学习设计模式课程的重要基础。但是笔者通过多年的教学实践发现,学生的编程基础参差不齐,有的学生反馈“像听天书”,很多专升本到计算机相关专业的学生甚至没有学过面向对象的编程语言。这些基础较差的学生,通过短时间的设计模式课程学习,只能对基本语法、应用场景有大概了解,无法深入理解原型模式、桥接模式、模板方法、享元模式、职责链模式等较复杂模式的精髓,这给设计模式的学习带来了困难。设计模式课本中与这些内容相关的案例,学生很难把握,只能被动地接受概念,无法进行实际应用。这也是学生学习设计模式通常会遇到的问题。
3. 教学模式单一,不能实现从设计模式理论到实际应用的过渡
当前设计模式教学大多采用多媒体教学为主、上机实践为辅的方式,理论课与上机课不在同一个教室。理论课教学虽然能将一些抽象、枯燥的学习内容形象化,但对于程序具体应用模式不同所产生的效果的差异很难描述出来。学生通过理论课想搞清楚某一种模式对应的应用场景较为困难。另外,即使学生能够在课上理解,但因为不能立即上机验证,学生动手的热情就会慢慢消退。
二、创新设计模式的教学方法
1. 明确模式的应用场景
计算机专业的高年级学生通常已经具备对主干课程知识点重要与否的基本判断能力,但在学习之初仍然存在对相关课程的陌生感。为了让学生更加重视设计模式这门课程,提高学习积极性,教师需要先向学生强调该课程在软件开发课程体系中的重要地位和意义。教师还要编制合理的教案,教案要短小、精炼、具体。教学案例难度适中,太复杂的模式实例,学生经过实践编程后得不到预期结果,会有挫败感。通过对模式的具体编程,学生能够加深认识,对知识点有更准确的理解。
对每个章节,面对不同的模式,学生会有很多问题,如每种模式类型之间有什么关联?为什么编程前最好先想好应用哪种模式,然后带着问题再下手编程?在授课前,教师就应该让学生了解设计模式的规范和标准,不能为了应用而应用。只有学生知道所学知识的作用后,才能学以致用。教师最好能够结合自己的项目经验,在课堂上对每一种模式进行剖析,加深学生的印象。也许有一天学生会忘了某一种模式的具体知识,可是只要遇到相关问题他还能想起教师曾经讲过的案例,那么他完全可以在工作中二次学习,重新掌握相关知识,解决相关问题。
2. 引入“启发、讨论式”课堂教学理念
传统的“填鸭式”教学方式很难让学生产生浓厚的兴趣。学生一般只记住一些浅显的知识,并不适合学习设计模式这种需要理论和实践高度结合的课程。在教学实践中,很多学生反映课堂上当时确实听懂了老师所讲授的知识点,但一到自己编程总是没有思路。这是因为学习是一个循序渐进的过程,所以教师在课堂上除了注重自己的“讲”,还要注重学生的“听”。教师不要一味地“讲”,可以通过提问、讨论的形式,引导学生思考,培养他们分析和解决问题的能力。
最理想的学习方式是通过软件实际工程案例不断引导他们思考,从而使他们积累大量的实践知识。授课教师要对所讲的知识点非常熟悉,能够随时随地在各个知识点间穿插引导,以精彩的讲解引发学生的讨论兴趣。学生在理解了各个知识点之间的关联后,再动手时就会水到渠成,学生在整个思考过程中也会理解为什么和怎么做,在真正理解的基础上掌握知识。
3. 上机实验的环节以引导为主
以原型模式一章为例,它涉及深拷贝、浅拷贝,而其实质就是C++中拷贝构造函数的书写。如果上机实验课中教师能够将其结合起来,会让学生对以前学过的知识有种恍然大悟的感觉,有利于激发他们的兴趣。
同时,上机课一定要摒弃那种教师讲授代码、学生模仿实现的方式,要采取学生自悟为主的形式,让学生有足够的发挥空间。教师千万不要具体到语法的每一个细节,或者直接帮学生调程序,那样学生没有成就感,教师完全可以指出学生的问题所在,让学生自己解决。通过几节课的兴趣提升,大多数学生都能够做完教师布置的作业,實现对知识的理解。
4. 采取灵活多样的考试方式
现在大多数考试形式相对死板,有些学生经过考前的突击死记硬背,依然能够拿到高分。设计模式课实践性非常强,仅仅凭理论考试很难考查学生的学习效果。经过几年的教学,笔者认为,可以采取理论与上机编程相结合的考试模式,比如正式的期末理论考试前,布置一次大作业,让学生利用课余时间独立完成,然后由任课教师批改,得出实践环节的分数。最后再组织一次理论考试,理论考试也尽量灵活,比如所出的题目尽量贴近工程实践,设置的编程题目不要求一定采用某一种编程语言等。
设计模式在计算机基础课程中有着举足轻重的作用,教学内容较为抽象。为了解决该问题,教师需要在教学内容安排、实验、考试形式等环节不断调整、改革,不断提高学生的动手能力。今后的教学实践中,教师要不断深入探索相关的教学方法,不断提高设计模式的教学水平,让学生能够应用相关模式迅速、准确地解决实际问题,学以致用。
参考文献:
[1]刘伟.C#设计模式[M].北京:清华大学出版社,2013.
[2]李文锦.源代码中设计模式实例的抽取及验证方法研究[J].计算机应用研究,2012,29(11):4199-4205.
[3]谢志英.关于计算机编程语言之间融合教学的研究[J].计算机工程与科学,2014(36):212-215.
基金项目:本文受防灾科技学院院级教育研究与教学改革项目(JY2015B09)、防灾科技学院精品建设课程基金(JPJS2016011)以及团队建设项目(JT201504)的资助。