电脑桌面
添加盘古文库-分享文档发现价值到电脑桌面
安装后可以在桌面快捷访问

ACM/ICPC论文

来源:文库作者:开心麻花2025-11-191

ACM/ICPC论文(精选3篇)

ACM/ICPC论文 第1篇

ACM国际大学生程序设计竞赛(ACM International Collegiate Programming Contest,简称ACM/ICPC)是全球规模最大,最有影响力的大学生程序设计竞赛。其目的旨在使大学生运用计算机来充分展示自己分析问题和解决问题的能力。它始于1970年,到2013年为止已经举办了37届。这项国际顶级赛事是大学生智力与计算机解题能力的竞赛,是大学生展示水平与才华的大舞台,是全球高校计算机教育成果的直接体现。该项竞赛分为区域赛和世界总决赛,各大洲的区域赛安排在上一年的9月-12月进行,第一名自动获得参加世界决赛的资格,世界总决赛安排在每年的3月-5月举行[1]。

ACM/ICPC要求以团队的形式参赛,每个队伍由3名队员组成。每队使用一台计算机,要求选手在全封闭的环境内(不能有任何通讯设备,可以携带任何纸质资料)连续5个小时对8-11个问题进行解答。竞赛采用英文命题,题目涉及面非常广。需要参赛学生具有扎实的基本功、良好的分析问题的能力、较好的团队协作能力和压力下编写程序的能力。该竞赛为学生提供了一个学习和使用程序设计语言和算法的完整实践模式,让学生以精通编程为荣,形成一个积极向上的学习氛围。

对于师资和生源都不如重点本科院校的普通本科院校,在ACM/ICPC竞赛中处于劣势,“通过怎样的竞赛教学来尽量弥补普通本科院校的不足,从而能在ACM/ICPC竞赛中取得理想成绩”是一个值得深入探讨的问题。该文结合本校的经验和教训,对ACM/本科院校的不足,从而能在ICPC竞赛教学进行探讨。

2 普通本科院校在ACM/ICPC竞赛教学中存在的问题

2.1 普通本科院校不能照搬重点本科院校的教学模式

普通本科院校与重点本科院校的基础条件不同,重点本科院校师资的个人能力和生源的个人素质都较高,教师按日常教学模式教学——老师传授什么学生就接受什么的教学方式,学生也能接受和消化,而普通本科院校则不行。因为在这种教学模式中学生往往处于被动学习状态,没有充分独立分析和思考的时间,加上竞赛教学内容本身比日常教学内容要难很多,学生接受能力相对较差。所以这种教学模式运用在竞赛培训中直接导致学生的学习效果差,对知识点的理解也就是在老师讲的那一刻,老师讲完后就变得模糊甚至忘记。同时竞赛教学的实践环节主要以学生自己利用课余时间完成为主,没有相应的实践教材,老师只提供问题和题解。学生学习全凭兴趣和自觉性,一旦题目稍有变化,就不知该如何解答,导致学习积极性下降,甚至放弃。长期以往,学生对知识点的理解抽象,解决问题能力低下,在竞赛中很难取得理想成绩。

2.2 竞赛教学内容不规范

ACM/ICPC竞赛内容涉及面广,没有统一的标准教材可供参考。虽然现在市面上有一些ACM/ICPC的参考教材,但是没有整体性和层次性,学生学习起来非常吃力,需要指导教师重新组织和安排。

2.3竞赛成绩不稳定

有一些院校依靠某一届学生取得了好成绩,而后成绩大幅下滑,很不稳定。主要原因在于没有形成完善的培训体系,在没有完善的培训体系下成绩的好坏很大程度依赖学生的个人素质和努力程度,而学生的素质和努力程度受到各种因素的影响。

2.4 竞赛指导教师能力不足且更换频繁

