翻转教学在算法设计与分析中的应用研究

发布时间:2022-03-20 10:35:31   来源:教学考试    点击:   
字号:

摘 要: “算法设计与分析”是计算机科学与技术专业的一门核心课程,是一门理论与实践相结合的课程。传统教学中,该课程主要以教师课堂授课,学生听讲为主,对于基础参差不齐的学生,其授课效果大打折扣。为此提出在算法设计与分析课程的教学过程中,采用翻转课堂代替传统课堂,强调以学生为主体,调动学生的学习积极性,不搞一刀切模式,以问题为导向,引导学生自主学习,课堂互动解疑。文章就教学目标、教学内容、翻转课堂、考核形式四个方面提出了策略。教学实践证明,该教学方法可以明显提高教学效果。

关键词: 翻转教学; 翻转课堂; 算法设计与分析; 课程改革

中图分类号:G40 文献标志码:A 文章编号:1006-8228(2014)11-59-03

Research on application of flipped teaching in algorithm design and analysis

Gao Liping, Liu Ya, Peng Dunlu, Chen Qingkui, Cao Chunping

(School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology, Shanghai 200093, China)

Abstract: Algorithm design and analysis is one of the core courses of computer science specialty, which combines theory and practice. During the traditional teaching process, teachers are teaching while students are listening on the class. For students in different levels, this teaching mode cannot achieve excellent results. Flipped classroom is introduced in this paper to replace the traditional classroom in the teaching process. The students are emphasized as the center of the teaching process. The students" enthusiasm is mobilized. "One size fits all model" is given up. Take the problems as orientation, the students are guided to learn by themselves and interact. Strategies in four aspects including the teaching objectives, teaching contents, flipped classroom and assessment form are proposed. The teaching results show that the teaching methods can improve the teaching effect greatly.

0 引言

“算法设计与分析”[1-3]是计算机相关专业研究生的核心课程之一,这门课程的学习一方面可以巩固之前数据结构、高级程序设计、离散数学等课程的学习内容,另外一方面也培养了学生自主抽象问题、解决问题的能力,是学生从事相关行业工作的知识储备中不可缺少的部分[4-5]。然而,传统的教学过程中,主要以教师课堂授课,学生听讲为主,对于基础参差不齐的学生来说,授课效果大打折扣。

翻转课堂教学法是近年流行的一种新型教学方法[6-7],在国内外很受追捧,从基础教育到高等教育,都涌现出不少成功案例[8-9]。所谓翻转课堂,就是教师创建视频,学生在家中或课外观看视频中教师的讲解,回到课堂上师生面对面交流和完成作业这样一种教学形态[8]。这种教学方法克服了传统教学中教师为主学生为辅的模式中的弊端,教学方式更为灵活,学生可根据自己已有的基础条件,选择适合自己的章节进行学习,并可以自主控制学习的进度。课堂变成了交流和解答问题的平台,比传统教学模式增加了互动环节,因此可以达到更好的教学效果。

在算法设计与分析课程中采用翻转法教学,强调以学生为主体,调动学生的学习积极性,不搞一刀切模式,以问题为导向,采取课堂互动,解疑原则,可以大大改善传统教学模式下的教学效果。使学生学有所学,同时也能消除教师在选择教学素材上因为学生基础水平不同而无从安排的困惑。

1 翻转法教学

1.1 学生特点分析

首先,现代学生在学习、消费、社交等方面,与以往学生有着巨大差异,他们是数码达人、天生的“互联网”和游戏爱好者,他们更有个性,更愿意主动“动手尝试”,而不是“被动听讲”。他们保持注意力的时间较短,倾向于碎片化内容。他们更喜欢简洁、清晰、准确、精炼的信息。传统课堂教师授课为主,学生听讲为辅,以教师为引导的教学方式已经不适应新时代学生。

此外,由于本校研究生中很大一部分比例是其他相关专业转过来的学生,这部分学生中有些甚至未接触过数据结构这一算法的前导课程。学生基础参差不齐,教师为了能够照顾到所有学生的情况,往往在教材选择及课程安排上表现迟疑。选的内容简单了,有基础的学生学不到新知识;选的内容难了,没有基础的学生又像是在听“天书”。

