ACM竞赛引导的工科创新思维教学改革

2021-01-18 04:37吴涛刘宇欣张立敏
现代计算机 2020年33期
关键词:程序设计竞赛思维

吴涛,刘宇欣,张立敏

(1.岭南师范学院信息工程学院,湛江 524048;2.广东高校数字化学习工程技术开发中心,湛江 524048)

0 引言

近年来,社会经济快速发展需要大量应用型人才作为支撑,也正因此,应用型人才培养是高校、特别是地方高校的合理选择[1]。岭南师范学院是地处粤西的地方应用性本科院校,学校发展定位是“两性两型”,即师范性、地方性、教学型、应用型。信息类专业,甚至应用型工科专业学生,因主客观多方面原因,学生个体在理论知识、实践技能、专业素质和创新能力等方面存在较大差距。虽然所培养的历届毕业生中专业水平高、综合素质强的学生也不少,但实事求是地说,这类学生人数所占比例并不足够高;就学生个体而言,有的基础理论知识不够扎实,有的实践动手能力不强,更多的则是综合素质和创新能力尚存在改善空间。具体表现在以下几个方面:

(1)学习积极性低,创新养成动机缺乏。部分学生自身基础差,而专业课程多、难度大,因此学习效果不理想;学生学习积极性低,有的受各种外界因素影响,急功近利、思想浮躁,不能安心于学业,对于各种常态化学习任务都难于完成,创新养成动机当然更加无从谈起。

(2)学习形式单一,创新自主能力不强。没有建立科学的信息类专业创新能力人才培养模式,有的学生只是被动地接受学习任务,习惯于传统的应试教育模式,不能发挥自身的主观能动性,学习形式和思维较单一,缺乏总结和吸收专业知识的敏感性。

(3)学习参与度不足,创新激励机制缺乏。信息类专业的各级各类比赛虽然较多,学校也会根据比赛安排宣传组织学生参加,但一定程度上仅仅是为了比赛而比赛,缺乏规模化的传帮带和可持续性机制。尽管有一定的物质奖励和精神激励,但仅限于极少数参赛获奖学生,学生整体学习参与度不足,未能对整个专业其他学生起到足够的促进作用。

另外,高校教学与社会需求之间存在某种程度上的不协调、不一致,导致了大量信息类专业毕业生不能直接进入社会创造实际价值,需要到培训机构回炉再造[2]。创新教育意在培育高校大学生的创新精神、创新意识、创新能力,是一种侧重创新思维培养和创新能力锻炼的实用教育[3]。《国家中长期教育改革和发展规划纲要(2010-2020年)》中就明确强调了高校要提高人才培养质量,要创新人才培养模式,增强高校的社会服务能力。因此,在当前“大众创业、万众创新”的深化高等教育改革新形势下,如何在互联网+信息大数据时代有效推进信息类大学生的工科创新思维能力培养显得尤为关键[4]。

ACM国际大学生程序设计竞赛(简称ACM)是由国际计算机界历史悠久、颇具权威性的组织ACM学会主办,是世界上公认的规模最大、水平最高的国际大学生程序设计竞赛,其目的旨在使大学生充分展示自己运用计算机分析和解决问题的能力。该项赛事受到国际社会各方的高度重视,已经成为世界上最具影响力的国际级计算机大赛之一[5]。ACM赛事不仅能培养参赛者的程序开发能力和创造能力,更能培养团队合作精神以及解决问题的创新思维,某种程度上还能测试参赛选手的抗压能力。

在这样的背景下,作为普通应用型地方本科高校,以ACM竞赛为导引,融入创新思维教育,探索与实践新的计算机工科专业创新思维教育及人才培养模式,不仅对于学生个人、而且对于学科专业、对于高等学校,甚至对于整个社会都具有重要的意义。

1 ACM创新思维引导教学的作用

ACM不仅强调学科基础,更强调全面素质和能力的培养,除了要求扎实的专业水平,更要具备创新思维。以ACM竞赛为导引,强化创新思维教育,研究与实践ACM竞赛引导的个性化新工科创新思维教学改革,通过对学生创新思维、学习能力和团队协作能力等综合素质的培养,坚持“学生中心、成果导向、持续改进”的理念,能够激发学生的学习兴趣、拓展学生的思维模式、提升学生的综合能力,有利于全面推动学生高质量发展,深入提升人才培养质量。

(1)ACM创新思维有助于激发学生的学习兴趣

