C语言程序设计课程教学改革探索与实践

2021-12-17 15:20孙晓玲王金玲
赤峰学院学报·自然科学版 2021年11期
关键词:模式实验教学教学改革

孙晓玲 王金玲

摘 要:结合多年的教学实践,对C语言课程从教学内容、教学方法与手段、考核评价体系与考核方法等方面的改革举措进行了总结,分析了存在的问题和取得的成效;用实例介绍了使用PTA实验教学辅助平台进行实践教学改革的具体做法,分析和探讨了C语言课程实践教学中存在的问题和改革的方法及取得的成效。

关键词:C程序设计课程;教学改革;PTA+模式;实验教学

中图分类号:G642.0  文献标识码:A  文章编号:1673-260X(2021)11-0089-04

1 引言

“C语言程序设计”是我校计算机各相关专业的基础课程,也是程序设计类的核心和入门课程。主要培养学生程序设计基础,把握程序设计方法和基本思想,奠定学生的编程能力基础。该课程历史悠久,由于其长期以来在软件开发和嵌入式系统开发中具有举足轻重的重要地位,所以特别受到各高校和软件开发企业的重视[1],我校计算机学院及与其合作的达内科技、青岛软件、安博教育等企业都十分重视C语言课程建设,将其列入专业改革重点建设的课程。该课程师资力量雄厚,参与课程建设的人员较多,多年来C语言课程组的老师们付出了艰辛的不懈的努力,使该课程建设不断迈上新台阶,成为我院具有示范作用的课程,通过积累经验,夯实基础、突出特色,使该课程在教学思想和观念、教学方法与手段、教学内容与体系、教学质量与水平、教改成果和教材建设方面均处于领先地位。

2 课程改革主要措施

2.1 教学内容建设和教学方法举措与成效

作为专业基础课,我校计算机相关专业均设置了“C语言程序设计”课程,C语言程序设计课程组根据各专业特点依据专业培养方案,立足学生实际多次讨论、修订教学大纲,经过深入实践和研究,编写了满足不同层次不同专业教学需求的理论课教学大纲、实验课教学大纲,并根据我校学生实际编写了实验指导书。在课程体系与教学内容设计上,突出把握程序设计方法和思想,充分体现项目教学的思想,注重程序设计实践训练,重点引入典型程序设计案例,将程序设计的学习融入对案例的研究和解决过程中,注重程序设计算法的实现,以学生实际编程解决问题的能力为突破口,培养学生分析和解决实际问题的能力。

2.1.1 教学内容注重突出“先进性、实用性和趣味性”

该课程在建设过程中,以程序设计为主导,努力适应市场和程序开发主流环境,重点体现“先进性、实用性和趣味性”,注意引进新知识、新技术、新思想和新理念,注重理论与实践紧密结合,在教学内容上给出与生活密切相关的、有趣的、有意义的典型案例,使学生对学习内容充分感受到乐趣,学生的学习热情得以充分调动,能够自觉地学习和掌握相应的基本理论和专业知识,从而能尽快适应软件的开发过程。

在突出先进性方面,讲授内容上注重介绍和使用C语言新的标准和编译版本,具体做法上选用了内容新颖、使用新标准的新版本教材,选择流行的、新颖的编译系统,教学理念上注重对学生程序设计思想方法的培养。

在突出实用性方面,以项目驱动为导向设计教学内容,首先根据项目的具体要求,提出问题,然后根据具体问题设计教学内容,由浅入深、从易到难,从简单到复杂不断充实内容,使得知识脉络更清晰。学生也通过项目任务的引导,不断面对新的问题,思索设计新的解决办法,循序渐进地解决一系列问题,并通过编写程序调试和完善程序的过程,获得了成就感,激发了求知欲望。通过对实际项目的分析得到解决方案,又通过编写和调试程序,使学生得到软件开发实际工作的锻炼。在分析解决方法的过程中,算法很自然的渗透其中,学生从中得到训练,在编程调试程序的过程中,枯燥难懂的语法规则也不再是困扰解决问题的屏障。

在突出趣味性方面,课程组的老师们开动脑筋,充分利用现代化教育技术和专业特长,制作有趣的教学课件,并针对学习重点和难点问题采用先进的多媒体技术手段制作动画、录制视频,将抽象的知识融入其中,结合典型的案例展示给学生,增强了趣味性,提高了教学互动效果,也极大地激发了学生的学习兴趣,使学生更自觉的在快乐的学习中学会知识。多年来,C语言课程的教学课件不断更新完善,生动形象,课程组老师设计的“C语言中的递归”、“排序算法”等教学课件在内蒙古自治区高校课件设计大赛和学校组织的课件设计大赛中多次获奖,非常受学生喜爱,取得了明显的效果。