另外,由于算法设计与分析课程是全校选修课,选课的学生除了计算机相关专业的学生外,还有来自光电工程,机械工程,出版印刷等专业的学生,如何协调这些不同专业学生之间的基础差异及目标差异,也是这门课程能否取得较好的教学效果的关键。

1.2 翻转课堂的优点

传统教学强调:学习知识在课堂,内化知识在课外。课堂内进行新课导入,知识讲解,布置作业。而翻转课堂则强调学习知识在课外,内化知识在课堂。课堂外进行自主学习,自定进度,整理收获,提出问题;课堂内则进行展示交流,协作探究,科学实验,完成作业,教师巡视,并进行一对一个性化指导。传统课堂与翻转课堂的对比分析如表1。

表1 传统课堂与翻转课堂的对比分析

[\&传统课堂\&翻转课堂\&教师\&知识传授者、课堂管理者\&学习指导者、促进者\&学生\&被动接受者\&主动研究者\&教学形式\&课堂讲解+课后作业\&课前学习+课堂研究\&课堂内容\&知识讲解传授\&问题研究\&技术应用\&内容展示\&自主学习、交流反思、协作讨论工具\&评价方式\&传统纸质测试\&多角度、多方式\&]

翻转课堂具有以下优点。

⑴ 翻转让学生自己掌握学习

翻转课堂后,利用教学视频,学生能够根据自身情况来安排和控制自己的学习。学生在课外或者回家看教师的视频讲解,完全可以在轻松的氛围中进行,而不必像在课堂上教师集体教学那样紧绷神经,担心遗漏什么,或因为分心而跟不上教学节奏。学生观看视频的节奏快慢全在自己掌握。懂了则快进跳过,没懂则倒退反复观看,也可停下来仔细思考或笔记,甚至还可以通过聊天软件向老师和同伴寻求帮助。

⑵ 翻转增加了学习中的互动

翻转课堂的最大好处在于全面提升了课堂的互动,具体表现在教师和学生之间以及学生与学生之间。由于教师的角色已经从内容的呈现者转变为学习的教练,这让教师有时间与学生交谈,回答学生的问题,参与到学习小组,对每个学生的学习进行个别指导。当学生在完成作业时,教师会注意到部分学生为相同的问题所困扰,于是组织这部分学生成立辅导小组,往往会为这类有相同疑问的学生举行小型讲座。小型讲座的好处在于当学生遇到难题准备请教时,教师能及时地给予指导。

2 翻转教学在算法设计与分析课程中的应用初探

2.1 课程教学目标

研究生算法设计与分析这门课程的教学目标是:使学生掌握计算机应用中经常出现的一些实际问题的求解算法;使学生掌握常用的算法分析与设计的基本原理与技术;使学生具备能针对所给实际问题来设计和实现算法,以及评价算法的能力;培养学生对于所要解决的问题,总是努力去设计出尽可能好的算法的良好习惯。课程教学具体目标如下。

⑴ 巩固之前基础知识

针对学生基础薄弱的情况,设计相应的学习环节,包括:数据结构中的线性结构/非线性结构、栈和队列、二叉树、图等基本概念及算法,对程序设计与算法设计之间的知识进行衔接。让基础差的学生能够补充应有的基础知识。

⑵ 培养学生基本算法设计原理及方法

要求学生掌握各种基本和经典的算法,如排序算法、图的搜索算法、组合算法、数值计算算法、递推法、枚举法、分治法、贪婪法、动态规划、回溯法等。通过基础算法的学习,培养学生基本的算法设计与分析的能力。

⑶ 培养学生自主解决问题的能力

通过对常用的、有代表性的算法的研究,让学生理解并掌握算法设计的基本技术。培养学生分析算法复杂度的初步能力,锻炼其逻辑思维能力和想象力,并使之了解算法理论的发展。鼓励学生运用算法知识解决各自学科的实际问题,培养学生的独立科研的能力和理论联系实践的能力。

