基于大学生程序设计竞赛平台建设的程序设计类课程教学实践与研究

2021-03-15 06:59王睿李华张宇昕丁岩袁芳菲赵建平
电脑知识与技术 2021年1期
关键词:计算思维教学实践

王睿 李华 张宇昕 丁岩 袁芳菲 赵建平

摘要:该文以实际教学与学生程序设计竞赛平台建设为导向,深入挖掘依托平台建设的教学活动结合的创新思路,结合大学生程序设计、算法设计等相关课程的特点及问题,对“基于大学生程序设计竞赛平台的教学模式”展开深入的研究与实践,提出基于竞赛平台的课程模式设计(目标、内容、结构、考核)方案、优化相关的课程考核评价方案、变革相关的实践教学实施模式,以提高学生的编程水平并培养学生的计算思维。

关键词:大学生程序设计竞赛;计算思维;教学实践

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

文章编号:1009-3044(2021)01-0190-03

大学生程序设计竞赛被誉为程序设计届的奥林匹克之称,得到了社会、高校和企业的广泛认可,目前相关赛事主要有ICPC国际大学生程序设计竞赛和中国大学生程序设竞赛,参赛学生通过在线判题系统(OJ)进行赛事相关题目的训练,在训练过程中发现OJ题库水平参差不齐,分类不够明确,无法根據同学自身特点进行针对性训练,且功能单一,无法进行训练外学习扩展,且大部分平台仅为学生提供题库及在线训练,竞赛题目从广度和深度上都对实践和理论教学有着指导意义,大部分平台未将课程体系建设及相关教学与平台进行融合[1]。

1 程序设计类课程问题分析

程序设计类课程在计算机信息类专业课程体系中有着十分重要的地位,经过多年的实践教学观察,程序设计类课程大度注重语法和简单程序的实现,根据调查大部分高校开课学期在1-4学期,大多在忽视算法设计、逻辑推理、数学建模等深层次理论知识[2],另一方面由于入学学生的教育背景不同,导致基础参差不齐,部分学生基础较差,出现提前放弃学习的现象,同时课堂实践分离,以教师为中心的教学方式比较普遍,学生动手和独立思考的机会少,学生对程序设计的本质和实践能力没有得到提高,考核方式仍然由传统的考勤平时成绩和期末考试构成,忽略学生反馈及学习过程,并没有提升学生的自我学习能力,导致课程结束就是学习的结束,所在课程学期过后没有长期坚持,临近毕业学生已经没有了基本的编程能力,教学效果一般。

2 程序设计类课程教学改革

大学生程序设计竞赛以程序设计、数据结构与算法、算法分析与设计等课程为基础,同时竞赛题目在广度和深度上要超出课堂教学内容,在竞赛过程中学生以三人组队,各司其责在5小时内共同完成程序的编写和调试,能够锻炼学生的逻辑分析、临场应变及团队协作能力,程序设计类课程在讲授基本语法和算法的同时应更加注重实践,实践证明编程主要在于“编字”,在培养方案中适当增加实验实践环节学时,基础知识讲授进度加快,在实验和实践中掌握基础知识,无论在竞赛和将来的工作中,都是团队共同解决问题,将实验和实践环节分为基础知识和协作应用两部分,分模块锻炼学生独立思考的基础能力和面对难题及大型项目时的团队协作能力。

在实际教学中发现,学生学习过程中对计算思维了理解和掌握程度不同,竞赛中成绩突出的同学只占少数,由于参加大学生程序设计竞赛需要一定的门槛和兴趣,且需要长年训练才有可能获奖,大部分同学无法坚持,由于门槛过高而放弃训练,通过问卷调查对学生的学习基本资料进行调查,针对不同的学生层次制定符合不同层次学生的多套方案,方案制定过程由不同层次的同学、教师及企业共同参与制定,构建以学生为中心的课堂环境,根据学习情况划分好队员,队员应各尽其职,达到互相学习、共同进步再到自我学习的目的,在理论学习的同时,重点加强学生的算法思维培养与应用能力,通过加入大数据与人工智能的相关实习实训内容,引入创新实验题目,将课程的相关实践环节以大学生程序竞赛的形式进行不断的练习与考核,及时跟踪学生学习进度与问题,使大部分学生能够真正意义上去写程序,体会计算思维、算法的奥妙,能够写出好的、优秀的程序,将理论知识与实践知识相结合,解决实际问题,同时教师根据学生学习反馈进行课程的持续改进,制定以学生为中心的课程形式和内容。

3 大学生程序设计竞赛平台建设与实现

技术上,传统大学生程序员设计竞赛平台采用B/S(Browser/Serve)架构的三层体系结构,后端SQL数据库,Redis、异步队列、判题服务器、测试用例、同步模块组成,为了将平台扩展到实际程序设计类课程中去,学校程序设计竞赛平台增加了若干模块,并采用Docker进行部署,有效地降低了部署难度[3]。