2.1.2 教学环节和教学方法的改革注重实效和可操作性

程序设计能力和程序设计思想的培养是程序设计课程教学的最终目的[2]。我们紧紧围绕这个主题,采取一些行之有效的教学方法组织开展教学活动。

首先,抓住教学重点,精讲多练。我们始终把教学的重点放在培养学生的基本编程能力上,侧重讲授用正确的计算机语言描述算法,对编程的细节与技巧向学生做一些介绍,要求学生学会先分析算法和数据,再画出流程图,然后进行程序的编写。教学过程中充分利用多媒体教学手段,给学生演示程序设计的全过程,随着课程的不断深入,对编程细节的讲授逐渐淡化,而对程序的整体掌握的要求则逐漸加强,使学生充分感受到程序设计的魅力,编程能力也逐步跃上一个台阶。

其次,引入项目驱动和经典案例教学方法。在授课过程中采取项目驱动的教学方法,即以实际问题引出相关的理论和概念,在讲述实例的过程中融入知识点,通过分析归纳,建立解决工程实际问题的思想和方法,以提高解决工程实际问题的能力[3]。由于C语言是专业基础课程,我院的C语言程序设计课程都是在第一学年的第一个学期开设的,学生都是初次接触程序设计语言,对程序设计思想方法难以理解和掌握,思维方式的转变存在很大的障碍,这也是我们在教学中面临的最大困难。针对这一难题,课程组老师积极研制和整理教学案例,经过了艰辛的劳动和不断创新思维,对经典教学案例,进行归类总结、完善并系列化,使得各知识点教学内容都有标杆并紧密衔接,便于学生理解掌握经典算法并活学活用,举一反三,取得了事半功倍的效果。

其三,强化教学活动中的“教、学、做”统一。其中教师的“教”是主导、而学生的“学”是主体、“做”则是教学实践活动。“教、学、做”三方面通过有机的结合,形成了三位一体的教学方法,有效地避免了教和学、学与做等教学环节的分离和脱节,“教、学、做”统一起来后,教学活动得以形成一个整体[4],在教学设计、课堂授课、上机实验、布置作业、项目实训、实践活动辅导、师生互动、学生自我学习等各个教学环节上全面兼顾,都得到关注,总体把握教学效果,最终用“做”取得的成绩来衡量“教”与“学”的能力和水平。

其四,课内与课外相结合。丰富学生课外活动内容,为适应后续课程的学习打下了较为坚实的基础。引导学生参加学习兴趣小组,鼓励和指导学生积极参加程序设计大赛,利用程序设计辅助教学平台,开展竞赛活动,熟悉和了解ACM大赛的赛事和做题方法,选拔优秀学生组队参加自治区高校ACM程序设计大赛。越来越多的学生加入到科技活动中,在教师指导下开展软件开发,积累了一定的经验也取得了可喜的成绩。

2.2 新工科背景下实践教学改革具体措施与成效

2.2.1 以往实践教学中存在的问题

最近几年,为了适应以互联网和工业智能为核心的新兴产业的发展,我校和企业合作,相继开设了一些新兴的专业,如大数据、云计算等,C语言程序设计作为这些专业的基础课程,在目前工程教育专业认证背景下,其改革的目标有了更高的要求,学生在课程实践中,运用该课程所学的专业知识解决实际的复杂工程问题的能力需要进一步加强。C语言是实践性很强的一门课程,以往的实践教学环节中存在着如下一些问题:

(1)实验课学生基本上是在机房上机,教师给学生发布实验内容和要求,学生在课堂上完成编程任务,教师一人面对整个班级的同学,学生编程是否正确需要教师一个一个进行判断,不能完全关注到每个同学的状态。

(2)实验的内容也基本上是教材上的例题和习题,题目量比较少,也不够新颖。

(3)有的学生在课下完成的程序,由于编程题无法自动评判,不能及时的得到正确与否的反馈,使学习积极性受到影响。

(4)编程任务对于所有学生都一样,不能满足不同层次的学生需求和个性发展。

(5)缺少综合性和合作性的编程训练。

2.2.2 PTA平台+实训大作业的训练模式

