面向专业应用的C语言程序设计实践教学模式研究

2020-12-15 06:49蔡明杨琴章成广唐军
高教学刊 2020年34期
关键词:C语言程序设计实践教学

蔡明 杨琴 章成广 唐军

摘  要:针对C语言程序实践课教学中存在的课题内容与专业应用结合不够、学生学习动力不足等问题,分别从教学内容、过程与激励措施、考核方式三大方面进行了改革探索,研究得出了相应的解决方案,提出了一种面向专业应用的C语言程序设计实践教学新模式。实际应用及课后问卷调查结果表明,该教学模式提高了学生学习的积极性和交流讨论的热情,有助于提升学生的编程动手能力和水平,取得了良好的应用效果。本教学模式可类推和应用于其他专业的C语言程序实践教学中。

关键词:程序设计;实践教学;教学模式;专业应用;C语言

中图分类号:G642        文献标志码:A         文章编号:2096-000X(2020)34-0089-04

Abstract: This paper first analyzes the teaching problems in C Programming Designcourse, such as the insufficiency of the combination of teaching content and professional application, students' learning enthusiasm. Then, the teaching reforms are explored from three aspects: teaching content, teaching process and incentive measures, and assessment method; problem solutions are obtained and a new practice teaching model of C programming design for professional applications is put forward finally. Application and questionnaire survey results show that students' learning enthusiasm is enhanced, students communicate with each other more frequently, students' programming ability are improved apparently. This study hopes that this teaching model can be analogized and applied in courses of the other majors.

Keywords: programming design; practice teaching; teaching model; professional application; C language

一、概述

《C语言程序设计》是高等学校工科专业广泛开设的一门重要的专业基础课程,以培养学生程序设计的理念和思维、算法设计能力、利用程序设计处理信息解决实际工程问题的能力[1]。《C语言程序设计》也是一门实践性很强的课程[1-4],除了合理的理论课堂教学,还必须重视上机实践环节,只有学生通过亲自动手实践,针对实践课程教学内容和目标独立设计并编写能解决课程设定问题的程序,才能更加深入透彻地理解和掌握理论课教学内容,灵活地运用C语言解决实际工程问题。因此,工科专业(如长江大学勘查技术与工程专业等)的C语言程序设计往往包括课堂教学和课程设计教学两大部分[3];课程设计让学生综合利用所学C程序设计知识解决一个系统化的难度适中的实际工程问题,掌握实际工程项目开发的一般流程,强化训练学生独立利用程序手段解决实际工程问题的能力。

实际的C程序课程设计教学往往由于教学内容不合适、学生学习目的不明确兴趣不高动力不足、学生数量多导致实践指导不力、考核评价体系不完备等问题[2]导致教学效果较差。针对上述问题,课题组教师经过长期的实践探索,研究提出了一种新的面向专业应用的C程序课程设计教学模式,并应用于地球物理测井专业学生的课程设计教学中,取得了较好的效果。

二、C语言程序课程设计教学现状分析

C语言程序课程设计是巩固所学理论知识提升编程技能的关键环节。众多学者已经开展了C语言程序课程设计的教学内容和方法研究。2012年,吴丽娟等人[3]研究了C语言教学模式,并给出了自主与合作的学习策略,并以选择贴近学生生活实际的课设题目使学生感到熟悉,引起学生探索兴趣。2014年,于艳东[5]研究了以问题为导向的C语言教学方法。2015年,陈子森[6]研究认为C语言课设应注重课程设计管理、设计课题精选、典型案例辅助三个要点。2016年,陈江丽[7]针对计算机专业的C语言教学研究了教学方法和实施策略,课设采用边讲边练的方式进行。高志宇等人[8]研究了C语言实践教学方法,主要包括两方面:1.提前1个月下达任务,分組准备并执行;2.考核方式采用答辩形式。2017年,董云[9]研究提出面向创新实践能力培养的C语言程序设计实践性教学的优化措施。2018年,曹风云等人[10]研究了C语言程序设计实践教学的改进措施。2019年,任敏[11]研究了CDIO模式下优化教材内容和教学方法的实践教学改革方法。