一般在指导竞赛之前,指导老师基本上没有任何ACM/ICPC竞赛的经历,需要从头开始。而指导教师们本身还面临教学和科研的工作上的压力和照顾家庭等生活上的压力,没有充足时间来学习竞赛涉及的知识,教学的效果并不理想。所以形成了很多指导教师在指导了几年之后便选择退出,前面知识和经验积累都白费的恶性循环。

2.5竞赛团队配合不理想

ACM/ICPC竞赛是3个队员组成团队的竞赛,但是在竞赛教学中指导老师往往只注重学生个人能力的培养,忽视或不重视团队配合的教学。从而造成在竞赛中学生还处于单打独斗的局面,相互之间缺少交流,甚至不交流,形成1+1+1<3的局面。

因此,针对普通本科院校在竞赛教学中存在的以上问题,如何改进竞赛教学模式,如何建立完善的培训体系,如何稳定指导教师队伍,如何提高团队配合效果,进而提高竞赛成绩这些问题值得探讨。

3 普通本科院校ACM/ICPC教学的探讨

3.1改变日常教学模式,突出任务驱动式的教学

学生有学习知识的内在需要,同时又有在竞赛中取得理想成绩的目标,其实有很强的学习动力。竞赛教学的根本目标是激发学生自身的这种学习兴趣和学习需要[2]。在本校的竞赛教学中,我们将学生聚集起来,为学生提供一个竞赛测评系统,教师先跟学生交流,主要由学生自己决定学什么、学多少、怎么学。教师根据经验负责在恰当的时候为学生进行基础知识、相关数据结构和算法的集中培训,让学生自己设定学习目标,分析学习内容,制定学习计划,获得学习资源,管理学习过程,并在学生有疑问时进行解答。这样,学生的主观能动性被极大地发挥出来,为了能够解决竞赛中的难题,队员们常常采取多样的学习方式,可旁听高年级的相关课程,可利用网络寻求直接的经验总结,可钻研参考书目获得理论知识。同时,学生之间也可以相互竞赛。当有的学生在一个假期内做出上百道题而有的学生只做出几十道题时,危机意识会更加促进学生的学习和进步。通过一个假期的强化训练,某些学生会意识到平常需要一年或几年学习的内容在两个月内就掌握了。

3.2 完善培训体系,规范竞赛课程,合理安排教学内容

学生有较高的逻辑思维能力,扎实的数学功底。竞赛还涉及到数论、离散数学、组合数学、计算几何等方面的知识[3]。要让学生在ACM/ICPC竞赛内容没有固定范围,一方面要求学生熟练掌握计算机课程中的程序设计、数据结构、算法分析等知识,还要求两三年左右的时间熟练掌握这些知识需要规范竞赛课程,合理地安排竞赛教学内容。

以我校为例,ACM/ICPC竞赛培训班下设三个班,分别为基础班、中级班和高级班。基础班针对刚进校的新生,新生一般基础都比较薄弱,在中学很少涉及上述知识。基础班主要使学生熟练掌握一门编程语言,并学习一些数学知识、简单算法、模拟和标准模版库(STL),通过大量的习题训练积累和提炼出编程技巧,提高学生自身编写代码、调试程序的能力。中级班以数据结构、高级算法、数论、简单计算几何为基础,强化解题和编程能力,扩展学生在动态规范、搜索、分治等计算机领域算法知识和博弈、组合计数等组合数学知识。高级班主要学习线段树、伸展树、动态树等高级数据结构、二分图、最大流、费用流等图论知识内容,解决前面所学内容组合的综合题,全面提升学生解决竞赛中复杂问题的综合知识应用能力。

课程的规范化,在很大程度上避免了学生为掌握全面的知识而四处搜寻书本、文献等资料所花费的精力和时间,合理安排教学内容让学生循序渐进地掌握竞赛内容,减少学生竞赛学习中的挫折感,较好地保证竞赛培训的高效性。

3.3 保证稳定的指导教师队伍,提升教师指导水平

