acm程序设计培训总结

2024-04-23

acm程序设计培训总结(精选11篇)

篇1:acm程序设计培训总结

赛后总结

虽然已经是大二第二学期了,这却是我的第一真正的ACM比赛经历,赛后感觉自己水平很差,感觉很不好,或许只有受到了了打击,才会有成长,也只有在一次次的打击中吸取经验,成为自己前进的动力。

这次比赛总结起来发现了我们的好多不足之处,第一个就是我们经验的缺失,毕竟是我们第一次参加这样的比赛,还有就是对做题顺序的把握不好,对题目难易程度判断不准确,如果做一个题发现思路错了,我们应该要及时改变思路,跳过去,先去做下面容易的题,等回过头来在做,要用尽量短的时间把我们知道做的题做出来,有些题,我们有思路,不敢保证完全做出来,就放到后面再去做,还有就是比赛的时候心态不好,中间做的时候就比较焦急,这样对自己的思路也会有影响,要调节好自己的情绪,还有就是要及时改变策略,多看榜,看到有很多人a的题目,我们肯定要去看一下,一开始我们就应该把题目全部都看一遍,最重要的是我们的实力还是不行,对于有些简单的题目还是不够熟练,思路不够清晰,下阶段要进一步有针对的加强训练!

比赛结束,我们真的是百感交集,有过遗憾,有过不甘心,有过失望,本来这次比赛应该是很好拿奖的,但最终我们还是与奖状擦肩而过,可能与经验的缺乏有关,我想更多的应该还是实力的差距,自己的实力不行,做什么都是白搭。所幸的是,我们明年还有一次机会,再努力一年,我想我们明年再战的时候,一定可以取得一个很好的成绩。

14物联网 贾文彪

篇2:acm程序设计培训总结

一、目的和意义

为提高我院学生的创造力、团队精神以及在程序设计和软件开发中的能力.二、承办单位

计算机科学学院acm协会

三、比赛时间

报名时间:

比赛时间:

四、参赛对象

计算机学院全体学生

五、比赛地点:钟楼

六、参赛要求.报名方式.比赛形式

(1)本届比赛采取现场答题形式。参赛集体报名后在规定的时间内可以到比赛场地试机。进入决赛的参赛集体在规定的地点使用配置相同的机器进行比赛。

(2)本届竞赛设 5 道题目,比赛时间都为 3小时,超过规定时间,提交的答案将无效。(3)参赛集体答题时可以选择 C、C++ 语言答题,每道题目将以最后提交的代码为准。3 .比赛要求

(1)参赛团体在规定答题场所不得竞赛组委会指定工作人员以外的人交谈。系统支持人员可以回答和系统相关的问题,例如解释系统错误信息。

(2)参赛团体有权提交解释请求,针对题目描述中的不明确或错误的部分提问。如果评委确认题目中确实存在不明确或错误的部分,将会通告所有参赛队伍进行声明或更正。(3)参赛团体不能携带任何电子设备,例如手机、电脑、U盘、MP3、好易通等;允许携带纸质材料,包括源代码,参考书,字典。

(4)当参赛团体出现妨碍比赛正常进行的行为时,诸如擅自移动赛场中的设备,未经授权修改比赛软硬件,干扰他人比赛等,都将会被竞赛组委会取消参赛资格。

篇3:acm程序设计培训总结

21 世纪,科技的发展日新月异。在众多科技中,我国的软件行业正处于高速发展的成长期。目前,我国正在进行经济转型和产业升级,那么,提供具有自主知识产权、高附加值的生产和服务模式是各行各业努力的方向,其中信息技术产业是经济转型和产业升级的支柱和先导。十八大提出了”坚持走中国特色新型工业化、信息化、城镇化、农业现代化道路,推动信息化和工业化深度融合、工业化和城镇化良性互动、城镇化和农业现代化相互协调,促进工业化、信息化、城镇化、农业现代化同步发展”,其中信息技术产业是“两化融合”的核心,是实现新型工业化道路的关键环节。同时,信息技术及其它高新技术也是传统产业的重要辅助因素和推动力量。软件产业是信息技术产业的核心组成部分,随着经济转型、产业升级及”两化融合”进程的不断深入,传统产业的信息化需求将会不断激发,带来巨大的市场机遇。同时伴随着未来人力资源成本的不断上涨,以及提高自主核心竞争力的双重压力,IT应用软件和专业化服务的价值将更加凸显。软件行业机遇与挑战并存。那么,社会对程序设计人才的需求将进一步提高。

高校ACM程序设计大赛培训现状

目前,在国内,各大高校通过多种方式对相关学生进行ACM程序设计大赛培训。主要有以下几方面的培训:

1、ACM程序设计大赛所需基础知识方面:C语言程序设计,数据结构,高等数学,英语等。这些基础知识在相关专业的课程中都有,已有不少高校在相关课程的教学过程中将ACM程序设计大赛的相关内容渗入进去,特别是相关专业课程的教学过程加大了动手能力的训练比例。当然高校内也有兴趣班或者培训班对有兴趣的学生进行基础知识培训。

2、ACM程序设计大赛所需逻辑思维能力方面:程序设计对人的逻辑思维严密度要求很高,可谓“一着不慎、满盘皆输”,程序有一处出错就不能正常运行。由此可知,有了扎实的基础知识远远不够,逻辑思维能力对程序设计人员同样极其重要。目前,已有多所高校针对逻辑思维进行培养,当然,大致分为两大模块,1、课程中渗入培养;2、课余时间专门培训。

3、ACM程序设计大赛所需团队合作能力方面:ACM程序设计大赛需3 人组队参赛,每队分配1 台计算机,5 小时解决10 余个问题,成绩评定以正确解决题目个数为主,时间为辅来决定。学校成绩按该校参赛成绩最好的队伍排名[8] 。这就需要极强的团队合作能力,使结果呈现”1+1>2”的情形。因此,众多高校也在课堂上和专门的培训中加入了团队合作能力的培养。

4、ACM程序设计大赛所需实战能力方面:比赛要求参赛队完成多个题目,比赛题目知识面广、难度大、运用灵活,并且与实际应用紧密结合[8] 。现在,众多高校校内,校际比较已屡屡举行。

以上几方面的培训不少高校已拥有相关系统可供学生自行学习,但是这些系统往往只是将互联网引入培训,并没有达到”互联网+”的层次。

“互联网+”时代下高校ACM程序设计大赛培训

互联网本着其”开放,平等,协作,共享”的精神和特点在进入社会数十年来对我们的生活产生了巨大的影响。“互联网+”实际上是创新2.0 下的互联网发展新形态、新业态,是知识社会创新2.0 推动下的互联网形态演进。2015 年10月29 日,中国共产党第十八届中央委员会第五次全体会议指出:实施网络强国战略,实施”互联网+”行动计划,发展分享经济,实施国家大数据战略。”互联网+”是利用信息通信技术以及互联网平台,让互联网与传统行业进行深度融合,创造新的发展生态。