⑷ 重视学生发散式思维的培养

培养和拓展学生的发散式思维,做到“一个问题,多种求解”,可以启迪学生智力,提高学生举一反三,对比分析,灵活应变,多方位思考及想象创新能力。

⑸ 重视新兴技术及算法的传授

针对目前流行的新兴算法(例如:并行算法、变现检索算法、遗传算法、蚁群算法、布谷鸟搜索算等),结合算法应用,对算法原理及其实现方法进行介绍,并引导学生通过这些算法来解决实际的问题。使研究生具备解决新问题的能力。

2.2 课程教学内容

算法设计与分析课程主要介绍计算机程序设计中常见的非数值算法设计策略,具有一定的深度和广度。内容包括:算法分析的基本概念、基本设计技巧、分治法、动态规划法、贪心法、图的遍历方法、回溯法,以及随机算法、近似算法、遗传算法、搜索引擎算法、压缩算法等。我们根据算法设计与分析的教学目标,本着“设计与分析并重,理论与实践结合,经典与现代互补”的原则,进行教学内容的选取。具体有以下几个方面。

⑴ 算法概述。主要介绍算法基本概念,算法复杂度的基本概念及时间复杂度的计算方法。

⑵ 算法基本设计技巧。主要介绍算法设计与分析的基本步骤,其中包括:数学模型构建、“自顶向下、逐步求精”的算法设计过程、循环和递归的设计要点、数据结构的选择及应用,以及函数渐进分析及算法复杂性度量等内容。

⑶ 分治法。主要介绍分治法基本思想,二分搜索技术,大整数乘法,矩阵乘法,棋盘覆盖,合并排序,快速排序,线性时间选择,最接近点对问题,循环赛日程表等。

⑷ 动态规划。主要介绍动态规划的基本要素,矩阵连乘,最长公共子序列,最大子段和,凸多边形最优三角剖分,多边形游戏,图像压缩,电路布线,流水作业调度,0-1背包问题,最优二叉搜索树等。

⑸ 贪心算法。主要介绍贪心算法的基本要素,活动安排问题,最优装载,哈夫曼编码,单源最短路径,最小生成树,多机调度等。

⑹ 回溯法。主要介绍回溯法的算法框架、符号,三角形问题,n个皇后问题,最大团问题,图的m着色问题,旅行售货员问题,圆排列问题,连续邮资问题,电路板排列问题等。

⑺ 分支限界法。主要介绍分支限界的基本思想,单源最短路径,布线问题,0-1背包问题,批处理作业调度问题等。

⑻ 新技术介绍。介绍本学科领域的最新进展,讲述并行算法设计技术、概率算法、近似算法、遗传算法、搜索引擎算法等。

2.3 翻转教学方法

打破传播课堂授课为主的传授模式,强调学生自主学习和讨论学习,以翻转课堂取代传统课堂,充分发挥学生学习的主动性和能动性,以下介绍具体步骤。

⑴ 准备教学视频

翻转课堂中的视频不需要客串课程中所有的内容,只需要针对难点和重点部分进行专题讲解即可。每一个视频都是针对一个特定的算法,有较强的针对性,方便学生进行查找。视频的长度也应该控制在学生注意力能比较集中的时间范围内。例如:采用冒泡排序进行排序时,利用视频可以让学生更清楚地理解排序过程中两个相邻元素进行比较并相互交换的过程,从而更好地掌握“冒泡”的设计思想。

⑵ 构建视频服务器

在校园网申请独立的视频服务器,要求有较大的存储空间,能够同时满足100人在线的响应需求,保证视频播放的速度。上传文件和在线播放需要高带宽和高容量硬盘的支持,硬盘需要10000万转的高速硬盘。通过磁盘阵列设置多个硬盘 ,同时需要100M独享。

⑶ 搭建微教学网站

课堂授课的内容制作成视频在课程网站上发布,方便学生进行课下学习。支持学生进行知识点和章节选择,安排自己的学习计划。除此之外,我们也注重加强互动教学环节。在课程网站上,开设论坛、答疑、作业、网络考试、问卷调查等模块,通过布置作业、让学生提问、论坛讨论等方式加强教师与学生之间,以及学生与学生之间的协作与交流。