在教学和科研任务上适当减少指导老师的工作量,让指导老师有一定的空余时间学习竞赛相关知识,辅导学生,安排学生训练。教师的知识积累和专业功底会帮助他在较短的时间完成一个新问题的攻关,将方法与学生共享,形成良性循环。同时给与培训指导教师适当的优惠政策,吸引教师长时间从事培训工作,使指导教师队伍保持稳定。

3.4 加强竞赛中团队协作的训练

验甚至性格和行为都能互补,使参赛小组的三个人之间达到完美的合作,形成一个和谐的整体[4]。在平常的日常训练中,对于一个在ACM/ICPC中,团队协作精神是取胜的最重要的非技术性因素。在组建团队的过程中,要让团队成员之间的知识、技能、经团队的三名队员来说要加强下面几个方面的训练:

首先,通过训练熟悉各个队友的长处和短处。在比赛中,应该尽量将每个题目都分配给最适合它的人来做。比如,录入程序快的队员就上机操作,英文能力强的队员就解释题目,精通算法的队员在解题思路上多拿主意。

其次,提高自己的口头表达能力,能准确地向队友表达自己的意思。比赛中,选手常常需要将题意转述给队友,表达不清很可能会误导队友,给全队带来巨大的损失。竞赛中遇到难题,需要集合全队的力量共同攻克,每个人需要能清晰地表达自己的想法。

再次,逐渐熟悉队友的程序设计风格,每个队员都要尽量去做到程序书写规范。ACM/ICPC的测评是严格的,只有通过了全部测试数据,该题才算完成,要对则全对,要错则全错。一个题编码完成并不代表该题解决了,程序中可能隐藏着各种错误,当队友需要帮助的时候,要快速读懂其程序,找出其中的隐患。

最后,通过训练使团队能力最大化地发挥出来。队员之间相互信任,充分发挥每个队员的个人能力和团队的集体智慧,同时合理安排机器的使用,尽量提高机器的使用效率,从而达到“1+1+1>3”的效果。

4 结束语

ACM/ICPC论文 第2篇

关键词:ACM;实践教学;程序设计

中图分类号:TP312.1-4 文献标识码:A文章编号:1007-9599 (2011) 09-0000-02

By The ACM/ICPC Programming Class to Explore Agricultural Colleges Teaching Reform

Zhang Ying,Wang Yi,Yao Juan,Jin Xing,Xiang Jinhai

(Huazhong Agricultural University Department of Computer Science,Wuhan430070,China)

Abstract:The agricultural colleges teaching courses in program design problems in the analysis of ACM/ICPC contest model characteristics,based on the study based on ACM/ICPC programming courses teaching methods,teaching methods and assessment mechanisms for reform,and propose concrete measures in practical applications and achieved certain results.

Keywords:ACM;Practice teaching;Programming

一、ACM/ICPC简介

