基于EduCoder平台的课程实践教学探讨
作者: 孙迪 刘沐洋 李建荣 潘刚[摘 要] 自2021年起,教育部开展本科教育教学审核评估工作,明确强调要加强本科教育教学改革力度,坚持以学生为中心,贯彻产出导向的原则。对当前所采取的教学模式和教学形式进行综合改革,有利于实现高校人才培养的目标和要求。在当前计算机类专业课程体系规范的指导下,要注重考查和培养学生的综合素质与能力,促使学生更好地胜任计算机领域的相关工作。以“面向对象程序设计C++”课程为例,基于EduCoder平台进行深入的课程实践分析和探讨,有利于解决当前课程实践教学中存在的问题。
[关键词] EduCoder平台;程序设计课程;教学策略
[基金项目] 2023年度天津科技大学教育教学改革研究项目“面向新工科和一流课程建设的C++程序设计实践教学改革”(KY202322);2023年度天津市普通高等学校本科教学改革与质量建设研究计划项目“智能+背景下的物联网一流专业建设研究与实践”(B231005708)
[作者简介] 孙 迪(1986—),女,吉林公主岭人,博士,天津科技大学人工智能学院讲师,主要从事计算机视觉研究。
[中图分类号] G642.0 [文献标识码] A [文章编号] 1674-9324(2024)41-0082-04 [收稿日期] 2023-08-11
“面向对象程序设计C++”是计算机类专业的基础课程,旨在引导学生掌握和培养良好的编程能力。在课程当中,教师会引导学生学习面向对象程序设计的基本思想和原理,通过具体的实践活动,掌握建立和描述对象模型的方法及步骤,并能在此之后加深对相关知识的理解,不断强化自身的逻辑思维和算法思维。借助EduCoder平台为学生打造在线实践教学的服务平台和创新环境,不仅能帮助教师释放自身的创造力,也可以促使学生形成自身的创造力,逐渐掌握程序设计的理念和方法,并在后期具备软件开发技能。
一、“面向对象程序设计C++”课程概述
(一)主要概念
“面向对象程序设计C++”课程带领学生从C++语言的学习入手,掌握编程基础,其中包含基本语法、基本程序设计等内容。通过系统的学习和训练,使学生逐渐掌握C++语言的运行机制以及基础语法,并且深入理解C++语言中面向对象程序设计的诸多特性,从而能够逐渐运用这项技术解决现实中的一些实际问题,掌握相关技能,也能够为今后的软件开发和应用奠定良好的基础[1]。
(二)当前实践教学中存在的问题
结合现阶段国内开展“面向对象程序设计C++”课程的教学情况来看,在进行基础理论知识教学之后会进行实践教学,许多教师会在课程开展之前布置一定量的实验任务,引导学生在课堂进行过程中,主动思考和解决程序设计及编程过程中所遇到的问题。通过这种方式能够考查和检验学生程序设计和编写的能力,在此过程中可以准确掌握学生动手编程和程序调试的情况。但采取这种教学方式依然面临一定的局限性和问题,主要在于无法检查完学生所有的程序完成情况,而且部分学生缺乏独立解决问题的能力,并没有认识到编程能力的提升对于其他学科的益处。对此,应当针对当前实践教学中存在的问题,注重建设学生的发展目标,能够紧跟面向对象程序设计的前沿动态发展,培养学生的理论知识与实践技能。学生要在具体实践过程中,具备创新创业的素养,并能够培养独立思考和解决问题的习惯,能够运用面向对象程序设计的思想和原理,编写和设计简单的应用程序。
二、EduCoder实践教学平台概述
EduCoder平台也被称为头歌实践教学平台,是在大数据和区块链等新兴技术快速发展的背景下,应对变幻不定的复杂局面,响应国家一流大学和一流学科建设,实现高等教育内涵式发展需求所建设的特色教学平台。对于我国计算机类专业来说,实践教学作为重要的组成部分,长期面临着教学团队封闭和实践教学资源局限的问题,急需与专业课程配套的实验和实训资源体系与案例。通过采用EduCoder平台开展实践教学,能够提供多样化的一体化实验开发和运行环境,实现实验活动和教学活动统一的目标,有利于解决教育技术领域所存在的关键问题。
(一)主要应用场景
EduCoder平台致力于为高校人才培养和企业能力提升提供智能化和一体化的在线实践教学平台,有利于实现资源共享和共建促进高校课程建设与改革,目前在高校实践教学中广受欢迎,并且在2020年被列为首批高校在线教学解决方案。企业版平台可以应用于本科和高职院校计算机相关专业实验实训室建设,同时还包括本科和高职院校一流课程建设,其中融合线上教学、混合式教学以及虚拟仿真教学,支持校企教学资源库和实践案例库的建设,同时也能满足企业类型平台和案例库建设的需求。
(二)主要应用优势
我国高校实践教学长期面临教学手段单一和实践资源有限的问题,EduCoder平台依托广大高校师生和企业专家,构建良性发展的产学研用生态系统,不仅能够为高校提供面向软件和计算机实践教学全周期应用的教学工具和平台,同时也可以提供各项教学案例,实现在线开发,能够支持和满足国内2 000多所高校与企业共建共享的需求,有利于解决教师和企业在案例、创新和更新方面所遇到的各项问题,可以支持提供数百种类型课程的教学和实践活动[2]。在教学资源、教学流程、课程建设、专业建设以及质量管理方面都具有诸多优势,从而能够大幅提升教学管理工作的客观性和全面性。EduCoder平台支持对教学和实践教学过程数据的同步处理,也能保障教学管理工作的可追溯性。并且,该平台采用领先的云计算技术和机制构建统一管理共建共享模式,可以充分利用现有的硬件资源。
(三)主要建设目标
EduCoder平台在2020年被列为首批高校在线教学解决方案,强调以教师和学生为中心,构建内容丰富且门类齐全的课程资源库,不仅能够解决在校师生课程实验活动开展的内容需求,还可以根据人才培养和专业培养的要求,从不同维度、不同层次为学生动手能力和操作能力的培养提供相应的帮助。基于该平台,教师既能够面向学生进行能力和素质的培养工作,也可以加强课程资源库建设,从而满足国内外知名企业对大数据相关岗位人才技能的实际要求。该平台在计算资源管理和共享方面可以适应不同院校对硬件服务器所提出的要求,并根据实际情况提供高性价比的解决方案,根据用户配置的实际情况,采用虚拟化技术为用户分配虚拟服务器资源,并促进实验活动的顺利开展和进行。通过这种方式,也可以进一步提高硬件设备的利用效率,提升和优化当前的实验教学管理模式。
(四)实践教学平台建设
EduCoder平台所构建的软硬件体系结构主要包括实验实训平台、课堂教学平台、课程建设平台、题库建设平台、能力竞赛平台、科研管理平台以及工程教育专业认证平台。其中实验实训平台能够支撑各种实践课程的一体化开发和运行,通过这种技术和方式可以为在校师生提供大规模实验和实践的案例资源库,极大地丰富传统的实验实训环境,其中包含虚拟仿真环境、交互式笔记环境、远程命令型环境等。除此之外,还可以借助经典评测环境,在一些重大竞赛和考试应用场景中发挥重要的作用。在课堂教学平台中可以提供丰富且细致的管理策略和方案,能够满足各类教学管理场景的应用需求。还可以为教师提供诸多教学工具,其中包含班级公告、作业布置、问卷管理、视频直播、讨论和签到等功能。在题库建设平台中,也可以将智能化评测和监考运行机制引入在线平台中,以解决传统考试和考核所存在的弊端。
三、基于EduCoder平台的课程实践方案
根据“面向对象程序设计C++”课程的教学目标及学生的实际情况设计综合性较强的实验任务,提高课程内容的难度和挑战性,进一步强化学生的知识掌握程度,实现学生的个性化学习,培养学生的编程能力和独立科研的能力。
首先要在规划和设计实验任务的过程中,设定相应的实验目标,以此为前提条件,更有利于推进计算机类专业人才培养目标的实现,也能够在实践教学环节中进行强化和加深。例如,可以根据实验任务的难度进行排序,设定具体的实验目标。较为简单的实验任务,类似于定义三角形、计算三角形面积等问题,可以引导学生掌握类的定义和实现的原理,从中能够构造函数并使用函数;难度较高的实验任务,如设计汽车、小车以及卡车的标牌名称、载客数以及载重量的问题,可以引导让学生掌握公有继承、受保护继承以及私有继承的理念。
所规划的实践教学内容应当包含基础实验任务和综合实验任务两部分,并采取循序渐进的原则,根据学生所存在的薄弱环节,由浅入深地引导学生运用所学的理论知识解决相关问题,从而逐渐掌握和夯实自身的编程能力基础。在综合实验部分中,要采用EduCoder平台引导学生培养自身的创新意识,并主动解决复杂问题,经过系统化的训练,不断拓宽自身的思维视角,为后续系统能力的培养奠定良好的基础。
四、基于EduCoder平台的课程实践案例
在规划和设计实践课程内容过程中,将具体的实践操作任务分为基础实验和综合实验两部分。首先以基础实验为例,可以设置具体的实验题目,引导学生进行具体的操作,培养学生运用所学知识解决基本问题的能力,从而夯实学生的编程能力基础。
(一)具体实验内容
首先可以设计学生统计总人数和总成绩,并对成绩进行排序处理的任务,实验目标主要要求学生理解和熟练掌握运用排序算法,并能够在具体的操作过程中掌握静态数据成员、静态成员函数等内容,这项任务相对来说较为基础,但对初次接触计算机语言的学生来说,也具有一定的挑战性和实用性[3]。这个题目覆盖了类与对象的相关知识点,考查学生对相关概念的掌握程度,同时也要对学生的分析和设计能力进行训练。通过专项训练能够拓展学生的编码能力、调试和改错能力,并根据自身的情况进行不同层次、不同程度的拓展和提升,通过这种训练方式可以满足学生不同层次的需求。借助EduCoder平台可以获取线上一流课程资源,能够为该任务的实行提供充分的理论和实践案例,教师可以利用在线视频、习题库以及试题库进行多种形式的在线教学内容设计,灵活配置各项资源。学生所得到的实验任务通常是自身所熟悉的内容,而且应用于现实场景当中。通过这种方式可以让学生认识到程序设计的价值和意义以及具体的实用性,从而促进理论知识和现实应用之间的融合。
(二)具体实验过程
教师可以在EduCoder平台中设置具体的实践项目内容,其中包含不同任务的基本信息,如项目的名称和主要理念介绍,除此之外还包括技能标签,以便于学生能够根据题目要求逐步完成各项子任务。在向学生提供的代码仓库中要输入并上传与任务相关的文件和信息,其中包含完整代码以及学生所要完成的实验内容和要求。由于具体操作要按照由浅入深、由易到难的原则,因此在设计任务关卡的过程当中,也要声明任务的要求和设计的相关内容,让学生能够明确考查的范围,从而使相关能力得到培养。例如,首先要详细描述本关任务,让学生了解任务的具体要求。其次,要注重介绍任务所涉及的相关内容和知识,让学生能够对相关知识点与能力点进行学习和了解。通过具体的实验操作,让学生了解编程要求和测试说明情况,从而对所编写的程序进行调试和改正。学生在具体操作的过程中,教师也可以设置具体的评测时间,并根据学生的实际情况,判定统一的评分标准和规则,通过完善实验模式,可以让学生顺利进行实训任务。
教师在建立好项目之后,要发布具体的任务,并督促学生通过自主学习和精准训练完成程序设计。例如,可以利用EduCoder平台,首先登录自己的账户,根据所发布的时间任务要求在线编写代码,并及时进行提交,在编写的过程中如果遇到问题可以在平台上与教师进行交流和沟通。教师可以利用平台对学生所提交的代码信息进行自动编译,并根据学生提交的情况进行综合评测,对所得到的结果做出下一步教学方案,引导学生进行深入的学习。在此过程中,如果学生所设计的程序是正确的,则会直接显示通关的标识;如果所设计的程序出现错误,需要在提示信息的指引之下,发现自己存在的漏洞和问题,并及时进行修改和检查,通过反复测试指导所设计的程序,最终顺利通过。平台也可以提供精准性训练的功能,主要是根据学生日常的学习行为和态度进行记录并汇总,其中包含学生在实际训练过程中的耗时情况,以及各个关卡的得分,根据学生所提交的时间和得分情况,形成统一的实训数据,以便于教师把握教学进度,调整教学方案,围绕学生所存在的薄弱环节进行专项训练,也可以达到精准提升的效果。
(三)课程实践教学成效