陈雨龙 许新华 钱诗佳
摘 要:为更好地了解和宣扬“蓝桥杯”软件类国赛,文章采用Python中的Numpy、Pandas、Matplotlib三个常用模块,对最近三届国赛的参赛数据和竞赛成绩进行了分地区、分高校和分年度的可视化统计分析。统计结果显示参赛总人数逐年递增,省属民办高校参与度不断提高,但同时也存在着东部地区在获奖竞争力上普遍优于西部地区,部委属高校参赛率降低等问题。最后针对上述现象和问题对软件类赛事提出了四条建议。
关键词:蓝桥杯;Python;可视化分析
中图分类号:TP311 文献标识码:A 文章编号:2096-4706(2021)06-0119-04
Analysis and Suggestions on Basic Data of “Blue Bridge Cup”
Software National Competition
CHEN Yulong,XU Xinhua,QIAN Shijia
(School of Computer and Information Engineering,Hubei Normal University,Huangshi 435002,China)
Abstract:In order to better understand and promote the “Blue Bridge Cup” software national competition,the paper uses three commonly used modules Numpy,Pandas and Matplotlib in Python,to make a visual statistical analysis of the competition data and results of the last three national competitions by region,university and year. The statistical results show that the total number of participants is increasing year by year and the participation of provincial private colleges is increasing. However,there are also problems that the eastern region is generally better than the western region in terms of award-winning competitiveness and the participation rate of universities under ministries and commissions has decreased. Finally,four suggestions are put forward for software competitions in response to the above-mentioned phenomena and problems.
Keywords:Blue Bridge Cup;Python;visual analysis
0 引 言
在高校计算机教学中,参与计算机相关的大学生课外竞赛是体现教学质量的一种有效方法[1]。蓝桥杯赛事的举办得到了教育部、信息化部等部门的高度重视,每年举办一届,目前已经成功举办了十一届,国内参赛高校超过1200余所,参赛总人数已达40万人次[2],为推动我国软件和信息技术产业的发展,促进软件和信息化技术人才的培养起到了积极作用。
1 国赛模式与现状
赛程安排方面,蓝桥杯软件类省赛一般是上一年11月到下一年3月组织网上报名。省赛各组别一等奖选手将进入国赛,国赛通常于每年5月份举办,参赛选手必须按统一时间参赛,准时交卷。
竞赛模式和队伍组建方面,国赛采取单人赛制,选手必须独立完成比赛任务。共分为三个组别,依次是Java软件开发、C++程序设计和Python程序设计。
为体现竞赛的公平公正,赛题的评审组由1名组长、2名副组长和若干名评审员组成。每位评审专家的原始评分及评审记录须交由大赛组委会保存。另外,竞赛设置有投诉反馈期,组委会将受理有关违反大赛规则和纪律的行为[3]。
2 最近三届国赛数据分析
2.1 国赛参赛情况数据分析
最近三届国赛参赛人数和参赛高校数均保持稳步增长,三届国赛参赛人数分别是4 120、4 862和 7858人,参赛高校数分别是760、761和784所,第十一届国赛参赛人数和参赛高校数相较于前两届均有所增加。Python中的Numpy与Pandas模块主要用于对数据的清洗与处理工作,关键代码为:
#数据读入
Student_data = DataFrame(pd.read_excel(进入国赛分省人数.xlsx))
data = DataFrame(pd.read_excel(分高校分年度统计要求 .xlsx))
#年度参赛学生数、获奖数和高校数数据列表化
labels = Student_data[adress].tolist()
data_2018 = Student_data[2018].tolist()
data_2019 = Student_data[2019].tolist()
data1_2018 = data1[2018高校数量].tolist()
data1_2019 = data1[2019高校数量].tolist()
#年度参赛学生数、获奖数和高校数数据合并化
for i in range(len(data_2018)):
data_2018_2019.append(data_2018[i]+data_2019[i])
data_2020 = Student_data[2020].tolist()
for i in range(len(data1_2018)):
data1_2018_2019.append(data1_2018[i]+data1_2019[i])
data1_2020 = data1[2020高校数量].tolist()
从各省市参加国赛的人数来看,2018年第九届国赛中,广东省、湖北省、江苏省等地的高校均至少有100名同学参赛,位居第一位的是江苏省,参赛人数超过400人次;青海省和西藏自治区等地的参赛人员数量均在20人以下,排序比较靠后。后两届竞赛中,江苏省、山东省和广东省继续维持较高的总参赛人数,均超过300人参赛,海南省和西藏自治区等地的参赛人数仍较少,均低于20人。第十一届竞赛中,江苏省和山东省继续维持较高的总参赛人数,广州省、河南省和湖北省三地的总参赛人数大幅度增加,青海省、海南省和西藏自治区等地的参赛人数仍较少,均低于20人。
综合三届国赛各省市参赛总人数数据来看,广东省、湖北省、江苏省和山东省等地在三届竞赛的省赛中大部分学子都取得了优异的成绩,成功晋级决赛;多地参赛人数均呈现出增长趋势,尤其是广东省、湖北省和河南省等地的参赛人数均在第三届出现了较大增幅。西藏自治区和海南省国赛的参与人数一直较少,均少于15人并且没有增长趋势,可能与这些地区高校数量少、教学资源相对匮乏、计算机类专业招生人数少有关。
Matplotlib模块主要用于绘制图形。文中图片均由Matplotlib模块绘制而成。核心代码为:
#字体和图片大小设置
plt.rcParams[font.sans-serif]=[SimSun]
plt.rcParams[figure.figsize] = (12.0, 20.0)
#条形图绘制
ax.bar(labels, data_2018, width,label=2018)
ax.bar(labels, data_2019, width,bottom=data_2018,label=2019)
ax.bar(labels, data_2020, width,bottom=data_2018_2019,label=2020)
#热图绘制
ax.imshow(Third_data,cmap=Reds)
#图片展示与保存
plt.tight_layout()
plt.savefig("save.png", dpi=300, bbox_inches="tight")
plt.show()
2.2 国赛成绩分析
2018年,共有4 120人参加第九届蓝桥杯软件类国赛,此次国赛一共选出3 759位获奖选手,其中特等奖6人、一等奖210人、二等奖999人、三等奖1 560人和优秀奖984人[4]。后两届竞赛中,第十届国赛参赛人数小幅度增加至4 862人,获奖总数小幅度增加至4 203人。第十一届国赛参赛人数和获奖总人数相较于前两年有显著增加,分别是7 858人和7 497人。
最近三届国赛奖项数据如表1所示,三届国赛中除特等奖外,一等奖数量分别占奖项总数、参赛学生总数的0.05和0.05,二等奖为0.27和0.24,三等奖为0.40和0.36,优秀奖为0.28和0.26。与第九届国赛相比,后两届国赛中一、三等奖数量占奖项总数的比例在减小,优秀奖占比持续增加。此外,获奖数在总参赛人数中的占比在第十届竞赛中减少后又在十一届竞赛中迅速增加,与之形成鲜明对比的是第十一届的奖项总数远超前两届,上述数据表明第十一届竞赛相较于前两届竞赛获奖难度降低,尤其是二等奖和优秀奖。
紧接着分地区分年度分析获奖数据,如图1所示。最近三届竞赛中,江苏省、广东省和山东省三个地区始终保持较高的获奖能力,获得一二三等奖以及优秀奖的数量连续三年均位居前列,最高分别是820、684和730,体现出上述三个地区在竞赛方面具有明显优势。从第十届竞赛开始,湖南省、黑龙江省、辽宁省和广西壮族自治区等地在竞赛方面取得亮眼表现,二三等奖以及优秀奖的获奖数量均有明显提高,然而,湖南省和广西壮族自治区在一等奖的争夺上表现得不尽如人意。第十一届竞赛中,湖北省、四川省和江西省在获奖数量上有明显提高,分别是578、403和303。之前从未获得过一等奖的宁夏回族自治区、新疆维吾尔自治区和云南省都取得了一等奖。这说明第十一届竞赛的整体难度有所下降,参赛人员更容易取得奖项。值得注意的是,西部地区获奖人数较少,甚至有些省份从未获得过一等奖,说明各个地区在竞赛获奖方面的竞争力出现了分化,东部地区普遍优于西部地区。这除了与大赛宣传力度有关外,一定程度上还与西部地区教育资源匮乏,高校数量和生源少有关。
分高校分年度进一步分析高校参赛数据,如图2所示,从三种不同类型高校(部委属、省属民办和省属公办)参赛情况的分布可以看出,参赛学生类型覆盖本科到专科各层次,充分体现了大学生学科竞赛普及性的特点[5]。最近三届竞赛中,参与竞赛的省属公办高校数量显著多于省属民办高校和部委属高校,均大于250所。除了体现出省属公办高校更加重视竞赛外,可能还与省属公办高校总数多于省属民办高校和部委属高校有关。部委属高校共有117所,三届竞赛部委属高校的参与率分别是0.67、0.68和0.65,总体上看部委属高校对此竞赛的积极性很高,但第十一届竞赛中部委属高校参与率的降低值得注意,可能与大赛在部委属高校的宣传力度降低有关。
最后分高校分年度分析获奖情况,如图3所示,从总体上看,三届竞赛中三种类型高校的获奖数量处于一种平稳态势。从具体数据可以看出,省属民办高校第十一届竞赛的获奖数量相较于前两届都有所增长,而部委属高校和省属公办高校的获奖数量则出现了下降的趋势,这在一定程度上与赛题难度降低,省属民办高校对蓝桥杯大赛的重视程度加强有关。
3 建议
根据国赛目前的开展现状和本文数据分析,笔者就更好地推动软件类赛事发展提出四点建议:
(1)加强赛事宣传。国赛中部委属高校的参赛度和获奖率下滑和西部地区学生参与度低等问题,一定程度上说明了赛事的宣传还没有普及到所有高校和地区,需要赛事组加大宣传力度。
(2)提高赛题的多元性。第十一届国赛出现Python组说明大赛在与时俱进,结合更多优秀的编程语言,赛事组可以在此基础上提供更多语言选择,丰富赛题的多元性。
(3)推动竞赛向团队化方向发展。目前国赛都是单人赛制,赛事组可以在目前单人赛制的基础上增加团队赛。结合赛题的多元化对赛题进行调整,有助于对学生的编程能力和团队协作能力进行综合考察。
(4)进一步推进竞赛国际化。蓝桥杯软件类大赛第一届国际赛事的成功举办为蓝桥杯大赛迈向国际化奠定了基础,赛事组应当汲取第一届国际赛事成功举办的经验,积极借鉴其他国际赛事经验,进一步加强对赛事的改进,以便更好地举办后续的国际赛事。
4 结 论
文章应用Python中的Numpy、Pandas和Matplotlib三个模块对最近三年蓝桥杯软件类国赛的参赛情况和获奖情况进行了数据处理和可视化分析。从向好的角度来看,国赛获奖难度的降低,使得更多高校学子能够获得奖项。参赛总人数增加和省属民办高校参与度加强都说明了赛事发展得越来越好。从所出现的问题来看,西部部分地区参赛人数较少,东部地区获奖率普遍多于西部地区,一定程度上与西部地区教育资源匮乏,高校数量和生源少有关。部委属高校的参赛率降低说明赛事的宣传力度有所减弱。基于以上现象和问题,我们提出了加强赛事宣传、提高赛题多元性、推动竞赛向团队化方向发展以及进一步推动竞赛国际化等四条建议,希望能够助力于蓝桥杯软件类赛事的发展。
参考文献:
[1] 高洪皓,高珏,吴亚馨,等.面向测试问题驱动的大学生竞赛能力培养 [J].计算机教育,2015(1):36-38.
[2] 蓝桥杯大赛组委会.第十二届蓝桥杯大赛章程(个人赛) [EB/OL].(2020-12-07).https://dasai.lanqiao.cn/pages/dasai/news_detail.html?id=614.
[3] 李志玲.基于蓝桥杯的“以赛促学”在C语言程序设计中的应用 [J].湖北农机化,2020(6):132-133.
[4] 蓝桥杯大赛组委会.历届获奖名单 [EB/OL].[2020-12-07].https://dasai.lanqiao.cn/pages/dasai/news_detail.html?id=650.
[5] 李刚,胡晓梅,胡启文.全国大学生生命科学竞赛数据分析与展望 [J].生物工程学报,2020,36(11):2494-2500.
作者简介:陈雨龙(2001—),男,汉族,湖北宜昌人,本科在读,研究方向:数据挖掘、推荐系统;通讯作者:许新华(1968—),男,汉族,湖北孝感人,教授,硕士,研究方向:数据库、数据挖掘;钱诗佳(2001—),女,汉族,湖北襄阳人,本科在读,研究方向:数据挖掘、数据分析。