ACM国际大学生程序设计竞赛ACM/ICPC(ACM International Collegiate Programming Contest是由国际计算机界历史悠久、颇具权威性的组织ACM学会(Association for Computing Machinery)主办,是世界公认的规模最大、水平最高的国际大学生程序设竞赛,其目的旨在使大学生运用计算机程序设计理论(包括数学素养、程序设汁语言、数据结构、算法分析等)来充分展示学生分析问题和解决问题的能力。ACM/ICPC被看作在校大学生的一场奥林匹克竞赛,成为参赛选手展示计算机才华的舞台,是著名大学计算机教育成果的直接体现[1]。

纵观多年ACM/ICPC竞赛,和农业院系程序设计类课程的教学相比,有如下几大特点[2]:

(一)ACM/ICPC题目涉及知识面比较广,来源于生活中实际问题,并融入了程序设计、数据结构、算法分析与设计、人工智能、离散数学等多学科领域的理论和方法。知识面涵盖了所有的程序设计类课程,而且与程序设计类课程的常规例题相比,学生更有兴趣,学习自主性更容易调动。

(二)每个参赛队伍由3人组成,比赛时每个队只分配一台电脑。小组成员需要明确知道自己和队友的专业特长,才能对问题合理分工,提高解题效率。除此之外对算法思路的良好描述、同一问题不同解决方案的合理论证等都极大地考验选手的团队协作精神。普通的程序设计课程实验均由学生独立完成,较少有相互的探讨和分工协作。

(三)ACM/ICPC采用5小时全封闭竞赛,以各队所解出问题的多少和总用时的长短排名。采用在线测评系统进行评判,体现了比赛的公正公平;对提交程序的要求不仅包括正确性,还包括对运行时间、占用内存和输入输出格式的限制,考查选手对算法的灵活运用。普通的程序设计类课程考核方式为笔试,无法正确检验学生实际动手能力的强弱,而实验考核也无提交时间限制,公正性、真实性无从考量。

ACM/ICPC竞赛设定了一套合理的竞赛排名、挑战规则,提供了一个学习和使用程序设计语言和算法的完整实践模式,将这种模式运用到程序设计课程的教学中必将取得显著效果。

二、基于ACM/ICPC的程序设计类课程改革

(一)农业院校程序设计类课程教学面临的问题

华中农业大学理学院计算机科学系面向全校农科、工科、理科、文科、生科等专业共开设了三门程序设计类的公共必修课:C++、VB.NET、数据库技术。面向计算机科学与技术、信息与计算科学、信息管理与信息系统、地理信息系统等专业开设了C++、数据结构、算法分析等程序设计类课程。由于此类课程本身涉及知识点多、逻辑性强、抽象性高、理解难度大,农业院校学生学习起来比较吃力,大部分学生动手实践能力不强,用所学知识解决实际问题的能力较弱。特别是在从事大型软件工程时,灵活应用相应算法能力比较欠缺的矛盾突出,成为当前亟需解决的问题。在一些农科专业里,学生更是提不起学习兴趣,单纯为了应付考试而学习。而计算机相关专业的教学过程与工程项目衔接不够紧密,导致学生动手实践能力弱,难以将实验功底转化为从业能力。

(二)教学方法的改革

1.与专业结合实现学科交叉

计算机科学非常强调理论联系实际,面对枯燥的理论,学生刚开始可能还比较感兴趣,但时间一长,热情则递减。程序设计公共课教师可根据所教授专业的专业特点和学生敏感的专业话题入手,开篇即给出一个实际应用的问题,带着问题教学,用一根红线贯穿教学的始终。

例如:针对生物学专业教师可以给出分子生物学中基因搜索匹配问题,引發学生兴趣。接下来在后续教学中以此为引例,循序渐进的介绍数组、串、类、简单查找等。当解决了简单搜索的编程实现以后,教师进一步针对如何存储数据量庞大的基因信息、如何提高检索速度等提问,激发学生进一步思考,进而介绍快速排序、文件存储等知识点。再如:针对园林专业教师可提出如何建立植物信息库的问题;针对工程专业教师可提出计算几何算法在机械设计制图中的应用等问题。通过对教材内容的扩展,让学生切实感受到在加强理论学习的同时,还须与实际应用联系起来,这样学生学起来更有兴趣,教学效果也会提升不少。

而如何与专业挂钩,如果发现计算机编程在专业上应用的合适的切入点,还需要计算机系教师和专业教师进一步的沟通交流。我们按计算机系教师的科研方向将教师分组到每个对口的专业,实现学科之间的交叉,以更好的完成教学。

2.以能力目标为导向的项目教学

ACM/ICPC论文 第3篇

关键词:程序设计,ACM/ICPC

1 引言

目前,程序设计类课程是我国各大高校计算机学院中计算机科学与技术、软件工程等专业开设的专业基础课程。根据各个专业要求的不同,课程开设的时间、课时和深度也有所不同,课程主要目标在于培养学生良好的逻辑思维能力、扎实的程序设计能力和一定的研究创新能力[1]。衡阳师范学院作为一所应用型本科院校,遵循培养适应社会需求的高等技术应用型专门人才的培养宗旨,一直在进行程序设计类课程教学方法改革的研究和实践。学院中程序设计类课程和ACM/ICPC竞赛教学中具有丰富教学经验的老师们,通过深入的思考和学习,不断地进行教改尝试,在程序设计类课程教学中引入ACM/ICPC竞赛,探索出一条提高程序设计类课程教学质量的新途径。

2 程序设计类课程教学现状

2.1学生逻辑思维能力基础较弱

对于地方性本科院校特别是师范类学校,学生的理科入学成绩往往不够理想,学生的逻辑思维能力也不足。入学后对于理科类课程的学习没有给予足够的重视,加上程序设计类课程对逻辑思维能力要求较高,使得学生在学习程序设计类课程的时候感觉非常吃力,难以得心应手地加以应用。

2.2 学生缺乏学习兴趣

程序设计本来是一件比较枯燥的工作,如果没有兴趣很难坚持下来。在程序设计类课程的学习中学生由于缺乏兴趣,除了上课听老师讲讲课,实践课做做练习外,课余时间几乎不做练习。而要提高程序设计能力是需要反复地多做练习的。现有的程序设计类课程教学中在如何激发学生对程序设计的兴趣和提高学生的自学能力和主动学习的意识缺乏有效的办法。

2.3 课程考核模式落后,缺乏激励机制

当前程序设计类课程考核在很多学校还是主要采用笔试为主的传统考核模式,在课程总评成绩的计算中实践部分所占的比重很少,有的学校甚至没有把它算入考试成绩。而且考试的内容局限于教材中的知识点,试题型中客观题比重大,考察思维能力的程序设计题少,缺乏对学生知识结构与实践技能的综合考察,不利于学生综合应用能力的培养和创新精神的形成,最终形成“高分低能”的现象。

2.4 缺乏互助学习氛围

当前软件项目的开发都是以团队形式实施的,一个软件人员是不可能掌握所有的专业知识,项目开发的成功需要团队成员之间的合理分工和无障碍沟通。在程序设计类课程教学中,互助方式的学习环节非常少,学生往往各自为政,相互之间的交流很少。虽然有些学校在课程设计环节采用了分组进行的模式,由于各个学生水平不一样,造成在具体的设计过程中,往往有些学生只是简单的挂了个名,并没有真正的参与,更谈不上形成团队相互学习了。

3 ACM/ICPC介绍

Association for Computing Machiery(简称ACM,美国计算机协会)是一个世界性的计算机从业员专业组织,创立于1947年,是世界上第一个科学性及教育性计算机学会。ACM国际大学生程序设计竞赛(ACM International Collegiate Programming Contest,简称ACM/ICPC)是全球规模最大,最有影响力的大学生程序设计竞赛。其目的旨在使大学生运用计算机来充分展示自己分析问题和解决问题的能力。它始于1970 年,到2015年为止已经举办了39届。这项国际顶级赛事是大学生智力与计算机解题能力的竞赛,是大学生展示水平与才华的大舞台,是全球高校计算机教育成果的直接体现[2]。

ACM/ICPC要求以团队的形式参赛,每个队伍由3 名队员组成。每队使用一台计算机,要求选手在全封闭的环境内(不能有任何通讯设备,可以携带任何纸质资料)连续5个小时对8-11个问题进行解答。竞赛采用英文命题,题目涉及面非常广。需要参赛学生具有扎实的基本功、良好的分析问题的能力、较好的团队协作能力和压力下编写程序的能力。该竞赛为学生提供了一个学习和使用程序设计语言和算法的完整实践模式,让学生以精通编程为荣,形成一个积极向上的学习氛围[3]。

4 融入ACM/ICPC竞赛的程序类课程教学改革

通过学校近几年来参与ACM/ICPC竞赛的实践和多年程序设计类课程教学的经验总结,将ACM/ICPC竞赛融入到程序设计类课程教学中。

4.1建立ACM/ICPC在线评测系统

ACM/ICPC在线评测系统一个可以自动评判用户提交程序是否正确的评测系统。有了这个系统学生就可以通过注册、登录后,自己做练习,无需教师人为干预。我们学校自己开发的ACM/ICPC在线评测系统如下图1所示。教师保证后台数据库的负载和数据存储的安全,安排学生轮流对系统进行监管,保证系统的正常运行。

4.2 课堂教学融入ACM/ICPC

ACM/ICPC竞赛是分组的,每个组由三名队员组成。在比赛中考验的不仅是每个队员的思维、知识、心里和意志,还考验三个队员之间的团队合作,要发挥1+1+1>3的效果。在教学的过程中,将班上的同学类似ACM/ICPC竞赛模式进行分组,培养他们的合作意识。并将平时成绩转化为积分,积分以小组的形式给出,学生可以通过以下途径获得积分:

(1)上课主动回答问题或提出问题。

(2)指出老师或同学程序中出现的问题。

(3)在学校的在线评测系统做题。

(4)在学校的在线评测系统的互动版块帮同学解决问题。

(5)在学校的在线评测系统中出原创题目等等。

一个学期的平时成绩就是积分,积分越多的小组三个成员的平时成绩就越高。这样既提高了学生的学习兴趣,又培养了学生的团队合作精神。

4.3 实践教学全程ACM/ICPC化

实践教学是程序设计类课程教学中非常重要的一环,在以前的实践教学中,一个老师要面对几十个学生,无法顾及到所有学生,学生写的程序自己无法判断对错,从而挫伤了学生编程的积极性。将实践教学ACM/ICPC化,学生在做练习时递交的程序能够在线即时判断正确与否,如果错了会给出相应的错误提示,这样能极大提高学生学习编程的积极性,同时在线评测系统可以放开时间,在实践课上没有做完的题目,课后可以接着做,这样学生不会因为实践课相隔时间长而忘记上次课所学的内容。

4.4 改革考核手段

将ACM/ICPC融入到考核机制中也是程序设计类课程改革的一个重要内容。我们可以将期末的笔试改为基于ACM/ICPC竞赛模式的机试。同时将学生在前面课程教学中获得的积分以50%的权重加入到课程考核指标当中。这一方面减少了教师的工作量,降低了考核错误率,另一方面做到了客观、公正,更好地发掘学生的创新能力,提高其对知识点的掌握程度[4]。

5 结束语

本文分析了程序设计类课程教学存在的问题,介绍了ACM/ICPC竞赛,通过将ACM/ICPC竞赛融入到程序设计类课程教学,对程序设计类课程教学与实践进行改革。经过这几年的学校督导组的评价、学生的评教,证明了这种改革能够推动计算机程序设计类课程的建设,有助于培养学生的逻辑思维、程序设计、团队合作和协同能力。

参考文献

[1]刘晶,吕艳琳,李尤丰.基于ACM竞赛平台的程序设计课程教学模式改革的探索[J].《江苏教育学院学报(自然科学版)》,2010(10):73-75.

[2]王宏,吴文虎.清华实践教学“赛课结合”新思路[J].计算机教育,2006(7):10-12.

[3]赵磊,魏书堤,陈坚祯,陈琼,姚丽君.普通本科院校ACM/ICPC竞赛教学的探讨[J].电脑知识与技术,2015(2):129-130,136.

ACM/ICPC论文

ACM/ICPC论文(精选3篇)ACM/ICPC论文 第1篇ACM国际大学生程序设计竞赛(ACM International Collegiate Programming Contest,简称ACM/I...
点击下载文档文档内容为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部