APP下载

算法分析与设计(双语)课程实践教学模式探索

2017-10-21杨彦红

中国管理信息化 2017年19期
关键词:实践教学

杨彦红

[摘 要] 针对算法分析与设计(双语)课程的当前教学状况,分析和研究国内外计算机学科顶尖大学相关课程的开设情况,针对学生实践能力、问题分析求解能力及创新思维能力的不足,提出课程的实践教学改革,介绍了开放式研讨式教学结合的实验教学到开放式大作业考核方式的关键环节具体实施过程。

[关键词] 算法分析与设计;双语课程;实践教学

doi : 10 . 3969 / j . issn . 1673 - 0194 . 2017. 19. 095

[中图分类号] G642 [文献标识码] A [文章编号] 1673 - 0194(2017)19- 0227- 02

1 背景及意义

随着“互联网+”技术的推进,使用计算机解决实际领域问题的专业人才培养是计算机相关学科教育的根本目的[1]。算法分析与设计(双语)课程(以下简称“算法课程”),在国内外各大学的计算机专业课中处于核心地位,卡内基梅隆大学将“Algorithm Design and Analysis”列为必修课程,斯坦福大学和麻省理工学院分别将“Design and Analysis of Algorithms”列为核心课程和先导课程。

算法课程开设在本科大二的下半学期,课程要求综合利用所学过的知识,学习和研究经典的问题及其算法,并能够面临实际的问题给出高效优化的算法。课程首先需要有一定的英文基础能力,需要具有逻辑性、抽象性和较好的数学基础。

算法课程的教学安排上借鉴开放式教学模式,是科恩的人本主义教学理论和斯皮罗的建构主义教学理论。教学主要目的是激發学生的学习主动性和热情,培养学生的创造力和提高学生的主动思维能力、口头表达能力、书面表达能力和实际应用能力;中心问题就是更好地发挥学生在学习中的主动性和积极性,摆脱以往教与学脱节的痼疾,以更有效地培养学生的独立工作和学习能力[2]。

2 算法课程实践教学的具体过程

算法课程实践教学的为了培养学生的计算思维,运用计算机科学的基础概念进行问题的求解、系统设计及其人类行文理解等涵盖的一系列思维活动。包括了一整个把一个困难问题,通过简约、嵌入、转化和仿真等方法进行求解的一系列过程的思维方法。可以认为是一种递归思维,采用抽象和分解的方法来控制庞杂的任务或复杂系统的设计,或对一个问题的相关方面建模使其易于处理的思维方式。作为计算机专业的人才,需要进行计算思维的实践能力的训练。算法课程要求能够对复杂问题加以抽象或约简,给出形式化的描述并找到正确高效的求解方法。在课程实践教学的过程中,通过以下几个方面进行实践教学的探索。

2.1 教材及参考文献选择

为了借鉴国内外优秀教材的精华,选择了两本外文书籍:由Thomas H.Cormen编写的《算法导论》和Jon Kleinberg编写的《算法设计》。参考了弗吉尼亚大学和普林斯顿大学的课件。

为了帮助学生更好地理解,尽管是双语课程,仍然选取了屈婉玲编写的《算法设计与分析》作为课后阅读材料。

2.2 课堂讨论设计

采用课堂讲授与研讨式课堂讨论结合的教学形式。由于算法课程本身的特点,每个专题具有一定的独立性,而且非常适合通过以具体的问题和具体应用为驱动,展开分析和讨论,并引导学生设计算法,培养创新能力。

例如在讲使用动态规划完成最长字符串匹配的过程中,引入基因组序列的匹配的背景,引导学生展开讨论。通过让学生进行研讨和汇报,表达能力、思维能力、实践能力都得到了提升。在整个的教学过程中,这样类似的讨论在5次以上,时间控制在半小时内。

2.3 大作业实践内容的安排

由于算法课程是一门专业选修课,采用大作业的形式进行考核。为了提高学生的实践能力,并且和学生的生活中的实际问题相结合。设计了三个开放式的大作业的题目,内容如下:

(1)高考考生志愿推荐。运用学生的知识和能力,完成一个高考志愿推荐的程序。提示:只针对北京市地区的学校,从网站找一下近三年的计算机专业录取的高考分数,及学校的其他信息(可以选择10所学校)。 输入: 成绩 要求(对校园环境、食堂情况、教师情况等);输出: 第一志愿 第二志愿 第三志愿。

(2)游戏组队。假设学生在一家游戏公司实习,要求实现一个程序,当一个用户进行游戏前,自动给出一个匹配的方案(3~4人的组队游戏)。提示: 可以根据具体的游戏具体分析。

(3)闺蜜好友推荐。假设现在是一个微信聊天群的群主,可以获取群内人的信息及朋友圈的信息。写一个程序,利用你可以获取的信息为群里的每个人推荐3个志趣相投的好友。通过朋友圈的信息,年龄,地区等进行特征的提取。

这些题目和学生生活的环境相关,他们很容易理解题目的内容,但是对于大二的学生而言非常具有挑战性。首先需要对问题进行抽象,选取关键的因素。其次,对问题进行建模。再次,选取合适的算法,例如可以使用在课堂上讲过的逆序对的计算来表示匹配度。最后,通过测试并完成作业的报告。

2.4 教学评价

教学评价采用综合评定的方式进行,平时成绩占20%,实验成绩占30%,大作业成绩50%。平时成绩包括到课率、上次率及讨论发言的情况给予成绩。实验成绩是由6~7个小的实验组成,重点联系单个算法的思维,例如贪心、动态规划、回溯等。大作业评分标准按照问题抽象程度,问题考虑的范围,算法实现过程,测试的结果和报告等几个部分给出分值。

3 结 论

通过算法课程的双语教学,稳抓实践的过程,学生在英语语言水平、实际编程能力、分析问题能力得到了提高。对之前所学的数据结构、程序设计基础等课堂内容知识加深了理解,建立了优化的计算思维,从之前单纯的解决问题,到立体全面的分析问题,给出较优解并能够分析算法的复杂度。

课程教学过程中,充分参考和借鉴国内外的优秀教材的,加入了思维训练和开发式讨论,扩展学生思维。在这次的大作业的实践过程中,题目是开放式的,需要学生自己去查找相应的资料,网上找数据或是自己模拟一些数据。关于算法的设计也不是固定的,因此很多学生反馈大作业较难。确实和传统的课程大作业有较大的区别,但这种训练培养学生对复杂问题的解决能力。算法分析设计的思维和能力是计算机专业的基础能力,具有其专业特色,并使学生在以后的工作中受益。

主要参考文献

[1]屈婉玲,王捍贫,段莉华. 面向软件工程学科的算法课程建设[J]. 中国大学教学,2012(12):55-57.

[2]何克晶,张星明,郑运平. 算法设计与分析课程全方位实践教学改革探索[J]. 计算机教育,2017(2):45-49.endprint

猜你喜欢

实践教学
基于体验式教学的管理学课程教学改革与实践
客户关系管理课程实践教学模式初探
地方高校城乡规划专业实践教学的特色化探索
茶学专业校企合作实践教学探索
《电气工程毕业设计》 课程的教学设计
基于卓越计划的金属结构材料课程实践化改革与建设
基于应用型创新人才培养的模块式实践教学体系构建
研究型学习在传热学实践教学中的应用
思想政治理论课实践教学研究述评
高职院校商务礼仪课程教学改革探索刍议