根据上述分析结合课题组教师长期的实践教学经历和体会认为C语言程序课程设计教学仍面临如下问题:1.可选的与专业应用相关的课程设计题目偏少甚至没有,大部分仍选用的是通识类课设题目(如教务管理系统、计算器设计等);2.学生学习目标不明确,兴趣不高,动力不足,自觉性差,需要督促;3.学生人数众多,学习基础存在较大差异,教师实践辅导无法满足需求;4.考核体系不完备,往往以课程设计报告作为主要考核指标,不利于公正全面地评价学生的水平,也不利于激励学生认真完成课设任务。

三、测井专业C程序课程设计教学新模式

针对C程序课程设计教学面临的问题,研究了面向专业应用的C程序课程设计教学新模式,主要从教学内容、过程与激励措施、考核方式三大方面进行了改革探索。下面以地球物理测井专业为例介绍课程设计教学新模式。

(一)教学内容设计

课程设计教学内容体系的优化和完善是教学改革的第一步,其设计应遵循以下原则:1.课设题目应充足,以便学生自由选择感兴趣的课题;2.每个课设题目应该有明确的应用场景,最好是与本专业相关的应用,以便学生体会C程序的应用价值,提高学习的兴趣;3.每个课设题目应是一个系统化的工程问题且难度适中,以便主要的知识点都能得到应用和练习并且学生能够在规定的时间内通过努力完成任务。

针对测井专业课程设计备选题目偏少且无专业应用相关的课题情况,研究设计了一个新的与专业应用相关的课题:简易测井资料处理分析系统的设计与实现。本课题有利于学生更好地体会C语言程序设计的应用价值,提高学生开展课程设计的兴趣,也有利于学生之后利用C语言程序开发或完善实际的测井资料处理分析软件或模块。

简易测井资料处理分析系统要求学生从原始常规测井数据体中提取所需数据计算储层基本参数并进行简单分析,具体要求及所需实现的功能如下:

1. 原始数据说明及数据提取

原始数据为存放在文本文件中的深度数据和常规测井曲线数据以及处理所需参数,数据和参数存放格式如图1所示。学生需提取原始测井数据中M个深度点的原始数据和全部处理参数,存放在相应的数据结构变量中备用。规则如下:从个人序号起提取连续的M个深度点的数据。

2. 所需实现的功能

学生要设计实现简易测井资料处理分析系统,利用菜单函数调用各个功能子函数,分别完成如下功能:

(1)数据提取与检查。通过屏幕显示查看自己提取的原始测井数据及参数,检查数据提取是否正确。

(2)测井数据处理。根据给定的计算公式和参数说明利用提取的数据分别计算各深度点的孔隙度、泥质含量、含油饱和度,并将测井数据处理结果存放在新文件中,要求按图2所示形式存放。

(3)处理结果分析

通过屏幕显示查询每个深度点的处理成果数据条(输入深度点序号查询),输出格式如图2。

统计处理深度段泥质含量、孔隙度和含油饱和度的最小值、最大值和平均值,并显示到屏幕上。

按含油饱和度从大到小的顺序通过屏幕显示查看完整的测井数据处理成果表,输出格式如图2。

通过屏幕显示不同等级储层深度点的处理成果数据及相应等级储层深度点的数目,输出格式如图2。假定储层等级分级标准为:储层泥质含量≤25%;另外,孔隙度>12%为I类,孔隙度介于[8%,12%]为II类,孔隙度介于[5%,8%]为III类,孔隙度<5%为IV类。

通过屏幕显示查询好储层深度点的处理成果数据,输出格式如图2。假定好储层条件为:泥质含量≤25%、孔隙度≥6%、含油饱和度≥60%。

(二)教学过程与激励措施设计