本文就怎样让ACM程序设计培训走入”互联网+”时代进行了渗入的探讨,现从ACM/ICPC培训管理系统的设计与实现一文中的系统进行探讨,该文将互联网引入了ACM程序设计竞赛培训并实现了培训管理系统,但并没有充分的利用互联网资源使”互联网+”走入到培训中,该系统的系统功能结构图如图1 所示。该系统包含五大功能模块,其中资源管理模块仅涉及到看资源,找资源,下资源,并没有真正意义上实现培训;在在线测试模块下有:选题,提交,测试,排名,这些对个人能力的提升确实有帮助,但是团队合作并没有体现。为了弥补这些不足,本文结合”互联网+”时代的特点,在该系统的基础上进行了改进,其系统的系统功能结构图如图2 所示,改进后的系统增加了定期课程模块,在一定的时间由培训老师上培训课程,其他人可以在线或下载相关课程视频,这样就将培训真正意义上的放在了网络上;还增加了定期PK模块,该模块可以让用户在特定的时间模拟ACM程序设计竞赛来自行组队参加PK赛,并允许未参加PK赛的人进行观战,最终使得ACM程序设计竞赛培训全面走向网络,正式进入”互联网+”时代,从而可以高效率、低成本的完成ACM程序设计竞赛培训。

总结

本文对”互联网+”时代进行剖析,并针对ACM程序设计竞赛培训的现状和在”互联网+”时代下的ACM程序设计竞赛培训进行了深入探讨,最终结合现有系统进行了改进,进而来实现将ACM程序设计竞赛培训走进“互联网+“时代。

参考文献

[1]李尤丰.程序设计大赛对高校创新人才培养的作用[J].计算机教育,2011,(18):4-7

[2]宋芳琴,蔡志荣.高职ACM程序设计竞赛培训策略的研究与实践[J].计算机教育,2015,(8):36-39

[3]王顺利,刘宝娥,马元飞.ACM/ICPC培训管理系统的设计与实现[J].中国管理信息化,2014,(3):28-30

[4]赵亮,彭宇行,张春元,谭春娇.对ACM国际竞赛的有关思考[J].计算机教育,2014,(16):14-17

[5]http://baike.sogou.com/v76281348.htm

[6]黄升民,刘珊.“互联网思维”之思维[J].现代传播,2015,(2):1-6

[7]李海舰,田跃新,李文杰.互联网思维与传统企业再造[J].中国工业经济,2014,(10):135-146

篇4:acm程序设计培训总结

关键字:程序设计基础课程;ACM竞赛;教学改革

中图分类号:TP311.1-4 文献标识码:A 文章编号:1674-7712 (2014) 16-0000-01

程序设计基础课程是计算机专业学生的基础必修课,也是计算机专业学生学习其他课程的基础,该课程在整个学科体系中具有重要作用。对于计算机专业以软件工程应用为培养目标的学生,程序设计能力的强弱是检验毕业生是否合格的重要标准,也是学生毕业后从事计算机相关方面工作的基本必备技能。然而,传统的以语法描述为主线的教学方式、模式化的实验内容,使学生普遍反映程序设计基础课程枯燥难学。因此我院在课程教学实施过程中采用了基于ACM竞赛模式对教学内容、课程考核方式等做了改革,并取得了良好的效果。

一、ACM竞赛简介

ACM程序设计大赛是大学级别最高的脑力竞赛,素来被冠以"程序设计的奥林匹克"的尊称。大赛自1970年开始至今已有40年历史,是世界范围内历史最悠久、规模最大的程序设计竞赛。ACM竞赛的规则是每队(3人)使用1台电脑需要在5个小时内使用C、C++、Pascal或Java中的一种编写程序解决8或10个问题程序完成之后提交裁判运行,运行的结果会判定为正确或错误两种并及时通知参赛队。ACM竞赛的价值和意义是提倡在压力较大的情况下,培养学生的创造力、团队合作精神以解决竞赛的问题。

二、传统的程序设计基础课程教学过程中存在的问题

(一)理论课程主要以语法为主线,理论知识面面俱到,课堂枯燥,学生没有学习兴趣。程序设计基础课程是计算机专业的第一门专业基础课。教师在讲授过程中重视语法的讲解,课堂内容繁多,不敢进行大胆的知识点讲解取舍;不敢进行细节的讲解取舍;总认为课堂越细越好。学生上课时感觉内容繁多,枯燥没有学习兴趣。

(二)程序设计基础课程的实验课时有限,不能充足满足学生的编程需要。程序设计基础课程在院校中课程的理论课时和实践课时的比例为2:1,学生实践环节过少,实践课堂只能完成简单的验证性实验。

(三)实验内容单一,只是单独的算法的程序设计,缺少综合性实验。首先,传统实验教学中,实验内容大多以章节为单位,以算法为主线,学生通常只把注意力集中在每一个单独算法掌握中学生的综合知识运用的综合性实验在教学中很少体现。学生的综合编程设计能力得不到训练。

(四)缺少课程设计环节,学生缺乏团队合作的锻炼。在软件的开发设计过程中,都是以团队合作的方式来完成的。程序设计是软件开发的工具。然后在程序设计基础的在教学过程中,教学大纲中缺少課程设计环节,这使得学生遇到实际问题,没有分析问题,解决问题的能力,同时学生没有团队合作的意识,不能在程序开发过程中运用模块化的思想进行分工,学生没有团队合作的空间。

(五)考核方式仍然是以笔试为核心,实践为辅的方式,不能科学的对学生的编程水平给出公正的评价。在教学过程中,对学生的期末试卷进行分析时,常常发现有些学生编程部分得分很少,但依赖理论部分得分,居然也能考试及格。程序设计课程的实践性非常强,评价方式应该更倾向于实践能力的考核,否则培养出来的学生根本不能独立进行程序开发。所以以笔试为核心,实践为辅的考核方式已经不适应人才的培养。

三、基于ACM竞赛模式的程序设计基础课程改革方案

我院从2007年开始参加ACM的省赛,东北四省赛,以及亚洲预选赛。几年来的训练、参赛的经历使我们意识到,ACM竞赛模式体现了建构主义学习理论的基本要素,在学习环境条件的设置、内在动机的激发、团队合作建立等方面都起到了积极的作用,这种竞赛模式为我们的教学改革提供了一种新的思咱。为此我们提出了基于ACM竞赛模式的程序设计基础改革方案,并在实际的教学过程中取得了良好的效果。

(一)以ACM竞赛的真题为案例驱动方式来组织教学内容,丰富课堂教学内容,激发学生的学习兴趣。程序设计基础课程是学生接触的第一门专业课程,学生学习有一定的难度。将ACM竞赛中的案例引入课程教学中,激发学生探索研究的兴趣,丰富课程教学内容,能够更好的调节课堂气氛,教学效果更佳。

(二)增加实验课的课时,实验内容增加以ACM竞赛题海内容的综合性实验。传统的实验课程的课时和理论课时的比例为2:1,不能满足学生实践的需求,为此增加实验课学时,使实验与理论的课时比例达到1:1。同时,在实验内容方面,参考ACM题海,增加由教师将实验内容生活化,趣味化,并且含有丰富的知识点的综合性实验。这样可以激发学生的学习主动性和积极性,更好的达到实践教学的目的。

(三)依托ACM平台,设立独立的课程设计环节,培养学生的动手能力和团队合作精神。程序设计基础是未来学生从事软件工程工作的基础,必须从基础培养学生的综合分析问题和处理问题的能力。增设独立的课程设计,使学生分组完成一个小的软件的从需求分析到总体设计和详细设计及运行的全过程,培养学生的动手能力和团队合作精神。而ACM竞赛的模式就是培养学生的团队合作精神,依托ACM平台增设课程设计环节,可以有效的激发学生的学生乐趣。

