孙晶 方英兰 刘高军 何丽
摘要:越来越多企业人力资源部门和IT技术部门采用计算机程序设计能力认证考试来衡量个人计算机专业能力;认证考试也为企业招聘选拔优秀IT人才的标准化参考。对于高校,有针对性地对学生进行编程引导,培养学生的编程兴趣,有助于提高学生计算機程序设计能力,从而提高认证成绩。以北方工业大学为例,探讨了培养学生程序设计能力的思路、方法和计划。
关键词:认证;程序设计;考试;能力
中图分类号:G642.42 文献标识码:A 文章编号:1009-3044(2019)02-0085-02
随着人工智能时代的到来,未来中国对IT人才的需要日益旺盛,但也有不少企事业单位反映计算机类毕业生实际应用知识、动手能力与应用能力不够、程序设计开发经验严重不足,尤其是程序设计能力、算法设计与分析能力无法达到用人单位的要求;很多计算机、软件工程专业的学生不会写程序,企业招不到合格员工;考研成绩优秀的学生,编程不好,无法开展科研工作…… 也就是说,计算机程序设计能力不强,对学生就业是一个严重的考验,更阻碍了其进一步的提升,甚至影响到社会的发展和进步。
1 大学生编程能力的社会需求
信息化的发展,使得计算机、网络的应用越来越广泛,各行各业对计算机的依赖程度越来越大,因此,对计算机学科培养的学生需求量也更大,对计算机学科学生编程能力的要求也更高。高校在探索培养学生计算机思维能力的同时,更是在找寻促进学生提高编程水平的方法。
从2005年起开始,很多高校对考研学生增加上机考试;企业在笔试、面试环节中也经常增加算法考试……这些做法,引领了社会对编程能力的要求导向,促进了高校对学生编程能力的培养的重视。但是考试成本高,难度不易控制,程序设计的能力和水平不容易评价。从2014年起,计算机程序设计能力认证考试应运而生。
2 认识计算机程序设计能力认证
计算机程序设计能力认证,即软件能力认证,主要是考察软件开发者的实际编程能力,培养和展现学生分析问题、解决问题和计算机程序设计的能力,科学评价计算机程序设计人才,并为企业选拔人才提供参考标准。
2.1认证的发起和社会的认可
目前,比较有影响力和知名度的计算机程序设计能力的评价考试有两个:中国计算机学会主办的CSP软件能力认证、浙江大学组织的PAT计算机程序设计能力认证考试,它们着重考察软件开发者的分析、解决问题和实际编程能力,科学评价计算机程序设计人才,每年举办3次。
认证考试已成为衡量个人计算机专业能力的重要标准,也为企业招聘选拔优秀的IT人才提供了标准化的参考,并可减少招聘成本,受到越来越多企业人力资源部门和IT技术部门的欢迎。以CSP认证为例,越来越多的本科生、研究生、在职人员为了提高自身的专业能力参加认证。CSP认证受到越来越广泛的社会认可。中科院计算所等科研院所将CSP认证作为选拔人才的重要依据;华为、百度、腾讯、阿里巴巴、微软、英特尔等也将CSP认证作为遴选人才的标准。
2.2学校认证考试的实施
面对社会对计算机专业学生的要求,为了检验学校教学水平以及学生的程序设计能力,计算机系组织121名15级学生参加了2017年12月的“第12次CCF CSP”能力认证考试,但成绩并不理想。在满分500分的情况下,很多同学没有达到100分。因此,有必要探索出一些方法,来促进教学,增强学生的自信心,进而提高学生的计算机程序设计能力。
3 提高程序设计能力方法的探索
3.1 现有的实践
为适应十三五规划对计算机专业学生的新要求,计算机系构建了以实践能力为核心的应用型创新人才培养教学体系,改革《C程序设计》教学,培养学生利用C语言编写各种应用程序的能力;在《数据结构》《算法设计与分析》《编译原理》等专业课教学中,重视培养学生的算法设计与分析能力,加强关键环节程序设计能力、实践与创新能力的培养;采用自动评测、上机考试、以赛促教等多种环节,培养大学生的实践与创新能力。
3.2提高程序设计能力的思路、方法和计划
从2017年12月的能力认证成绩上看,是很尴尬的结果:高分没有、低分很多。121人参加考试,最高分280分,平均分112.11;200分以上的仅有10人,不足100分的有40人。系里认识到了学生们编程能力的欠缺,思考着如何才能调动学生编程的积极性?如何能够通过程序设计能力?
3.2.1提高程序设计能力的思路
为了引起学生对计算机编程的重视,系里决定每年组织大三的所有学生参加CSP软件能力认证考试。老师们认真探索提高程序设计能力的方法,期待认证成绩能有明显的提高。
首先,对所公布的认证方法、考核方式的要求进行理解,分析历届考题,对认证所涉及的知识进行梳理;其次,督促相关课程的主讲教师更加重视考核的知识点,结合上机实践安排,提高学生课上的学习效果;然后,多方面了解学生的现状和知识需求,有针对性地进行辅导与培训;最后,营造编程实践的氛围,带动学生编程,提高程序设计能力。
总之,让学生重视程序设计能力和实践动手能力在未来发展中的重要性,增加编程训练的主动性;调动学生程序设计的积极性,增加克服困难、解决问题的自信心;建立一种训练机制,辅助学生提高认证成绩。
3.2.2提高程序设计能力的方法
对于认证所涉及的程序设计基础、数据结构、算法与算法设计策略知识,准备相关的练习题目,有针对性地、分类训练。
对于认证考试的真题,进行分类,把握重点,组织学生刷题,有针对性地进行分析、讲解、调试。
有效利用寒假、暑假的大量空闲时间,结合各类计算机竞赛,组织学生参加讨论、竞赛、参加训练,吸引更多学习加入编程队伍中,营造程序设计、编程训练不间断的学习气氛。
3.2.3提高程序设计能力的计划
(1)对于不同年级的学生,有针对性地进行编程引导。
大一学生:在学习“C程序设计”课程的同时,进行学科竞赛的宣传和引导;在学习中期,进行“新生程序设计挑战赛”,选拔思维活跃、编程入门较快的学生,进行程序设计基本知识入门培训;通过考试,进行“蓝桥杯”参赛选手的选拔。
大二学生:增加算法应用的编程题目,提高“数据结构”课程抽象算法的学习效果,进而增加编程设计的兴趣;暑假,学习网站上的程序设计能力培训课程,参加杭电ACM暑期多校联盟比赛。
大三学生:组织学生实际演练CSP认证考试的真题,挑选程序设计能力强的学生有针对性地进行讲解部分真题;组织学生进行CCF CSP认证考试。
(2)以老带新,加速低年级学生编程水平的提高。
每届学生中都会程序设计能力很强的学生,组织他们定期有针对性地给低年级同学进行专题讲解,扩大学习的知识面,增长见识。
(3)组织学生参加各类竞赛。
为了更有效地调动学生的编程热情,系里组织了多个比赛,以赛促教,让学生在竞赛中发现不足,积累经验,锻炼提高。
3月份,组织学生参加蓝桥杯全国软件和信息技术专业人才大赛北京赛区选拔赛、全国高校计算机大赛——团体程序设计天梯赛;
5月份,组织学生参加蓝桥杯全国软件和信息技术专业人才大赛全国总决赛;
7、8月份,组织学生参加“北大暑期学校”的程序设计课程拔高学习、“杭电ACM暑期多校联盟”网络比赛;
9月份,组织大三学生参加CSP认证考试;
10、11月份,组织学生参加“CCF大学生计算机系统与程序设计竞赛”、“ACM-ICPC亚洲区域赛”;
11、12月份,組织大一学生参加“新生赛”;组织全校的“校内ACM竞赛”。
(4)认证之前,进行真题讲解。
通过分析每届的考题,梳理认证所涉及的知识,集中对相对简单的前三道题进行讲解。在巩固了基本知识基础上,争取大部分学生完成前两道题的编写和成功调试,部分学生成功完成三道题。
3.3认证结果分析
在2018年9月进行的“第14次CCF CSP”能力认证考试中,我校的104名16级学生参加了认证考试。从结果上看,成绩有明显的提高。最高分380分,平均分136.83;200分以上的上升到38人,不足100分的降为24人。
两次认证结果的分段统计如下:
可以看出,低分段人数明显减少,高分段人数逐渐增加。
4 结论
结合我校培养高素质应用型人才的定位目标,计算机系将培养学生成为应用型人才放在重要位置,改革了《C程序设计》等多门程序设计相关的课程教学,重视培养学生的算法设计与分析能力;加强关键环节程序设计能力、实践与创新能力的培养。通过加入计算机能力认证考试,极大地调动了学生编程积极性;结合对认证的重视、对知识点的分类梳理、真题讲解、对各年级学生有针对性地编程引导、有序组织学生参加培训、竞赛,学生们的编程水平有了一定的提高。通过探索和实践,取得了一些的成果:促进了教学、调动学生程序设计的积极性、增加自信心、辅助学生提高认证成绩,为进一步提高学生的综合素质,提高人才培养质量,培养服务国家和首都社会与经济发展的社会主义人才奠定了基础。
参考文献:
[1] 张晓孪,王西锋.计算机专业大学生程序设计能力培养模式的探索[J].信息技术,2011 (10).
[2] 蒋宗礼.以能力培养为导向提高计算学科教育教学水平[J].中国大学教学,2008 (8).
[3] 钟辉,钟婉石,张楠.程序设计竞赛对综合创新能力培养的实践探讨[J].计算机光盘软件与应用,2015 (1).
[4] 鲍长生.大学生能力的社会需求与培养路径研究[J].现代管理科学,2013 (3).
[5] 韩建民,王丽侠,贾洞.大学生程序设计能力的层次化培养模式[J].计算机教育,2012(3).
[6] 张泳.对大学生程序设计竞赛管理和组织的实践与思考[J].计算机教育,2007(10).
[7] 季玉茹,王德忠.基于社会需求的计算机专业人才培养[J].计算机教育,2011(5).
[8] 马丽媛.基于创新型培养模式的计算机专业人才研究[J].中国市场,2015(28).