课程设计安排在两周内完成,每天集中上机6学时,其余时间自主安排上机练习。课设主要教学过程如图3所示;第一,提前一周公布可选的课设题目、要求及相关说明,让学生提前熟悉课设内容和要求并温习所需相关理论知识;第二,在第一次集中上机课中优选讲解两个课题内容并引导学生将课题任务分解为多个独立的子任务,然后让学生自主选题并设计课设任务完成方案,课后按4~5人一组自由组合成学习小组;第三,之后每次集中上机课教师首先讲解本次课的子任务要点,并给予实现任务的相关思路提示,然后学生上机实现子任务并测试子程序的正确性,教师随时解答学生遇到的问题,并在下课前20分钟随机抽查10名同学本次课子任务的完成情况;第四,整合所有子程序形成完整的系统程序,并测试系统的正确性和稳定性;第五,鼓励基础好的同学尝试用不同的算法实现同一个子任务的功能,对比分析算法的优缺点,进而优化整个项目系统;第六,集中上机课结束后,给学生一周的时间完善系统程序,撰写课程设计报告,准备小组汇报多媒体,并提交源程序、课程设计报告和小组汇报多媒体。

为了督促每一位同学认真完成课设任务,研究设计了一系列激励措施。

1. 重申C语言的应用价值并随机考勤。在第一次集中上机课中重申C语言程序在各行各业中的应用价值,特别是在后期专业课学习中的应用以及本专业实际工作中的应用情况;另外,还简要介绍往届学生在程序设计等级考试和相关竞赛中取得的成绩,并鼓励学生积极参加相关活动,以提高学生学习的兴趣和动力。为了督促每一位同学按时到课参加集中上机学习,随机进行考勤,并规定无故旷课1/3课时的同学最终成绩不合格。

2. 任务分解。为了避免学生产生畏难情绪,保证绝大部分同学能够自主顺利地完成课设任务,第一次集中上机课引导学生将系统的课设任务分解为若干个独立的子任务,然后分别完成实现各子任务并最終整合成完整的系统即可。与整个系统任务相比,子任务相对容易,更容易实现和测试,有利于增加学生的成就感,进而提升学习的兴趣;这种方式也有利于培养和锻炼学生独立分析问题和解决问题的思路和能力。

3. 随机抽查任务完成情况。为了及时了解学生每次集中上机课子任务的完成情况并督促学生尽快完成和测试,针对学生众多的实际情况,每次课随机抽查部分学生子任务的完成情况,并记录得分作为课堂表现成绩。具体方法为:每次集中上机课教师讲解完本次课的子任务要点后,利用C语言编写的随机选人系统 (界面如图4所示)随机挑选5位同学作为抽查对象;下课前30分钟再挑选5位同学作为抽查对象,并开始检查被选中的10位同学的子任务完成情况。具体检查内容为子程序的运行结果并随机挑选3-5个关键语句段让学生说明其含义和作用,以便了解学生是否真正理解和掌握了程序。

4. 小组互助学习。由于学生人数众多,学习基础及对课堂理论知识的掌握程度不尽相同,教师难以满足集中上机课中众多学生的问题解答需求。为此,在第一次集中上机课后要求学生自由组合成学习小组,在课设过程中相互交流,互帮互助,共同进步,以便更多学生能够真正掌握程序设计的一般思路和技巧,顺利完成课设任务。如此,学生在课设过程中遇到困难可优先寻求本小组成员的帮助,小组解决不了的问题才请老师帮忙解答,以保证老师的答疑资源得到最有效的利用。为了避免学生直接拷贝他人程序,在每次课抽查任务完成情况时,随机挑选部分关键语句段让学生说明其含义和作用。为了激励小组成员之间的交流,最终的结课汇报以小组为单位进行,将利用随机选人系统从各小组中随机挑选一位成员作为本小组的代表汇报本小组课设系统程序的结构、功能和测试结果,并随机挑选部分关键语句段让汇报人解释其含义和作用,以督促小组所有成员充分熟悉和理解本小组的汇报程序,最后将汇报综合得分作为本小组各成员的结课汇报成绩。

(三)具有激励作用的考核体系设计

为了避免片面地以结课报告作为主要指标评价学生的程序设计能力和课设完成情况,研究设计了综合考虑课设开展过程、结课汇报表现、结课报告等的考核评价体系。最终课设成绩具体计算公式如下:

其中,课堂表现主要考查每个子任务完成情况,另外,对于能积极为他人答疑的同学给予一定的奖励分;结课汇报主要考查小组程序的结构、功能、测试结果及汇报人对程序的理解情况;结课报告及程序主要考查程序运行结果的正确性、报告结构的完整性、语言表述的准确性和流畅性。

四、应用与效果分析