以上所列出的问题也背离了工程教育认证标准的要求,C语言课程组针对这些问题,在实践教学环节采用了PTA平台+实训大作业的模式进行改革,这项改革措施首先在2019级学生中一个班级进行了教学改革实验,而后在2020级的所有6个班级中进行了推广。

程序设计类实验教学辅助平台(Programming Teaching Assistant,简称PTA)是由浙江大学牵头建设的在线程序评测系统,目前已经有800多所高校的6000多名教师共同建设和使用。平台题目数量足够大并且还一直在不断扩充。教师注册并申请开通教师权限后,可以创建班级,新建自己的题目,创建题目集,布置作业,查看作业情况,开通讨论话题、考试并进行成绩统计等操作。

程序设计类课程重在培养和提高学生的程序设计能力,进而培养学生的解决实际问题的能力,尤其对于初次接触程序设计的学生,在上机实验中往往发现问题就手忙脚乱,不知道该如何查找错误,怎么样排除错误,这也是实践教学中的一大难点,针对这样的现实情况,我们在实践教学中加强了程序的编写、错误的调试等基础训练内容,借助PTA这个平台反复训练,锻炼了学生分析解决问题能力和动手能力。具体做法如下:

(1)结合课程内容的不同知识点,创建和组织了适合我校学生的题目,并针对相应的章节创建了题目集。每一个知识点结束后,通过PTA教学平台,将题目集发放给学生,学生可以利用课上课下的时间,通过电脑或者手机进行反复的编程、纠错和线上提交等操作,自动评判系统会给出具体的正确或者错误的提示。教师可以随时查看本班级题目集的提交和排名情况。学生在平台上也可以查看自己在本题目集的排名和得分情况。

(2)为了适应不同层次学生的学习进度,题目集的编排是通过“模仿、改写、编写、提高”的循序漸进的方式来组织。每套题目集里面都设置了基础题目和提高题目,基础题目属于必做题,是学生必须掌握的对课程基本知识点的巩固题目;提高题目是对于学有余力的学生的“加餐”。通过这种分层练习的方式来确保满足不同层次学生的学习需求。

(3)学生在提交所编写程序的过程中遇到的问题,可以通过讨论区进行交流,大家可以提问题、可以说出自己的疑惑、分析编程思路和设计实现的方法,学习好的学生能够从中起到示范作用并给与其他同学一些指导,既培养了学生之间互帮互学的精神也锻炼了学生自主学习能力,同时激发了学生积极参与讨论的热情,也带动了整个班级的学习氛围,教师只需要在适当的时候有针对性的给与指导和随时把控当前的学习状况,解放了教师的工作强度,也便于教师把更多的精力投入到课程内容的研究和教学上。

(4)在学期的最后四周布置分组大作业。学生以小组为单位分别选择题目并进行组内分工和代码编写。作业结束需要进行答辩和评分。答辩以小组为单位推举出答辩代表,其他成员给予补充。由任课教师和邀请的学院其他老师作为答辩教师给出答辩成绩。这个过程让学生能够体会到程序的模块如何划分,小组成员相互协作分工完成大作业的团队协作精神。

2.2.3 将项目实训内容融入课堂,贯穿于教学中

在与企业合作办学以来,合作企业每学期针对C语言课程进行2次集中项目实训,项目实训内容结合课程进度进行,企业的实训指导教师和任课教师及时沟通教学进度情况,使实验课紧紧围绕项目实训内容或大作业开展,根据项目实训的内容,把算法的分析、数据处理的方法以及技术要求先介绍给学生,而将一些辅助性的或通过训练可由学生编程实现的部分,交由学生自己完成,经过反复上机调试,锻炼了学生解决实际问题的能力。在项目训练过程中教师加强了实验指导,帮助学生调试程序的过程中指导学生掌握调试程序的一些技巧和方法,学生完成实训项目过程中写出阶段性实验报告。

2.2.4 使用PTA平台进行实验教学的实施效果

PTA平台在2019级新生一个班级开始首次实施,2020级大一新生的6个本科班级开始推广使用,与未使用PTA平台的2019级学生进行比较,有如下的一些变化:

(1)编程数量的变化:2019级学生没有使用PTA平台的,整个学期给学生布置的编程题目约为90道题目,学生的完成情况没有办法具体统计。2020级学生共布置了编程题目142道,平均完成并通过测评的题目数在90道题以上。从两届学生的数据对比看,学生编程的数量和质量都是有可见的提高,并且通过PTA平台的试题分析,教师对于学生的做题情况是可以详细掌握的。

