APP下载

基于ACM/ICPC程序设计竞赛驱动的信息类专业计算思维课程改革探讨

2019-01-08敬超范培

电脑知识与技术 2019年33期
关键词:实践课程计算思维

敬超 范培

摘要:本文主要探讨了如何通过对国际ACM/ICPC程序设计大赛课程的改革培养信息类专业学生计算思维。先分析了西部主要高校ACM竞赛开展情况,并以西部某高校信息类专业为例,展示了一整套完整的结合西部特色的ACM程序设计实践课程。该实践课主要是以程序设计类课程和ACM竞赛为核心,培养学生的独立思考及创新实践动手能力,并使得学生具备较好的团队协作精神及英语水平。最后本章指出了目前课程开设遇到的问题以及未来拟采取的解决方案。

关键词:ACM/ICPC程序设计大赛;计算思维;信息类专业;实践课程

中图分类号:G642 文献标识码:A

文章编号:1009-3044(2019)33-0094-02

1概述

随着信息技术的迅猛发展,人们可以随时随地通过计算服务(如移动计算,社会计算)获取到相关信息,计算思维几乎无处不在,因此如何加强信息类学生计算思维的培养,构建计算思维体系框架是值得探索的课题。学科竞赛是培养信息类专业学生计算思维的有效途径之一。通过参与学科技能竞赛学生的动手能力会得到提高,并掌握解决问题的合理方法,提供实践动手的创新能力。ACM国际大学生程序设计竞赛(ACM/ICPC)是一项具有展示大学生创新能力、团队精神协助、分析和解决问题能力竞赛,为大学生锻炼自身能力和展示才华提供了舞台,也为提高计算机教育水平和计算机课程改革指明了方向。

ACM/ICPC程序竞赛已经在全球多个国家举办,具有一定的影响力,之前多为欧美等高校垄断。近些年来随着信息技术的发展及国内高校的重视,上海交通大学、浙江大學等名校多次获得了该项赛事的最高荣誉。目前在全国多个城市都承办过ACM/ICPC亚洲区域赛事。然而,目前广西的高校参与度不高,因此结合广西地域地方特色,如何更好地发挥ACM/ICPC竞赛的作用,如何加强学生计算思维的培养,如何提高学生的实践创新能力是值得探索的课题。

2基于ACM竞赛驱动的实践课程

目前的广西高校中,由于桂林电子科技大学其在电子信息领域的突出表现,每年都会组队参赛并获得过优异的成绩。桂林理工大学则是结合信息类专业学生的能力及程序设计类课程的特点,将ACM程序设计竞赛的核心知识融人教学大纲。并专门设计了ACM程序设计实践课程,主要内容为数据结构、程序设计方法、算法设计与分析学以及相关课程中典型问题的编程实现。数据结构中稍微复杂一些的算法设计中可能同时要用到多种技术和方法,如算法设计的构思方法,动态变量及链表,算法的编码,递归技术,与特定问题相关的技术等。通过实验内容的训练,突出构造性思维训练的特征,提高学生组织数据与进行编写大型程序能力。上机实习是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。一方面,实习题中的问题比平时的习题复杂得多,也更接近实际。实习着眼于原理与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,起到深化理解和灵活掌握教学内容的目的。平时的上机练习较偏重于如何编写功能单一的“小”算法,而通过ACM程序设计实践,可以提高问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧。

每个实习题采取了统一的格式,由问题描述、基本要求、测试数据、实现提示等几部分组成。问题描述旨在为学生建立问题提出的背景环境,指明问题“是什么”;基本要求则对问题进一步求精,划出问题的边界,指出具体的参量或前提条件,并规定该题的最低限度要求;测试数据部分旨在为检查学生上机作业提供方便,在完成实习题时应自己设计完整和严格的测试方案,当数据输入量较大时,提倡以文件形式向程序提供输入数据;实现提示则是对实现中的难点及其解法思路等问题做出了简要提示。

实习题目分为三大部分:第一部分为基础问题、第二部分为经典算法问题、第三部分为ACM实践题。考核方式是第一部分为基础必做题,要求每人从若干个道题目中任选10道题完成;第二部分是选做题,可以选做其中几题,完成情况作为学生总评成绩优秀的参考;第三部分ACM实践题来自杭电、北大等ACM线上系统,要求必做至少10题,除了要完成基本的分析外,需要在实践报告中注明自己的账号,程序AC截图等,并将题目翻译成流畅易读的中文格式鼓励多选题目。

3课程开设存在的问题及解决方案

3.1存在的问题

自2015级起我校开设ACM程序设计类课程,虽然在一定程度上加强了学生计算思维的培养,达到了以赛促学的目的,但是在这些课程中仍然存在:

(1)“重理论、轻实践”,教师在教学过程中过多地强调“模型化编程”即套用模板,当出现了新的问题时学生无从下手,另外过多的时间花费在编程理论知识的教授,导致实践上机与学生的沟通不足;

(2)考核形式单一,缺乏过程控制,虽然专门安排了为期2-3周的ACM程序设计实践课程,但是部分学生主动学习的积极性不高,只是在要验收前一周才开始抓紧学习挑选简单实习题目完成,所以如何完善全面弥补考核方式也是亟待解决的问题之一;

(3)课程过多的是放在学生编程能力培养,学生团队协助和英语能力的培养没有得到充分体现。

3.2解决方案

目前针对以上问题,可以采取的措施主要有以下几种解决方案:

(1)全面提高教师的素质,引进高水平人才,鼓励教师去名校进修,学习先进的教学理念。

(2)进一步修改教学大纲细化每门相关课程的教师职责,制定新的奖励激励机制,鼓励教师在教学过程中创新。

(3)重视课外第二课堂,鼓励和督促学生在课外多读多看多动手实践,牢固基础概念。

(4)组织学生参与大型程序设计类赛事,增长大赛经验和见识。

(5)进一步修订考核方案,突出加强团队精神协助,将专业英语课程与ACM程序设计实践课结合提高学生英语理解能力。

4结论

本文的主要是以ACM竞赛为核心思想驱动培养学生计算思维,提高学生创新能力及实践动手能力。首先描述了ACM/ICPC在国际上的重要地位及业界认可度,并且阐述了该赛事在国内的发展情况,并结合广西区高校的特色简述了ACM程序设计赛事在区内开展情况。接着详细说明了我校桂林理工大学针对信息类专业学生开设的ACM程序设计实践课程,最后指出了目前该课程开设遇到的问题及解决方法。

相信通过不断的努力,我们将会摸索出一条结合广西特色培养创新类人才的道路,主要是依托ACM竞赛模式培养学生的团体合作能力,引导和培养正确的计算思维,同时强化学生的沟通协作能力,并通过专业英语学习提高学生专业英语阅读理解能力。

猜你喜欢

实践课程计算思维
智能机器人实践课程自主创新能力培养研究
基于计算思维的软件类研究生高级算法课程教学研究
基于计算思维程序设计的军事案例研究
程序设计课程中计算思维和应用能力培养问题研究
基于优势学科的“材料化学实验”课程改革研究