基于PTA辅助教学平台的C语言课程的教学改革

2020-11-26 08:48康元元高彦彦高伟坤
石家庄学院学报 2020年6期
关键词:C语言程序设计编程

康元元,高彦彦,杨 洁,高伟坤

(石家庄学院 机电学院,河北 石家庄 050035)

0 引言

C语言是一种结构化语言,模块化的程序设计原则利于程序的调试,且C语言的处理和表现能力非常强大,具有丰富的运算符和多样的数据类型,能够对硬件进行直接操作.作为通信、电子和电气类非计算机专业来说,该课程可培养学生的逻辑分析能力、编程实践能力、分析问题和解决问题的能力,并对后续课程的学习起到铺垫作用[1],学好C语言对电类专业学生未来的职业规划也非常重要.因此,采用何种教学方法,如何引导学生入门并提高学生的编程能力成为一线教师研究的重要方向.

石家庄学院作为应用型转型发展试点院校,办学定位为地方性和应用型,致力于培养适应地方经济发展的高素质应用型人才[2].同时,在工程教育专业认证背景下,以培养目标和毕业出口要求为导向,C语言课程改革要求学生在工程实践中,能运用该课程所学的专业技能解决实际的复杂工程问题.鉴于此,C语言课程的教学改革迫在眉睫.

国际计算机协会(ACM)主办的ACM国际大学生程序设计竞赛(ACM/ICPC)是世界上公认的规模最大、水平最高的国际大学生程序设计竞赛[3].该竞赛可展示学生的创新能力、团队协作能力,并考验学生在压力下分析问题和解决问题的能力.笔者通过带领石家庄学院机电学院学生参加河北省大学生程序设计竞赛,基于ACM模式的在线测评系统(OJ)对C语言课程进行教学改革研究,同时结合案例教学法进行线上线下相融合的新型教学模式改革,目的在于提高学生的学习兴趣、积极性和主动性,达到最佳的教学效果.

1 C语言课程的教学问题分析

针对C语言的课程设置、学生特点、理论教学、实践环节和教材选取等方面进行探讨.

C语言是高校理工科类各专业的一门专业必修课程,是大学生入学后接触的第一门计算机编程课,且一般在大一开设.各高校大一阶段公共基础课程的课时普遍偏多,学生的学习任务繁重.对于刚进入大学的新生,需适应大学生活,转变高中的学习方式和方法,变被动为主动.而C语言是大部分学生从未接触过的新的学习领域,编写程序对他们而言是陌生而神秘的,尤其对于电类专业的学生,具备良好的编程基础对后续课程的学习至关重要.因此,入学第一课要引导学生快速入门,培养学生的学习兴趣,保持对编程的学习热情,夯实程序设计基础.

C语言知识点繁多,难于记忆;语法规则较多,不易掌握;算法运用灵活,极易混淆.传统教材和课堂讲授教学是以算法为主线,讲解数据类型和运算符等,程序基本是解决数学类算法问题的案例.教学内容和电类学生的专业方向相脱节,且枯燥的算法讲解容易使学生失去学习兴趣,注意力会转移到手机等电子产品上,必定会影响学习效果.

C语言是一门实践性很强的课程,以往教学的实践环节大多是上机方式,教师布置实验内容,学生在实验课上完成编程任务.程序基本是教材上的实例和习题,在课本和网络上可以很容易找到答案,大部分同学都是照搬照抄,不能真正掌握编程思想,后期学习也只是应付期末考试,严重背离应用型转型目标和工程教育认证标准.另外,程序编写出错总是难免的,每周一次的上机课堂,一位教师要解答近百名学生的程序问题,问题也是五花八门,会出现各种语法错误、运行错误,即使程序调试通过也可能存在逻辑错误,与实现效果大相径庭.教师满堂跑,身心疲惫;学生的问题未能解决,学习受挫.这些问题让从事程序设计类课程教学的教师深感烦恼.

针对上述问题,笔者结合近几年指导学生参加河北省大学生程序设计竞赛的经验,并考察国内外各开放式在线测评系统,综合考虑各种因素,选择了浙江大学的程序设计类实验辅助教学平台(PTA)进行线上的实践教学改革.同时,教学中采用ACM竞赛模式,进行线上线下相融合的新型教学模式的探索和实践.

2 辅助教学平台

为支持ACM竞赛,很多大学搭建了自己的在线评测网站,用以支持教学、训练以及各种类型的比赛.这些在线平台可免费注册和使用,且测评网站拥有数量众多的竞赛题目,对用户提交的程序代码进行测试,并实时反馈出其正确性[3].浙江大学的在线评测系统发展出一个可支持在线教学的良好平台——PTA辅助教学平台.

PTA是程序设计类课程的辅助教学平台,截至2020年,已有600多所高校和百万用户使用该平台进行C语言和数据结构等课程的教学和比赛.任何人都可利用邮箱免费注册账号,教师可申请开通教师权限,具备教师权限的账号可创建和管理班级、建立(并分享)题目集、布置作业、考试及统计成绩等.

3 基于辅助教学平台的教学改革

