作者:高丽萍 彭敦陆 邓桂英 陈庆奎
论文关键词:企业导向 算法设计与分析 创新型
摘要:“算法设计与分析”是计算机科学与技术专业的一门核心课程,是一门理论性与实践性相结合的课程。学生在这门课程的学习过程中过分注重基础理论的学习,动手能力差,不具备算法创新的思想,无法适应世界著名的IT公司大对软件人才的要求。文章讨论了企业用户对员工算法分析与设计能力的需求,针对目前该课程教学中存在的问题,就教学目标、教学内容、教学方法及考核评价等方面进行教学改革,以提高学生的综合能力和教学质量。
算法是计算机学科中最具有方法论性质的核心概念,也被誉为计算机学科的灵魂。“算法设计与分析”是计算机科学与技术专业的一门非常重要的专业基础课,在整个专业教学体系中占有重要地位。这门课程的学习,不仅是对学生前面所学的“程序设计”、“数据结构”、“离散数学”、“线性代数”等课程的理论延伸和强化,而且对后续课程如“编译原理”、“人工智能”、“计算机图形学”的学习及培养学生分析问题、解决问题的能力和软件设计与开发的能力起着至关重要的作用。
当前著名的IT企业特别注重应聘者算法设计与分析方面的能力。这些公司往往要对应聘者进行2-4轮的算法面试,要求面试者在给定的时间内(通常5-15分钟)给出具体问题的抽象数学模型、设计相应的数据结构及算法描述和效率分析。这就要求应聘者对算法设计及分析拥有坚实的理论基础,并具有敏捷的思维,能够在短期内归纳问题的实质,找出多种求解方案并且能够对各种方案的优劣性进行分析比较。
一、教学目标
由于我们学校的本科教学目标是适应社会发展的需要,培养与企业要求接轨的应用型人才。因此,“算法设计与分析”这门课程的教学目标应该是:要求学生在学完这门课程后应能够掌握算法设计与分析的基本理论和方法,了解新兴算法的原理及应用,并培养学生抽象模型搭建、启发式求解、创新求解、发散思维等方面的能力。具体目标如下。
1.重视学生抽象数学模型搭建的能力的培养。
数学模型是利用数学语言(符号、式子与图像)模拟现实的模型。把现实模型抽象、简化为某种数学结构是问题求解的 论文检测天使-免费论文检测软件http://www.jiancetianshi.com
第一步。简单问题仅需要一两种数学模型就可以进行描述,而复杂问题则往往需要多种数学模型彼此关联相互整合而成。数学建模是算法设计的前提,是构建现实问题与算法实现之间桥梁的关键。现代企业需要的不是理论家,而是能够解决实际问题的技术人员,因此必须重视学生这方面能力的培养,使学生具备基本模型构建能力。
2.重视学生发散式思维的训练
发散式思维是指在学习研究、工作中,根据提供的信息,沿不同方向寻求多样的、独特的答案的一种思维方式。它本身有不依常规、寻求变异、探索多种答案的特点。具有发散式思维的人一般具有回避老一套方法的强烈愿望。在提高人的发散式思维能力方面,创造性心理品质就大有用武之地。培养和拓展学生的发散式思维,做到“一个问题,多种求解”,可以启迪学生智力,提高学生举一反三,对比分析,灵活应变,多方位思考及想象创新的能力。
3.重视对学生适用性知识的传授
结合时代发展的潮流和趋势,针对目前流行的新兴技术和方法(例如:团购网站、社交网络、垂直主体搜索、并行算法、启发式搜索算法、遗传算法、蚁群算法、近似算法等),给学生进行一定的讲解和展示,进行相应的案例分析,使之了解其中重要的模型和算法,了解其基本原理,以达到与社会需求直接接轨的目的。因为很多公司在研发过程中新兴算法的使用频度要远远高于经典算法。对新兴算法有所了解,有助于入职者尽快适应岗位需求。
论文检测天使-免费论文相似性查重http://www.jiancetianshi.com
二、教学内容
“算法设计与分析”所涉及的领域非常广泛,通常包括下面几方面的内容:各种基本和经典的算法,如排序算法、图的搜索算法、组合算法、数值计算算法、递推法、枚举法、分治法、贪婪法、动态规划;关于算法分析和算法设计策略、可计算性理论和问题复杂性等方面的理论研究,如计算模型、问题复杂度分析、函数渐进分析等理论;各种新兴算法,如压缩算法、加密算法、人工智能算法、并行算法、随机算法、近似算法、搜索引擎算法、遗传算法等方面的理论及应用研究。我们根据“算法设计与分析”的教学目标,本着“设计与分析并重,基础与应用结合,经典与现代互补”的原则,进行教学内容的选取。具体包括如下几个方面。
“引入章”介绍算法设计与分析的基本步骤,其中包括数学模型构建、“自顶向下、逐步求精”的算法设计过程、循环和递归的设计要点、数据结构的选择及应用,函数渐进分析及算法复杂性度量等内容。
“核心篇”介绍各种常用的算法策略,如递推法、枚举法、分治法、贪婪算法、动态规划及与图搜索有关的算法策略,并对算法策略进行总结比较。
“应用篇”针对具体的应用,采用不同的数学模型、不同的数据结构或不同的算法策略进行算法设计,并进行效率分析。引导学生能够针对具体问题,进行自主的算法设计及分析。
“提高篇”介绍本学科领域的最新进展,讲述并行算法设计技术、概率算法、近似算法、遗传算法、搜索引擎算法等。
在以上各个部分的讲授过程中,还注意引导学生进行数学模型的构建。
三、教学方法
从面向企业需求出发,以培养创新精神和提高实践能力为目标,本课程可以采用多种教学方法,充分发挥学生学习的能动性和积极性。
1.理论与实践相结合
算法可以有多种描述方式,例如自然语言描述、类C语言描述、类Java语言描述等。这些描述无法直接在程序设计环境下编辑和执行,必须进行一定的转化。笔者在教学过程中,经常碰到学生追问“为什么我一字不差地把书上的代码输入到计算机中,却无法运行?”学生在初学算法时,往往无法理解算法描述和程序设计语言之间的区别和关联,总是试图按照程序设计的方法,将算法描述直接输入编辑环境进行编译和调试。因此,在学生学习算法理论的同时,应当引导学生将理论用于实践,完成算法到程序的完美转换。
2.设计与分析相结合
学生在学习过程中,往往只重视算法设计过程,而忽视算法的性能分析。而事实上,算法性能分析在本课程中占有非常重要的地位。通过算法分析可以在不同算法之间进行对比,例如对于排序、查找、最短路径等常用算法已经有很多种,不同算法通常在设计思想、时间和空间性上有其不同的特点,所以在讲授时不仅要把算法思路讲清楚,更应该通过不同算法之间的对比来分析其特点及应用方向。通过对比学习,一方面可以加深学生对所学知识的系统化理解,另一方,有利于引导学生在进行算法设计过程中注重算法效率的提升。
[8]电大学习网.免费论文网[EB/OL]. /d/file/p/2024/0425/fontbr /> 3.课堂授课与网络互动相结合
课堂授课采用多媒体授课模式,可以在有效的教学时间内增加单位时间的信息含量,将有限的时间和精力用于剖析课程中的重点和难点部分。将抽象的算法通过动画演示以直观的形象展示给学生,以辅助学生进行抽象算法的理解。例如:采用冒泡排序进行排序时,利用课件可以让学生更清楚地理解排序过程中两个相邻元素进行比较并相互交换的过程,从而更好地掌握“冒泡”的设计思想。课堂授课的内容制作成PPT在课程网站上发布,方便学生进行课下复习。除此之外,我们也注重加强互动教学环节。在课程网站上开设论坛、答疑、作业、网络考试、问卷调查等模块,通过布置作业、让学生提问、论坛讨论等方式加强教师与学生之间,以及学生与学生之间的协作与交流。
4.具体算法与设计讨论相结合
本课程目标是培养面向企业需求的应用型人才,而现代企业对雇员的要求是希望他们具备开放性思维,能够在面对新问题时有自己的思路和独到的见解,或者是面对旧问题时能够独辟蹊径,采用在时间或空间方面更为有效的方法来进行求解。因此,本课程在教学过程中,除了对具体的算法进行讲解和分析外,还应该针对某些实际问题,引导学生找出其中的关键技术,进行相应的建模,并启发学生进行求解策略的讨论。例如:针对目前的流行的社交网站,引导学生找出其中的核心技术——好友推荐功能,构建其相应的数学模型——图,并进行相应的算法讨论——图的最小路径问题。
5.个人设计与团队合作相结合
随着计算机技术的发展及其广泛的应用,软件开发已经从“个体单干”过渡到了“团队协作”阶段。大型软件的开发离不开团队合作,团队合作精神在软件开发行业有着极为重要的意义,没有良好的团队合作,就做不出好的项目。目前,各大公司在招聘过程中也会对应聘者进行相应的性格测试,以确定其是否具有团队合作精神。据此,本课程在教学过程中,除了要求学生独立完成简单和基本的算法设计外,还会布置相应的团队项目作业,要求学生3-5个人组成一个工作小组,由学生推选组长进行任务整体划分和分配、协调任务完成并进行终期展示和报告,各组员负责各自模块的展示和技术汇报。
四、考核方法
考试的主要作用是对学生所学的知识进行评价反馈、检测教学效果并督促学生认真学习、巩固所学知识,同时也有利于教师发现教学中的问题,不断地改进教学工作。传统的考核方式比较单一,仅根据期末考试的成绩来对学生好坏进行衡量,不利于反映学生真实的学习效果。因此,本课程考核方式主要从以下两个方面做出改革和新尝试。
1.学生成绩由平时成绩、期末成绩两部分组成
其中平时成绩占30%,期末成绩占70%。学生的平时成绩由以下三个因素决定:课堂出勤率,30%;作业完成情况,40%;团队项目中所发挥的作用,40%。
2.期末成绩采取多样化的考核方式
期末考试的形式由学生本人自主选择,分三种类别:理论试卷、上机测试、理论与编程兼备。数学推理能力、算法理论较好的学生可以选择理论类试卷,编程能力好的学生可以选择上机测试,在两个方面都不是特别特长或者两个方面能力均兼备的学生可以选择两种方式共存的模式。
这种自由考核模式体现出考核过程的人性化,避免了传统考核模式中“一刀切”的弊端,有效提高了学生学习的积极性,并实现了与企业需求接轨的教学目标。
五、结束语
“算法设计与分析”课程是一门非常重要的计算机科学与技术专业的核心课程,具有理论与实践并重、设计与分析并重的特点,是保证学生校园所学知识与企业需求相互匹配的关键课程。如何根据企业需求调整该课程的教学目标、教学内容、教学方法及考核方式,是我们进行新一轮课程改革的目标。本文就前面四个方面的教改提出了见解和策略,并将在以后的教学过程中将这些理论应用于实践,以帮助学生尽快适应社会发展的需要,提高他们在社会上的竞争能力。
参考文献:
[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].合肥工业大学学报(社会科学版),2008,(22):64-66.
[8]电大学习网.免费论文网[EB/OL]. /d/file/p/2024/0425/fontbr />
相关文章:
关于提高会计信息质量的思考04-26
施工企业绩效评价体系的建立04-26
略谈国有企业思想政治工作机制创新04-26
浅谈实行厂务公开民主监督工作的有效途径04-26
对军工企事业信息安全保密工作的若干思考04-26
会计造假原因及其防范措施04-26
举例探讨亏损弥补的新旧会计处理政策04-26
施工企业应收账款的形成与解决对策04-26
试论项目化管理在企业管理中的应用基础分析04-26
基于制度理论的企业部门组织结构研究04-26