(四)改革考核方式,将ACM模式的黑箱测试做为考核的一部分最终的考核改为笔试、机试、平时成绩和实验累加计分。程序设计基础课本身实践性很强,传统的考核方式不能体现学生的实际编程水平。将笔试和机试有机地结合在一起,考核的重点由对编程知识的考核变为对学生实际动手编程能力和程序调试能力的考核。将ACM竞赛中的在线测试系统的成绩以权重50%计入机试考试中,在考核学生实践能力的同时更好的挖掘学生的创新能力。

参考文献:

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

[2]于世华.基于ACM竞赛模式的程序设计教学改革研究[J].呼伦贝尔学院学报,2011(04).

[3]项炜,陈建国,苏炳均.以ACM竞赛驱动程序设计类专业课教学改革[J].计算机光盘软件与应用,2012(09).

篇5:acm程序设计培训总结

一、目的和意义

为提高我校学生的创造力、团队精神以及在程序设计和软件开发中的能力,同时选拔优秀的选手代表我校参加 广东省大学生程序设计大赛(ACM)。

二、承办单位

数学与信息科学学院、计算机科学学院

三、比赛时间

报名时间: 即日起到2011年4月17日

比赛时间: 2011年4月23日

四、参赛对象

凡我校在籍的本、专科生均可参赛。

五、比赛地点:信工楼319

六、参赛要求.报名方式

有意参赛的个人将个人姓名、系别、和手机号码发至指定邮箱:sguacm2011@163.com2 .比赛形式

(1)本届比赛采取现场答题形式。参赛个人报名后在规定的时间内可以到比赛场地试机。进入决赛的参赛个人在规定的地点使用配置相同的机器进行比赛。

(2)本届竞赛设 6 道题目,比赛时间都为 3小时,超过规定时间,提交的答案将无效。(3)参赛个人答题时可以选择 C、C++ 语言答题,每道题目将以最后提交的代码为准。3 .比赛要求

(1)参赛个人在规定答题场所不得竞赛组委会指定工作人员以外的人交谈。系统支持人员可以回答和系统相关的问题,例如解释系统错误信息。

(2)参赛个人有权提交解释请求,针对题目描述中的不明确或错误的部分提问。如果评委确认题目中确实存在不明确或错误的部分,将会通告所有参赛队伍进行声明或更正。

(3)参赛个人不能携带任何电子设备,例如手机、电脑、U盘、MP3、好易通等;允许携带纸质材料,包括源代码,参考书,字典。

(4)当参赛个人出现妨碍比赛正常进行的行为时,诸如擅自移动赛场中的设备,未经授权修改比赛软硬件,干扰他人比赛等,都将会被竞赛组委会取消参赛资格。

七、比赛流程

12:30——13:00 信工楼319门口集中签到,进入赛场并按照编号就坐于相应的位置; 13:00——13:25 负责人宣布比赛规则、注意事项和相应的程序上传操作;

13:25——13:30 工作人员为选手发比赛试题;

13:30——16:30 比赛开始,同时记录每位选手上传程序所花的时间;

16:40——17:00 公布比赛结果,颁发证书与奖金,并与指导老师合影留念; 17:00——17:30指导老师与选手经验交流。

八、评选办法:.评判采取现场评判的方式,评委当场对提交的程序进行评判,并对提交的时间进行记录,经运行测试后由评委判为正确或者错误,判决结果由系统自动反馈给参赛队伍;2 .比赛结果由个人解决的题目以及解决时间来决定,解题多者获胜,如果有队伍解题数量相同,则根据总用时加上惩罚时间进行排名。总用时和惩罚时间由每道解答正确的试题的用时加上惩罚时间组成。每道试题用时将从竞赛开始到试题解答被判定为正确为止,期间每一次错误的运行将被加罚 20 分钟时间,未正确解答的试题不计时。

九、奖项设置

一等奖: 1 名 150元+证书;

二等奖: 2 名 100元+证书;

篇6:acm程序设计培训总结

赛事细则 比赛环境

操作系统:Ubuntu Linux 10.10

语言:C/C++(GCC4.4.5),Java(Sun JDK 1.6)

编辑器:vi/vim,emacs,gedit

桌面环境:GNOME

IDE:Eclipse 3.6 with JDT&CDT,NetBeans,CodeBlocks

计算机主要配置:联想启天M700E

CPU:Intel Core2 E5300

内存:2G

硬盘:320G

19寸液晶显示器

联想标配鼠标键盘JME7053(E),请勿自带键盘鼠标

裁判系统:PC^2 9.2.1 对于每次提交,返回下列状态之一:

1.YES-OK 该题通过

2.No Wrong Answer 答案错误

3.No Time-Limit-Exceeded 程序运行超过时限

4.No Compile Error 编译错误

5.Other Contact Staff 网络软件等比赛环境错误,请联系工作人员 特别注意:

1.Runtime Error(运行时错误)在本次比赛会被判为Wrong Answer。

2.关于各种错误的判定顺序问题,Compiler Error 先于 Time-Limit-Exceeded 先于Wrong Answer。

3.本次比赛无明确的内存限制。

4.Java选手的代码必须使用默认包。

5.评测机与比赛机软硬件配置相同。比赛纪律:

1.禁止带一切电子设备入场,手机关机。

2.允许带纸质资料进场。

3.比赛开始前不允许触碰比赛工作台上的任何物品,比赛开始后不准与除队友和工作人员之外的任何人交流,窥探其他队伍,大声喧哗。

4.不得破坏实验室设施,不得攻击任何选手的计算机以及评测服务器。

5.禁止带食物、水杯入场,不乱扔杂物,保持地面整洁。

6.比赛时要统一着装比赛T-shirt。

7.一切特殊需求请联系工作人员。

山东省计算机学会

篇7:acm程序设计培训总结

回想参赛过程, 有一些遗憾, 但是更多的是收获。昔日的比赛, 同学们顽强奋战的情景历历在目, 也许只有亲身经历并看到了比赛的现场, 才能体会其中的苦与乐。

一、举办ACM程序设计大赛的意义

大学生程序设计竞赛是面向大学生的科技活动, 提高大学生程序设计能力和学校计算机科学教学水平, 促进计算机科学与技术及相关专业的专业建设与课程建设, 增进高校教师之间以及参赛选手之间的交流与合作, 引导高校在教学中注重培养大学生的创新设计能力、综合设计能力和团队协作精神。

1. 大赛增强了学生的竞争意识

信息社会的迅速发展, 教育改革进一步深化, 各教指委、学校联合企业, 推出了一系列致力于培养学生的实际应用能力、创新能力的措施。通过大赛, 让学生把关注点从书本知识投向实际应用, 激励学生努力提高操作技能和综合素质。

2. 大赛促进教学改革

指导教师通过带队参赛, 深入了解计算机教育的最新进展, 并提炼、转化为新的教学项目。同时不断丰富课程教学内容, 更好地适应信息时代对技能型人才的素质要求, 提高人才培养质量。依据培养目标, 结合竞赛内容, 对现有课程教学模块进行了相应调整, 为培养学生具备计算机操作层面、技术层面和专业应用层面上的信息素养创造了良好条件。

3. 大赛促进了校际交流