⑷ 重构学习流程

通过“翻转课堂”对学生的学习过程进行重构。“信息传递”是学生在课前进行的,教师不仅提供视频,还可以提供在线的辅导;“吸收内化”是在课堂上通过互动来完成的,教师能够提前了解学生的学习困难,在课堂上给予有效的辅导,同学之间的相互交流更有助于促进学生知识的吸收内化。

⑸ 新的复习检测模式

视频后面安排几个小问题,以帮助学生及时进行检测,并对自己的学习情况做出判断。如果发现几个问题回答的不好,学生可以回头再学习一遍。例如,冒泡排序视频结束之后,安排几个具体的例子要求学生进行练习,按照冒泡排序的思想进行排序练习。

2.4 考核方法

考试的主要作用是对学生所学的知识进行评价反馈、检测教学效果并督促学生认真学习、巩固所学知识,同时也有利于教师发现教学中的问题,不断地改进教学工作。传统教学中的考核方式比较单一,仅根据期末考试的成绩来对学生的学习进行衡量,不利于反映学生真实的学习效果。因此,本课程考核方式主要从两方面做出改革和新尝试。

⑴ 学生成绩由平时成绩、期末成绩两部分组成。其中平时成绩占50%,期末成绩占50%。学生的平时成绩由三个因素决定:课堂表现(10%),作业(20%),实验成绩(30%)。

⑵ 鉴于目前网络的发达,实验成绩以课堂“限时限域”为基础,即要求学生在给定的时间地点完成相应的题目。这样可以杜绝学生借助网络资源直接拷贝一些现成的资源。

这种考核模式体现出考核过程的人性化,避免了传统考核模式中“一刀切”的弊端,有利于提高学生学习的积极性,并强调学生的动手实践能力。

3 总结

算法设计与分析课程是一门非常重要的计算机科学与技术专业的核心课程,具有理论与实践并重、设计与分析并重的特点,是提高学生编程能力的关键课程。针对研究生教学中学生基础参差不齐的情况,本文提出采用翻转教学法代替传统教学,以克服教师为主,学生为辅,所有学生接受统一教学内容的弊端,强调以学生为主体,由学生按照自身的情况来自主安排学习,并通过课堂交互方式与老师进行沟通。本文从教学目标、教学内容、翻转课堂、考核形式四个方面提出了自己的见解和策略,并在教学过程中予以实践。实践证明,学生的学习积极性和教学效果都得到了极大提高。

进一步的研究工作将包括进行更多微视频的制作,从而将原来PPT中的内容全部以微课堂的形式展现出来,并进一步扩大翻转课堂在研究生教学中的适用范围。

参考文献:

[1] 吕国英,任瑞征,钱宇华.算法设计与分析(第2版)[M].清华大学出版

社,2009.

[2] 王晓东.计算机算法设计与分析[M].电子工业出版社,2003.

[3] Cormen,T.H.,潘金贵.算法导论[M].机械工业出版社,2001.

[4] 陈蕾,张怡婷,许建.基于创新能力培养的算法设计与分析课程教学

改革[J].计算机教育,2010.20:27-29

[5] 高尚.“算法设计与分析”课程改革初探[J].教改纵横,2008.14:

37-38

[6] 张金磊,王颖,张宝辉.翻转课堂教学模式研究[J].远程教育杂志,

2012.4:46-51

[7] 曾明星,周清平,蔡国民,王晓波,颜一鸣,黄云,杨燕萍.软件开发类课

程翻转课堂教学模式研究[J].实验室研究与探索,2014.33(2):203-209

[8] 曾明星,周清平,王晓波,蔡国民,董坚峰.软件工程专业“翻转课堂”云

计算教学平台探讨[J].现代教育技术,2013.23(8): 26-31

[9] 吕光.翻转课堂教学模式在《居住空间设计》课程教学中的应用研究[J].

艺术科技,2014.4:10-13

Key words: flipped teaching; flipped classroom; algorithm design and analysis; curriculum reform