对于信息类学生而言,程序设计能力无疑是衡量他们基本专业素养的重要指标之一[6]。在传统教育的影响下,学生在遇到难题时往往会试图寻求“标准答案”,而ACM程序设计是没有标准答案的。因此,培养学生的ACM创新思维,鼓励学生从不同的角度思考问题,逐步找到可接受的、更优的解决方法,能够增强学生的自信心,进而体会到程序设计的魅力所在,重拾编程的乐趣,由此提高学生学习的积极性,激发学生的学习兴趣,促进学习良性循环的形成。

(2)ACM创新思维有助于拓展学生的思维模式

创新教育是素质教育的具象化,帮助学生树立创新意识,具有针对性强、可操作性强等特点;创新思维是联想的、发散的、逆向的、组合的、立体的,具有突破性、新颖性、灵活性、求异性等特点[7]。培养学生的ACM创新思维,在教学中有意识地引导学生进行联想、从不同角度分析问题、尝试反向思考、跳出限制组合问题立体地分析问题,让学生从被动地接受知识向主动获取知识并进行联想、发散、逆向、组合等多种思维活动转变,拓展学生的思维模式。

(3)ACM创新思维有助于提升学生的综合能力

ACM竞赛的目的在于让大学生运用计算机充分展示自己分析和解决问题的能力。与其他程序设计类课程相比,ACM竞赛的难度高、涉及知识面广、需要一定的数学及英语基础、强调算法的高效性,且许多问题并无现成的算法。创新思维要求学生从多角度出发独立思考,找到解决问题的突破口,综合运用已有的知识、信息、技能和方法,帮助学生探索新的算法或改进现有算法,提出解决问题的新方法、新观点[8]。另外,ACM竞赛中饱含了竞争性,对学生抗压能力的训练具有一定的积极意义,塑造学生良好的心理素质。此外,ACM组队参赛的形式对分工协作、默契配合和现场应变能力都提出了较高的要求,可以培养学生的沟通能力和团队协作能力。

2 ACM竞赛引导的创新思维教学改革措施

2.1 ACM 竞赛引导的教学内容改革

ACM竞赛引导的工科创新思维教学所涉及的课程包括高级语言程序设计、面向对象程序设计、数据结构以及算法设计与分析等,覆盖了大学本科阶段前两年的学习内容,也是学生打好基础的关键时期。针对地方本科师范院校学生的特点,教学团队撰写了专门的教材《ACM程序设计基础》[9],初稿在2013年至2017年多次试用,共约2500名本科生使用并提出了很多宝贵的意见。自2018年4月由中国水利水电出版社正式出版后,供相关专业本科生课堂讲授时使用。具体的教学内容,包括三大部分,十个章节,正如书名一样突出“基”,强调筑牢基层面、夯实基础端、稳住基本盘。

第一部分是基层面,包括两个章节。第1章概述,主要介绍与ACM竞赛有关的各类赛事,包括国际ACM竞赛、广东GDCPC竞赛、全国蓝桥杯大赛、中国计算机学会软件能力认证、国际青少年信息学奥林匹克竞赛等。第2章入门基础,主要介绍数据的输入输出格式、基本编程环境与方法、在线系统的使用、常见错误及其对策、字符串处理等。

第二部分是基础端,包括四个章节。第4章数学问题,主要阐明与ACM程序设计最密切的一个专题,重点展开了数论、计算几何、组合、概率等具体数学问题。第6章高精度计算与模拟法,主要讲解ACM程序设计中、也是实际生活中经常使用的大数高精度计算问题,并以此引出一种模拟法的求解问题思路。第7章排序与查找,这是计算机科学中的两个经典问题,在很多ACM程序设计中都有具体应用,举例阐明这些问题的求解策略及其应用。第10章并查集,介绍了一个特殊高效的数据结构及其使用。

第三部分是基本盘,包括四个章节。第3章蛮力法,主要介绍蛮力法这种最典型、最直接的问题求解方法,包括基本思想、实例分析、程序优化策略等。第5章分治、递归与递推,主要阐释最常用的分治递归以及递推策略,通过实例剖析递归与递推的关系,以及相互之间的转换。第8章贪心法、第9章动态规划法,作为问题求解的两个常用算法,介绍了其基本概念、核心思想、一般步骤,通过经典问题并配以若干实例分析问题求解策略。

2.2 ACM 竞赛引导的教学模式改革

(1)仿照ACM竞赛机制转变教学形式

ACM程序设计通常是以团队的形式参赛,三人一队,且每个队伍共用一台计算机,队员需要合力编写并调试程序。因此,在教学中也以团队的形式进行分组,教学活动以小组为单位,组内交流讨论、分工合作,组间相互评比、取长补短。这种轻松活跃的教学氛围促进了学生间的交流,激发学生的创新能力,培养学生的团队合作意识、竞争意识,在潜移默化中强化了学生的创新思维。