大赛给我们搭建了一个交流的平台, 使参赛院校之间的交流更加广泛。一方面为学生提供相互学习、展示自我、共同提高的机会;另一反面加强了学校之间的信息沟通, 教师之间相互学习, 对提高教学质量起到积极的推动作用, 通过大赛提高了我校的知名度。

二、参赛经验总结

1. 邀请兄弟院校有经验的老师做讲座

为了提高我校参赛大学生的程序设计能力, 进一步加强学习和能力提高, 我们聘请兄弟院校具有丰富编程经验的老师为我校参赛学生进行赛前辅导, 使学生尽快掌握一些编程技巧和赛场灵活应变能力, 促使比赛取得优异的成绩。

2. 师生的集体荣誉感是取得良好成绩的保证

积极倡导“校兴我兴、校荣我荣”的爱校精神, 加强集体主义、奉献精神的教育, 师生的集体荣誉感不断的增强。能够亲自辅导学生并代表学校参赛是每个教师的心愿, 因此每个教师都很期待带队参赛。有机会参赛的学生, 积极鼓励为学校争光, 十分希望有丰硕收获。指导教师从精神方面、价值观方面引领, 让学生充分认识到大赛不但为学校争光, 更是自己人生中难得的机会, 增长了知识, 提高了能力, 更能引起用人单位的关注。

3. 制定合理的辅导方案

采用科学的辅导方案, 精心指导方能出成果。科学的训练计划是提高辅导效率的关键。由于学生基础较差, 距参赛选手要求仍有相当大的差距。因此在训练中要有合理的训练方法, 采取循序渐进的方法, 必须重视基础知识和基本技能的训练。训练中从最基本的试题入手, 由简到难, 不断提高训练水平。将学生最初的兴趣转化为引导为对竞赛项目的热爱、着迷, 避免挫伤学生学习知识、技能的积极性。

4. 加强实战训练

我们从2011年开始将“C语言程序设计”课程的上机实战学时由24学时增加到42学时, 加大了实验教学, 解决了教学内容和实验内容脱节的问题, 在教学实施过程中形成了“理论实践一体化”的“教、学、做”一体的教学模式。上机操作课中以实例进行引导, 用任务进行驱动, 强调学为所用和学以致用, 强调算法的多样化, 鼓励学生多思考, 培养学生的编程能力, 提高学生解决实际问题的能力。。

5. 关爱学生, 做好他们的心理疏导

心理素质过硬, 摆正心态是参加任何大赛取胜的重要保证。指导教师应高度重视参赛选手的心理疏导与心理干预, 帮助他们克服缺点, 发挥长处, 使他们既有压力、又有动力、心情舒畅的投入训练和应战。要关注他们的日常生活, 尽最大的努力帮助他们解决生活中遇到的困难, 使他们对又苦又累的训练感到轻松, 成为他们的良师益友。

三、几点反思

前八届大赛取得了较好的成绩, 但是有一些学生没有发挥好, 成绩不理想, 主要有以下一些方面的反思:

1. 选拔参赛选手要关注学习成绩的稳定性。

2. 加强训练学生的应变能力和抗干扰能力, 保持良好的心态。

3. 加强与其它学校进行交流的机会。

4. 进一步提高指导教师的编程能力和水平, 多给教师一些学习机会。

四、今后的工作想法

1. 加大教学改革力度, 进一步突出技能教学, 实践教学。

2. 组建程序设计学习兴趣小组, 坚持平时训练与突击训练相结合, 平时训练促学会, 突击训练促提高。

3. 通过多渠道收集与竞赛有关的信息, 加强与高水平学校间的学习交流, 做到知己知彼, 取长补短。

4. 学校应完善体制机制, 激励广大教师积极参与ACM程序设计大赛的指导训练工作, 加大投入力度, 为无私奉献的年轻教师创造专业成长的平台;同时加强提高教师培训层次, 进一步提高辅导水平。

参考文献

[1]章小永, 魏建.开展技能竞赛是提高教学质量的有效手段[J].职业, 2010, (5) .

篇8:acm程序设计培训总结

关键词:ACM-ICPC;程序设计;OnlineJudge;能力

中图分类号:G642 文献标识码:A 文章编号:1674-7712 (2012) 18-0097-01

ACM国际大学生程序设计竞赛(ACMInternational CollegiateProgrammingContest,ACM-ICPC)是由美国计算机协会(AssociationforComputingMachinery,ACM)主办,是最具影响力的大学生计算机竞赛。如何抓住机遇,结合ACM竞赛,提高教学质量和水平,培养高质量的人才等问题成为广大教师的探索热点和各高校相关教师之间热议的话题。笔者积极探索将它引入到C++程序设计实验课当中,提高教学效果。

一、C++程序设计实验教学中存在的问题

由于本学科的特点、生源的客观情况及硬件条件的限制等使得实验课教学仍有一些不足之处,进而学生对这么课程失去兴趣。1)重视程度不够。由于实验环节常常被看作是理论环节的附属部分,最终成绩仍以卷面为主,实验成绩只占一小部分,另外实验考核还容易出现缺乏清晰的依据的情况,有限实践时间里学习动力不足。2)验证性实验内容为主。以往实验教学中,实验内容的安排完全服从理论章节的学习,学生的注意力集中在某种结构或某个算法实现上,容易忽视对概念整体性理解把握,对于规模较大、较复杂的问题往往素手无策。综合设计能力得不到很好地训练。3)实验考核方法单一。传统的考核一般由两种方式组成:一是教师检查程序的运行结果。工作量很大,而且也不一定能在课时内完成,既费时又费力。二是检查实验报告中的程序编写情况。批改中容易忽略学生的独特思路。由此一来,某种程度上限制了学生思维的拓展,不利于学生创新能力的培养。

经积极探索与实践,将ACM-ICPC竞赛引入实验课教学,能够很好解决以上问题,并取得良好效果。

二、ACM-ICPC竞赛简介

(一)ACM-ICPC简要规则如下

以團队的形式代表各学校参赛,每队由3名队员组成。每位队员必须是在校学生,有一定的年龄限制,并且最多可以参加2次全球总决赛和5次区域选拔赛。比赛期间,每队使用1台电脑。需要在5个小时内使用C、C++、Pascal或Java中的一种编写程序解决7到11个问题。程序完成之后提交裁判运行,运行的结果会判定为正确或错误两种并及时通知参赛队。每队在正确完成一题后,升起一只代表该题颜色的气球。每道试题用时将从竞赛开始到试题解答被判定为正确为止,其间每一次提交运行结果被判错误的话将被加罚20分钟时间,未正确解答的试题不记时。

(二)ACM竞赛给教学带来的好处有

1.ACM竞赛题目的涉及面广,融入多门学科的知识,参赛队员必须掌握大量的学科基础理论,包括程序设计、算法分析、数据结构、数学建模等等,这也大大激发了学生学习的动力。

2.为以后做实际项目做了很好的衔接。

3.分组实验教学,由教师为主体转变为学生团队为主体的模式,学生学会了如何分工协作,与人沟通。

4.ACM网络拓展了学生的知识面。教师可以引导学生加入这个大平台,从简单的小题开始做起。学生们在这里增长了知识,开阔了视野,结识了更多优秀的人。

5.利用OnlineJudge(简称OJ)平台改变学生评价方法。平时的作业和实验课都充分利用开放的OJ系统进行评判。

三、实验课中OnlineJudge平台的应用

