计算机教学与教育信息化
本栏目责任编辑:王
线上编程课排名力
结合OJ 及竞赛的算法设计与分析课程教学实践
时慧琨
(淮南师范学院计算机学院,安徽淮南232038)
摘要:针对算法设计与分析课程教学中教学以讲授为主、学生缺乏实践机会及实践脱离应用实际的问题,从在线测试(OJ )
系统建设、实践团队组织、教学活动开展和竞赛组织参与等方面,详细阐述了在教学过程中结合OJ 以及竞赛开展课程教学的实践模式,激发学生学习主动性,引导培养学生分析问题,解决问题能力及团队合作能力,提高教学效果。关键词:算法设计与分析;OJ ;教学实践中图分类号:G642
文献标识码:A
文章编号:1009-3044(2021)10-0149-03
开放科学(资源服务)标识码(OSID ):
Teaching Practices of Algorithm Design and Analysis Combined with OJ and Competitions SHI Hui-kun
(School of Computer Science,Huainan Normal University,Huainan 232038,China)
Abstract:In the teaching of algorithm design and analysis course,there are some problems such as too many theoretical teaching,lack of practical opportunities and practice divorced from real application,etc.This paper elaborates on the practical mode of com⁃bining online judge(OJ)system and competitions in the teaching process from several aspects include OJ system construction,prac⁃tice team organization,teaching activities development and competition organization participation.Practices proved these measures can stimulate students'learning initiative,guide and cultivate students'ability of analyzing,problem solving and team working,so as to improve the teaching effect.
Keywords:AlgorithmDesignandAnalysis;OJ;teaching practice
1算法设计与分析课程
算法设计与分析课程是高校计算机专业学生的一门专业必修课,该课程主要学习算法设计和算法分析的基本理论及方法。通过课程的学习,掌握算法设计的一般技术,能够对给定的问题进行分析,建立数学模型,设计解决问题的算法,并进而将其转换为程序。学生同时也要能够从时间和空间角度对算法的性能进行分析,选择合适的算法设计方法以高效的方式解决问题,培养学生分析问题、解决问题的能力及编程实践能力和创新能力。
算法设计与分析课程直接以用计算机技术解决实际问题为教学目标。利用计算机技术解决问题和其他解决问题的方法不同,在解决问题时并不是针对数据实例直接处理,而是要分析问题的本质特性,建立问题求解模型,设计问题求解的步骤或算法,并开发程序,程序由计算机执行并得到结果。开发的程序要求能够对问题的各种输入都得到正确的结果,并且程序通过重复执行和复制传播,从而成倍的提高生产效率。这样一种解决问题方法的实现要求学生具备更高的分析、概括和抽象思维能力,同时也要求学生具备较高的设计能力和软件开发
能力。算法设计与分析课程就是一门综合培养这些能力的课
程,课程的教学效果对学生的培养质量有直接的影响。目前社会上对计算机专业学生的需求和学生的实际能力存在一定的脱节,部分就是因为学生分析问题,解决问题能力的缺乏。因此,在算法课程的教学中,研究如何提高培养质量,提高学生的分析能力、实践能力和创新能力非常重要。
2程序设计竞赛及OJ 系统
程序设计类竞赛中最早、最有名的是ACM-ICPC (ACM 国际大学生程序设计竞赛),竞赛历史最早可以追溯到1970年,是一项旨在展示大学生创新能力、团队精神、分析、解决问题以及编程能力的年度竞赛。2018年,来自全球6大洲,111个国家,3098所大学的5万多名选手参加了比赛。这一比赛采用3人团队合作利用一台计算机解题的比赛机制,自出现以来,在国际上获得了广泛的影响,国内也出现了采用类似机制的各类程序设计比赛,例如CCPC 中国大学生程序设计竞赛以及各省教育厅组织的程序设计竞赛等。另一方面,因特网上出现了各类的Online Judge 系统(OJ ),这是一种模拟ICPC 机制的在线判题系统。常见的OJ 系统包括POJ 、ZOJ 、HDOJ 、Vijos 、USACO
收稿日期:2020-09-20
基金项目:淮南师范学院教学研究项目(2016hsjyxm10)作者简介:时慧琨(1975—),男,安徽淮南人,讲师,硕士,研究方向为机器学习,数据挖掘。
149
本栏目责任编辑:王力
计算机教学与教育信息化Computer Knowledge and Technology 电脑知识与技术第17卷第10期(2021年
4月)
等。一些OJ 系统的源码,例如HUSTOJ 等也在因特网上公开,自主开发的难度也不大,这也大大促进了OJ 系统的普及,为广大师生的编程练习提供了绝佳的平台。
3结合OJ 及竞赛的算法设计与分析课程教学措施
OJ 作为一个在线测试及实践平台,内部包含大量练习,可以提供给学生内容和难度各异的练习机会。学生可以在OJ 系统中针对每一个任务进行分析和编程,并提交代码,OJ 系统用内置的数据进行验证,并返回“通过”或者错误的原因。目前,国内外的各种OJ 系统主要用于学生练习和比赛,并没有和教学紧密联系。如何结合OJ 系统以及程序设计竞赛,提高学生学习的积极性和主动性,提高算法设计与分析课程教学的效果,在如下几个方面给出建议,供大家参考:3.1OJ 系统的建设
目前已有的各种OJ 系统主要是针对竞赛及较高水平学生学习需求设立,在题目编排、难度划分上并不适合用于教学,缺乏层次性和教学的针对性。为此,我们在公开的OJ 系统的基础上,将算法设计与分析以及相关的高级语言程序设计、数据结构等课程的例题和课后习题加入OJ 系统中,学生在学习完相应内容后,可以直接在OJ 系统中开展练习,由OJ 系统进行判定[1]。为了方便大家学习,提供测试数据下载的功能,方便学生进行检查分析。通过这些练习,为学生掌握课程教学内容提供了实践机会。同时,将一些竞赛材料中的试题及竞赛题也输入到系统中,以满足学生进一步学习及竞赛练习的需求。除
此之外,为部分学生开放权限,鼓励学生在题库中添加内容,在添加内容时可以指定题目相关的知识点及难度等信息,方便学生在教学过程中根据自己的需要进行选择。同时,也鼓励学生注册国内外其他OJ 平台账号,并在平台上开展练习及交流。3.2课程学习及实践团队的建设
算法课程的学习需要进行不断的实践练习,利用OJ 进行实践练习是一项比较枯燥的学习过程,学生要在“思考-练习-总结”的过程中不断循环,拥有一个良好的学习氛围非常重要。为此,在课程学习的过程中,由教师成立了教学答疑交流的QQ 和。学生学习中的疑问可以在内提出,由教师或者其他学生进行解答,通过交流,教师了解了学生学习的情况,调整教学重点和教学进度。学生之间的解答交流提高了学生的学习成就感和学习积极性。当课程结束后,学习解散,但是对编程感兴趣的同学自发成立了新的交流和团队,这种和课程教学无关,由兴趣自发建立,且能够不断发展壮大。通过这样一种方式为基础,我们组建了多个编程兴趣小组开展线上的交流活动。同时,线下以实验室为活动场所,以学生自我管理为主,教师指导为辅,由老队员牵头,开展团队内比赛和讲座等活动,形成团队的学习和合作氛围。竞赛活动选择团队表现优秀者参加,进一步激励学生学习和参与的积极性。3.3算法设计与分析课程的教学
算法设计与分析课程的教学目标主要是培养学生的算法设计和算法分析能力,在教学过程中,教学重点的选择、教学方法的使用,要为实现教学目标服务。
(1)教学重点。算法设计与分析的教学重点让学生领会每种算法设计方法的基本思想[2],例如分治法的分而治之思想、贪心法的贪婪思想以及各种算法的使用条件,算法之间的差异
等,这些内容构成了算法的基本特性。针对某个问题,能够用
什么算法设计方法来解决,学生只有当对算法设计方法的基本思想、使用条件等具有了清晰准确的了解后才能把握,才能透过问题看清问题的本质。对每种算法设计方法,重点不是去背相关的理论,而是要将其应用到具体的问题解决过程中。教材中的样例一般比较具体,在功能需求、处理对象定义等方面比较直接具体,学生根据题目描述就可以同算法设计方法建立联系。OJ 平台中包含大量的具体问题,这些问题一般是从生产生活实际而来,需求比较模糊,解决这些问题要求学生具备较强的分析、概括和抽象能力,更能够锻炼学生的问题分析及转化能力。因此,在教学过程中,可以选择部分OJ 中的题目作为教学样例,鼓励学生去阅读思考,从问题的描述中出其功能需求、处理对象定义和处理过程描述,以提高学生的分析能力。
(2)教学方法。算法设计与分析课程的教学目标是让学生掌握算法设计相关的基本方法。因此,发挥学生的主动性,在教师的引导下,通过教学实例的讲解和练习,使学生理解、掌握相关设计及分析方法是教学的基本目标。
在教学过程中,采用项目驱动型教学[3]和启发式教学,针对
每个问题,加强启发引导,按照算法设计的基本步骤[4]
,要求学生回答如下问题或完成如下任务:
①理解问题:问题求解目标是什么?问题的输入、输出是什么?问题及输入输出有什么约束?
②选择算法设计技术:可以采用哪些方法实现?每种方法的基本思路是什么?
③设计并描述算法:采用一种描述手段描述算法的流程④手工运行算法:设计一组或几组输入样例,包括正常情况下、极端情况下的输入数据,对每种输入按照算法的流程计算结果
⑤分析算法效率:分析计算算法的效率,判断效率能否符合要求,能否进行改进,如何改进。
⑥实现算法:采用某种语言,将其转换为程序。这些问题,可以提前布置,也可以在课堂上提出,要求学生自主思考,开展讨论,给出结论,由教师做出点评或总结。针对较难的问题,教师可以给出提示,或者指出一种答案,由学生补充完善其他结果。实例的选择要由易到难,由简单到复杂。鼓励学生讨论交流,培养学生的思维能力、团队合作精神。
(3)实践教学
实践教学内容包括实验、课程作业、学生科研、课程设计等内容。实验和课程作业可以在OJ 平台上进行,学生完成后,直接提交,由系统给出评判结果。学生在课下也可以自己登录OJ 平台,选择其中课程相关的任务开展练习活动[5]。OJ 平台不定时开展专题比赛或专项练习,并提供了竞赛排行、总完成量统计、准确率排名、分时段统计等相关信息,进一步激发了学生互相“攀比“的积极性和学习主动性。
(4)教学考核
课程考核是对学生学习情况的检验,也是对学生学习成果的肯定。无论是OJ 上的练习,还是参与竞赛,好的成果需要得到肯定从而激励更多学生参与其中并追求更高目标。为此,在课程考核时除了考虑考试成绩外,将学生OJ 的练习情况也作为作业完成情况考虑在内,同时将竞赛的成果作为成绩评定的加分项。除此之外,学校为在省级以上比赛中获得等级的选手有一定的物质奖励。这些措施使学生看到了实实在在的成果,
150
计算机教学与教育信息化
本栏目责任编辑:王
Computer Knowledge and Technology 电脑知识与技术
第17卷第10期(2021年4月)
从而增强了学生学习和参赛的积极性。3.4竞赛的组织参与
近年来,我们建立了自己的OJ 系统,对其中积极练习、完成情况较好的同学吸收加入编程兴趣小组,鼓励并组织同学参加学校组织的程序设计大赛,选择其中的优胜者参加安徽省程序设计大赛、蓝桥杯、计算机软件设计大赛等相关赛事,这样形成了“OJ 系统-编程兴趣小组-院级编程竞赛-国家及省级编程竞赛“的四级程序设计实践体制。学生在各类比赛中获奖的等级和人数在全省同等层次高等院校中处在前列。这些成果既是学生积极努力的成果,也和采用合理的教学方法和组织培养机制分不开的。
4结语
算法设计与分析课程是培养计算机专业学生计算机应用
实践能力的重要课程,OJ 系统的使用以及参加竞赛为学生提高自身能力提供了很好的锻炼途径和实践平台,通过建设合理有
效的实践体系和环境,积极鼓励引导学生参与实践,能够提高教学效果、增强学生应用创新能力。在今
后的教学和应用中,着重优化实践内容,优化成员结构形成梯队,形成更强的竞争力及可持续发展能力是进一步努力的方向。
参考文献:
[1]陈翔.面向不同层次学生的算法设计与分析课程教学改革探索[J].计算机教育,2014(18):19-22,26.
[2]孙廷凯,於东军,余立功,等.算法设计与分析课程教学改革探索[J].中国轻工教育,2012(1):61-63.
[3]林劼,戴波.项目驱动型算法设计与分析课程教学方法[J].计算机教育,2014(9):69-71,93.
[4]王红梅,胡明.算法设计与分析[M].北京:清华大学出版社,2013.
[5]何克晶,张星明,郑运平.算法设计与分析课程全方位实践教学改革探索[J].计算机教育,2017(2):45-49.
【通联编辑:王力】
(上接第140页)
4)以项目定期展示提高学生工作室工作热情为了更好地调动学生工作室学习的积极性,一定要设计定
期展示环节。通常为每周进行一次作品进展展示汇报,根据内容也可以每次课程学习进行短暂展示汇报。即可以督促学生任务完成情况,同时班级之间形成各工作室之间的竞争氛围,更有利于促进学生的学习热情。最后在课程结束时,每组要进行完整作品的汇报展示。同时,教师也积极鼓励工作室通过各种网络平台如朋友圈、抖音等发布展示作品。以集赞评分等方式促进学生对于作品推广展示的热情,同时有利于专业宣传与学校宣传工作。
4“影视后期制作工作室”模式在课堂教学中的效果
“影视后期制作工作室”教学模式既体现了“做中学,学中
做”,又将职业的情景带进教学过程[5],激发学生的学习兴趣,培养了学生分析与解决问题的能力,开发学生思维能力,为学校与企业的无缝对接创造了条件首先,素材都来自同学们的拍摄,这就在学习使用Premiere 时,就更能吸引同学们的兴趣。
然后在制作影片剪辑时,学生不但能更熟练地使用Premiere 这款软件,更能发挥学生自主创新的能力,同时通过同一主题的训练,学生们的作品进行对比,更能发现自己的优点和不足之处,从而使学生更好地学习和掌握影视后期制作这门课程。
参考文献:
[1]陈丹,张天琪,李涛.Premiere Pro CS5.5案例教程[M].北京:高等教育出版社,2015.
[2]李冬芸,王一如,赵莹.Premiere+After Effects 影视编辑与后期制作[M].北京:电子工业出版社,2014.
[3]数字艺术教育研究室.中文版Premiere Pro CC 基础培训教程[M].北京:人民邮电出版社,2016.
[4]张技术.工作室建设与发展模式探讨[J].设计艺术,2008(6):43-44.[5]倪亮节.以“工作室制”项目教学法来提升中职平面设计专业学生的实战能力[J].科学咨询,2015(10):76-77.
【通联编辑:谢媛媛】
(上接第142页)
线上线下结合的方式,迎合学生的学习需求,从而以一种学生更加容易接受的方式,培养学生的学习习惯、增强自主学习能力。在新的时代背景下,高校的教学方法也应当随着社会的变化而引入新的教学元素,顺应时代的变化趋势。在不确定的后疫情时期,只有不断地进行改革创新,才能在新时代的背景下将教学质量提升到一个新的高度。
参考文献:
[1]
v/jyb_xwfb/gzdt_gzdt/s5987/202002/
t20200205_418131.html.
[2]刘永芬,赖晓燕,李盼盼.人工智能时代背景下Python 课程的案例教学研究[J].计算机时代,2019(4):89-92.
[3]张顺利,黄文芝.计算思维导向的离散数学混合教学模式研究[J].计算机教育,2019(3):39-43.
[4]田翔华,森干,李莉.大学计算机基础课程形成性评价改革探索[J].电脑知识与技术,2019,15(24):158-159,176.
[5]刘磊,张太红,刘志凯.基于开源edX 的新农慕课的实现与扩展[J].农业网络信息,2015(2):108-111.
【通联编辑:王力】
151

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。