程序设计竞赛选手根据竞赛题目质量选择合适的竞赛训练平台进行训练,国际大学学生程序设计竞赛平台是以题目判别程序为核心,能够为多语言环境提供在线程序输出及运行时间效率评测,系统利用海量的算法设计题目和用户提交数据,可以分析题目难度,为开拓学生使用环境增加了论坛沟通区域,平台首先服务于程序设计竞赛,可以将竞赛与实习实践相结合,由于竞赛环境本身无人为因素参与,能够客观地反映出学生的算法和程序设计水平,辅助教师进行教学的持续改进。程序设计、数据结构与算法等相关课程是对算法思维及动手能力要求很高的课程,要求学生在掌握各种基本语法、算法、数据结构的基础上,必须进行反复练习,以达到将计算思维融入算法设计、数据结构设计、程序设计中。

平台具有在线判题、学习交流、自建竞赛等模块,平台中大量的竞赛题目为学生练习提供了良好的学习环境,传统的实践教学以学生上机、教师查看学生代码、学生书写实验报告为主,由于工作量大、学生认为实验报告过于形式等问题效果不理想,将相关课程实践环节全部基于竞赛平台,学生通过平台进行练习,利用论坛、群等模块交流学习心得,教师通过竞赛模块对实践环节进行考核,同时平台可以对学生的训练情况进行跟踪,形成数据分析报告,方便教师督促学生作业与训练任务的完成。大学程序设计竞赛平台系统体系结构如图1所示。

平台同时对大学生程序设计竞赛队员的成长进行跟踪,设置了队员之家,与竞赛队队员保持联系实时更新队员的就业、继续学习等信息,通过队员之家获取真正研究、企业需求,不断进行信息反馈,形成了良好的院校、优秀企业沟通桥梁,为程序设计人才培养提供改进的方向。

4 基于竞赛平台的考核方法改革

传统的考试方式已经进行了转变,大部分程序设计及算法类课程已经以上机考试为主,虽为上机考试,仅是将纸质试卷进行了无纸化,竞赛平台采用实时程序判定,判定反馈有以下7种:

1)Accepted(AC).提交成功,通过判别程序

2)Wrong Answer(WA).输出样例错误

3)Runtime Error(RE).程序运行出错,意外终止等

4)Time Limit Exceeded(TLE).程序超出运行时间

5)Presentation Error(PE).程序输出格式错误

6)Memory Limit Exceeded(MLE).程序运行超出规定内存范围

7)Compile Error(CE).程序编译错误

能够做到反馈及时成绩公正,同时传统考试为一次性直接判定成绩,而高校教学重点在于提升学生的计算思维及分析和解决问题的能力,教会学生如何学习才是根本,将学生的学习过程及结果进行结合,并将考核转化为学生动力的一部分才是考核的真正意义,所以将基于竞赛平台的相关课程考核进行改革,最终考核结果由课堂表现、在线判题结果、标程分析报告构成,传统教学中往往不考虑学生课堂参与度,教师讲授考勤预留作业,课堂表现分数由此构成,学生只在乎最后考试并保证出勤和作业的提交[4],本次课程改革将以学生为中心,将课堂活跃度,学生讲题作为考核过程,并提高课堂表现比例将成绩占比由20%提高至30%,在在线判题结果是对课堂效果的直接呈现,因此将在线结果设置为成绩占比40%,标程分析报告30%,考核不是目的,总结考核过程,将所有题目和课堂内容全部掌握才是课堂的真正意义所在,考核结束后学生需对课堂内容进行回顾总结,并对考核内容进行分析并编写解题报告,使学生能够清楚总结分析问题的重要性,真正学会课程内容,提升实践能力[5]。

5 教学改革实施

学校依据国家、地方经济社会发展和国防现代化建设需要,为实现以竞赛平台为基础,持续进行状态监测和质量改进、及时发现问题、提高教学质量,构建了科学、完善的教学质量控制体系和有效的运行机制。提出了教学改革方案的实施方案如图2所示。

6 结束语

经过大学生程序设计竞赛平台的建设及相关教学活动的改革与实践,有效地激发了更多学生学习计算机的热情,我校大学生程序设计竞赛的成绩得到了显著提高,从对我校毕业生企业回访及问卷调查结果显示,我校毕业生踏实肯干,具有团队协作精神,编程能力较为突出,说明教学改革有效地提升了学生全方位分析和解决工程问题的能力,在之后的教学工作中将对其他课程进行相关教学实践。

参考文献:

[1] 林金珠,倪天伟.基于ACM-ICPC竞赛的C语言课程教学实践[J].安庆师范大学学报(自然科学版),2017,23(1):102-104,119.

[2] 杨玉军,杨夷梅.计算机程序设计竞赛思想融入“数据结构”课程教学的探索与实践[J].科教文汇(上旬刊),2016(2):50-52.

[3] 李力东.计算机程序设计竞赛辅导系统[J].中外企业家,2018(13):182.

[4] 陳军.“计算机程序设计”课程教学实践与探讨[J].中国电力教育,2012(25):67-68.

[5] 彭立宏,肖晓强,周丽涛.“计算机程序设计”课程教学研究与实践[J].计算机工程与科学,2014,36(S1):39-42.

【通联编辑:谢媛媛】

猜你喜欢
计算思维教学实践
基于计算思维的软件类研究生高级算法课程教学研究
基于计算思维程序设计的军事案例研究
程序设计课程中计算思维和应用能力培养问题研究
浅论高中化学生活化教学的实践与思考
浅谈初中物理实验教学与学生创新能力的培养
测量平差课程教学改革探讨与实践