OnlineJudge系统(简称OJ)是一个在线的判题系统。用户可以在线提交程序多种程序(如C、C++、Pascal)源代码,系统对源代码进行编译和执行,并通过预先设计的测试数据来检验程序源代码的正确性。用于ACM-ICPC竞赛和OI(OlympiadinInformatics)信息学奥林匹克竞赛中的自动判题和排名。现广泛应用于各地高校学生程序设计训练、参赛队员选拔、各种竞赛以及数据结构和算法的学习中。

(一)强化基础,突出实践

从竞赛的题目来看,试题涉及到多门学科,要求学生具有一定的数据建模知识,算法分析能力,软件工程的思想,综合性很强,与C++程序设计课程能力培养的目标要求是一致的。

(二)案例、任务驱动式的实验教学模式

在实验教学中,同学们分析、学习别人设计好的程序代码。还可以将日常教学的课程内容融合在ACM竞赛题目中。教师根据实际情况布置任务,简单任务由单个人完成,复杂任务让同学们自行分组。在完成实验中,每个人必须完成其中一部分,开展组内或组间学习和讨论。学生们经过这些锻炼之后,程序设计能力、团结合作能力、沟通能力都得到极大的提高。

(三)弥补实验课时不足,课堂教学的延伸

利用OnlineJudge系统的网络环境,可以随时在线进行学习和练习。如今随着信息化、网络化的迅速普及,学生团队对自己分配的任务可以在实验室做,也可以在自习室、甚至宿舍都可以完成。无形中增加了实践的机会,同时提高了学生自学能力。

(四)帮助教师更好地完成教学任务,提高教学效率

教师在实验课上课之前将实验任务的题目、测试数据等输入OJ内。上课时,在规定的时间让学生登录OJ,提交自己的程序,等待结果.OJ系统后台编译,根据对比结果判断程序正确与否。还能指出错误的大致原因。教师可随时了解学生对知识的掌握情况。

四、结束语

C++程序设计实验课的教学中引入ACM竞赛的理念和方法,激发了学习兴趣,改变了传统的教学模式,拓展了学生的知识面,提高了学生实践能力、学习能力、团结合作以及沟通能力、教学质量效果。今后,我们将进一步完善OJ系统,让它更有效地服务于课程教学,诸如作业的布置和批改、其他课程的应用以及开放实验室的建设等。

参考文献:

[1]琚生根,廖勇,周刚.CM竞赛与实验教学创新[J].实验技术与管理,2009,26(5):125-131.

[2]朱月秀.基于ACM竞赛的C++程序设计课程教学改革[J].漳州师范学院学报(自然科学版),2012,75(1):97-99.

篇9:acm程序设计培训总结

程序设计语言课程是计算机相关专业的重要基础课程, 学生对其的掌握程度直接影响后续多门课程甚至是对整个专业的学习。目前, 许多高校都是将C系列语言列为核心程序设计教学语种。然而, C由于同时具有高级语言和低级语言的特点, 又容忍非常灵活的表达方式;此外, 许多学校还存在课时不断被压缩的问题。这些对于初次学习第一门程序设计语言的学生来说, 无疑增加了学习该语言的难度。

1 教学现状

传统“C程序设计”教学以课堂教学为主, 上机验证实验为辅, 通常采用以教材章节为线索, 循序渐进, 课堂上教师将该语言的知识点, 比如语法、算法等通过黑板或者电子幻灯片的方式进行讲解, 由于C程序设计中涉及的知识点和细节非常多、学时有限等原因教师容易陷入到枯燥的语法泥潭, 而最重要的程序设计方法和思想往往被相应淡化, 容易造成语法学习与编程脱节的现象。另外在教学实践过程中发现学生缺乏平时自主学习和上机练习, 在学习过程中出现陆续掉队现象, 而本课程知识前后衔接非常紧密, 掉队后很难跟上课程进度, 最后期末只能通过突击背题, 考试成绩反映出学生对于分析问题并通过程序解决问题能力弱, 这样即使学生掌握了语言的一些细节知识, 也不能认为达到了教学目标。

2 ACM竞赛模式

ACM国际大学生程序设计竞赛是由美国计算机协会 (ACM) 主办的, 一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。比赛期间, 每队使用1台电脑需要在5个小时内使用C、C++或Java中的一种编写程序解决7到10个问题。程序完成之后提交裁判系统运行, 运行的结果会判定为正确或错误两种并及时通知参赛队。最后的获胜者为正确解答题目最多且总用时最少的队伍。ACM竞赛不仅培养参赛选手在软件程序开发过程中创造力和团队合作精神, 而且也检测选手们在压力下进行创新思维和理论实践的能力, 是大学计算机教育成果的直接体现。由于竞赛对选手综合素质要求较高, 各院校往往在学生中抽出一部分优秀学生进行进一步培养, 这样竞赛不能有效促进大学的整体教学质量。

3 教学改革

为了真正提高教学质量, 必须强调基础知识的理念;强调学生的问题抽象能力、数据抽象能力、逻辑思维能力的培养。在实践中笔者逐步将ACM的竞赛理念与“C程序设计”教学可以有机结合, 尝试改变课堂教学内容和方法, 调整实验方式, 通过多次阶段考核增加过程管理等, 多轮教学结果表明这种方式能促进学生学习的自主性, 达到知识和能力的联合培养目标。

3.1 改革课堂教学

以知识点为线索, 教科书为依据循序渐进的方式容易导致学生感觉知识枯燥无味, 没有成就感, 等到最后发现能够用程序解决感兴趣的实际问题的时候, 才后悔前面的基础知识没有用心学习, 只能再从头复习。为此笔者在“C程序设计”课程教学中尝试先建知识框架, 后填细节, 即将将C语言当中的主要知识点抽取出来, 以能完成常用程序控制为目标, 这样能在课程初期让学生对程序设计语言有了一个完整的认识, 并用这些知识解决一些常见的问题, 消除学生的编程陌生感和畏难心理。课程的整体框架建立完成后, 学生能够建立起编程的兴趣, 这时候才开始针对一些经典的、有针对性的程序进行知识细节的补充介绍, 比如通过银行利息计算介绍分支控制程序中的嵌套分支、冒泡排序中的嵌套循环、图形应用中的二维数组存储处理等, 并有选择的将一些ACM竞赛的难度适中的题目在课堂中引入, 由于赛题与实际应用的联系很紧密, 这样能促进学生思考, 提高学生分析问题, 解决问题的能力, 让学生在学习中产生成就感。另外在教学中要注重现场编程演示, 避免只讲语法和理论, 虽然此举加大了教师授课的随机性和难度, 但是却可以充分调动学生的学习积极性和主动性。让同学们参与程序编写、调试的全过程, 打破编程的神秘感;通过实例化、可视化方式把抽象的概念形象化, 演示复杂程序编写、调试和运行全过程, 能进一步激发学生的学习兴趣。

3.2 参照ACM在线评测系统调整实验教学

以理论课程知识点为依据进行验证性或者设计性实验, 是目前院校教学普遍采用的方式, 教学过程中, 通常要求学生按照实验指导书上的题目进行实验, 碰到问题由教师进行指导, 实践中发现经常会出现实验题目不能满足各层次学生的需求的问题, 以及学生的实验结果的正确性不能得到及时有效检查, 只能后来通过教师批改实验报告来发现问题, 由于解题方式的多样性加重了教师的批改的负担。为了改变现状, 笔者发现将ACM在线评测系统应用到教学中可以有效解决该问题, 并能为教师提供有效的教学参考, 总结学生学习现状和问题, 减轻教师频繁批改实验报告的负担。

