新工科背景下C语言层进式教学过程探讨

2021-03-07 00:07贾文晶肖理庆
装备维修技术 2021年46期
关键词:C语言新工科

贾文晶 肖理庆

摘  要:在新工科教育背景下,針对传统教学过程中存在的不足,从学生角度出发,将理论教学与上机练习相结合,将课堂讲授与编程应用探讨相结合,以函数编程为例,开展C语言层进式课程教学设计研究。教学实践表明,本文提出的C语言层进式教学设过程计能够有效提高课堂教学效果,增加师生互动环节,在提高学生自主学习能力和培养学术技术底蕴方面得到了较好的反馈。

关键词:C语言;层进式;新工科

中图分类号:       文献标识码:       文章编号:

1 引言

新工科背景下不断推进创新应用型人才培养模式,目标是为新时代培养具有专业能力的高素质人才。随着计算机技术的日益成熟,计算机产品的功能也越加强大,生活中的各行各业都跟计算机技术息息相关,计算机技术的应用日益广泛。伴随着社会的进步,企业对从业人员的要求不仅仅在知识层面,还要有较强的计算机操作能力。既要能熟练应用各计算机产品的本领,又要有创新开发计算机产品的能力,所以熟练掌握一门计算机语言是当今企业的就业需求[1]。

C语言是人与计算机交流的语言,也是编程爱好者学习编程的一门入门语言。作为一名计算机语言任课教师,已经多年从事计算机语言工作任务。和大多数人一样,接触的第一个计算机语言就是C语言,众多计算机语言为什么选择它作为计算机的入门语言呢?经过多年的任教和学习,也终于懂得C语言虽然简单,作为高级语言的入门语言,但是其功能非常之强大。它的优点主要体现在代码量小、运行速度快和可以访问硬件等方面,所以目前操作系统就只能用C语言来写[2]。对于工科专业的大学生来说,在学习初期同学们学习兴趣的建立和学习过程中同学们自主编程能力的培养是至关重要的。从学生角度出发,需要将理论教学与工程案例相结合,将课堂讲授与编程应用相结合,增加实践教学的比重,让同学们能够参与到教学环节中去,从C语言学习中找到乐趣,才能爱上C语言去。除了建立学生对C语言课程的学习兴趣,还要锻炼同学们的自主编程能力,如何锻炼同学们的自主编程能力呢?让学生不再只依赖于课本例题,能够利用网络资源,多去读一些经典例题,做到举一反三,遇到问题能自己解决。

2  C语言程序设计教学方法反思与课程教学内容、教学目标整合

目前国内很多高校如合肥工业大学、西南交通大学、阜阳师范学院等均建立了C语言程序设计(实验)教学平台,用C程序编程演示代替传统的板书,活跃了课堂气氛,增加学生与老师之间的互动,让学生更好的参与到课堂中,有效提高了学生学习C语言的积极性以及C语言程序设计课堂(实验)教学质量[3]。但在新工科的背景下,对就业人员C语言编程能力的要求也逐步提高针对传统教学过程中存在的不足,本文提出以下几点反思:(1)C语言数据类型多、知识点复杂,学生容易产生厌学情绪。学生计算机语言基础薄弱,在兴趣的激发下,初期大多数同学C语言学习动力较足,后期随着课程难度增加多数同学心有余而力不足,导致最终只有极少数同学掌握C程序编程能力;(2)学生对理论知识的掌握没有在C编程实战中得到演练。理论知识点在教师的讲解下多数同学都能理解吸收,实验课在教师的带领下也能编写简单的程序,但课时有限,很少有同学会在课后练习C程序编程,这就导致很多同学知识点都学会了,并不知道怎么用;(3)学生惯性思维严重,解题思路不够灵活。C语言功能十分强大,语法自由,只要思路清晰,程序员可以用C语言写出任何程序,但现在学生思维不够主动,编程方法受课本例题的束缚,出现错误依赖老师去解决,即使掌握C程序编程能力也不能精通。根据以上情况,笔者结合本专业C语言教学情况,制定了C语言层进式教学过程设计,主要的教学目的为:

(1)让同学们能够驾驭C语言自主编程,熟练掌握C语言的三大语法结构顺序、选择和循环,熟练运用数组、函数和指针来解决问题;

(2)让喜欢C语言编程的同学能够精通掌握它,分析解读经典C程序,将优秀程序员的编程思维学为己用。

3  C语言层进式教学过程设计