石家庄学院机电学院中的通信、电子、电气和机器人这4个专业的C语言程序设计是大类培养课程,为了提高本课程的教学质量,基于辅助教学平台,引入教赛融合机制,更好地为机电学院培养应用型人才.

3.1 教学内容改革

C语言课程重在培养学生的实践能力,学生通过半学期的学习,要求达到熟记基础知识、掌握各种语法规则、应用灵活的算法设计程序、编写和调试出执行效率高的程序.对于没有任何编程基础的初学者而言,学习时间紧、任务重,大部分学生到学期末仍不能做到独立编程.

鉴于此,笔者从教学内容上进行改革.对于多而零乱的基础知识部分,选择性地讲解必要知识点,并融入到简单案例中.“纸上得来终觉浅,绝知此事要躬行”,让学生在实战中进行记忆,快速入门.课程采用的教材是机电学院教师郭鹏等编著的《C语言程序设计及应用教程》,该教材专为零基础初学者设计,由浅入深,循序渐进地讲解C语言基础知识[4].课程知识点和具体案例如表1所示.

在授课中,将枯燥的知识和语法规则融入到简单有趣的案例中,把本课程繁杂的基础知识分散到后续授课内容中.这种快速入门、分散难点的教学改革减轻了学生的学习压力,让学生在案例的实战中掌握课程内容,提高了学习兴趣和编程能力.在PTA辅助教学平台中,将教学内容和实践案例以不同题目形式建立题目集.

3.2 建立题目集和布置作业

程序设计类课程重在培养和提高学生的程序设计能力,实践内容应侧重程序的编写,所以实践环节和课下作业均以程序编写为主.显然,凭教师一己之力对学生编写的大量程序进行人工检错和纠错,工作量和工作难度都非常大,而且学生也不能及时得到正确与否的反馈.

表1 教学内容、知识点和案例引入

鉴于此,笔者结合C语言程序设计课程的特点,在“案例教学”过程中,将知识点融入到具体案例中,建立题目集,通过PTA辅助教学平台发放给学生,学生可以进行线上提交,判题系统自动给出结果反馈给学生,教师可随时查看班级学生的提交情况.学生提交程序代码后,评测系统使用大量的测试数据评判学生的程序是否正确,然后返回相应判题结果,学生根据返回信息进行调试和修改,直到答案正确[5].图1为学生提交程序代码后反馈的具体信息.

为了考查学生对基础知识的掌握情况,作业可安排适量的选择、填空、判断等客观题目.在PTA辅助教学平台中,教师建立自己的题目集,题目以编程为主,以多种形式练习题目为辅,也可将题目集分享给其他注册教师使用.PTA“共建资源,共享平台”的理念也是众多高校教师选择其作为辅助教学平台的原因之一.

C语言课程的实践性强,学生需要在课下进行大量的编程练习,在编程、调试程序的实践过程中逐步掌握程序设计思想,培养计算机思维能力[5].在PTA辅助教学平台布置大量编程题目作业,学生在课下可进行在线提交,平台上可随时查看自己在班级的排名情况,这种竞赛模式可激励学生的学习积极性,建立良好的学习氛围.

图1 程序提交列表

3.3 竞赛模式的小组合作学习

在教学过程中,结合ACM竞赛经验展开竞赛模式的线上学习.学生除完成个人的作业任务外,按照互补原则,要求每三人一组,共用一台电脑,在5 h内完成PTA平台布置的竞赛题目,各小组答题情况和排名在榜单中随时更新.团队成员需发挥个人特长,合理分工,配合完成比赛任务.这种竞赛模式的合作学习旨在锻炼学生的团队合作能力和交流沟通能力,最大程度地激发学生的学习热情,以赛促教、以赛促学.同时,根据作业和竞赛的成绩,为石家庄学院科研竞赛选拔优秀的程序设计人员,促进C语言课程的教学改革和人才培养.

3.4 成绩评定改革

C语言课程传统的成绩评定基本是以笔试为主,这种考核方式无法反映学生真实的编程能力和分析问题、解决问题的能力.为此,课程组将成绩评定分为上机考试和平时成绩两部分,比例各占50%.上机考试借助PTA辅助教学平台进行线上测试,平时成绩由“个人成绩40%+小组成绩30%+教师评价30%”三部分组成.为了公平和客观评价学生的成绩,平时成绩以PTA辅助教学平台的测试成绩为主,结合平时出勤和课堂表现的教师评价为辅.这种成绩评定方式的目的在于考查学生的动手实践能力、问题解决能力和协作能力.

4 结论

通过借助PTA辅助教学平台的C语言课程教学改革后,学生的成绩逐年提高,不及格率下降.以2019级通信工程专业为例,2019年C语言程序设计课程最高分为100,不及格率为0,平均分达到79.通信专业学生参与学校竞赛的数量和质量也逐年增加.这种教赛融合机制不仅可提高本课程的教学质量,而且可为机电学院选拔和培养高水平竞赛人才,促进学生就业,为企业和社会输送更多高素质的应用型人才.

猜你喜欢
C语言程序设计编程
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
基于Visual Studio Code的C语言程序设计实践教学探索
纺织机上诞生的编程
51单片机C语言入门方法
从细节入手,谈PLC程序设计技巧
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
PLC梯形图程序设计技巧及应用