ACM在线评测系统是一个在线程序与算法的练习、竞赛平台, 学生在线提交相应赛题的程序代码, 系统可以自动编译程序代码, 生成可执行文件, 并根据已存储的测试用例对程序执行测试, 返回判断结果。为了有效利用该模式改进实践教学, 笔者及所在教学团队参考ACM在线评测系统, 开发了“程序设计在线评测管理系统”, 该系统除了ACM在线评测系统核心功能之外, 为了适合教学特点改进或增加了如下功能:

更为细致的评判结果反馈:该系统不但能完成常规的编译正确性, 测试用例正确性, 还能针对每个测试用例的错误进行提示。

适合教学特点的用户管理:增加了课程、班级、学生基础信息的管理, 方便学生学习情况的汇总和分析。

灵活的考试和竞赛设定与管理:系统可以在考试时间, 测试题目编排, 测试成绩判定方式等方面进行灵活设定, 并对测试成绩进行有效管理。

3.3 增加阶段考核

实践证明要想学好程序设计, 必须通过不断练习, 通过大量的分析问题、解决问题过程才能达到较好的学习效果, 为了促进学生自主学习, 有些学校往往通过增设期中考试来加强过程管理, 然而由于《C程序设计》课程内容衔接紧密, 如果通过传统的期中考试, 由于考试在课程考核中所占比重大, 学生会突击复习, 结果会影响学生对新知识的接受, 影响课程进度, 另外程序设计的核心是分析问题, 并通过程序解题, 因此为培养学生上机编程的兴趣, 应增加简单易行的阶段考核, 单一的期中考试, 程序设计题由于分值大不能简单根据编制的程序运行结果是否完全正确给分, 只能通过教师手工阅读, 根据正确程度给分, 导致考试判分工作任务重, 评判标准难以客观公正, 如果考核次数增加, 操作可行性差, 因此参照ACM国际大学生程序设计大赛模式, 使用“程序设计在线评测管理系统”, 采用多题选作方式, 机器根据运行结果自动评断对错, 这样可以改变阶段考试带给教师的沉重负担, 同时提高学生上机编程的动力和兴趣, 培养编程的严谨性和准确性。

4 结束语

从人类学习自然语言的方法得到启迪。程序设计语言应先学会如何用, 然后才是语法的分析。通过先建语言框架, 后通过具体问题补充语言细节的方式能提高学生学习兴趣, 在教学中尽量加入ACM竞赛问题促进学生分析问题, 解决问题, 将程序设计的方法和解题思想在实际问题中体现出来。另外通过参照“ACM在线评测系统”, 编制适合教学应用的“程序设计在线评测管理系统”可以让教师更好地对学生学习进行过程管理, 同时利用该系统的测试功能可以增加课程阶段考试的可行性, 更好的促进学生自主学习。

摘要:在阐述现有《C程序设计》教学中存在的问题的基础上, 结合ACM竞赛理念, 将“程序设计在线评测管理系统”与教学有机结合, 促进学生自主学习, 达到知识和能力的联合培养目标。

关键词:ACM竞赛,程序设计,教学改革

参考文献

[1]戚晓芳.C/C++程序设计教学新思路[J].电气电子教学学报, 2004 (5) .

[2]武建华.基于ACM模式的数据结构实践教学改革与探索[J].计算机教育, 2007 (24) .

篇10:acm程序设计培训总结

关键词:ACM-ICPC;算法分析与设计;实践教学

中图分类号:G642 文献标志码:B 文章编号:1673-8454(2015)10-0065-03

一、引言

算法分析与设计是面向设计的计算机专业核心课程,主要通过对经典算法的学习和研究,使学生掌握算法的设计策略和算法复杂度的分析方法,培养学生分析和解决实际问题的能力,为开发高效的软件系统奠定了坚实的基础。该课程教学内容繁多,涉及的知识面很广,主要内容包括算法分析方法、递归算法、分治算法、贪心算法、动态规划、回溯算法、分支限界、近似算法、概率算法等经典的算法,覆盖了多项式、数论、矩阵、集合、图论、几何、模式匹配等数值和非数值计算问题。

目前,各高校该课程分配的课时普遍较少,教学方法也都是以讲解为主,即使设置了实验课,在实践环节通常也只是一味地对算法进行验证,很少考虑到算法的运行效率分析、测试数据的规模以及实际的应用场景。学生对算法的学习主要以理解和记忆为主,缺乏对知识的重构和对算法的灵活运用,遇到实际问题便无从下手。而且,在传统实践教学中,学生抄袭代码的情况严重,不能有效提高学生的实践能力,无法体现实践教学的真正作用。在这种教学模式下,学生缺乏对实际问题进行抽象和分析的能力,思维创新和实践能力难以得到有效提高。本文结合我校实际教学情况,将ACM-ICPC竞赛模式与算法分析与设计课程的建设相结合,达到了良好的教学效果。

二、课程现状

算法分析与设计课程的建设在我校起步较晚,我校从2010年开始招收计算机科学与技术专业本科学生,从2012年开始为计算机科学与技术专业学生开设算法分析与设计课程。第一届课程只有理论课,学生缺少实践机会。该课程的开设是面向计算机科学与技术专业大三的学生,学生在学习该课程之前,已经学习了C/C++程序设计、数据结构、Java程序设计、高等数学和离散数学等课程,但是由于学生欠缺良好的计算思维,逻辑分析能力相对不足,编程实践能力仍然比较弱,学生在学习该课程时倍感吃力。

目前,我校在算法分析与设计课程信息化建设方面有许多不足,主要体现在以下几点:

(1)课程之间的联系不够紧密

算法分析与设计课程与其他课程的关系是很密切的,如数据结构,它们之间相互作用,从而提高计算机专业学生的实践能力,为学院培养高素质的应用型人才。由于这些课程的前后都没有很好地衔接,课程之间的重点和难点没有对应上,所以学生在上算法分析与设计课程时需要重新复习之前所学的课程,从而增加了学生学习的工作量。

(2)教学资源不足

当前课程并没有信息化系统的支持。学生只能通过网络搜索所需的资源,获取教师的PPT也只能通过教师,教学资源没有实现整合和共享。

(3)编程竞赛平台不多

程序设计能力的提升需要学生多思考多编程,而这方面实践能力的获取最有效的方式就是竞赛活动。在参加或举办程序设计类竞赛方面,学生只参与了国内的“蓝桥杯”这一个程序设计类竞赛,学院内部并没有开展此类竞赛活动。

三、ACM-ICPC模式下的课程建设

1.ACM-ICPC在课程中的作用

ACM国际大学生程序设计竞赛(ACM-ICPC)是由美国计算机协会(ACM)主办的,是一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。经过40多年的发展,ACM-ICPC已经发展成为最具影响力的大学生计算机竞赛。竞赛时间为5个小时,重点考察选手的算法和程序设计能力。选手通过网络提交程序,评委负责将结果(正确或出错的类型)通过网络尽快返回给选手。

将ACM-ICPC竞赛模式引入算法分析与设计的教学中,可以激发学生的主动学习积极性,鼓励学生勤思考、多实践,相对于传统的实践教学具有以下几方面的优势:

(1)在网上进行实践教学,没有时间和空间的局限性。教师可以在测评系统中对同一个实验项目布置多个难度各异的题目,学生可以根据自己的掌握情况,从易到难选择合适的时间完成训练题目。学生完成编程提交代码后可以立刻得到评测结果,这样可以激发学生的学习热情。教师也可以分析学生提交程序是否正确或错误,并进行针对性的讲解。

(2)对创造校园的学术交流氛围有良好的促进作用。学生在课余时间通过在网上提交自己编写的程序源代码,自主进行算法和程序的交流,有利于培养学生的学术修养,实现学生与教师、学生与学生之间的交流和互动。

(3)减轻教师实践教学时的指导负担。传统的实践教学在机房进行,教师需要在整个机房进行巡视,为有疑问的同学进行解答。这让教师在实践教学中的指导负担非常繁重,教师的指导范围也不能全面覆盖整个班级,在一定程度上打击了学生的积极性。而ACM-ICPC竞赛模式的在线测评系统可以对学生提交的作业进行评测,大大减轻了教师的负担。

2.测评系统的设计与开发

我们将基于ACM-ICPC竞赛模式的在线测评技术引入算法分析与设计课程的教学中,开发了一个程序在线测评系统。该系统基于Java EE,是一个程序在线评判、程序设计竞赛和交流的平台,可不断扩展题库供学生进行程序设计练习,系统自动对提交的程序源代码进行编译、运行并评判程序的正确性。系统可供课程日常训练和网上实时竞赛使用,也具备站内交流和站内全文检索功能。考虑到后期改进和后续开发的需要,系统的开发采用的是目前主流的MVC架构,使用的是Struts框架。系统有两个版本的评判模块,一个基于纯Java,另一个基于C++,两者均可在Windows平台下运行。

学生在系统提交程序后,系统先将程序保存至数据库,再写入评判队列,由系统评判内核进行编译、运行并返回结果,返回的结果类型有AC、WA、RTE、TLE、PE、MLE、CE。每个题目可能有多个测试数据,内核在读取主系统传递给它的参数后,编译程序,生成可执行文件,之后对于每个测试数据运行一次“验证测试数据”的操作,只有当所有测试数据均验证无误,才返回AC,如果在某次验证返回错误,则返回相应的错误信息,在任何时候遇意外终止将返回RTE。评判内核的程序流程如图1所示。

系统用户分为四种:普通用户、高级用户、论坛版主及系统管理员。任何学生都可注册成为普通用户。普通用户可以做练习题,提交程序并得到系统的评判和结果反馈;可以根据程序提交情况参与用户排名;拥有并可使用自己的站内信箱;可以查看、保存和管理自己提交的源代码;可以在论坛发帖,参与问题讨论;可以参加程序设计竞赛,并查看比赛结果和统计数据。任何解答题目超过20道的普通用户,可自动升级为高级用户。高级用户拥有普通用户的所有权限,还可以上传题目和测试数据,并可对自己上传的题目进行管理、修改等。高级用户上传的题目,经管理员确认后,便可加入系统的正式题库,系统在题目信息中记录上传题目者的相关信息。论坛版主为系统管理员授予,拥有普通用户的所有权限,同时对相应的论坛板块拥有管理权。系统管理员管理系统的日常运行,拥有所有的管理权限,需要对题目和测试数据进行筛选,检查系统运行情况,组织程序设计竞赛。

3.课程设置

结合我校实际情况,我们在算法分析与设计课程的实践教学内容上设计了递归算法、分治算法、动态规划算法、贪心算法、回溯算法、分支界限算法共6个经典算法的实验项目。由于实践教学课时有限,传统的教学方式每个实验项目只能设计2-3道题目。引入ACM-ICPC模式之后,学生可以利用课余时间通过网络完成程序设计,每个实验项目题量增加到6-8个,题目难度各异,学生可以根据自己的知识掌握程度和能力选择合适的时间完成。较容易的题目可以先完成,具有一定的综合性、难度较大的题目,可以在有相当的训练量之后完成。

这种循序渐进的训练方式,更有利于学生对算法原理的理解和掌握,也更有利于形成由浅入深的思维模式,有效提高学生的分析问题、解决问题的能力。测评系统中的部分习题如表1所示。

课程的考核参考学生提交程序的次数、通过率、提交程序的难度等,作为学生平时成绩的考核依据,这样可以鼓励和督促学生积极参与实践。

四、课程建设实践成果

实施ACM-ICPC竞赛模式的程序在线测评系统以后,学生的学习积极性得到了较大的提高。学生对经典算法的掌握程度和实践能力也大大提高了。

学生在各种全国性考试和比赛中取得了较好的成绩。以我校参加“蓝桥杯”全国软件专业人才设计与创业大赛的情况为例,不仅在报名人数上大幅增长,获奖人数和获奖等级也有了明显的提高,具体如图2所示。

在课程的实践教学中,学生设计算法的训练量加大,平均每人每学期完成习题数量为34题,较实施前增长88.9%。学生的自主学习能力有所提高,教师在实验课上的空闲率由原来的0.4%增长到33.3%,学生对教师的依赖程度大大降低。

五、结语

基于ACM-ICPC模式的算法分析与设计课程将理论学习与实际操作相结合,注重培养和提高学生分析和解决实际问题的能力,以公平、公正、公开的竞争形式带动学生的自主学习,调动学生交流和研究的积极性,为课程的开展提供了良好的氛围。在后续的研究和开发中,我们将把基于ACM-ICPC模式的程序测评系统扩展到全系范围内的更多的程序设计类课程。

参考文献:

[1]龚宇平,梁丽.计算机专业大学生创新思维的培养[J].教育与职业,2014(8).

[2]陆慧.应用型本科高校创新型人才培养存在的问题与对策[J].教育与职业,2013(35).

[3]赵春风.基于J2EE技术ACM竞赛程序在线评测系统的设计与实现[D].厦门:厦门大学,2013.10.

[4]李华,赵建平,李奇等.基于ACM-ICPC的算法设计与分析课程改革[J].计算机教育,2013(7).

[5]赵晖,付秀花.计算机语言程序设计课程的教学创新[J].教育与职业,2013(23).

[6]王伟嘉,张洪萍,宁亚辉等.关于《数据结构》课程与ACM-ICPC竞赛结合的探讨[J].计算机工程与科学,2014(S1).

[7]芶生平,杨鹏,汪小平等.以ACM/ICPC竞赛为载体 探索课程体系建设与创新人才培养新模式[J].中国大学教学,2010(7).

[8]ZHU Jie-ao, SUN Mian, LIU Xue, LI Hao. Learning Software Engineering through Experience of ACM-ICPC Training and Practicing Exercises[C].Proceedings of 2010 Third International Conference on Education Technology and Training(Volume 1),2010.11.

篇11:acm程序设计培训总结

关键词:ACM/ICPC,自主学习,协作学习,编程与算法

高校计算机专业学生的学习过程中存在着基础教学与实践运用不衔接的矛盾, 这个矛盾使得学生学习走向两个极端。本文从ACM国际大学生程序设计竞赛的准备谈起, 探讨这种基于竞赛的大学生学习模式。

一、 ACM竞赛介绍

