基于PTA平台的《C语言程序设计》教学改革与实践
2020-10-23孙笑微
孙 笑 微
(沈阳师范大学 软件学院, 沈阳 110034)
0 引 言
2017年2月,国家教育部推进新工科[1-4]建设,先后形成了“北京指南”“复旦共识”和“天大行动”等,共同探讨了新工科的文化内涵和发展方向,同时全力探索形成领跑全球工程教育的中国模式和中国经验,助力高等教育强国建设。
C语言程序设计是计算机科学与技术专业中的专业基础必修课,该课程是学生了解和掌握计算机软件知识和C语言程序设计的主要课程。本课程不仅要求学生有较强的逻辑推理能力和扎实的数学基础,而且还要具备一定的分析问题和解决问题的能力,以及实践操作的能力。为了加强计算机高等人才的培养,使之更适应“新工科”的需求,实际解决高校“教”与“学”中存在的普遍问题,需要对《C语言程序设计》课程的实践教学方法进行改革[5-8],使之更好地适应时代的发展与进步。
本文将运用PTA[9-11]平台对C语言程序设计课程进行教学改革,实现全国资源共享,管理简单,数据分析准确,帮助教师分析学生知识掌握程度,发现问题,有针对性地开展教学和指导,从而促进学生程序设计能力的提高,为未来的高校教学改革提出新的依据和方法。
1 传统线下教学存在的问题
1.1 理论课枯燥乏味
C语言程序设计是计算机科学与技术、软件工程和网络工程专业的一门理论性、实践性、应用性很强的重要专业基础必修课程。以沈阳师范大学(以下简称“我校”)软件学院网络工程专业C语言程序设计课程为例,每年计划招生人数为90人,2个教学班,即教学班人数为40~50人之间,教师在过去的传统课堂上以理论讲授为主,教学内容偏重枯燥的语法规则,虽然在教学中也引入慕课[12-13]、雨课堂[14-15]等教学手段和方法,但是仍然只能够关注到学生的理论课堂部分,对实践部分没有有效的监督工具和手段,学生对C语言的学习,特别是上机操作实验部分存在普遍的畏难情绪,导致最终学习效果不理想。
1.2 实验课缺乏体系和考核标准
C语言程序设计课程是一门实践性操作性很强的学科,对学生的上机实践操作能力要求很高。软件学院网络工程专业19级C语言程序设计的教学计划为72学时,其中理论学时42学时,实验学时30学时,教师很难与学生进行有效同步,时间的延迟和平台无法统一等问题导致实践操作部分问题集压,由于C语言知识点连贯,使得一部分同学最终丧失学习兴趣,期末成绩不理想等,同时题目的局限性和考核方式的主观性也很难训练出学生扎实的编程能力。
2 PTA平台的改革与实践
2.1 教学活动设计
根据主动学习理论的要求,课程将分为开课前、开课中和开课后3部分进行设计。开课前,教师根据教学计划设计详细的教学大纲和教学实验日历,选取合适的教材、辅导书、难度相应的习题集和教案。开课中分为每章节的课前、课中和课后。课前,要求学生按照教学实验日历,通过雨课堂预习任务单和教材进行知识点的自学,利用PTA布置每一章节相关内容的习题,注意习题集的难度要适中,设置成随机模式以便期末组试卷用。开课中,通过PTA 导出学生完成的习题答卷,课堂上可以随机抽查学生的程序。对于正确的程序也可以让学生们探讨有没有更好的,时间复杂度更小的解决方案,针对学生未注意到而又重要的部分,教师可以引导提问,激发学生的主动思考。课程结束后,创建百题刷分习题集,将之前章节中所有的编程题(不仅限于题库的题)汇总,可以不设置结束时间,或设置较晚的结束时间,给学生充分的练习过程,同时让同学们回顾学习过程,总结学习方法,为后续专业课程的学习奠定基础。
2.2 教学活动实施
PTA(Programming Teaching Assistant)是程序设计类实验辅助教学平台,该系统将用户分为3种角色:管理员、教师和学生。教师可以建立并分享自己的题目集、创建自己的班级、添加学生、布置作业、统计成绩并进行数据采集和分析等。学生可以登录系统根据教师布置的任务完成相关习题,查看习题完成情况和自己所得分数,并且查看自己在班级中的排名,了解自己在班级中处于什么样的位置,及时调整自己的学习态度和学习计划。本文针对软件学院网络工程专业2019级90名学生进行PTA学习实践,纵向对比他们与往届非使用PTA平台的学生在实验成绩和实验效果上的差别,从而进行教学改革研究。
在开课前,C语言程序设计教学研讨组开会讨论每个教学章节要布置的电子作业,即题目集。如图1所示为题目集编辑页面。
图1 题目集编辑页Fig.1 Exercise Set Editing Page
PTA现有的题库内已经有将近3 000多道C语言相关的题目,题型涵盖判断题、单选题、多选题、填空题、程序填空题、函数题、编程题以及主观题等,题目集在初始化的时候除了需要设置习题的开始时间和结束时间,还可以开启随机组卷,其中包含题目顺序随机和答案顺序随机,以方便期末的时候利用这些现有的题目集进行随机组卷。被选到题目集中的习题可以随时删除和增加,由于开启了随机组卷,试题会根据原有习题分数自动进行题池的划分,这时可以利用习题左上角的上下按钮进行题池的合并和拆分,以方便形成分数统一标准一致的题池,为了让学生对所有题目都能够充分练习,还需要把几选几的选项进行修改,以便学生能够练到所有题型。每一类型的习题分数可以事先统一好,这样在期末组卷时会有统一的标准,也大大减少了后期的工作量。如图2所示为题库题型列表。
图2 题库题型列表Fig.2 List of Question Types in Question Bank
PTA提供了题目集分享功能,可以保证同一教学组布置相同的作业,避免大家重复劳动。教师可以在设置好题目集并添加好题目后,生成分享码,其他教师使用该分享码可以生成自己的题目集,也可以对题目集进行修改,但是此修改只针对教师个人习题集,不会影响其他教师的习题集。每章习题结束后,教师可以查询学生作业完成详情和分数。如图3所示为部分学生答题情况。
图3 成绩排名Fig.3 Ranking of Achievements
PTA还提供了OMS监考系统,可以开启随机座位功能以及考试防作弊系统。监考老师利用微信监考小程序将考场中所有学生的信息通过扫描二维码的方式扫到电脑上,学生可以根据电脑上的个人信息找到自己的座位进行考试。考试过程中,学生在考试时间内可以答题,教师也可以在手机端或者PC端查看学生是否有违纪行为,一旦违纪(即打开和考试相关的其他应用端)系统会自动报警。考试结束后,学生可以查看自己成绩在班级中的排名,教师也可以导出所有学生的答卷、成绩单、正答率、得分代码以及试卷分析等。
2.3 教学效果评价
将PTA平台应用到我校软件学院网络工程专业2019级学生的C语言程序设计实践教学中进行尝试,经过与2018级学生进行对比,得到学生C语言程序设计课程的平均成绩(其中包括平时成绩30%、期中成绩20%、期末成绩50%)、不及格率、优秀率和学生参加ACM国际大学生程序设计竞赛人数的对比,如表1所示。
通过实验数据可以看出,PTA平台提高了课程的通过率和优秀率,培养了学生的实践动手能力,也大大提高了学生程序设计竞赛的成绩。这为软件学院其他实践课程给出了很好的经验和改革依据。
表1 “C语言程序设计”实践教学改革教学效果对比Table 1 “C language programming” practice teaching reform of the teaching effect
3 结 语
基于PTA平台实现C语言程序设计课程的教学改革的开展,对于有效的丰富教学资源,提高学生的自主学习主观能动性、提高学生的编程能力和计算机操作能力都具有至关重要的作用。同时加强了师生互动,提高了教师教学的效率和学生学习的效率,确保将学生自主创新的热情激发出来,让学生学会积极思考,将所学知识融会贯通,以此来不断地提高学生的编程能力和动手实践能力,促进学生全面发展,为高校教学改革提出新的方向和目标。