(2)借助ACM经典赛题训练思维模式

ACM程序设计与相关专业课程,如高级语言程序设计类、离散数学、数据结构、人工智能、算法分析与设计等直接关联,ACM赛题涉及知识面广、难度高,解题思路更是灵活多变。解决问题往往需要队员们集思广益,激发潜在智慧。实际教学中通过联想、发散、逆向等思维模式探索新的算法,在原有算法的基础上进行类比、组合、改进,这对培养学生的创新思维模式是大有裨益的。

(3)服务ACM竞赛机制开展混合教学

从2013级开始一直用学者网开展线上线下混合教学,访问地址:http://www.scholat.com/course/ACMer,覆盖面广、辐射性强。据统计,截止到2020年7月29日,网站页面点击量为63750人次,服务学生逾1000人,视频课件资源51个,作业139个。同时,通过学者网的线上线下混合式教学可以7×24小时随时随地师生互动交流。相比QQ、微信群聊,形式清晰,问答明了,不会刷屏。相比私聊,优点是针对全部学生可见,同一个问题不需要多次回复,学生也可以互相交流。有别于闲聊,真正凸显学术性、专业性。

(4)夯实ACM竞赛技能搭建实践平台

基于已有的开源ACM在线评测系统(Online Judge,OJ),建立了一整套功能强大的程序设计学习实践平台,并与评测系统进行深度融合。包括在开源的ACM俱乐部上建立了官方在线练习平台,在酷哒网设有竞赛和作业平台,在本地部署两级OJ等,仅内网访问的OJ用于校内选拔和课程考试,外网可访问的OJ用于学生公开网络赛和平时练习,学生社团岭南师范学院计算机协会也专门成立了ACM部门,逐步建立了以学生为主体的组织和培训体系,整体呈现稳步向前的态势。总体上已经构建了一体化实践教学平台,为学生提供技能创新实践,依托ACM系列竞赛有针对性地设计课程、组织教学“以赛促学,以赛促教”的教学模式,将所有的实践环节有机融合,不仅能够满足学生自学的需求,而且能够运用于课堂教学生态,实现竞教无缝衔接,进一步激发了学生学习课程知识的兴趣,提高学生的分析能力、动手能力、团队协作能力和创新能力。

(5)组建ACM竞赛团队提高综合素质

因ACM竞赛的国际影响力,目前ACM竞赛依然是国内高校计算机方面的一个热点,是培养全面发展优秀人才的一项重要活动,岭南师范学院也不例外,从2008年开始每年都会组织学生进行ACM程序设计大赛,每年至少组织三轮选拔赛挑选学生参加广东GDCPC竞赛。实践表明,组建ACM竞赛团队,鼓励学生参加ACM大赛,有效地促进了学生程序设计能力、算法创新思维的不断提升,不仅有助于专业知识技能水平的提升,还能够提高学生的团队协作意识、创新精神、心理素质等综合素质。

2.3 ACM 竞赛引导的评价模式改革

(1)引入ACM竞赛机制的过程评价

利用学者网分析了学生的在线活跃行为,如图1所示,可以发现有相当数量的学生开展了较高频度的互动,线上活跃度高。但是,仍然很多学生的线上互动活跃度不高,互动次数不超过10次,严重依赖于传统的课后提问或QQ微信答疑,而且经常只是一对一问老师。这样导致至少两个方面的不利:一是缺乏有效的过程记录,没有足够的创新思维过程;二是缺乏足够的生生互动,没有理想的朋辈创新思维分享。发现这样的趋势后,及时改进了平时成绩评定方式。将学者网互动活跃度纳入平时成绩,引导学生积极开展师生、生生互动,分享创新思维训练过程。

图1 学生互动活跃情况图

(2)引入ACM竞赛机制的作业评价

利用杭州电子科技大学OJ、浙江大学OJ等开放平台,挑选和课堂教学密切相关的问题集,注重形成性考核。在课程教学中,作业分为必做和选做两类,均为针对性的专题作业,其中必做为基本练习,是课堂教学效果的检验,选做一般更加综合、有一定的难度,供学有余力者完成。在每次作业后,公布AC结果、累计用时和作业排名,引导学生良性竞争。同时,鼓励有能力的学生自主提供问题建立问题库(problem set),在OJ系统上自动组卷成作业题,由其他同学完成。每次作业均要求学生至少任选一个问题按照模板提供详细的解题报告,包括问题描述、输入输出、样例输入、样例输出、问题分析、程序代码、测试示例、结果截图、解题备注等,特别鼓励学生举一反三、深化拓展,撰写一些经验、心得,归纳规律、规则、方法和解题中注意事项等。