将本文研究得到的C语言程序设计实践教学模式应用于实际C语言课设教学中,发现采用新的教学模式后,学生开展课设学习的积极性相对更高,学生之间交流也更加频繁,通过抽查过程中学生对部分关键程序段解释发现部分基础相对较差的同学通过与其他同学的交流有效地加深了对程序的理解程度。通过对课后收集到的90份有效匿名调查问卷数据的统计和分析发现,77.14%的学生倾向于选择与本专业相关的课设题目,97.14%的学生认为将课设任务分解为若干个子任务有助于更好地完成课设任务,85.71%的学生认为每次课随机抽查10位同学当次课子任务的完成情况并记录得分对完成课设任务有激励作用,85.71%的学生认为分组进行课设方式优于独立进行课设方式,91.43%的学生认为本成绩评定方式是合理的,88.24的学生认为本次C语言程序课程设计有助于提升自己的编程动手能力和水平。由此说明,本文研究的新教学模式取得了较好的应用效果。

五、结束语

经过多年的C语言程序设计理论课和实践课的教学经历和体会,結合文献调研结果,发现并分析了C语言程序实践课教学中存在的问题,针对这些问题,分别研究得出了相应的解决方案,最终总结提出了一种面向专业应用的C语言程序设计实践教学新模式。将研究的教学模式应用于实际C语言程序课程设计教学中,提高了学生学习的积极性和交流讨论的热情,课后问卷调查数据统计分析结果表明,该教学模式有助于提升学生的编程动手能力和水平,取得了良好的应用效果。本教学模式可类推和应用于其他专业的C语言程序实践教学中。

参考文献:

[1]郭银章,王丽芳.基于项目任务驱动的C语言程序设计课程教学改革与实践[J].计算机教育,2017(02):41-44.

[2]于延,周国辉,李红宇,等.CDIO模式下C语言程序设计实践教学改革[J].计算机教育,2016(02):122-126.

[3]吴丽娟,申海,张浩华.C语言课程设计教学模式的探索与实践[J].沈阳师范大学学报(自然科学版),2012,30(01):122-125.

[4]朱迅.“C语言程序设计”教学的探讨[J].软件导刊,2010,9(08):198-199.

[5]于艳东.以问题为导向的《C语言程序设计》教学研究[J].电子制作,2014(08):151-152.

[6]陈子森.C语言程序设计课程教学改革研究[J].无线互联科技,2015(01):246-247+253.

[7]陈江丽.剖析计算机专业“C语言程序设计”课程的教学改革[J].科教导刊(上旬刊),2016(03):85-86.

[8]高志宇,孙新娟.浅谈C语言程序设计实践教学的研究[J].计算机光盘软件与应用,2014,17(15):242-243.

[9]董云.面向创新实践能力培养的C语言程序设计实践性教学[J].电脑迷,2017(09):138+147.

[10]曹风云,钱言玉.电子信息类专业《C语言程序设计》课程实践教学研究[J].合肥师范学院学报,2018,36(03):64-65.

[11]任敏.浅谈CDIO模式下C语言程序设计实践教学改革[J].南方农机,2019,50(03):215.

*基金项目:国家自然科学基金“基于声波测井数值与实验模拟的裂缝性储层渗透率定量评价方法研究”(编号:41774116);长江大学2018年度校级教师发展专项“基于应用导向和小组互助学习的《C语言程序设计》教学方法研究”(编号:B201806)

作者简介:蔡明(1986-),男,汉族,湖北武汉人,博士,讲师,研究方向:地球物理测井。

*通讯作者:杨琴(1986-),女,汉族,湖北武汉人,硕士,科员,研究方向:企业管理。

猜你喜欢
C语言程序设计实践教学
基于OBE的Java程序设计个性化教学研究
项目化教学在Python程序设计课程中的应用
C++程序设计课程教学改革研究
医学专业“Python程序设计”课程教学改革总结与思考
“C语言程序设计”课程混合教学探索
基于C语言的计算机软件编程技术探究
中职C语言单片机课堂教学中的趣味性探讨
计算机原理中C语言的应用价值
茶学专业校企合作实践教学探索
《电气工程毕业设计》 课程的教学设计