(2)这些量变也确实产生了“质变”:首先报名参加比赛的学生人数逐年增加,而且前几年学生参加ACM竞赛,获得了“优胜奖”。2021年带领学生参加ACM竞赛,2020级的学生踊跃参加并获得了二等奖和三等奖的好成绩。参加团体程序设计天梯赛的成绩也从2020年的未获奖,到2021年的二等奖,成绩有了明显的提高。

(3)使用PTA平台极大程度的激励了学生的做题积极性,培养了学生自学能力,建立了良好的学习氛围。学生的分析问题和解决问题的能力有明显的提高,动手能力越来越强,并且从做题中获得了学习的成就感,为后续课程的学习打下良好的基础。对于普通二本院校的学生来说,确实给学生提供了更高更广阔的锻炼平台。

(4)综合性作业培养学生的工程素养。学生的团结协作能力和实践创新能力都得到了锻炼。学生在做完项目后都能体会到这一学期的课程带来的收获和成就。

(5)项目实训,使学生实验目的更加明确,对调试程序的方法和过程加深了理解,对化解教学难点起到了实效,同时锻炼了学生分析解决问题的综合能力,提高了应用能力。

3 改革课程考核评价体系和实验教学评价方法

为增强课程考核的公平、公正和权威性,使课程考核能够全面、公正、真实地考察学生的学习情况,积极引导学生的学习方向,促进学生学习方式的改进,课程组老师积极进行考试评价方式的革新与实践,并不辞辛苦废寝忘食根据学生实际设计组织试题,使得编程题考试实现了系统自动评判。

该课程考核遵循重学习过程、轻考试结果的原则,注重对学生平时学习和实验、自主设计、完成阶段性实训项目的记录和考察。

课程评价包括理论和实践两部分,实践部分包括编程题和项目综合实训两部分。平时成绩占总成绩15%,平时作业理论部分客观题使用学习通和泛雅平台分单元或阶段进行测试,系统进行评判;实践部分编程题使用PTA平台,分单元发布题目进行单元测试。在学期期中和期末使用PTA平台分别进行两次考试,由系统进行评判,成绩各占30%和40%,项目综合实训采用大作业方式在课程的最后四周进行,学生分组,小组成员分工完成,答辩方式评判,成绩占15%。通过近两年采用新的考核方式和评价方法,实现了教考分离,评卷都由系统自动进行,考核结果全面客观,更注重过程。取得了积极的效果。

4 结语

經过C语言课程组全体教师多年来的辛勤工作和努力,该课程建设取得了一些显著成绩和效果,尤其近两年来,通过利用泛雅(学习通)、PTA等网络平台,极大地丰富了课程的教学资源,方便了师生互动和学习交流,教学效果能够及时得到反馈,教学成效性得到增强。但在目前教学资源条件大好的形势下,也迎来了一些新的问题和挑战,需要我们不断努力探索、实践与创新。如何让学生恰当地使用网络资源而不是过分依赖,需要有更好的解决办法,针对我校学生特点,开发充实适合学生实际的练习题和试题在PTA平台使用,也是需要长期进行的,为学生打造更大的提升空间,还需要创新性课外指导。课程改革的工作无止境,需要不断的努力探索前行,不断总结经验,弥补不足,创新举措,使得课程建设不断完善,为培养应用型复合型创新人才贡献力量、做出更大成绩。

参考文献:

〔1〕崔武子.C程序设计教程(第3版)[M].北京:清华大学出版社,2012.

〔2〕张基温.新概念C程序设计大学教程[M].北京:清华大学出版社,2012.

〔3〕袁宝华,朱长水,吴许俊,等.面向应用型人才培养的C语言教学改革研究[J].办公自动化,2018,29(04):11-15.

〔4〕杨洪伟,王开田,李晓辉,等.面向创新能力培养的C语言教学改革研究[J].计算机时代,2018,36(04):197-200.

猜你喜欢
模式实验教学教学改革
基于科学探究的高中生物实验教学探索
网络与云技术在实验教学中的应用
初中化学实验教学中“微课”教学模式的探讨
谈初中化学实验教学的初探
永续债券探析
思想政治理论课实践教学研究述评
中学数学创造性教学的模式与策略研究
基于人才培养的技工学校德育实效性研究
现代信息技术在高职数学教学改革中的应用研究
以职业技能竞赛为导向的高职单片机实践教学改革研究