近几年人工智能和大数据技术得到越来越多学者的关注,C语言作为大学生进入大学校园的第一门计算机语言课,如何让学生喜欢上C语言,提高学生们的编程能力变得尤为重要[4]。为达成以上教学目标,本文提出C语言层进式教学过程设计,本设计包括五个阶段,兴趣激发,功能特点分析,经典例题引入,知识点剖析,和编程应用探讨。以下本文以C程序编程的函数知识点切入,详细介绍层进式教学过程设计的主要方法,使学生们能够主动学习,提高自主编程能力,能逐步掌握函数定义的语法结构,能熟练运用函数去解决C编程中遇到的问题。

3.1 兴趣激发

国外某知名教育家曾经提到“成功的教育不在于强制,而在于鼓励学生自主学习。”C语言作为计算机语言,其学习内容和语言结构对比自然语言的学习,给同学们打开了一个崭新的大门。自然语言是人与人之间沟通的语言,战国策出“夫市之无虎,但是三人言而成虎。”自然语言在表达上其主观性更强,容易产生歧义。C语言其作为机器语言要求准确性极高,不能存在模棱两可。这使得C语言的学习变得枯燥乏味,增加了学生们的学习难度,现在本文以C语言函数知识点切入,讲解怎样激起同学们学习C语言的兴味[5]。

在学习函数之前首先要上学生明白为什么要学函数,在课堂开始先引入这样一段历史典故,很多看过《三国演义》书和电视剧的肯定对以下描述并不陌生。司马懿曰“诸葛孔明食少事烦,其能久乎!”司马懿说完这段话没多久,诸葛亮就去世了。“事无巨细,事必躬亲”,诸葛亮的这种行为在管理学中是不被认可的,管理学讲究分工合作,以一人之力完成所有工作显然大大降低了工作效率。对于C语言而言,简单的累加求和、比较大小等算法程序只有几行或几十行,但当C语言用来编写计算机系统或大型游戏时,其程序可能是上千行或者上万行。如果把这些上千行或者上万行的程序作为一个C程序源文件,首先对于程序员来说从编写到维护难度都非常大。上千行的C程序作为产品到读者手中,阅读起来也是非常困难的。每个程序完成各自的功能,这就是C程序函数的来源[6]。

3.2 功能特点分析

一个程序包括算法和数据两部分,算法是一个C语言程序中最重要的部分,算法的好坏决定了程序的质量,数据是程序的操作内容。但是一个好的程序除了算法和数据之外,还需要程序结构化设计,程序结构化设计的艺术就是将程序进行模块化的设计。函数是C语言进行模块化设计必不可少的一部分。如果把C语言的编写过程比作生产线汽车组装过程,函数相当于汽车的零件,在汽车组装过程中,每个零件都需要设计、调试和检测无误后在安装到汽车上。汽车的零件可以是自己设计研发,也可以进口国外产品。自己设计研发的“零件”对应的是自定义函数,是由编程人员自己编写完成,进口产品对应的是库函数,是由别人写好的一些经典源程序,编程人员在设计程序是可以直接调用[7]。

C程序结构图如图1所示,由此可知,一个复杂的计算机程序由多个函数构成,这个函数可以是编程人员亲自定义的函数,也可以他人定义好的库函数。

3.3 经典例题引入

下面本文通过重复输出“*”号和文字的案例来讲解函数的定义。题目要求:输出一行*****,再输出一行文字,再输出一行*****,用函数调用来实现。题目解析:在输出的文字的上下方分别要求输出一行“*”号,显然不必重复设计输出“*”的这段代码,定义一个子函数p_s来实现输出一行“*”号的功能,定义一个p_m的子函数来输出中间一行文字,用主函数分别调用两个子函数来完成以上功能。

3.4 知识点剖析

题目中要求输出两行“*”号和一行文字,就需要定义两个函数,一个用来输出“*”号,一个用来输出文字。首先用主函数调用输出“*”号的函数,程序即可完成输出一行“*”号的功能,然后主函数调用输出一行文字的函数,程序即可完成输出一行文字的功能,最后主函数再次调用输出“*”号的函数,程序即可完成输出一行“*”号的功能。由此函数的功能可以看出,可以用一个调用语句直接调用定义好的函数来完成此函数的功能,如果函数包括上百条语句,而且函数段在程序中多次出现,就可以用调用语句多次调用来完成,大大化简了程序的复杂程度[8]。