(3)引入ACM竞赛机制的考试评价

考虑到传统笔试不利于程序设计类课程对学生核心能力的测试,作为应用型工科教学改革的手段之一,计算机类相关专业从2013级开始,吸取、借鉴了ACM竞赛机制的重要意义和优势,逐步采用本地OJ平台,实现程序设计课程群的在线考试,注重考试过程评价,包括错误尝试次数、解题时间等,目前已涵盖了ACM创新思维、C语言程序设计、C++程序设计、数据结构、算法分析与设计等课程。考试成绩的评定以OJ排名为序,成绩实时公开,以学生AC完成一定数量的题量为及格基本要求。同时,学生通过ACM省赛选拔,相关课程可以申请免修直接获得学分,按照不同的竞赛成绩,获得相应的绩点。

3 ACM竞赛引导的创新思维教学改革成效

经过若干周期的运行,ACM竞赛引导的创新思维教学改革取得了初步的成效,主要包括:

(1)全方位建立了ACM竞赛引导的学生创新活动制度保障

建立起涵盖培养模式、资金来源、实验场所、激励措施等在内的全方位学生ACM创新制度保障。全面实施了本科生导师制,开展面向ACM竞赛的大学生科研项目训练和创新项目训练,由专业导师和企业导师全程负责指导项目组的课外科技活动。设立创新活动学分互认机制,激励学生积极参与课外创新活动。

(2)多角度实施了ACM竞赛引导的常规化学生科技创新活动

以能力素质提升为导向,广泛开展了内容丰富的ACM竞赛相关科技创新活动。组建ACM创新项目团队,开展经常性科技创新活动。主要有广东高校数字化学习工程技术开发中心的卓越工程师团队和广东宏康科技有限公司项目研发团队等,吸引了学生的积极广泛参与,把专业理论学习、专业技能训练和课外科技实践融合在一起,成为课外科技文化生活的重要形式和载体。

(3)立体化开展了各级衔接的ACM竞赛和创新训练项目

针对各级各项ACM竞赛和每年的创新训练项目,开展从学院到学校、省区、全国四级创新训练项目和赛事,覆盖四个年级学生。将学院每年一届“IT文化节”与广东大学生程序设计竞赛、全国计算机设计大赛、蓝桥杯、挑战杯等专业赛事对接,搭建起全体学生每年都能参与的全覆盖科技创新平台。

总体上,人才培养质量明显提升,主要表现为:①相关专业学生创新竞赛成绩突出。获得大学生创新创业训练计划项目国家级10项、省级14项;获得学科竞赛奖励,如蓝桥杯大赛、ACM程序设计竞赛和机器人大赛等,国家级18项,省级70项。获得软件著作权授权20余项、实用新型专利授权近10项。②相关专业学生就业率和就业质量稳步提升。毕业生初次就业率连续多年稳定在97%以上,最终就业率达100%,就职岗位与所学专业的相关度为85%以上,应届毕业生平均薪酬在5000元以上,薪酬水平排在学校各专业前列,并呈现稳步增长趋势。

4 结语

创新思维要求学生从多角度出发思考问题,抓住问题本质,综合运用已有的知识、信息、技能和方法,提出解决问题的新方法、新观点。这与ACM竞赛类程序设计对学生的基本要求不谋而合。本文研究与实践了ACM竞赛引导的个性化新工科创新思维教学改革,具体分析了ACM创新思维引导教学的作用、详细剖析了ACM竞赛引导的创新思维改革措施,通过以ACM程序设计为载体的训练,在ACM竞赛引导的程序设计教学中引入创新思维训练,采用竞赛形式的教学方法,以赛促学,锻炼学生的思维模式。结果表明,通过ACM竞赛导引的教学改革实践,培养了学生的创新精神、协作意愿和实践能力,教学改革初显成效,能够有效提升人才培养质量,所提出的教学改革研究可以为实施应用工科人才培养改革提供具体的实践支撑,为同类院校提供一定的参考,为相关部门管理、监控和评价提供决策借鉴。

猜你喜欢
程序设计竞赛思维
思维跳跳糖
思维跳跳糖
2020丝绸之路数学竞赛
思维跳跳糖
基于OBE的Java程序设计个性化教学研究
项目化教学在Python程序设计课程中的应用
C++程序设计课程教学改革研究
思维跳跳糖
医学专业“Python程序设计”课程教学改革总结与思考
创新思维竞赛(3)