ACM (Association for Computing Machinery, 美国计算机学会) , 是世界上第一个也是最有影响的教育和科研的计算机组织, 其主要活动包括一些专题兴趣小组组织的一系列高水平的学术会议及学术竞赛, ACM/ICPC即为其中之一。ACM/ICPC (ACM International Collegiate Programming Contest) 即ACM国际大学生程序设计竞赛, 其颁奖仪式和计算机界权威的学术奖——图灵奖的颁奖仪式同时进行。ACM竞赛有独特的赛制, 每队三个人, 比赛时三个人共用一台电脑, 比赛时间一般是4—5个小时, 共有6—10道题。每道题目参赛队必须写出解决问题的程序源代码, 提交给裁判, 由裁判编译得到可执行程序, 只有对于所有的输入数据该程序都能在规定的时间内得到正确的结果, 才能够获得通过。竞赛涵盖的范围很广, 比赛支持C/C++、Java、Pascal等语言。目前ACM/ICPC由IBM赞助, 各地区决赛也是由当地知名计算机公司赞助。

二、基于ACM竞赛的学习模式

1.协作学习, 创造最佳学习结果

协作学习 (Co11aborative Learning) 是通过小组或团队的形式进行学习的一种策略, 小组成员的协同工作是实现学习目标的有机组成部分。 ACM竞赛有意让三个人共用一台电脑, 且在短时间内完成有一定难度的题目, 旨在让小组成员协作完成。比赛中如何充分发挥三个人的力量, 团队的配合技巧十分重要, 三个队员之间的合理分工, 对同一问题的不同想法进行的合理论证都可以大大改进解题的效率。

仅仅比赛时的协作还远远不够, 在平时的训练中, 协作学习已经开始。短短的一年准备时间, 还要应付平时学习, 一个人很难掌握所有的学习内容。队员往往根据各自的专业和特长, 分工学习, 定期集合讨论或做题, 根据不同的题型, 有不同的主力队员分析、讲解, 进而加快学习和理解速度。为了更好发挥各自的长处, 且长久发挥一个学校的优势, 梯队建设也很有必要, 高低年级、不同专业组队, 发挥专业特长, 保持实力延续, 老队员带动新队员, 是ACM竞赛准备中分工协作的一个重要方法。

通过比赛前和比赛间的协作学习, 发展了学生个体的思维能力、增强了个体之间的沟通能力及对同伴差异的包容能力。此外, 协作学习对提高学生的学习业绩、形成学生的批判性思维与创新性思维、小组个体之间及其与社会成员的交流沟通能力、自尊心与个体间相互尊重关系的处理等都有明显的积极作用。

2.任务驱动式学习, 创造自主学习模式

美国心理学家齐莫曼教授提出了自主学习的五个特征:学习的动机是内在的或自我激发的;学习的方法是有计划或熟练达到自动化程度;定时而有效地安排学习时间;能意识到学习效果;对学习的环境保持高度的机敏和随机应变的能力。在ACM竞赛的准备过程中, 学什么、怎么学都由学生自己决定。他们自己设定学习目标, 分析学习内容, 制定学习计划, 获取学习资源, 管理学习过程。为了能够得心应手地攻克大赛题目, 队员需要掌握大量的基础知识。虽然有些知识很枯燥, 但是结合到攻克的题目中, 又是那么的学以致用, 队员们常常乐此不疲, 直到把每一个知识点都理解透彻。为了攻克这些知识点, 队员们采取多样学习方式, 可旁听高年级的相关课程, 可利用网络寻求直接的经验总结, 可钻研参考书目获得理论知识。经历了自主学习过程, 选手们常说那些枯燥的离散数学、图论、数值分析等课程, 一旦与竞赛内容结合, 学习起来就很有动力, 也很轻松。当自学变得如此得心应手的时候, 很多选手会在一个学期, 将三四个学期的课程学习完毕。竞赛的准备过程是学生对计算机科学的基本思想和内涵以及方法的真正体会, 是真正的“授之以渔”, 而不是“授之以鱼”。

3.在网络中学习, 将学习变成一种习惯

国内很多高校提供ACM竞赛平台, 它是一个展示才华和交流合作的全英文版平台, 提供大量的竞赛题目, 任何人都可以注册ID, 在平台上答题, 平台作为裁判进行评判。这些竞赛平台能够激发学生的学习热情, 从而也带动提高本校计算机教学水平, 北京师范大学的数据结构课程就借助了这样的平台进行教学。

大赛准备过程中, 竞赛平台是最吸引人的地方, 热衷算法的学生习惯式地攻克一个个题目, 每一个ID下面会显示出主人答对题目的序号, 答题数目一目了然。平台逐渐成为一个虚拟学习社区, 有答题遥遥领先的编程高手, 也有初出茅庐的新手, 平台配有论坛, 供学习者交流经验, 论坛站长是ACM竞赛的高手, 会负责地回答论坛中的提问。各个ACM竞赛平台有月赛、热身赛, 供学生练习。学生根据自己的习惯, 合理分配做题时间, 看着名下的题目渐渐增多, 看着ID排名慢慢前进, 会激起队员继续努力的劲头。

在ACM平台上, 合作学习变得更加广泛, 不同国家、学校的大学生, 都可以通过论坛交流经验, 结交世界各地的高手。当然平台上的交流多限于对算法的理解, 最终的代码很少公开。在ACM平台上确实能够学到课堂上难以学到的知识与经验, 在编程和算法上, 融汇了很多高校的资源。

4.竞赛式学习, 提升大学生综合素质

学子们希望通过每年一度的全球竞赛, 展示自己的水平, 结交更多的知音。各高校非常重视这项赛事, 纷纷组队, 参加地区初赛。为了让更多人参与进来, 学校会创造浓厚的学习氛围, 利用暑期进行培训, 目的是让学生对数据结构和算法课程有更深刻的认识, 同时进行竞赛强化训练。培训采用课堂讲授、课下讨论、实战练习相结合的形式。老队员成为培训的主力军, 他们总结竞赛经验, 融合网络资源, 与新手们共享。有的老队员全程指导上机练习, 帮助新手熟悉平台, 调试程序。老队员带新队员既加快了新队员前进的步伐, 也锻炼了老队员表达、合作的能力。培训是紧张辛苦的, 队员既要跟得上培训进度, 又要花大量的时间进行实战练习, 自学能力、合作能力、编程调试能力飞速增长。总之通过培训可以筛选出比赛的主力军。

十月份的网上初赛, 按照比赛规则进行排名决定是否能够参加地区现场决赛, 决赛中会颁发地区比赛的金银铜牌, 前两名将有资格参加来年的世界总决赛, 总决赛第一名将获得“世界上最聪明人”奖。参加ACM竞赛的最终目的不是为了得奖, 而是为了培养学生的团队协作能力、临场应变能力和心理素质等。

ACM竞赛过程是富有挑战性和创新性的, 大学生在编程和解决问题的能力上有了很大的提高, 博得了一些知名计算机公司的青睐。

参考文献

[1]刘汝佳, 黄亮.算法艺术与信息学竞赛[M].北京:清华大学出版社, 2004.

[2]张际平, 陈向东.黑客文化及其网络学习模式[J].中国电化教育, 2006 (6) .

[3]蒋卓勤, 钱聪.全国大学生电子竞赛对教学改革的启迪与思考[J].西安通信学院学报, 2006 (2) .

[4]王磊.acm-ICPC竞赛中的团队合作[J].计算机教育, 2006 (3) .

上一篇:2019法硕复习重点下一篇:基层党建标准体系