定义p_s 和p_m的知识点相似,下面本文从p_m函数的定义来讲解。p_m函数的功能是输出" My name is Jia Wenjing?"这行文字,要使计算机完成此功能,必须按照C语言规范对它进行定义。p_m函数的类型为void类型,void类型的函数没有ruturn语句,所以p_m函数没有返回值。定义函数名字p_m,通过p_m名字来调用p_m函数,出现函数名字即调用,调用此函数就会跳到此函数执行此函数,完成此函数的功能。定义参数的个数与类型,此函数属于无参函数,所以参数个数为零,参数列表括号为空。定义函数的功能,printf("My name is Jia Wenjing!\n"),此函数珂完成输出"My name is Jia Wenjing!"一行文字的功能。

3.5 编程应用探讨

(1)案例应用,层进深化。上机实践,由经典例题引入学生进行自主编程,利用所学的知识对函数进行定义,并利用VS2010软件进行编程调试。主函数的功能是分别调用p_s和p_m两个子函数。语句p_s();为调用p_s函数,语句功能为由主函数跳转到p_s函数,语句p_m;为调用p_m函数,语句功能为由主函数跳转到p_m函数。子函数void p_s()完成输出一行“*”号的功能,子函数void p_m()完成输出一行文字的功能。主函数要稍微特殊一点,所有的程序只能包括一个主函数和多个子函数,程序只能从主函数开始,如果过程中调用其他子函数,调用后要返回主函数结束运行[9]。

(2)由无参到有参,推广练习。本例题所设计到的是无参函数的定义,例如void p_m(),括号里面没有参数类型和参数个数,所以此函数为无参函数,无参函数被调用时不需要向主调函数传递数据。那当主调函数需要向被调函数传递数据时,有参函数又该如何定义呢?在课堂最后设置练习环节,由无参函数到有参函数扩展,由同学们用已学知识自行完成有参函数的定义,以促进从理论学习到知识运用层面的深化。

4 结语

针对传统工科教学中C语言课程存在的不足,以函数编程为例,从科学有效的教学目标出发,采用五阶段层进式教学设计,使学生由兴趣激发,到函数功能特点分析,再到经典例题引入,逐步掌握功能特点与函数定义的知识点剖析,最后编程应用探讨将理论与案例相结合,提高编程技术底蕴和工程素养。经过多次教学实践证明,该教学设计过程能够有效引导学生自主学习,主动思考,促进教学互动,从而取得良好教学效果。

参考文献

[1]张延亮,康国栋,周清平.工程教育认证标准视角下软件工程专业课程教学改革探索与实践——以“C语言程序设计基础”课程为例[J].煤炭高等教育,2018,36(05):117-121.

[2]左倪娜.基于翻转课堂模式的C语言程序设计教学改革[J].广西教育,2017(11):70-71.

[3]陈玉萍.“互联网+翻转课堂”模式在《C语言程序设计》教学中的应用探讨[J].创新创业理论研究与实践,2019,2(24):33-34.

[4]王鹏远,苏虹.高校非计算机专业C语言教学改革与实践[J].计算机教育,2011(02):15-18.

[5]张淑萍.基于CDIO工程教育理念的C语言程序设計教学改革[J].科技视界,2017(03):41+47.

[6]罗卫敏,王令.符合工程教育认证标准的C语言课程教学改革[J].计算机时代,2017(02):79-81.

[7]朱安平.一种C语言函数教学的设计与实践[J].计算机工程与科学,2014,36(S1):139-142.

[8]陆有丽,蒋军强,欧先锋.地方应用型本科院校C语言程序设计课程教学改革与实践初探[J].湖南理工学院学报(自然科学版),2020,33(02):83-86.

[9]李建华,许芝卉.基于人工评分思路的C语言自动评分算法研究[J].山西大同大学学报(自然科学版),2020,36(02):25-27.

作者简介:贾文晶,女,助教,1991.06,硕士,目前主要从事图像处理和故障诊断等方面研究。

基金项目:2019年安徽省省级重点教学研究项目(2019jyxm0366),淮南师范学院一般教研项目(2019hsjy59)。

猜你喜欢
C语言新工科
“C语言程序设计”课程混合教学探索
基于C语言的计算机软件编程技术探究
中职计算机C语言教学的探讨与研究
中职C语言单片机课堂教学中的趣味性探讨
“新工科”背景下职业院校工程技术教育改革创新的思考
“新工科”建设的五个突破与初步探索
面向新工科的Python程序设计交叉融合案例教学
新工科形势下高校二级学院毕业设计管理探索
新工科背景下大学生创新创业教育探索
计算机原理中C语言的应用价值