戴华 杨志和
【摘要】针对软件设计模式课程的特点,为了更好地使学生理解并掌握好该门课程内容,提高学习兴趣和主动性,本文针对课程在教材及参考书籍选择、课堂教学方式方法等方面展开探讨和研究,从而实现改进课堂教学效果的目的。
【关键词】设计模式 课堂讨论 翻转课堂 慕课学习
【Abstract】In order to have a better understanding and grasp to course content and improve study interest and initiative of students, in this paper, we discussed the textbook and reference book selection, mode of classroom teaching method and so on according to the curriculum characteristic of software design pattern. By this means, make the goal of improving teaching effectiveness to be achieved.
【Keywords】Design Pattern; classroom discussion; Flipped Classroom; Mooc Study
【基金项目】湖南省高校教学规划课题(XJK014BXX004),校级教改项目(2015C02)。
【中图分类号】G64 【文献标识码】A 【文章编号】2095-3089(2017)31-0247-02
1.引言
软件设计模式课程是许多高校软件工程专业面向高年级开设的一门专业课程,该门课程需要掌握一定面向对象程序设计思想以及熟悉一门面向对象开发语言。软件设计模式的主要是由Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides等四人在其出版的著作《软件设计模式——可复用面向对象软件的基础》首次系统化地被提了出来。软件设计模式是面向对象程序设计的核心思想的深化和经验总结,各种不同类型的设计模式中精炼地给出了面向对象程序设計中解决反复出现的一类问题的固定经验方案和解决框架。
在软件设计模式课程中,一般需要给学生系统地阐述面向对象的软件设计思想,其中包括基本的软件设计原则,如开-闭原则、单一职责原则、依赖倒置原则、迪米特法则等,以及三大类型23种不同的软件设计模式。学生往往是刚刚结束相关的面向对象课程就会开设这门课,用于提高其编程技巧和思想,但是上述这些软件设计模式课程所涉及的内容要都是十分抽象和思想性很强的软件开发经验积累,学生也没有多少实践开发的经验,因此单纯依靠在课堂上简单讲授很难使学生深入理解其中的内涵和作用,因此,如何能够更好地利用课堂讲授时间,探索在课堂教学方式方法上的改革,并有效地激发学生的学习兴趣和课堂后的自主学习动力,成为了上好这门课程的关键。
2.课程教材和参考资料的选择
软件设计模式最早系统化地提出是在Erich Gamma等四人的著作《软件设计模式——可复用面向对象软件的基础》中,本书从模式名称(Pattern Name)、问题(Problem)、解决方案(Solution)、效果(Consequences)四个方面系统地阐述了三大类(即创建型模式、结构型模式和行为模式)23种不同的设计模式种类。此书篇幅不长且内容经典,模式讲解语言以C++为主,后续的诸多有关设计模式的教材和著作都是以该书提出的23种模式为基础进行软件模式设计内容的讲解。因此,这本书可以作为很好的教材使用。但是,由于该书内容较为精炼,同时C++语言由于不是真正意义上完全的面向对语言,没有一定的编程技术和经验积累对书中的内容无法较好地理解。因此,还需要相关的基本参考资料,配合起来阅读才能帮助学生更好地理解书中的内容,这其中反响较好的参考书籍,比如国内由程杰编著的《大话设计模式》和国外翻译教材《Head First 设计模式(中文版)》等。上述这些书籍在设计模式的讲述上更为深入浅出,书中大量使用了贴近生活且容易理解的示例来阐述设计模式中各类模式的内涵,同时,此类书籍讲解所使用的语言均是完全面向对象的软件开发语言,更方便内容的讲解。
3.课堂内外结合教学模式
大学阶段的课程学习,不同于初高中的课程学习,不可能完全通过课堂上的讲解理解和掌握好所学习的知识,这是由培养方式和性质决定的。因此,大学课堂的学习需要课内和课外学习相结合的方式才能更好更有效地掌握相关知识,总体基本教学模式可以采取如图1所示的方式进行。
3.1 利用翻转课堂形式强化课内和课外两个学习场所
在以往课程讲授中,课堂内的讲授是主体,而其他课外方式都是辅助手段。其实,大学阶段的课程学习课堂内外是同等重要的,特别是对于软件设计模式这门课程,该课程需要熟悉一门面向对象开发语言,如Java、C++或C#等,以及面向对象解决问题的方法和思想,课程特性决定了学生需要在课外自学和理解大量相关的课程知识,而课堂则更多的是老师梳理知识体系和师生交流环节,这个方式类似与翻转课堂的形式。只有当学生在课外充分进行了课堂待讲授的相关内容的预习和了解后,才能更容易理解和掌握课堂讲授的内容要点,同时也能更加有效地参与到课堂交流和讨论中,进一步加深理解程度。
3.2 课堂内强化师生两个学习交流主体
在课程内容的讲授中,对于部分课程内容的讲解可以让课程学习较好的学生来上台担任老师的角色,由其为学生进行讲解,通过采取这种方式对学生而言,可以达到几个效果:1)充分调动了部分学习兴趣较高、课程理解能力较强的学生的学习积极性; 2)锻炼的学生对课程内容的理解及其表达能力。对于教师而言,则1)了解掌握学生的学习状况,并据此适当调整课程相关内容的讲解进度和内容等;2)通过先进学生带后进学生的方式使大部分学生都能积极主动地融入课堂。此外,还针对学习重点和难点内容集中在课堂进行师生讨论和交流,结合实验练习利用学习的模式解决相关问题的编程能力,达到教学的相互促进。
3.3 利用网络媒介强化课外学习效率
课外的学习由于没有老师的参与,缺乏了一定的约束,大部分学生由于受初高中教学模式影响较深,因此学生很难在课外保持较好的学习动力和效果。在这种情况下就需要充分利用网络多媒体手段,如在线教学视频、PPT课件及相关课程示例等。在这些课程资源的建设上既可以是校内自主建设也可以挖掘使用第三方提供的课程资料或共建资源。对软件设计模式这门课而言,在网络上对23种不同模式的讲解说明和相关模式的实验示例都是比较多的,利用这些资源,学生可以结合教师讲课内容的要点和要求,在课堂外进一步了解课堂内容讲授的知识细节,实现课堂外学习对课堂内学习的互补作用。
4.总结
本文首先分析了软件设计模式课程的特点,然后重点就教材及参考资料的选择上进行了分析和建议,在课程教学模式上充分利用当前流行的翻转课堂和基于网络的慕课形式,从课堂内外全方面地考虑课程学习,提升学生课程学习兴趣与课程学习效果,文中的部分经验通过在实际课程教授过程中的实践也取得了较好的效果,本文的经验和探索可以为相关课程的讲授提供一定参考。
参考文献:
[1]龙春阳. 课程群建设:高校课程教学改革的路径选择[J]. 现代教育科学, 2010(3):139-141.
[2]刘继斌, 赵晓宇, 黄纪军,等. MOOC对我国大学课程教学改革的启示[J]. 高等教育研究学报, 2013, 36(4):7-9.
[3]李燕君.翻转课堂模式下的计算机网络课程教学[J]. 计算机教育, 2014, No.224(20):18-22.
[4]马玉洁.地方本科院校计算机基础课程教学改革探析[J]. 教育探索, 2011(2):58-59.
[5]万宇文,黄林颖.计算机网络课程教学改革与实践[J]. 计算机教育, 2014(13):79-82.
作者简介:
戴华(1980.10-),男,湖南澧县人,湖南理工学院计算机学院讲师,研究方向:计算机应用技术,系统建模及仿真。
课程教育研究·上2017年31期